Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
company_app
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
毛细亚
company_app
Commits
82a41625
提交
82a41625
authored
1月 28, 2026
作者:
施汉文
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
客户资料样式修改
上级
f8a92a1f
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
15 个修改的文件
包含
248 行增加
和
121 行删除
+248
-121
index.html
public/index.html
+1
-1
App.vue
src/App.vue
+13
-18
Drawer.vue
src/components/common/Drawer.vue
+3
-3
Empty.vue
src/components/common/Empty.vue
+2
-2
ModificationBox.vue
src/components/common/ModificationBox.vue
+76
-0
index.vue
src/views/agentStatusManagement/index.vue
+12
-12
addUser.vue
src/views/components/bindGameAccount/addUser.vue
+28
-12
login.vue
src/views/login.vue
+0
-0
TagsCheck.vue
src/views/popup/AddTagsDrawer/components/TagsCheck.vue
+6
-6
RecentActivities.vue
...opup/RecentActivitiesPopup/templates/RecentActivities.vue
+23
-17
Info.vue
src/views/userInfo/components/Info.vue
+0
-0
ZyouTag.vue
src/views/userInfo/components/gameInfo/ZyouTag.vue
+14
-14
gameUserInfo.vue
src/views/userInfo/components/gameInfo/gameUserInfo.vue
+54
-20
shareInfo.vue
src/views/userInfo/components/shareInfo.vue
+0
-0
userInfo.vue
src/views/userInfo/userInfo.vue
+16
-16
没有找到文件。
public/index.html
浏览文件 @
82a41625
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
<title>
企微侧边栏
</title>
<title>
企微侧边栏
</title>
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,shrink-to-fit=no,user-scalable=no"> -->
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,shrink-to-fit=no,user-scalable=no"> -->
<script
src=
"https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"
></script>
<script
src=
"https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"
></script>
<script
src=
"https://lf1-cdn-tos.bytegoofy.com/obj/iconpark/svg_27278_17
3.e64d61edfe0d4824e2eeb0b7f478e568
.js"
></script>
<script
src=
"https://lf1-cdn-tos.bytegoofy.com/obj/iconpark/svg_27278_17
4.7c507957486002617642b36b416498d5
.js"
></script>
</head>
</head>
<body>
<body>
<noscript>
<noscript>
...
...
src/App.vue
浏览文件 @
82a41625
...
@@ -69,10 +69,10 @@
...
@@ -69,10 +69,10 @@
>
>
<el-badge
is-dot
:type=
"csStatusInfo.type"
>
<el-badge
is-dot
:type=
"csStatusInfo.type"
>
<!-- <span>{{ item.label }}</span> -->
<!-- <span>{{ item.label }}</span> -->
<
iconpark
-icon
<
svg
-icon
class=
"
w-[14px] h
-[14px]"
class=
"
text
-[14px]"
:
n
ame=
"item.icon"
:
svgN
ame=
"item.icon"
></
iconpark
-icon>
></
svg
-icon>
</el-badge>
</el-badge>
</div>
</div>
</el-tooltip>
</el-tooltip>
...
@@ -86,23 +86,15 @@
...
@@ -86,23 +86,15 @@
:content=
"item.label"
:content=
"item.label"
placement=
"left"
placement=
"left"
>
>
<
iconpark
-icon
<
svg
-icon
class=
"w-[14px]
h
-[14px]"
class=
"w-[14px]
text-red h-[14px] text
-[14px]"
:
n
ame=
"item.icon"
:
svgN
ame=
"item.icon"
></
iconpark
-icon>
></
svg
-icon>
</el-tooltip>
</el-tooltip>
</div>
</div>
</el-menu-item>
</el-menu-item>
</el-menu>
</el-menu>
</div>
</div>
<
<<<<<<
HEAD =
======
<!
--
绑定的
w
账号
--
>
<bindUserList
/>
</div>
<div
class=
"mobile-content"
>
<router-view></router-view>
>>>>>>> release
</div>
</div>
</div>
</div>
</template>
</template>
...
@@ -185,7 +177,7 @@ export default {
...
@@ -185,7 +177,7 @@ export default {
{
{
label
:
"用户待办"
,
label
:
"用户待办"
,
path
:
"/userToDo"
,
path
:
"/userToDo"
,
hasRedDot
:
false
,
// 红点状态
icon
:
"yonghudaiban"
,
},
},
{
{
label
:
"微言助手"
,
label
:
"微言助手"
,
...
@@ -546,7 +538,7 @@ body {
...
@@ -546,7 +538,7 @@ body {
}
}
.agent-status-management
{
.agent-status-management
{
::v-deep
.el-badge__content.is-dot
{
::v-deep
.el-badge__content.is-dot
{
top
:
38px
!important
;
/* top: 38px !important; */
right
:
2px
!important
;
right
:
2px
!important
;
}
}
}
}
...
@@ -562,4 +554,7 @@ body {
...
@@ -562,4 +554,7 @@ body {
.p-common
{
.p-common
{
padding
:
0
10px
;
padding
:
0
10px
;
}
}
::v-deep
.el-badge__content.is-fixed
{
z-index
:
1
;
}
</
style
>
</
style
>
src/components/common/Drawer.vue
浏览文件 @
82a41625
...
@@ -9,11 +9,11 @@
...
@@ -9,11 +9,11 @@
>
>
<template
#
title
>
<template
#
title
>
<div
class=
"flex items-center"
>
<div
class=
"flex items-center"
>
<
iconpark
-icon
<
svg
-icon
@
click=
"$emit('close')"
@
click=
"$emit('close')"
n
ame=
"icon-fanhui"
svgN
ame=
"icon-fanhui"
class=
"mr-[8px] w-[20px] text-[20px] cursor-pointer"
class=
"mr-[8px] w-[20px] text-[20px] cursor-pointer"
></
iconpark
-icon>
></
svg
-icon>
<span
class=
"text-[13px] text-[#131920] leading-[13px]"
>
{{
<span
class=
"text-[13px] text-[#131920] leading-[13px]"
>
{{
title
title
}}
</span>
}}
</span>
...
...
src/components/common/Empty.vue
浏览文件 @
82a41625
<
template
>
<
template
>
<div
class=
"w-full h-full flex items-center justify-center"
>
<div
class=
"w-full h-full flex items-center justify-center"
>
<div
class=
"flex flex-col justify-center"
>
<div
class=
"flex flex-col
items-center
justify-center"
>
<
iconpark-icon
name=
"Empty-2"
class=
"text-[80px]"
></iconpark
-icon>
<
svg-icon
svgName=
"Empty-2"
class=
"text-[80px]"
></svg
-icon>
<slot></slot>
<slot></slot>
</div>
</div>
</div>
</div>
...
...
src/components/common/ModificationBox.vue
0 → 100644
浏览文件 @
82a41625
<
template
>
<div
class=
"relative w-full group flex items-center"
>
<template
v-if=
"show"
>
<el-input
v-model=
"value"
class=
"showInputRemarkInput"
:type=
"isInput ? 'text' : 'textarea'"
></el-input>
<div
class=
"absolute bottom-[6px] right-[10px] text-[16px] flex"
>
<svg-icon
svgName=
"icon-quxiao"
class=
"text-[#B0B2B5] cursor-pointer"
@
click=
"close"
></svg-icon>
<svg-icon
svgName=
"icon-queding"
class=
"text-[#267EF0] cursor-pointer ml-[6px]"
@
click=
"confirm"
></svg-icon>
</div>
</
template
>
<
template
v-else
>
<slot></slot>
<svg-icon
svgName=
"ziliao-bianji"
class=
"group-hover:visible ml-[6px] text-primary invisible cursor-pointer text-[16px]"
@
click=
"editRemark"
></svg-icon>
</
template
>
</div>
</template>
<
script
>
export
default
{
name
:
"CommonModificationBox"
,
props
:
{
text
:
{
type
:
String
,
default
:
""
,
},
isInput
:
{
type
:
Boolean
,
default
:
false
,
},
},
data
()
{
return
{
value
:
""
,
show
:
false
,
};
},
created
()
{
// 初始化value为text的初始值
this
.
value
=
this
.
text
;
},
watch
:
{
text
(
newVal
)
{
this
.
value
=
newVal
;
},
},
methods
:
{
editRemark
()
{
this
.
show
=
true
;
},
close
()
{
this
.
show
=
false
;
this
.
value
=
this
.
text
;
},
confirm
()
{
this
.
$emit
(
"confirm"
,
this
.
value
);
this
.
show
=
false
;
},
},
};
</
script
>
<
style
></
style
>
src/views/agentStatusManagement/index.vue
浏览文件 @
82a41625
...
@@ -31,10 +31,10 @@
...
@@ -31,10 +31,10 @@
:loading=
"logoutLoading"
:loading=
"logoutLoading"
>
>
<div
class=
"flex items-center justify-center"
>
<div
class=
"flex items-center justify-center"
>
<
iconpark
-icon
<
svg
-icon
n
ame=
"kefucaozuo-xiaxian"
svgN
ame=
"kefucaozuo-xiaxian"
class=
"mr-[8px] text-[14px]"
class=
"mr-[8px] text-[14px]"
></
iconpark
-icon>
></
svg
-icon>
下线
下线
</div>
</div>
</el-button>
</el-button>
...
@@ -51,10 +51,10 @@
...
@@ -51,10 +51,10 @@
:loading=
"startRestLoading"
:loading=
"startRestLoading"
>
>
<div
class=
"flex items-center justify-center"
>
<div
class=
"flex items-center justify-center"
>
<
iconpark
-icon
<
svg
-icon
n
ame=
"kefucaozuo-xiuxi"
svgN
ame=
"kefucaozuo-xiuxi"
class=
"mr-[8px] text-[14px]"
class=
"mr-[8px] text-[14px]"
></
iconpark
-icon>
></
svg
-icon>
开始休息
开始休息
</div>
</div>
</el-button>
</el-button>
...
@@ -67,10 +67,10 @@
...
@@ -67,10 +67,10 @@
:loading=
"finishRestLoading"
:loading=
"finishRestLoading"
>
>
<div
class=
"flex items-center justify-center"
>
<div
class=
"flex items-center justify-center"
>
<
iconpark
-icon
<
svg
-icon
n
ame=
"kefucaozuo-xiuxi"
svgN
ame=
"kefucaozuo-xiuxi"
class=
"mr-[8px] font-bold text-[14px]"
class=
"mr-[8px] font-bold text-[14px]"
></
iconpark
-icon>
></
svg
-icon>
结束休息
结束休息
</div>
</div>
</el-button>
</el-button>
...
@@ -81,10 +81,10 @@
...
@@ -81,10 +81,10 @@
:loading=
"sendCommentLoading"
:loading=
"sendCommentLoading"
>
>
<div
class=
"flex items-center justify-center"
>
<div
class=
"flex items-center justify-center"
>
<
iconpark
-icon
<
svg
-icon
n
ame=
"kefucaozuo-pingjia"
svgN
ame=
"kefucaozuo-pingjia"
class=
"mr-[8px] text-[14px]"
class=
"mr-[8px] text-[14px]"
></
iconpark
-icon>
></
svg
-icon>
发送评价
发送评价
</div>
</div>
</el-button>
</el-button>
...
...
src/views/components/bindGameAccount/addUser.vue
浏览文件 @
82a41625
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
:okDisabled=
"!checkoutUser.member_id"
:okDisabled=
"!checkoutUser.member_id"
@
ok=
"confirmSubmit"
@
ok=
"confirmSubmit"
>
>
<div
class=
"w-full h-full
py-[10px]
"
>
<div
class=
"w-full h-full
flex flex-col py-[10px]"
v-loading=
"loading
"
>
<div
class=
"flex items-center px-[12px]"
>
<div
class=
"flex items-center px-[12px]"
>
<el-input
<el-input
v-model
.
trim=
"inputValue"
v-model
.
trim=
"inputValue"
...
@@ -93,7 +93,7 @@
...
@@ -93,7 +93,7 @@
</el-button>
</el-button>
</el-popover>
</el-popover>
</div>
</div>
<div
class=
"mt-[12px] content"
>
<div
class=
"mt-[12px] content"
v-if=
"tableList.length !== 0"
>
<div
<div
class=
"cursor-pointer hover:bg-[#F5F6F7]"
class=
"cursor-pointer hover:bg-[#F5F6F7]"
v-for=
"item in tableList"
v-for=
"item in tableList"
...
@@ -217,6 +217,12 @@
...
@@ -217,6 +217,12 @@
</div>
</div>
</div>
</div>
</div>
</div>
<Empty
v-else
class=
"flex-1 pb-[30%]"
>
<div
class=
"text-[#6D7176] text-[12px]"
>
暂无数据
</div>
<div
class=
"text-[#B0B2B5] mt-[4px] text-[12px]"
>
请点击搜索框或筛选按钮查询
</div>
</Empty>
</div>
</div>
<!--
<div
class=
"content"
>
<!--
<div
class=
"content"
>
...
@@ -395,12 +401,14 @@ import { mapMutations, mapActions, mapState } from "vuex";
...
@@ -395,12 +401,14 @@ import { mapMutations, mapActions, mapState } from "vuex";
import
page
from
"@/components/page/pageNum.vue"
;
import
page
from
"@/components/page/pageNum.vue"
;
import
Drawer
from
"@/components/common/Drawer.vue"
;
import
Drawer
from
"@/components/common/Drawer.vue"
;
import
{
debounce
}
from
"@/utils/index"
;
import
{
debounce
}
from
"@/utils/index"
;
import
Empty
from
"@/components/common/Empty.vue"
;
export
default
{
export
default
{
name
:
"addUser"
,
name
:
"addUser"
,
components
:
{
components
:
{
userTable
,
userTable
,
page
,
page
,
Drawer
,
Drawer
,
Empty
,
},
},
props
:
[
"show"
],
props
:
[
"show"
],
data
()
{
data
()
{
...
@@ -446,6 +454,7 @@ export default {
...
@@ -446,6 +454,7 @@ export default {
...
mapActions
(
"game"
,
[
"gameBindUser"
]),
...
mapActions
(
"game"
,
[
"gameBindUser"
]),
...
mapMutations
(
"game"
,
[
"set_accountSelect"
]),
...
mapMutations
(
"game"
,
[
"set_accountSelect"
]),
requestRoleList
()
{
requestRoleList
()
{
this
.
loading
=
true
;
const
data
=
{
const
data
=
{
member_id
:
this
.
form
.
member_id
,
member_id
:
this
.
form
.
member_id
,
username
:
this
.
form
.
username
.
trim
(),
username
:
this
.
form
.
username
.
trim
(),
...
@@ -457,17 +466,21 @@ export default {
...
@@ -457,17 +466,21 @@ export default {
search_type
:
"bind"
,
search_type
:
"bind"
,
...
this
.
pageInfo
,
...
this
.
pageInfo
,
};
};
getRoleHoLo
(
data
).
then
((
res
)
=>
{
getRoleHoLo
(
data
)
if
(
res
.
status_code
==
1
)
{
.
then
((
res
)
=>
{
if
(
res
.
data
.
data
.
length
==
0
)
{
if
(
res
.
status_code
==
1
)
{
this
.
tableList
=
[];
if
(
res
.
data
.
data
.
length
==
0
)
{
this
.
$message
.
warning
(
"暂无数据"
);
this
.
tableList
=
[];
}
else
{
this
.
$message
.
warning
(
"暂无数据"
);
this
.
tableList
=
res
.
data
.
data
;
}
else
{
this
.
pageInfo
=
res
.
data
.
page_info
;
this
.
tableList
=
res
.
data
.
data
;
this
.
pageInfo
=
res
.
data
.
page_info
;
}
}
}
}
})
});
.
finally
(()
=>
{
this
.
loading
=
false
;
});
},
},
// S181.啊呸¤可瑞 八荒181服
// S181.啊呸¤可瑞 八荒181服
...
@@ -478,6 +491,8 @@ export default {
...
@@ -478,6 +491,8 @@ export default {
},
},
remoteMethodServer
(
query
)
{
remoteMethodServer
(
query
)
{
if
(
query
!==
""
)
{
if
(
query
!==
""
)
{
console
.
log
(
this
.
loading
);
this
.
loading
=
true
;
this
.
loading
=
true
;
const
data
=
{
const
data
=
{
type
:
"server_info"
,
type
:
"server_info"
,
...
@@ -485,6 +500,7 @@ export default {
...
@@ -485,6 +500,7 @@ export default {
main_game_ids
:
this
.
form
.
main_game_id
,
main_game_ids
:
this
.
form
.
main_game_id
,
};
};
selectSearch
(
data
).
then
((
res
)
=>
{
selectSearch
(
data
).
then
((
res
)
=>
{
console
.
log
(
this
.
loading
);
this
.
loading
=
false
;
this
.
loading
=
false
;
if
(
res
.
status_code
==
1
)
{
if
(
res
.
status_code
==
1
)
{
this
.
serverNameList
=
res
.
data
.
data
;
this
.
serverNameList
=
res
.
data
.
data
;
...
...
src/views/login.vue
浏览文件 @
82a41625
差异被折叠。
点击展开。
src/views/popup/AddTagsDrawer/components/TagsCheck.vue
浏览文件 @
82a41625
...
@@ -2,11 +2,11 @@
...
@@ -2,11 +2,11 @@
<div>
<div>
<div
class=
"flex justify-between leading-[22px] font-medium"
>
<div
class=
"flex justify-between leading-[22px] font-medium"
>
<div
class=
"text-[#363E49] text-[13px]"
>
已选择标签
</div>
<div
class=
"text-[#363E49] text-[13px]"
>
已选择标签
</div>
<
iconpark
-icon
<
svg
-icon
@
click=
"clear"
@
click=
"clear"
n
ame=
"icon-qingkong"
svgN
ame=
"icon-qingkong"
class=
"text-[16px] text-[#B0B2B5] hover:text-primary cursor-pointer"
class=
"text-[16px] text-[#B0B2B5] hover:text-primary cursor-pointer"
></
iconpark
-icon>
></
svg
-icon>
</div>
</div>
<div
<div
class=
"flex flex-wrap content-start gap-[8px] mt-[8px] pb-[12px] border-b-[1px] border-dashed border-b-[#E5E5E6] h-[112px] overflow-y-auto"
class=
"flex flex-wrap content-start gap-[8px] mt-[8px] pb-[12px] border-b-[1px] border-dashed border-b-[#E5E5E6] h-[112px] overflow-y-auto"
...
@@ -63,7 +63,7 @@ export default {
...
@@ -63,7 +63,7 @@ export default {
remove
(
item
)
{
remove
(
item
)
{
this
.
$emit
(
this
.
$emit
(
"input"
,
"input"
,
this
.
value
.
filter
((
i
)
=>
i
!==
item
)
this
.
value
.
filter
((
i
)
=>
i
!==
item
)
,
);
);
this
.
$emit
(
"change"
);
this
.
$emit
(
"change"
);
},
},
...
@@ -71,8 +71,8 @@ export default {
...
@@ -71,8 +71,8 @@ export default {
this
.
$emit
(
this
.
$emit
(
"input"
,
"input"
,
this
.
value
.
filter
((
i
)
=>
this
.
value
.
filter
((
i
)
=>
this
.
checkedIds
.
includes
(
i
[
this
.
options
.
value
])
this
.
checkedIds
.
includes
(
i
[
this
.
options
.
value
])
,
)
)
,
);
);
this
.
$emit
(
"change"
);
this
.
$emit
(
"change"
);
},
},
...
...
src/views/popup/RecentActivitiesPopup/templates/RecentActivities.vue
浏览文件 @
82a41625
...
@@ -78,6 +78,12 @@
...
@@ -78,6 +78,12 @@
@
click=
"refreshTag"
@
click=
"refreshTag"
></i>
></i>
<svg-icon
<svg-icon
svgName=
"icon-zhongxinshengcheng"
@
click=
"refreshTag"
:class=
"isRefresh ? 'refreshListActive' : ''"
class=
"mr-[8px] refreshList invisible group-hover:visible"
/>
<svg-icon
icon-class=
"fuzhi"
icon-class=
"fuzhi"
class=
"icon invisible group-hover:visible"
class=
"icon invisible group-hover:visible"
style=
"font-size: 14px"
style=
"font-size: 14px"
...
@@ -97,36 +103,36 @@
...
@@ -97,36 +103,36 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getRoleRecentActivityEditApi
}
from
'@/api/game.js'
;
import
{
getRoleRecentActivityEditApi
}
from
"@/api/game.js"
;
import
{
getGenerateProcedureApi
}
from
'@/api/skill'
;
import
{
getGenerateProcedureApi
}
from
"@/api/skill"
;
import
{
mapState
}
from
'vuex'
;
import
{
mapState
}
from
"vuex"
;
import
{
queryRoleRecentActivityNotPushNum
}
from
'@/views/hooks/useGetCount'
;
import
{
queryRoleRecentActivityNotPushNum
}
from
"@/views/hooks/useGetCount"
;
import
{
corp_activity_procedure_copyUsed
}
from
'@/api/works'
;
import
{
corp_activity_procedure_copyUsed
}
from
"@/api/works"
;
const
UpdateType
=
{
const
UpdateType
=
{
PUSH
:
1
,
//修改推送
PUSH
:
1
,
//修改推送
REMARK
:
2
,
//修改备注
REMARK
:
2
,
//修改备注
};
};
export
default
{
export
default
{
name
:
'RecentActivitiesTemplate'
,
name
:
"RecentActivitiesTemplate"
,
emits
:
[
'handleUpdate'
],
emits
:
[
"handleUpdate"
],
components
:
{},
components
:
{},
props
:
[
'item'
],
props
:
[
"item"
],
data
()
{
data
()
{
return
{
return
{
editShow
:
false
,
editShow
:
false
,
textarea
:
''
,
textarea
:
""
,
isRefresh
:
false
,
isRefresh
:
false
,
pushLanguageTechnique
:
''
,
//推送话术
pushLanguageTechnique
:
""
,
//推送话术
};
};
},
},
computed
:
{
computed
:
{
...
mapState
(
'user'
,
[
'cser_id'
,
'cser_name'
]),
...
mapState
(
"user"
,
[
"cser_id"
,
"cser_name"
]),
...
mapState
(
'game'
,
[
'accountSelect'
,
'bindGameUserList'
]),
...
mapState
(
"game"
,
[
"accountSelect"
,
"bindGameUserList"
]),
nowGameUserInfo
()
{
nowGameUserInfo
()
{
return
{
return
{
member_id
:
this
.
accountSelect
,
member_id
:
this
.
accountSelect
,
username
:
this
.
bindGameUserList
.
find
(
username
:
this
.
bindGameUserList
.
find
(
(
item
)
=>
item
.
member_id
==
this
.
accountSelect
(
item
)
=>
item
.
member_id
==
this
.
accountSelect
,
)?.
username
,
)?.
username
,
};
};
},
},
...
@@ -156,10 +162,10 @@ export default {
...
@@ -156,10 +162,10 @@ export default {
user_id
:
this
.
cser_id
,
user_id
:
this
.
cser_id
,
user_name
:
this
.
cser_name
,
user_name
:
this
.
cser_name
,
});
});
this
.
$message
.
success
(
'修改成功'
);
this
.
$message
.
success
(
"修改成功"
);
queryRoleRecentActivityNotPushNum
(
this
.
accountSelect
);
queryRoleRecentActivityNotPushNum
(
this
.
accountSelect
);
this
.
$emit
(
'handleUpdate'
);
this
.
$emit
(
"handleUpdate"
);
}
catch
(
error
)
{
}
catch
(
error
)
{
this
.
$message
.
error
(
error
);
this
.
$message
.
error
(
error
);
}
}
...
@@ -183,9 +189,9 @@ export default {
...
@@ -183,9 +189,9 @@ export default {
try
{
try
{
corp_activity_procedure_copyUsed
({
_id
:
this
.
_id
});
corp_activity_procedure_copyUsed
({
_id
:
this
.
_id
});
await
navigator
.
clipboard
.
writeText
(
this
.
pushLanguageTechnique
);
await
navigator
.
clipboard
.
writeText
(
this
.
pushLanguageTechnique
);
this
.
$message
.
success
(
'复制成功'
);
this
.
$message
.
success
(
"复制成功"
);
}
catch
(
err
)
{
}
catch
(
err
)
{
console
.
error
(
'复制失败:'
,
err
);
console
.
error
(
"复制失败:"
,
err
);
}
}
},
},
...
...
src/views/userInfo/components/Info.vue
浏览文件 @
82a41625
差异被折叠。
点击展开。
src/views/userInfo/components/gameInfo/ZyouTag.vue
浏览文件 @
82a41625
...
@@ -57,12 +57,12 @@
...
@@ -57,12 +57,12 @@
<
/el-button
>
<
/el-button
>
<
/el-tooltip
>
<
/el-tooltip
>
<
/div
>
<
/div
>
<
iconpark
-
icon
<
svg
-
icon
n
ame
=
"ziliao-tianjia-jb82dh2k"
svgN
ame
=
"ziliao-tianjia-jb82dh2k"
class
=
"invisible text-primary text-[14px] ml-[6px]"
class
=
"invisible text-primary text-[14px] ml-[6px]"
:
class
=
"{ 'group-hover:visible': item.label_type == 2
}
"
:
class
=
"{ 'group-hover:visible': item.label_type == 2
}
"
@
click
=
"addTag(item.label)"
@
click
=
"addTag(item.label)"
><
/
iconpark
-icon
>
><
/
svg
-icon
>
<
/div
>
<
/div
>
<
Empty
/>
<
Empty
/>
<
/div
>
<
/div
>
...
@@ -250,7 +250,7 @@ export default {
...
@@ -250,7 +250,7 @@ export default {
this
.
loading
=
true
;
this
.
loading
=
true
;
try
{
try
{
const
weixin_blongs_id
=
this
.
weixin_blongs_id_list
.
map
(
const
weixin_blongs_id
=
this
.
weixin_blongs_id_list
.
map
(
(
item
)
=>
item
.
value
(
item
)
=>
item
.
value
,
);
);
const
res
=
await
roleGetRoleLabel
({
const
res
=
await
roleGetRoleLabel
({
member_id
:
this
.
accountSelect
,
member_id
:
this
.
accountSelect
,
...
@@ -309,7 +309,7 @@ export default {
...
@@ -309,7 +309,7 @@ export default {
async
searchLabel
(
query
)
{
async
searchLabel
(
query
)
{
try
{
try
{
const
weixin_blongs_id
=
this
.
weixin_blongs_id_list
.
map
(
const
weixin_blongs_id
=
this
.
weixin_blongs_id_list
.
map
(
(
item
)
=>
item
.
value
(
item
)
=>
item
.
value
,
);
);
const
res
=
await
roleLabelSearch
({
const
res
=
await
roleLabelSearch
({
label_name
:
query
.
trim
()
||
""
,
label_name
:
query
.
trim
()
||
""
,
...
@@ -346,7 +346,7 @@ export default {
...
@@ -346,7 +346,7 @@ export default {
?
this
.
searchValue
?
this
.
searchValue
:
[];
:
[];
const
hasSelectedInThisGroup
=
group
.
children
.
some
((
child
)
=>
const
hasSelectedInThisGroup
=
group
.
children
.
some
((
child
)
=>
selectedIds
.
includes
(
child
.
label_id
)
selectedIds
.
includes
(
child
.
label_id
)
,
);
);
if
(
hasSelectedInThisGroup
)
{
if
(
hasSelectedInThisGroup
)
{
...
@@ -436,7 +436,7 @@ export default {
...
@@ -436,7 +436,7 @@ export default {
if
(
value
&&
Array
.
isArray
(
value
)
&&
value
.
length
>
0
)
{
if
(
value
&&
Array
.
isArray
(
value
)
&&
value
.
length
>
0
)
{
// 获取当前标签组的标签
// 获取当前标签组的标签
const
currentGroupLabels
=
this
.
roleLabelList
.
find
(
const
currentGroupLabels
=
this
.
roleLabelList
.
find
(
(
item
)
=>
Number
(
item
.
label_type
)
===
2
(
item
)
=>
Number
(
item
.
label_type
)
===
2
,
).
label
;
).
label
;
// 获取所有选中标签的信息
// 获取所有选中标签的信息
...
@@ -446,13 +446,13 @@ export default {
...
@@ -446,13 +446,13 @@ export default {
this
.
searchOptions
.
forEach
((
group
)
=>
{
this
.
searchOptions
.
forEach
((
group
)
=>
{
// 找出该组中被选中的标签
// 找出该组中被选中的标签
const
selectedInGroup
=
group
.
children
.
filter
((
child
)
=>
const
selectedInGroup
=
group
.
children
.
filter
((
child
)
=>
value
.
includes
(
child
.
label_id
)
value
.
includes
(
child
.
label_id
)
,
);
);
// 如果是单选标签组且选中了多个,只保留第一个
// 如果是单选标签组且选中了多个,只保留第一个
if
(
group
.
select_type
===
1
&&
selectedInGroup
.
length
>
1
)
{
if
(
group
.
select_type
===
1
&&
selectedInGroup
.
length
>
1
)
{
this
.
$message
.
warning
(
this
.
$message
.
warning
(
`标签组"${group.label_name
}
"为单选,只能选择一个标签`
`标签组"${group.label_name
}
"为单选,只能选择一个标签`
,
);
);
// 只添加第一个选中的标签
// 只添加第一个选中的标签
selectedLabels
.
push
(
selectedInGroup
[
0
]);
selectedLabels
.
push
(
selectedInGroup
[
0
]);
...
@@ -470,11 +470,11 @@ export default {
...
@@ -470,11 +470,11 @@ export default {
// 检查selectedLabels中的标签组是否与currentGroupLabels中的标签组重复
// 检查selectedLabels中的标签组是否与currentGroupLabels中的标签组重复
if
(
currentGroupLabels
&&
currentGroupLabels
.
length
>
0
)
{
if
(
currentGroupLabels
&&
currentGroupLabels
.
length
>
0
)
{
const
existingGroupIds
=
currentGroupLabels
.
map
(
const
existingGroupIds
=
currentGroupLabels
.
map
(
(
label
)
=>
label
.
label_group_id
(
label
)
=>
label
.
label_group_id
,
);
);
const
hasConflict
=
selectedLabels
.
some
((
label
)
=>
const
hasConflict
=
selectedLabels
.
some
((
label
)
=>
existingGroupIds
.
includes
(
label
.
label_group_id
)
existingGroupIds
.
includes
(
label
.
label_group_id
)
,
);
);
if
(
hasConflict
)
{
if
(
hasConflict
)
{
...
@@ -507,7 +507,7 @@ export default {
...
@@ -507,7 +507,7 @@ export default {
// 找出所有单选标签组
// 找出所有单选标签组
const
singleSelectGroups
=
this
.
searchOptions
.
filter
(
const
singleSelectGroups
=
this
.
searchOptions
.
filter
(
(
group
)
=>
group
.
select_type
===
1
(
group
)
=>
group
.
select_type
===
1
,
);
);
// 检查单选标签组是否有全选操作
// 检查单选标签组是否有全选操作
...
@@ -517,14 +517,14 @@ export default {
...
@@ -517,14 +517,14 @@ export default {
// 检查当前组中选中的标签数量
// 检查当前组中选中的标签数量
const
selectedInThisGroup
=
groupLabelIds
.
filter
((
id
)
=>
const
selectedInThisGroup
=
groupLabelIds
.
filter
((
id
)
=>
value
.
includes
(
id
)
value
.
includes
(
id
)
,
);
);
// 如果选中的标签数量大于1,说明可能是全选操作
// 如果选中的标签数量大于1,说明可能是全选操作
if
(
selectedInThisGroup
.
length
>
1
)
{
if
(
selectedInThisGroup
.
length
>
1
)
{
// 提示用户只能选择一个标签
// 提示用户只能选择一个标签
this
.
$message
.
warning
(
this
.
$message
.
warning
(
`标签组"${group.label_name
}
"为单选,只能选择一个标签`
`标签组"${group.label_name
}
"为单选,只能选择一个标签`
,
);
);
// 清空该组的选择
// 清空该组的选择
...
...
src/views/userInfo/components/gameInfo/gameUserInfo.vue
浏览文件 @
82a41625
...
@@ -18,12 +18,19 @@
...
@@ -18,12 +18,19 @@
trigger=
"hover"
trigger=
"hover"
content=
"手动更新当前用户的智能标签,每个用户半个小时仅能更新一次"
content=
"手动更新当前用户的智能标签,每个用户半个小时仅能更新一次"
>
>
<i
<
!--
<
i
slot=
"reference"
slot=
"reference"
class=
"el-icon-refresh refreshList"
class=
"el-icon-refresh refreshList"
:class=
"isRefresh ? 'refreshListActive' : ''"
@
click=
"refreshTag"
></i>
-->
<svg-icon
svgName=
"icon-zhongxinshengcheng"
slot=
"reference"
@
click=
"refreshTag"
@
click=
"refreshTag"
></i>
class=
"refreshList text-[16px]"
:class=
"isRefresh ? 'refreshListActive' : ''"
/>
</el-popover>
</el-popover>
</div>
</div>
<ZyouTag
:game-user-info=
"gameUserInfo"
:account-select=
"accountSelect"
/>
<ZyouTag
:game-user-info=
"gameUserInfo"
:account-select=
"accountSelect"
/>
...
@@ -62,12 +69,13 @@
...
@@ -62,12 +69,13 @@
>
>
<!-- changeUser -->
<!-- changeUser -->
<div
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
>
<div
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
>
<p>
<svg-icon
svgName=
"ziliao-qiehuan"
/>
<!--
<p>
<i
class=
"el-icon-sort-down"
></i>
<i
class=
"el-icon-sort-down"
></i>
</p>
</p>
<p>
<p>
<i
class=
"el-icon-sort-up"
></i>
<i
class=
"el-icon-sort-up"
></i>
</p>
</p>
-->
</div>
</div>
</el-popconfirm>
</el-popconfirm>
</div>
</div>
...
@@ -84,12 +92,13 @@
...
@@ -84,12 +92,13 @@
@
confirm=
"changeNameFn"
@
confirm=
"changeNameFn"
>
>
<div
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
>
<div
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
>
<p>
<svg-icon
svgName=
"ziliao-qiehuan"
/>
<!--
<p>
<i
class=
"el-icon-sort-down"
></i>
<i
class=
"el-icon-sort-down"
></i>
</p>
</p>
<p>
<p>
<i
class=
"el-icon-sort-up"
></i>
<i
class=
"el-icon-sort-up"
></i>
</p>
</p>
-->
</div>
</div>
</el-popconfirm>
</el-popconfirm>
</div>
</div>
...
@@ -110,12 +119,13 @@
...
@@ -110,12 +119,13 @@
slot=
"reference"
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
class=
"rowFlex columnCenter changeUser"
>
>
<p>
<svg-icon
svgName=
"ziliao-qiehuan"
/>
<!--
<p>
<i
class=
"el-icon-sort-down"
></i>
<i
class=
"el-icon-sort-down"
></i>
</p>
</p>
<p>
<p>
<i
class=
"el-icon-sort-up"
></i>
<i
class=
"el-icon-sort-up"
></i>
</p>
</p>
-->
</div>
</div>
</el-popconfirm>
</el-popconfirm>
</div>
</div>
...
@@ -169,35 +179,53 @@
...
@@ -169,35 +179,53 @@
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"rowFlex columnCenter"
>
<span
class=
"label"
>
是否愿意转端:
</span>
<span
class=
"label"
>
是否愿意转端:
</span>
<p
class=
"text"
>
<p
class=
"text flex items-center"
>
<el-radio-group
{{
chatUserDetails
.
transferred
==
0
?
"是"
:
"否"
}}
<svg-icon
svgName=
"ziliao-qiehuan"
class=
"text-primary text-[18px] ml-[6px]"
@
click=
"
toTransfer(
chatUserDetails.transferred == 0
? (chatUserDetails.transferred = 1)
: (chatUserDetails.transferred = 0),
)
"
/>
<!--
<el-radio-group
v-model=
"chatUserDetails.transferred"
v-model=
"chatUserDetails.transferred"
@
change=
"toTransfer"
@
change=
"toTransfer"
>
>
<el-radio
:label=
"0"
>
是
</el-radio>
<el-radio
:label=
"0"
>
是
</el-radio>
<el-radio
:label=
"1"
>
否
</el-radio>
<el-radio
:label=
"1"
>
否
</el-radio>
</el-radio-group>
</el-radio-group>
-->
</p>
</p>
</div>
</div>
</div>
</div>
<div
class=
"item rowFlex columnCenter"
>
<div
class=
"item rowFlex columnCenter"
>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"rowFlex columnCenter"
>
<span
class=
"label"
>
手机号:
</span>
<span
class=
"label flex-shrink-0"
>
手机号:
</span>
<p
v-if=
"!showUserMobile"
class=
"text"
>
{{
gameUserInfo
.
mobile
}}
</p>
<ModificationBox
:text=
"gameUserInfo.mobile"
:isInput=
"true"
@
confirm=
"changeUserMobile"
>
<p
v-if=
"!showUserMobile"
class=
"text"
>
{{
gameUserInfo
.
mobile
}}
</p>
</ModificationBox>
</div>
</div>
<el-input
<
!--
<
el-input
v-if=
"showUserMobile"
v-if=
"showUserMobile"
v-model=
"newMobileValue"
v-model=
"newMobileValue"
style=
"width: 120px; margin-left: 10px"
style=
"width: 120px; margin-left: 10px"
@
change=
"changeUserMobile"
@
change=
"changeUserMobile"
@
blur=
"showUserMobile = false"
@
blur=
"showUserMobile = false"
></el-input>
></el-input>
-->
<!-- 暂时禁止用户修改手机号 -->
<!-- 暂时禁止用户修改手机号 -->
<i
<
!--
<
i
class=
"el-icon-edit icon"
class=
"el-icon-edit icon"
style=
"font-size: 14px"
style=
"font-size: 14px"
@
click=
"editUserMobile"
@
click=
"editUserMobile"
></i>
></i>
-->
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"rowFlex columnCenter"
>
...
@@ -311,6 +339,7 @@ import moment from "moment";
...
@@ -311,6 +339,7 @@ import moment from "moment";
import
ZyouTag
from
"./ZyouTag.vue"
;
import
ZyouTag
from
"./ZyouTag.vue"
;
import
{
debounce
}
from
"@/utils"
;
import
{
debounce
}
from
"@/utils"
;
import
LastLogin
from
"@/views/components/quickSendGame/sendGame/lastLogin.vue"
;
import
LastLogin
from
"@/views/components/quickSendGame/sendGame/lastLogin.vue"
;
import
ModificationBox
from
"@/components/common/ModificationBox.vue"
;
export
default
{
export
default
{
name
:
"gameUserInfo"
,
name
:
"gameUserInfo"
,
...
@@ -318,6 +347,7 @@ export default {
...
@@ -318,6 +347,7 @@ export default {
ZyouTag
,
ZyouTag
,
MarketingPanel
,
MarketingPanel
,
LastLogin
,
LastLogin
,
ModificationBox
,
},
},
props
:
[
"gameUserInfo"
,
"chatUserDetails"
],
props
:
[
"gameUserInfo"
,
"chatUserDetails"
],
data
()
{
data
()
{
...
@@ -467,7 +497,7 @@ export default {
...
@@ -467,7 +497,7 @@ export default {
});
});
},
},
// 修改用户手机号
// 修改用户手机号
changeUserMobile
()
{
changeUserMobile
(
v
)
{
if
(
if
(
!
/^1
((
3
[
0-9
])
|
(
4
[
1579
])
|
(
5
[
0-9
])
|
(
6
[
6
])
|
(
7
[
0-9
])
|
(
8
[
0-9
])
|
(
9
[
0-9
]))\d{8}
$/
.
test
(
!
/^1
((
3
[
0-9
])
|
(
4
[
1579
])
|
(
5
[
0-9
])
|
(
6
[
6
])
|
(
7
[
0-9
])
|
(
8
[
0-9
])
|
(
9
[
0-9
]))\d{8}
$/
.
test
(
this
.
newMobileValue
,
this
.
newMobileValue
,
...
@@ -476,6 +506,7 @@ export default {
...
@@ -476,6 +506,7 @@ export default {
this
.
$message
.
warning
(
"请填写正确的手机号"
);
this
.
$message
.
warning
(
"请填写正确的手机号"
);
return
false
;
return
false
;
}
}
this
.
newMobileValue
=
v
;
this
.
gameUserInfo
.
mobile
=
this
.
gameUserInfo
.
mobile
=
this
.
newMobileValue
.
substr
(
0
,
3
)
+
this
.
newMobileValue
.
substr
(
0
,
3
)
+
"****"
+
"****"
+
...
@@ -533,7 +564,7 @@ export default {
...
@@ -533,7 +564,7 @@ export default {
}
}
.changeUser
{
.changeUser
{
font-size
:
18px
;
font-size
:
18px
;
transform
:
rotate
(
90deg
);
//
transform
:
rotate
(
90deg
);
color
:
#3491fa
;
color
:
#3491fa
;
margin-left
:
10px
;
margin-left
:
10px
;
margin-top
:
-5px
;
margin-top
:
-5px
;
...
@@ -633,6 +664,9 @@ export default {
...
@@ -633,6 +664,9 @@ export default {
cursor
:
pointer
;
cursor
:
pointer
;
font-size
:
18px
;
font-size
:
18px
;
margin-left
:
20px
;
margin-left
:
20px
;
&:focus
{
outline
:
none
;
}
}
}
.refreshListActive
{
.refreshListActive
{
animation
:
rotate
0.5s
linear
infinite
;
animation
:
rotate
0.5s
linear
infinite
;
...
...
src/views/userInfo/components/shareInfo.vue
浏览文件 @
82a41625
差异被折叠。
点击展开。
src/views/userInfo/userInfo.vue
浏览文件 @
82a41625
...
@@ -19,14 +19,14 @@
...
@@ -19,14 +19,14 @@
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
Info
from
'./components/Info.vue'
;
import
Info
from
"./components/Info.vue"
;
import
roleInfo
from
'@/views/roleInfo.vue'
;
import
roleInfo
from
"@/views/roleInfo.vue"
;
import
orderList
from
'@/views/orderList.vue'
;
import
orderList
from
"@/views/orderList.vue"
;
import
{
mapState
,
mapMutations
}
from
'vuex'
;
import
{
mapState
,
mapMutations
}
from
"vuex"
;
import
{
createRoleRecentActivityNotPushNum
}
from
'@/views/hooks/useGetCount'
;
import
{
createRoleRecentActivityNotPushNum
}
from
"@/views/hooks/useGetCount"
;
import
Cookies
from
'js-cookie'
;
import
Cookies
from
"js-cookie"
;
export
default
{
export
default
{
name
:
'userInfo'
,
name
:
"userInfo"
,
components
:
{
components
:
{
Info
,
Info
,
roleInfo
,
roleInfo
,
...
@@ -39,13 +39,13 @@ export default {
...
@@ -39,13 +39,13 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
activeTab
:
'info'
,
activeTab
:
"info"
,
instance
:
null
,
instance
:
null
,
totalNum
:
0
,
totalNum
:
0
,
};
};
},
},
computed
:
{
computed
:
{
...
mapState
(
'game'
,
[
'chatUserInfo'
,
'accountSelect'
]),
...
mapState
(
"game"
,
[
"chatUserInfo"
,
"accountSelect"
]),
},
},
created
()
{
created
()
{
// 初始化 vuex 中的值
// 初始化 vuex 中的值
...
@@ -57,10 +57,10 @@ export default {
...
@@ -57,10 +57,10 @@ export default {
});
});
},
},
methods
:
{
methods
:
{
...
mapMutations
(
'user'
,
[
'set_userInfo'
]),
...
mapMutations
(
"user"
,
[
"set_userInfo"
]),
async
initInstance
()
{
async
initInstance
()
{
this
.
instance
=
await
createRoleRecentActivityNotPushNum
(
this
.
instance
=
await
createRoleRecentActivityNotPushNum
(
this
.
accountSelect
this
.
accountSelect
,
);
);
this
.
totalNum
=
this
.
instance
.
getTotalNum
();
this
.
totalNum
=
this
.
instance
.
getTotalNum
();
...
@@ -70,10 +70,10 @@ export default {
...
@@ -70,10 +70,10 @@ export default {
},
},
initVuexValue
()
{
initVuexValue
()
{
const
userinfo
=
{
const
userinfo
=
{
cser_id
:
Cookies
.
get
(
'cser_id'
),
cser_id
:
Cookies
.
get
(
"cser_id"
),
cser_name
:
Cookies
.
get
(
'cser_name'
),
cser_name
:
Cookies
.
get
(
"cser_name"
),
username
:
Cookies
.
get
(
'cser_name'
),
username
:
Cookies
.
get
(
"cser_name"
),
id
:
Cookies
.
get
(
'cser_id'
),
id
:
Cookies
.
get
(
"cser_id"
),
};
};
this
.
set_userInfo
(
userinfo
);
this
.
set_userInfo
(
userinfo
);
},
},
...
@@ -95,7 +95,7 @@ export default {
...
@@ -95,7 +95,7 @@ export default {
width
:
100%
;
width
:
100%
;
::v-deep
.el-tabs__header
{
::v-deep
.el-tabs__header
{
margin-bottom
:
15px
;
margin-bottom
:
0
;
padding
:
0
10px
;
padding
:
0
10px
;
}
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论