Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
company_app
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
毛细亚
company_app
Commits
146bd230
提交
146bd230
authored
6月 05, 2025
作者:
毛细亚
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
适配关联标签
上级
cb186d22
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
572 行增加
和
43 行删除
+572
-43
App.vue
src/App.vue
+1
-0
works.js
src/api/works.js
+9
-0
selectTag.vue
src/components/selectTag.vue
+497
-0
bindUserList.vue
src/views/components/bindGameAccount/bindUserList.vue
+2
-2
applyGift.vue
src/views/components/giftRecord/applyGift.vue
+1
-1
emailGift.vue
src/views/components/giftRecord/emailGift.vue
+2
-2
oneDay.vue
src/views/components/giftRecord/giftDetails/oneDay.vue
+4
-4
roleRecharge.vue
src/views/components/giftRecord/giftDetails/roleRecharge.vue
+4
-4
roleTimeRecharge.vue
...ws/components/giftRecord/giftDetails/roleTimeRecharge.vue
+4
-2
wxGift.vue
src/views/components/giftRecord/wxGift.vue
+1
-1
Info.vue
src/views/userInfo/components/Info.vue
+46
-25
userInfo.vue
src/views/userInfo/userInfo.vue
+1
-2
没有找到文件。
src/App.vue
浏览文件 @
146bd230
...
...
@@ -177,6 +177,7 @@ export default {
},
methods
:
{
...
mapMutations
(
'user'
,
[
'set_userid'
,
'set_corp_id'
,
'set_token'
,
'set_cser_info'
,
'set_cser_id'
,
'set_cser_name'
,
'set_userInfo'
]),
...
mapMutations
(
'game'
,
[
'set_accountSelect'
]),
// 设置缓存
cacheCorp_id
(
corp_id
)
{
Cookies
.
set
(
'corp_id'
,
corp_id
,
{
expires
:
7
})
...
...
src/api/works.js
浏览文件 @
146bd230
...
...
@@ -99,3 +99,11 @@ export function getSendingCodeList(data) {
data
})
}
// 标签
export
function
searchTags
(
data
)
{
return
request
({
url
:
returnApi
(
'/tag/index'
),
method
:
'post'
,
data
})
}
\ No newline at end of file
src/components/selectTag.vue
0 → 100644
浏览文件 @
146bd230
<
template
>
<el-drawer
:lock-scroll=
"true"
:title=
"title || '选择标签'"
:visible=
"show"
size=
"360px"
:append-to-body=
"true"
@
close=
"close"
>
<div
class=
"newPageNovel"
>
<div
class=
"input"
>
<el-input
v-model=
"searchValue"
style=
"max-width:200px;"
placeholder=
"请输入标签名称"
class=
"input-with-select"
>
<el-button
slot=
"append"
icon=
"el-icon-search"
@
click=
"inputSearch"
></el-button>
</el-input>
<div
v-if=
"checkbox"
class=
"checkBox"
style=
"margin-top:10px;"
>
<el-checkbox
v-model=
"is_tag_sync"
:true-label=
"1"
:false-label=
"0"
>
在当前主体不同客服号同步进行打标
</el-checkbox>
</div>
</div>
<div
class=
"contnet columnFlex spaceBetween"
>
<div
class=
"contnetLeft"
>
<div
class=
"title rowFlex columnCenter"
>
可选择列
</div>
<div
v-infinite-scroll=
"startSearch"
:infinite-scroll-immediate=
"false"
:infinite-scroll-disabled=
"isScrollBottom"
class=
"checkBoxList"
>
<div
v-for=
"(item,index) in handleCheckTagList"
:key=
"index"
class=
"boxItem memberItem"
>
<el-checkbox
v-model=
"item.checkAll"
:indeterminate=
"item.isIndeterminate"
@
change=
"handleCheckAllChange(item)"
>
{{
item
.
group_name
}}
</el-checkbox>
<div
style=
"margin: 15px 0;"
></div>
<el-checkbox-group
v-model=
"item.checkItem"
class=
"rowFlex flexWarp"
style=
"margin-left:20px;margin-top:-10px;"
@
change=
"handleCheckedCitiesChange(item)"
>
<el-checkbox
v-for=
"(items,i) in item.tag"
:key=
"items.id+i"
style=
"margin-top:10px;"
:label=
"items.id"
>
{{
items
.
name
}}
</el-checkbox>
</el-checkbox-group>
</div>
</div>
</div>
<div
class=
"contnetRight"
style=
"margin-top: 20px;"
>
<div
class=
"title rowFlex columnCenter spaceBetween"
>
<label>
已选择
{{
allCheckoutList
.
length
}}
项
</label>
<span
class=
"clear"
@
click=
"clear"
>
清空全部
</span>
</div>
<div
class=
"checkList"
>
<div
v-for=
"(item,index) in allCheckoutList"
:key=
"item.id+index"
class=
"checkTagItem rowFlex spaceBetween columnCenter"
>
<p
class=
"rowFlex"
><i
class=
"iconfont icon-caidan"
></i>
<span
class=
"hidden"
style=
"max-width:60px;"
>
{{
item
.
name
}}
</span></p>
<i
class=
"el-icon-close"
style=
"color: rgba(0, 0, 0, 0.45);"
@
click
.
stop=
"removeTag(item)"
></i>
</div>
</div>
</div>
</div>
</div>
<span
class=
"dialog-footer rowFlex"
>
<el-button
class=
"btn"
type=
"primary"
size=
"small"
@
click=
"submit"
>
确 定
</el-button>
<el-button
class=
"btn"
size=
"small"
@
click=
"close"
>
取 消
</el-button>
</span>
</el-drawer>
</
template
>
<
script
type=
"text/javascript"
>
import
{
searchTags
}
from
'@/api/works'
export
default
{
components
:
{
},
// checkList 选中的标签 checkbox 是否显示 在当前主体不同客服号同步进行打标
props
:
[
'show'
,
'checkList'
,
'title'
,
'checkbox'
],
data
()
{
return
{
searchValue
:
''
,
radio
:
'add'
,
is_tag_sync
:
1
,
checkoutNum
:
0
,
checkTagList
:
[],
isScrollBottom
:
false
,
tagPageInfo
:
{
page
:
0
,
page_size
:
20
},
handleCheckTagList
:
[],
selectedTags
:
[],
searchTagsInput
:
''
,
allCheckoutList
:
[]
// 所有的选中标签
}
},
computed
:
{
},
watch
:
{
checkoutNum
()
{
const
list
=
[]
this
.
handleCheckTagList
.
map
((
item
,
index
)
=>
{
if
(
item
.
checkList
&&
item
.
checkList
.
length
>
0
)
{
item
.
checkList
.
map
((
items
,
indexs
)
=>
{
list
.
push
(
items
)
})
}
})
this
.
allCheckoutList
=
list
}
},
mounted
()
{
this
.
selectedTags
=
this
.
checkList
this
.
startSearch
()
},
methods
:
{
// 处理请求的数据
handleAllTagData
()
{
if
(
this
.
checkTagList
.
length
>
0
)
{
this
.
checkTagList
.
map
((
item
)
=>
{
item
.
isIndeterminate
=
false
item
.
checkAll
=
false
item
.
checkItem
=
[]
// 选中的label
item
.
checkList
=
[]
})
const
list
=
this
.
removeDp2
(
this
.
checkTagList
,
this
.
selectedTags
,
'group_id'
)
this
.
handleDefaultCheck
(
list
)
// // 处理默认勾选的数据
this
.
handleCheckTagList
=
list
}
else
{
this
.
handleCheckTagList
=
[]
}
},
removeDp2
(
arr1
,
arr2
)
{
const
list1
=
JSON
.
parse
(
JSON
.
stringify
(
arr1
))
let
list2
=
[]
arr2
.
length
===
0
?
list2
=
[]
:
list2
=
JSON
.
parse
(
JSON
.
stringify
(
arr2
))
for
(
let
k
=
0
;
k
<
arr1
.
length
;
k
++
)
{
for
(
let
i
=
0
;
i
<
arr2
.
length
;
i
++
)
{
if
(
arr2
[
i
].
group_id
===
arr1
[
k
].
group_id
)
{
list2
[
i
].
isfilter
=
true
}
}
}
const
list
=
list2
.
filter
(
item
=>
!
item
.
isfilter
)
return
list
.
concat
(
list1
)
},
// 数组去重
removeDp
(
arr1
,
arr2
,
id
)
{
let
arr
arr2
?
arr
=
arr1
.
concat
(
arr2
)
:
arr
=
arr1
const
obj
=
{}
const
newArray
=
arr
.
reduce
((
pre
,
cur
)
=>
{
if
(
!
obj
[
cur
[
id
]])
{
obj
[
cur
[
id
]]
=
true
pre
.
unshift
(
cur
)
}
return
pre
},
[])
return
newArray
},
// 默认勾选的数据 有数据就处理
handleDefaultCheck
(
data
)
{
// 先删选出来 有哪些 标签组已选中
data
.
map
(
item
=>
{
this
.
selectedTags
.
map
(
i
=>
{
const
list
=
[]
if
(
item
.
group_id
===
i
.
group_id
)
{
// 匹配到了
this
.
$set
(
item
,
'checkList'
,
i
.
tag
)
this
.
allCheckoutList
=
this
.
removeDp
(
i
.
tag
,
this
.
allCheckoutList
,
'id'
)
i
.
tag
.
map
((
k
,
j
)
=>
{
list
.
push
(
k
.
id
)
})
this
.
$set
(
item
,
'checkItem'
,
list
)
item
.
isIndeterminate
=
item
.
checkItem
.
length
>
0
&&
item
.
checkItem
.
length
<
item
.
tag
.
length
return
}
else
{
return
}
})
item
.
checkItem
.
length
===
item
.
tag
.
length
?
item
.
checkAll
=
true
:
item
.
checkAll
=
false
})
},
inputSearch
()
{
this
.
searchTagsInput
=
this
.
searchValue
this
.
tagPageInfo
=
{
page
:
0
,
page_size
:
20
}
this
.
isScrollBottom
=
false
this
.
startSearch
()
},
async
startSearch
(
resize
)
{
if
(
!
this
.
isScrollBottom
)
{
// 数据未加载完
let
data
=
{}
this
.
tagPageInfo
.
page
++
const
obj
=
{
tag_name
:
this
.
searchTagsInput
}
data
=
{
...
obj
}
this
.
requestCheckTag
(
data
)
}
else
{
// 数据已加载完
this
.
handleAllTagData
()
}
},
requestCheckTag
(
data
)
{
const
params
=
{
...
data
,
...
this
.
tagPageInfo
}
searchTags
(
params
).
then
(
res
=>
{
res
.
data
.
data
.
length
<
20
?
this
.
isScrollBottom
=
true
:
this
.
isScrollBottom
=
false
if
(
this
.
tagPageInfo
.
page
==
1
)
{
this
.
checkTagList
=
res
.
data
.
data
}
else
{
// 数据去重
this
.
checkTagList
=
this
.
removeDp
(
res
.
data
.
data
,
this
.
checkTagList
,
'group_id'
)
}
this
.
handleAllTagData
()
})
},
// 全选
handleCheckAllChange
(
item
)
{
this
.
checkoutNum
++
if
(
item
.
checkAll
)
{
// 全选的时候
const
list
=
[]
item
.
tag
.
map
((
items
)
=>
{
// items.group_id = item.group_id
list
.
push
(
items
.
id
)
})
this
.
$set
(
item
,
'checkItem'
,
list
)
}
else
{
this
.
$set
(
item
,
'checkItem'
,
[])
}
this
.
handleCheckoutItem
(
item
)
item
.
isIndeterminate
=
item
.
checkItem
.
length
>
0
&&
item
.
checkItem
.
length
<
item
.
tag
.
length
},
handleCheckedCitiesChange
(
item
)
{
this
.
checkoutNum
++
if
(
item
.
checkItem
.
length
===
item
.
tag
.
length
)
{
// 全部选中
item
.
checkAll
=
true
}
else
{
item
.
checkAll
=
false
}
this
.
handleCheckoutItem
(
item
)
item
.
isIndeterminate
=
item
.
checkItem
.
length
>
0
&&
item
.
checkItem
.
length
<
item
.
tag
.
length
},
// 单选的时候收集选中的item
handleCheckoutItem
(
item
)
{
const
list
=
[]
item
.
checkItem
.
map
((
items
)
=>
{
item
.
tag
.
map
(
i
=>
{
if
(
items
===
i
.
id
)
{
list
.
push
(
i
)
}
})
})
this
.
$set
(
item
,
'checkList'
,
list
)
},
// 清除全部
clear
()
{
this
.
allCheckoutList
=
[]
this
.
handleCheckTagList
.
map
(
item
=>
{
item
.
checkItem
=
[]
item
.
checkAll
=
false
item
.
checkList
=
[]
})
},
close
()
{
this
.
allCheckoutList
=
[]
this
.
$emit
(
'update:show'
,
false
)
},
// 点击确定
submit
()
{
const
list
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
handleCheckTagList
)).
filter
(
item
=>
item
.
checkItem
.
length
>
0
)
list
.
map
(
item
=>
{
item
.
tag
=
item
.
checkList
delete
item
.
checkItem
delete
item
.
checkList
delete
item
.
isIndeterminate
delete
item
.
checkAll
return
item
})
this
.
selectedTags
=
list
// 客户管理批量修改标签里面
this
.
$emit
(
'submit'
,
list
,
this
.
is_tag_sync
)
this
.
$emit
(
'update:show'
,
false
)
},
// 删除某一个tag
removeTag
(
item
)
{
const
i
=
this
.
allCheckoutList
.
findIndex
((
items
,
index
)
=>
{
return
items
.
id
===
item
.
id
})
this
.
allCheckoutList
.
splice
(
i
,
1
)
this
.
handleCheckTagList
.
map
(
k
=>
{
if
(
k
.
checkList
&&
k
.
checkList
.
length
>
0
)
{
let
a
a
=
k
.
checkList
.
findIndex
(
j
=>
{
return
j
.
id
===
item
.
id
})
if
(
a
!==
-
1
)
{
k
.
checkList
.
splice
(
a
,
1
)
k
.
checkList
.
length
>
0
?
''
:
k
.
checkAll
=
false
}
}
if
(
k
.
checkItem
&&
k
.
checkItem
.
length
>
0
)
{
let
b
b
=
k
.
checkItem
.
findIndex
(
c
=>
{
return
c
===
item
.
id
})
if
(
b
!==
-
1
)
{
k
.
checkItem
.
splice
(
b
,
1
)
this
.
$set
(
k
,
'checkItem'
,
[].
concat
(
k
.
checkItem
))
k
.
checkItem
.
length
>
0
?
''
:
this
.
$set
(
k
,
'checkAll'
,
false
)
}
}
k
.
isIndeterminate
=
k
.
checkItem
.
length
>
0
&&
k
.
checkItem
.
length
<
k
.
tag
.
length
})
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.newPageNovel
{
width
:
100%
;
padding
:
0
20px
;
height
:
100%
;
overflow
:
auto
;
padding-bottom
:
120px
;
.input
{
width
:
250px
;
::v-deep
.el-input__inner
{
width
:
vw
(
250
);
}
::v-deep
.el-button
{
width
:
vw
(
76
);
}
}
.contnet
{
width
:
100%
;
height
:
auto
;
margin-top
:
20px
;
.contnetLeft
{
width
:
vw
(
500
);
height
:
600px
;
border-radius
:
8px
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.06
);
overflow
:
auto
;
position
:
relative
;
padding-top
:
40px
;
}
.contnetRight
{
width
:
vw
(
260
);
height
:
600px
;
border-radius
:
8px
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.06
);
position
:
relative
;
padding-top
:
40px
;
.checkList
{
width
:
100%
;
height
:
100%
;
overflow
:
auto
;
padding
:
0
20px
;
padding-bottom
:
40px
;
}
.checkTagItem
{
width
:
100%
;
height
:
26px
;
margin-top
:
10px
;
font-size
:
14px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#333333
;
background
:
#eeeeef
;
border-radius
:
4px
;
padding
:
0
10px
;
line-height
:
26px
;
cursor
:
pointer
;
.icon-caidan
{
margin-right
:
5px
;
}
span
{
max-width
:
100px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
display
:
inline-block
;
}
}
}
.title
{
width
:
100%
;
height
:
40px
;
background
:
#f6f8f9
;
border-radius
:
8px
8px
0px
0px
;
border-bottom
:
1px
solid
rgba
(
0
,
0
,
0
,
0.06
);
font-size
:
14px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#333333
;
padding
:
0
20px
;
position
:
absolute
;
left
:
0
;
top
:
0
;
.clear
{
font-size
:
14px
;
font-family
:
PingFangSC-Medium
,
PingFang
SC
;
font-weight
:
500
;
color
:
#00bf8a
;
cursor
:
pointer
;
}
}
.checkBoxList
{
width
:
100%
;
height
:
calc
(
100%
);
padding
:
20px
;
overflow
:
auto
;
.boxItem
{
margin-bottom
:
20px
;
}
//
选择成员
.boxItemMember
{
width
:
100%
;
height
:
auto
;
.imageItem
{
width
:
100%
;
height
:
50px
;
.image
{
width
:
30px
;
height
:
30px
;
border-radius
:
15px
;
position
:
relative
;
top
:
10px
;
margin-right
:
5px
;
}
}
}
}
}
}
.dialog-footer
{
width
:
calc
(
100%
-
20px
);
position
:
absolute
;
right
:
20px
;
bottom
:
0
;
padding-top
:
20px
;
padding-bottom
:
20px
;
border-top
:
1px
solid
rgba
(
0
,
0
,
0
,
0.06
);
justify-content
:
flex-end
;
background
:
#fff
;
z-index
:
100
;
.btn
{
width
:
84px
;
height
:
32px
;
}
}
.radioGroup
{
margin-top
:
20px
;
margin-left
:
20px
;
}
</
style
>
\ No newline at end of file
src/views/components/bindGameAccount/bindUserList.vue
浏览文件 @
146bd230
...
...
@@ -66,9 +66,9 @@ export default {
}
},
async
mounted
()
{
console
.
log
(
this
.
external_userid
,
'external_userid'
)
this
.
bindUserList
()
this
.
requestDetails
()
this
.
gameMemberView
()
},
methods
:
{
...
mapMutations
(
'game'
,
[
...
...
@@ -148,7 +148,7 @@ export default {
console
.
log
(
res
.
data
,
'1231'
)
this
.
chatUserDetails
=
res
.
data
this
.
set_chatUserInfo
(
this
.
chatUserDetails
)
// 设置云端信息
console
.
log
(
this
.
chatUserDetails
,
'
1231
'
)
console
.
log
(
this
.
chatUserDetails
,
'
哈哈哈
'
)
if
(
this
.
chatUserDetails
.
self_defined_columns
&&
this
.
chatUserDetails
.
self_defined_columns
.
length
>
0
)
{
this
.
memberCheckList
=
this
.
chatUserDetails
.
self_defined_columns
.
map
(
...
...
src/views/components/giftRecord/applyGift.vue
浏览文件 @
146bd230
...
...
@@ -3,7 +3,7 @@
:lock-scroll=
"true"
:title=
"title"
:visible=
"show"
size=
"
45
0px"
size=
"
32
0px"
@
close=
"close"
>
<div>
...
...
src/views/components/giftRecord/emailGift.vue
浏览文件 @
146bd230
...
...
@@ -5,6 +5,7 @@
<span></span>
<el-button
type=
"primary"
size=
"small"
@
click=
"showApplyGift = true"
>
礼包申请
</el-button>
</div>
...
...
@@ -240,7 +241,6 @@
v
-
if
=
"showApplyGift"
:
show
.
sync
=
"showApplyGift"
title
=
"礼包申请"
width
=
"25%"
@
requestData
=
"requestData"
/>
<
/div
>
...
...
@@ -428,7 +428,7 @@
<
style
lang
=
"scss"
scoped
>
.
detailsGiftApply
{
width
:
100
%
;
height
:
calc
(
100
vh
-
60
px
);
height
:
calc
(
100
vh
-
1
60
px
);
background
:
#
fff
;
position
:
relative
;
overflow
-
y
:
hidden
;
...
...
src/views/components/giftRecord/giftDetails/oneDay.vue
浏览文件 @
146bd230
<
template
>
<!-- 单日累充 分 积分开和积分关两种情况 -->
<el-drawer
:lock-scroll=
"true"
:title=
"title"
:visible=
"show"
size=
"
54
0px"
:modal=
"false"
:modal-append-to-body=
"false"
class=
"giftDetails"
@
close=
"close"
>
<el-drawer
:lock-scroll=
"true"
:title=
"title"
:visible=
"show"
size=
"
32
0px"
:modal=
"false"
:modal-append-to-body=
"false"
class=
"giftDetails"
@
close=
"close"
>
<div
class=
"content"
>
<div
class=
"giftDetailsText"
>
<div
class=
"activeItem rowFlex"
>
...
...
@@ -121,8 +121,8 @@
</div>
<span
class=
"dialog-footer rowFlex"
>
<el-button
:disabled=
"requestLoading"
class=
"btn"
type=
"primary"
@
click=
"submit"
>
确 定
</el-button>
<el-button
class=
"btn"
@
click=
"close"
>
取 消
</el-button>
<el-button
:disabled=
"requestLoading"
size=
"small"
class=
"btn"
type=
"primary"
@
click=
"submit"
>
确 定
</el-button>
<el-button
class=
"btn"
size=
"small"
@
click=
"close"
>
取 消
</el-button>
</span>
<!-- 确认弹窗 -->
<confirmLayer
v-if=
"showConfirmLayer"
:remark=
"remark"
:active-info=
"[activeInfo]"
:show
.
sync=
"showConfirmLayer"
title=
"请核对申请奖品信息"
@
close=
"close"
/>
...
...
@@ -246,7 +246,7 @@ export default {
<
style
lang=
"scss"
scoped
>
.giftDetails
{
position
:
fixed
;
right
:
45
0px
;
right
:
0px
;
top
:
0
;
box-shadow
:
0px
9px
28px
0px
rgba
(
0
,
0
,
0
,
0.05
);
.icon{
...
...
src/views/components/giftRecord/giftDetails/roleRecharge.vue
浏览文件 @
146bd230
<
template
>
<!-- 角色累充 -->
<el-drawer
:lock-scroll=
"true"
:title=
"title"
:visible=
"show"
size=
"
54
0px"
:modal=
"false"
:modal-append-to-body=
"false"
class=
"giftDetails"
@
close=
"close"
>
<el-drawer
:lock-scroll=
"true"
:title=
"title"
:visible=
"show"
size=
"
32
0px"
:modal=
"false"
:modal-append-to-body=
"false"
class=
"giftDetails"
@
close=
"close"
>
<div
class=
"content"
>
<div
v-for=
"(item,index) in activeInfo"
:key=
"index"
class=
"list"
>
<div
class=
"giftDetailsText"
>
...
...
@@ -53,8 +53,8 @@
</div>
</div>
<span
class=
"dialog-footer rowFlex"
>
<el-button
class=
"btn"
:disabled=
"requestLoading"
type=
"primary"
:loading=
'btnLoading'
@
click=
"submit"
>
确 定
</el-button>
<el-button
class=
"btn"
@
click=
"close"
>
取 消
</el-button>
<el-button
class=
"btn"
:disabled=
"requestLoading"
type=
"primary"
size=
"small"
:loading=
'btnLoading'
@
click=
"submit"
>
确 定
</el-button>
<el-button
size=
"small"
class=
"btn"
@
click=
"close"
>
取 消
</el-button>
</span>
<!-- 确认弹窗 -->
<confirmLayer
:is-submit=
"isSubmit"
:remark=
"remark"
:active-info=
"activeInfo"
:show
.
sync=
"showConfirmLayer"
title=
"请核对申请奖品信息"
@
close=
"close"
/>
...
...
@@ -144,7 +144,7 @@ export default {
<
style
lang=
"scss"
scoped
>
.giftDetails
{
position
:
fixed
;
right
:
45
0px
;
right
:
0px
;
top
:
0
;
box-shadow
:
0px
9px
28px
0px
rgba
(
0
,
0
,
0
,
0.05
);
.icon{
...
...
src/views/components/giftRecord/giftDetails/roleTimeRecharge.vue
浏览文件 @
146bd230
...
...
@@ -3,7 +3,7 @@
<el-drawer
:lock-scroll=
"true"
:title=
"title"
:visible=
"show"
size=
"
54
0px"
size=
"
32
0px"
:modal=
"false"
:modal-append-to-body=
"false"
class=
"giftDetails"
...
...
@@ -232,12 +232,14 @@
<el-button
class=
"btn"
type=
"primary"
size=
"small"
:disabled=
"requestLoading"
@
click=
"submit"
:loading=
"btnLoading"
>
确 定
</el-button>
<el-button
class=
"btn"
size=
"small"
@
click=
"close"
>
取 消
</el-button>
</span>
...
...
@@ -426,7 +428,7 @@ export default {
<
style
lang=
"scss"
scoped
>
.giftDetails
{
position
:
fixed
;
right
:
45
0px
;
right
:
0px
;
top
:
0
;
box-shadow
:
0px
9px
28px
0px
rgba
(
0
,
0
,
0
,
0.05
);
.icon
{
...
...
src/views/components/giftRecord/wxGift.vue
浏览文件 @
146bd230
...
...
@@ -93,7 +93,7 @@ import Clipboard from 'clipboard'
<
style
lang=
"scss"
scoped
>
.wx-gift-container
{
height
:
calc
(
100vh
-
16
0px
);
height
:
calc
(
100vh
-
20
0px
);
width
:
100%
;
background-color
:
#fff
;
...
...
src/views/userInfo/components/Info.vue
浏览文件 @
146bd230
...
...
@@ -10,24 +10,16 @@
<p>
②不能以任何形式推送APP/网页链接,也不可承认有APP/网页端口!!
</p>
</div>
<div
v-if=
"change_appraisal && false"
style=
"
font-size: 12px;
color: red;
text-align: center;
"
v-if=
"change_appraisal"
class=
"warnText"
>
钓鱼号 禁止转端通知组长!
<p>
钓鱼号 禁止转端通知组长!
</p>
</div>
<div
v-else-if=
"gameUserInfo.exp_ip"
style=
"
font-size: 12px;
color: red;
text-align: center;
"
class=
"warnText"
>
高风险用户,禁止转端 !!!
<p>
高风险用户,禁止转端 !!!
</p>
</div>
<div
class=
"cser_name"
>
<span>
当前客服:
{{
cser_name
}}
</span>
...
...
@@ -133,8 +125,7 @@
/>
<!-- 游戏标签 -->
<!--
<div
v-else-if=
"messageSource === 'company_work' && workerRouter !== 'novel'"
<div
class=
"item rowFlex columnCenter spaceBetween tagsLost"
>
<div
class=
"rowFlex"
>
...
...
@@ -159,13 +150,9 @@
</div>
</div>
</div>
<svg-icon
icon-class=
"edit"
class=
"icon"
style=
"font-size: 14px"
@
click=
"editTags"
/>
</div>
-->
<i
class=
"el-icon-edit icon"
style=
"font-size: 14px;margin-right: 10px;"
@
click=
"editTags"
></i>
</div>
<!-- 共享信息 -->
<shareInfo
:chat-user-details=
"chatUserDetails"
/>
</div>
...
...
@@ -178,6 +165,14 @@
title=
"修改手机号"
width=
"350px"
/>
<!-- 修改标签 -->
<selectTag
v-if=
"showTag"
:show
.
sync=
"showTag"
:checkbox=
"true"
:check-list=
"chatUserDetails.tag_group || []"
@
submit=
"selectTags"
/>
</div>
</
template
>
<
script
>
...
...
@@ -188,12 +183,14 @@ import changePhone from './changePhone.vue'
import
watchMember
from
'@/mixins/watchMember'
import
{
autoResetPassword
,
bindUserSelfAdd
}
from
'@/api/game'
import
{
memberBindCser
,
editUser
,
zyouUnBind
}
from
'@/api/works'
import
selectTag
from
'@/components/selectTag.vue'
export
default
{
name
:
'UserDetailsPanel'
,
components
:
{
gameDetails
,
changePhone
,
shareInfo
shareInfo
,
selectTag
},
props
:
{
// 用户详情
...
...
@@ -212,7 +209,8 @@ import watchMember from '@/mixins/watchMember'
showInput
:
false
,
showInputValue
:
''
,
inputIndex
:
-
1
,
changePhone
:
false
changePhone
:
false
,
showTag
:
false
}
},
computed
:
{
...
...
@@ -376,12 +374,35 @@ import watchMember from '@/mixins/watchMember'
},
// 编辑标签
editTags
()
{
this
.
$emit
(
'edit-tags'
)
this
.
showTag
=
true
},
// 处理评估变更
changeAppraisal
(
val
)
{
this
.
change_appraisal
=
val
},
// 选择的标签
selectTags
(
data
,
is_tag_sync
)
{
this
.
chatUserDetails
.
tag_group
=
data
const
params
=
{
userid
:
this
.
chatUserDetails
.
userid
,
external_userid
:
this
.
chatUserDetails
.
external_userid
,
remark
:
this
.
chatUserDetails
.
remark
,
is_tag_sync
:
is_tag_sync
,
self_defined_columns
:
this
.
chatUserDetails
.
self_defined_columns
,
tag_group
:
this
.
chatUserDetails
.
tag_group
}
this
.
editUserInfo
(
params
)
},
editUserInfo
(
data
)
{
editUser
(
data
).
then
((
res
)
=>
{
if
(
res
.
status_code
==
1
)
{
this
.
$message
({
type
:
'success'
,
message
:
res
.
msg
})
}
})
},
}
}
</
script
>
...
...
src/views/userInfo/userInfo.vue
浏览文件 @
146bd230
...
...
@@ -18,13 +18,12 @@ export default {
}
},
computed
:{
...
mapState
(
'
user
'
,[
'chatUserInfo'
]),
...
mapState
(
'
game
'
,[
'chatUserInfo'
]),
},
created
(){
// 初始化 vuex 中的值
},
methods
:{
...
mapMutations
(
'game'
,[
'set_chatUserInfo'
]),
}
}
</
script
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论