Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
company_app
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
毛细亚
company_app
Commits
adecf774
提交
adecf774
authored
8月 30, 2025
作者:
施汉文
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
feat: 新增营销模块
上级
ded7e8cc
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
2045 行增加
和
1065 行删除
+2045
-1065
game.js
src/api/game.js
+550
-439
skill.js
src/api/skill.js
+99
-93
roleInfoPanel.vue
src/views/components/roleInfo/roleInfoPanel.vue
+161
-45
useGetCount.js
src/views/hooks/useGetCount.js
+47
-0
ActivityConfigurationList.vue
...tActivitiesPopup/components/ActivityConfigurationList.vue
+64
-0
RecentActivitiesList.vue
...RecentActivitiesPopup/components/RecentActivitiesList.vue
+50
-0
index.js
src/views/popup/RecentActivitiesPopup/index.js
+30
-0
index.vue
src/views/popup/RecentActivitiesPopup/index.vue
+58
-0
RecentActivities.vue
...opup/RecentActivitiesPopup/templates/RecentActivities.vue
+225
-0
MarketingPanel.vue
src/views/userInfo/components/gameInfo/MarketingPanel.vue
+136
-0
gameUserInfo.vue
src/views/userInfo/components/gameInfo/gameUserInfo.vue
+573
-461
userInfo.vue
src/views/userInfo/userInfo.vue
+52
-27
没有找到文件。
src/api/game.js
浏览文件 @
adecf774
import
request
from
'@/utils/request'
import
request
from
'@/utils/request'
;
import
store
from
'@/store/index'
import
store
from
'@/store/index'
;
import
Cookies
from
'js-cookie'
import
Cookies
from
'js-cookie'
;
// 获取用户ID的函数,避免在模块加载时访问可能未初始化的 store
// 获取用户ID的函数,避免在模块加载时访问可能未初始化的 store
function
getZwUserId
()
{
function
getZwUserId
()
{
return
Cookies
.
get
(
'cser_id'
)
||
return
(
(
store
.
state
?.
user
?.
userInfo
?.
id
)
||
Cookies
.
get
(
'cser_id'
)
||
(
store
.
state
?.
user
?.
cser_id
)
store
.
state
?.
user
?.
userInfo
?.
id
||
store
.
state
?.
user
?.
cser_id
);
}
}
// 游戏业务所属的接口信息
// 游戏业务所属的接口信息
// 所属分组下拉
// 所属分组下拉
function
returnApi
(
api
){
function
returnApi
(
api
)
{
return
'/sidebar'
+
api
return
'/sidebar'
+
api
;
}
}
export
function
cross_systemRequest
(
data
)
{
export
function
cross_systemRequest
(
data
)
{
!
data
.
noApi
?
data
.
api
=
'/api'
+
data
.
api
:
''
!
data
.
noApi
?
(
data
.
api
=
'/api'
+
data
.
api
)
:
''
;
return
request
({
return
request
({
url
:
'/sidebar/cross_system/request'
,
url
:
'/sidebar/cross_system/request'
,
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 请求角色详情
// 请求角色详情
export
function
memberView
(
data
)
{
export
function
memberView
(
data
)
{
...
@@ -27,11 +29,11 @@ export function memberView(data) {
...
@@ -27,11 +29,11 @@ export function memberView(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/view'
,
api
:
'/member/view'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 修改手机号
// 修改手机号
...
@@ -40,11 +42,11 @@ export function bindMobile(data) {
...
@@ -40,11 +42,11 @@ export function bindMobile(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/bindMobile'
,
api
:
'/member/bindMobile'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 角色列表
// 角色列表
...
@@ -53,11 +55,11 @@ export function roleList(data) {
...
@@ -53,11 +55,11 @@ export function roleList(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/role/getList'
,
api
:
'/role/getList'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 绑定掌游账号
// 绑定掌游账号
...
@@ -65,8 +67,8 @@ export function zyouBind(data) {
...
@@ -65,8 +67,8 @@ export function zyouBind(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/external_user/zyouBind'
),
url
:
returnApi
(
'/external_user/zyouBind'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 订单列表
// 订单列表
...
@@ -75,11 +77,11 @@ export function orderList(data) {
...
@@ -75,11 +77,11 @@ export function orderList(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/order/list'
,
api
:
'/order/list'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 订单金额
// 订单金额
export
function
todayOrder
(
data
)
{
export
function
todayOrder
(
data
)
{
...
@@ -87,11 +89,11 @@ export function todayOrder(data) {
...
@@ -87,11 +89,11 @@ export function todayOrder(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/todayOrder'
,
api
:
'/member/todayOrder'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 补单和补回调
// 补单和补回调
export
function
completionOrder
(
data
)
{
export
function
completionOrder
(
data
)
{
...
@@ -99,11 +101,11 @@ export function completionOrder(data) {
...
@@ -99,11 +101,11 @@ export function completionOrder(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/order/completionOrder'
,
api
:
'/order/completionOrder'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 退款提交申请
// 退款提交申请
export
function
refundRequest
(
data
)
{
export
function
refundRequest
(
data
)
{
...
@@ -111,11 +113,11 @@ export function refundRequest(data) {
...
@@ -111,11 +113,11 @@ export function refundRequest(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/order/addRefundRequest'
,
api
:
'/order/addRefundRequest'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 退款申请记录
// 退款申请记录
export
function
refundRecord
(
data
)
{
export
function
refundRecord
(
data
)
{
...
@@ -123,11 +125,11 @@ export function refundRecord(data) {
...
@@ -123,11 +125,11 @@ export function refundRecord(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/order/getRefundRequestList'
,
api
:
'/order/getRefundRequestList'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 退款详情
// 退款详情
export
function
refundRequestLog
(
data
)
{
export
function
refundRequestLog
(
data
)
{
...
@@ -135,11 +137,11 @@ export function refundRequestLog(data) {
...
@@ -135,11 +137,11 @@ export function refundRequestLog(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/order/refundRequestProcess'
,
api
:
'/order/refundRequestProcess'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 下拉请求
// 下拉请求
export
function
selectSearch
(
data
)
{
export
function
selectSearch
(
data
)
{
...
@@ -147,11 +149,11 @@ export function selectSearch(data) {
...
@@ -147,11 +149,11 @@ export function selectSearch(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/searchcondition/search'
,
api
:
'/searchcondition/search'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 账号维度推广游戏列表
// 账号维度推广游戏列表
...
@@ -160,11 +162,11 @@ export function memberExtensionGameList(data) {
...
@@ -160,11 +162,11 @@ export function memberExtensionGameList(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/memberExtensionGameList'
,
api
:
'/member/memberExtensionGameList'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 充值
// 充值
// 账号维度推广游戏列表
// 账号维度推广游戏列表
...
@@ -173,11 +175,11 @@ export function getAmountByTime(data) {
...
@@ -173,11 +175,11 @@ export function getAmountByTime(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/getAmountByTime'
,
api
:
'/member/getAmountByTime'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 违规记录
// 违规记录
...
@@ -186,11 +188,11 @@ export function violationList(data) {
...
@@ -186,11 +188,11 @@ export function violationList(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/violationList'
,
api
:
'/member/violationList'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 重置密码
// 重置密码
export
function
autoResetPassword
(
data
)
{
export
function
autoResetPassword
(
data
)
{
...
@@ -198,19 +200,19 @@ export function autoResetPassword(data) {
...
@@ -198,19 +200,19 @@ export function autoResetPassword(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/autoResetPassword'
,
api
:
'/member/autoResetPassword'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 重置密码加密
// 重置密码加密
export
function
passwardEncryption
(
data
)
{
export
function
passwardEncryption
(
data
)
{
return
request
({
return
request
({
url
:
'/sidebar/session/zyouAutoResetPassword'
,
url
:
'/sidebar/session/zyouAutoResetPassword'
,
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// VIP自助工具
// VIP自助工具
...
@@ -219,11 +221,11 @@ export function createVipUrl(data) {
...
@@ -219,11 +221,11 @@ export function createVipUrl(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/createVipUrl'
,
api
:
'/member/createVipUrl'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 活动类型
// 活动类型
...
@@ -232,11 +234,11 @@ export function giftTypeList(data) {
...
@@ -232,11 +234,11 @@ export function giftTypeList(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/searchcondition/search'
,
api
:
'/searchcondition/search'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 充值活动列表
// 充值活动列表
export
function
activeList
(
data
)
{
export
function
activeList
(
data
)
{
...
@@ -244,11 +246,11 @@ export function activeList(data) {
...
@@ -244,11 +246,11 @@ export function activeList(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/getVipBagCodeRuleListByRole'
,
api
:
'/member/getVipBagCodeRuleListByRole'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 活动详情
// 活动详情
export
function
giftDetailsData
(
data
)
{
export
function
giftDetailsData
(
data
)
{
...
@@ -256,11 +258,11 @@ export function giftDetailsData(data) {
...
@@ -256,11 +258,11 @@ export function giftDetailsData(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/getRoleConditionByRuleAndRole'
,
api
:
'/member/getRoleConditionByRuleAndRole'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 申请礼包
// 申请礼包
...
@@ -269,11 +271,11 @@ export function giftBagApply(data) {
...
@@ -269,11 +271,11 @@ export function giftBagApply(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/giftBagApply'
,
api
:
'/member/giftBagApply'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 礼包检测
// 礼包检测
export
function
checkRoleReceivedBag
(
data
)
{
export
function
checkRoleReceivedBag
(
data
)
{
...
@@ -281,11 +283,11 @@ export function checkRoleReceivedBag(data) {
...
@@ -281,11 +283,11 @@ export function checkRoleReceivedBag(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/role_gift_bag/checkRoleReceivedBag'
,
api
:
'/role_gift_bag/checkRoleReceivedBag'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 礼包列表
// 礼包列表
export
function
emailGiftList
(
data
)
{
export
function
emailGiftList
(
data
)
{
...
@@ -293,11 +295,11 @@ export function emailGiftList(data) {
...
@@ -293,11 +295,11 @@ export function emailGiftList(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/giftBagApplyIndex'
,
api
:
'/member/giftBagApplyIndex'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 易主标签查询
// 易主标签查询
...
@@ -306,11 +308,11 @@ export function getMemberLabel(data) {
...
@@ -306,11 +308,11 @@ export function getMemberLabel(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/getMemberLabel'
,
api
:
'/member/getMemberLabel'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 修改易主标签
// 修改易主标签
export
function
editMemberLabel
(
data
)
{
export
function
editMemberLabel
(
data
)
{
...
@@ -318,11 +320,11 @@ export function editMemberLabel(data) {
...
@@ -318,11 +320,11 @@ export function editMemberLabel(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/editMemberLabel'
,
api
:
'/member/editMemberLabel'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// // 转端接口
// // 转端接口
// export function getMemberLink(data) {
// export function getMemberLink(data) {
...
@@ -343,11 +345,11 @@ export function getMemberLink(data) {
...
@@ -343,11 +345,11 @@ export function getMemberLink(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/getMemberLink'
,
api
:
'/member/getMemberLink'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 转游接口
// 转游接口
export
function
getLandingPageMemberLink
(
data
)
{
export
function
getLandingPageMemberLink
(
data
)
{
...
@@ -355,11 +357,11 @@ export function getLandingPageMemberLink(data) {
...
@@ -355,11 +357,11 @@ export function getLandingPageMemberLink(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/getLandingPageMemberLink'
,
api
:
'/member/getLandingPageMemberLink'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 转游接口
// 转游接口
export
function
getLandingPageConfig
(
data
)
{
export
function
getLandingPageConfig
(
data
)
{
...
@@ -367,11 +369,11 @@ export function getLandingPageConfig(data) {
...
@@ -367,11 +369,11 @@ export function getLandingPageConfig(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/getLandingPageConfig'
,
api
:
'/member/getLandingPageConfig'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 渠道列表单独渠道KEY
// 渠道列表单独渠道KEY
...
@@ -380,850 +382,959 @@ export function channelList(data) {
...
@@ -380,850 +382,959 @@ export function channelList(data) {
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/channel/channelList'
,
api
:
'/channel/channelList'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 工单
// 工单
// 任务列表
// 任务列表
export
function
taskIndex
(
data
)
{
export
function
taskIndex
(
data
)
{
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/operator_task/index'
,
api
:
'/operator_task/index'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 任务详情
// 任务详情
export
function
taskDetails
(
data
)
{
export
function
taskDetails
(
data
)
{
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/operator_task/info'
,
api
:
'/operator_task/info'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 分配
// 分配
export
function
taskAssign
(
data
)
{
export
function
taskAssign
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
()
;
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/operator_task/assign'
,
api
:
'/operator_task/assign'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 完成任务
// 完成任务
export
function
taskTrack
(
data
)
{
export
function
taskTrack
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/operator_task/track'
,
api
:
'/operator_task/track'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 结果列表
// 结果列表
export
function
taskRecord
(
data
)
{
export
function
taskRecord
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/operator_task/logs'
,
api
:
'/operator_task/logs'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 备注
// 备注
export
function
logsSave
(
data
)
{
export
function
logsSave
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/operator_task_log/save'
,
api
:
'/operator_task_log/save'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 角色累充
// 角色累充
export
function
RoleTodayOrder
(
data
)
{
export
function
RoleTodayOrder
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/role/todayOrder'
,
api
:
'/role/todayOrder'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 用户充值
// 用户充值
export
function
memberOrder
(
data
)
{
export
function
memberOrder
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member/memberOrder'
,
api
:
'/member/memberOrder'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 下拉加载
// 下拉加载
export
function
searchcondition
(
data
)
{
export
function
searchcondition
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/searchcondition/search'
,
api
:
'/searchcondition/search'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 误操作列表
// 误操作列表
export
function
misoperationIndex
(
data
)
{
export
function
misoperationIndex
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/mistake_operation_request/list'
,
api
:
'/mistake_operation_request/list'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 添加误操作
// 添加误操作
export
function
addErrorHandle
(
data
)
{
export
function
addErrorHandle
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/mistake_operation_request/add'
,
api
:
'/mistake_operation_request/add'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
export
function
updateErrorHandle
(
data
)
{
export
function
updateErrorHandle
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/misoperation/update'
,
api
:
'/misoperation/update'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 操作数量
// 操作数量
export
function
numErrorHandle
(
data
)
{
export
function
numErrorHandle
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/misoperation/num'
,
api
:
'/misoperation/num'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 操作数量新
// 操作数量新
export
function
operationCount
(
data
)
{
export
function
operationCount
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/mistake_operation_request/operationCount'
,
api
:
'/mistake_operation_request/operationCount'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 任务消息读取
// 任务消息读取
export
function
taskRead
(
data
)
{
export
function
taskRead
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/operator_task/read'
,
api
:
'/operator_task/read'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 任务消息状态
// 任务消息状态
export
function
taskReadStatus
(
data
)
{
export
function
taskReadStatus
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/operator_task/readStatus'
,
api
:
'/operator_task/readStatus'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 撤回消息
// 撤回消息
export
function
cancelRefundRequest
(
data
)
{
export
function
cancelRefundRequest
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/order/cancelRefundRequest'
,
api
:
'/order/cancelRefundRequest'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 举报列表
// 举报列表
export
function
reportIndex
(
data
)
{
export
function
reportIndex
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/admin/report_request/list'
,
api
:
'/admin/report_request/list'
,
params
:
data
,
params
:
data
,
noApi
:
true
noApi
:
true
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 玩家举报
// 玩家举报
export
function
playerReport
(
data
)
{
export
function
playerReport
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/report_request/waitList'
,
api
:
'/api/report_request/waitList'
,
params
:
data
,
params
:
data
,
noApi
:
true
noApi
:
true
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 审批记录
// 审批记录
export
function
reportProcess
(
data
)
{
export
function
reportProcess
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/report_request/process'
,
api
:
'/report_request/process'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 撤销举报
// 撤销举报
export
function
reportCancel
(
data
)
{
export
function
reportCancel
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
()
;
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/report_request/cancel'
,
api
:
'/report_request/cancel'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 新增举报
// 新增举报
export
function
reportAdd
(
data
)
{
export
function
reportAdd
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/report_request/add'
,
api
:
'/report_request/add'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 申诉列表
// 申诉列表
export
function
appealList
(
data
)
{
export
function
appealList
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/appeal_request/list'
,
api
:
'/appeal_request/list'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 新增申诉
// 新增申诉
export
function
appealAdd
(
data
)
{
export
function
appealAdd
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/appeal_request/add'
,
api
:
'/appeal_request/add'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 撤销申诉
// 撤销申诉
export
function
appealCancel
(
data
)
{
export
function
appealCancel
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/appeal_request/cancel'
,
api
:
'/appeal_request/cancel'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 申诉记录
// 申诉记录
export
function
appealProcess
(
data
)
{
export
function
appealProcess
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/appeal_request/process'
,
api
:
'/appeal_request/process'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 玩家举报审批记录
// 玩家举报审批记录
export
function
gamerReportProcess
(
data
)
{
export
function
gamerReportProcess
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/report_request/process'
,
api
:
'/api/report_request/process'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 角色列表Holo 实时性较高
// 角色列表Holo 实时性较高
export
function
getRoleHoLo
(
data
)
{
export
function
getRoleHoLo
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/role/getListHoLo'
,
api
:
'/role/getListHoLo'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 角色列表 待请求
// 角色列表 待请求
export
function
memberTaskStatus
(
data
)
{
export
function
memberTaskStatus
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/operator_task/memberTaskStatus'
,
api
:
'/operator_task/memberTaskStatus'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 举报申请列表
// 举报申请列表
export
function
report_request_list
(
data
)
{
export
function
report_request_list
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/report_request/list'
,
api
:
'/api/report_request/list'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 举报申请驳回或者通过
// 举报申请驳回或者通过
export
function
report_request_approval
(
data
)
{
export
function
report_request_approval
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/report_request/approval'
,
api
:
'/api/report_request/approval'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 游戏类型下的游戏列表 游戏类型:安卓 h5 ios
// 游戏类型下的游戏列表 游戏类型:安卓 h5 ios
export
function
getTransferRecallGameList
(
data
)
{
export
function
getTransferRecallGameList
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member/getTransferRecallGameList'
,
api
:
'/api/member/getTransferRecallGameList'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 转端和召回 游戏类型列表
// 转端和召回 游戏类型列表
export
function
getGameConfig
(
data
)
{
export
function
getGameConfig
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/game/getGameConfig'
,
api
:
'/api/game/getGameConfig'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 召回的时候染色
// 召回的时候染色
export
function
recallChannelSeq
(
data
)
{
export
function
recallChannelSeq
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/channel/recallChannelSeq'
,
api
:
'/api/channel/recallChannelSeq'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 获取游戏信息
// 获取游戏信息
export
function
getGameInfo
(
data
)
{
export
function
getGameInfo
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/game/info'
,
api
:
'/api/game/info'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 新增渠道
// 新增渠道
export
function
addChannel
(
data
)
{
export
function
addChannel
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/channel/addDistributorChannelByZm'
,
api
:
'/api/channel/addDistributorChannelByZm'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 一键发送召回渠道链接
// 一键发送召回渠道链接
export
function
quickRecallChannelLink
(
data
)
{
export
function
quickRecallChannelLink
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/channel/quickRecallChannelLink'
,
api
:
'/api/channel/quickRecallChannelLink'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 转端发送落地页
// 转端发送落地页
export
function
getLandingPageTransfer
(
data
)
{
export
function
getLandingPageTransfer
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member/getLandingPageTransfer'
,
api
:
'/api/member/getLandingPageTransfer'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 工作台关联客服
// 工作台关联客服
export
function
bindUserSelfAdd
(
data
)
{
export
function
bindUserSelfAdd
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member_bind_cser/selfAdd'
,
api
:
'/api/member_bind_cser/selfAdd'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 关联客服列表
// 关联客服列表
export
function
bindUserList
(
data
)
{
export
function
bindUserList
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member_bind_cser/list'
,
api
:
'/api/member_bind_cser/list'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 新增关联客服
// 新增关联客服
export
function
bindUserAdd
(
data
)
{
export
function
bindUserAdd
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member_bind_cser/add'
,
api
:
'/api/member_bind_cser/add'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 删除关联客服
// 删除关联客服
export
function
bindUserDelete
(
data
)
{
export
function
bindUserDelete
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member_bind_cser/delete'
,
api
:
'/api/member_bind_cser/delete'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 调用掌游的日志中心
// 调用掌游的日志中心
export
function
getSystemModelLog
(
data
)
{
export
function
getSystemModelLog
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member_bind_cser/getSystemModelLog'
,
api
:
'/api/member_bind_cser/getSystemModelLog'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
export
function
getMemberTransStatus
(
data
)
{
export
function
getMemberTransStatus
(
data
)
{
// 转端文档 获取W账号的转端状态 如果状态是 false 表示不允许转端 在工作台 发送游戏 里面转端里 点开发送的时候 提示 当前w账号不满足转端要求,请联系组长处理
// 转端文档 获取W账号的转端状态 如果状态是 false 表示不允许转端 在工作台 发送游戏 里面转端里 点开发送的时候 提示 当前w账号不满足转端要求,请联系组长处理
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member/getMemberTransStatus'
,
api
:
'/api/member/getMemberTransStatus'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
export
function
getTaskTracer
(
data
)
{
export
function
getTaskTracer
(
data
)
{
// 获取运营任务的跟进人 参数 member_id
// 获取运营任务的跟进人 参数 member_id
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/operator_task/getTaskTracer'
,
api
:
'/api/operator_task/getTaskTracer'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 用户触达 发送客服号添加消息的日志
// 用户触达 发送客服号添加消息的日志
export
function
getTaskTracerTouch
(
data
)
{
export
function
getTaskTracerTouch
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/operator_task_log/touch'
,
api
:
'/api/operator_task_log/touch'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 添加一条任务跟进记录
// 添加一条任务跟进记录
export
function
getTaskTracerTouchAdd
(
data
)
{
export
function
getTaskTracerTouchAdd
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/operator_task_log/add'
,
api
:
'/api/operator_task_log/add'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 审批组流程下拉
// 审批组流程下拉
export
function
approval_group_flow_list
(
data
)
{
export
function
approval_group_flow_list
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/approval_group_flow/options'
,
api
:
'/api/approval_group_flow/options'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 审批人员表格
// 审批人员表格
export
function
approval_group_flow_user
(
data
)
{
export
function
approval_group_flow_user
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/approval_group_flow/users'
,
api
:
'/api/approval_group_flow/users'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 保存转端提交
// 保存转端提交
export
function
approval_group_flow_add
(
data
)
{
export
function
approval_group_flow_add
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member_trans_request/add'
,
api
:
'/api/member_trans_request/add'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 转端申请列表
// 转端申请列表
export
function
member_trans_request_list
(
data
)
{
export
function
member_trans_request_list
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member_trans_request/list'
,
api
:
'/api/member_trans_request/list'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 转端申请审批记录
// 转端申请审批记录
export
function
member_trans_request_process
(
data
)
{
export
function
member_trans_request_process
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/member_trans_request/process'
,
api
:
'/api/member_trans_request/process'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 转区列表
// 转区列表
export
function
transfer_server_request_list
(
data
)
{
export
function
transfer_server_request_list
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/transfer_server_request/list'
,
api
:
'/api/transfer_server_request/list'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 转区申请
// 转区申请
export
function
transfer_server_request_add
(
data
)
{
export
function
transfer_server_request_add
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/transfer_server_request/add'
,
api
:
'/api/transfer_server_request/add'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 转区申请节点
// 转区申请节点
export
function
transfer_server_request_process
(
data
)
{
export
function
transfer_server_request_process
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/transfer_server_request/process'
,
api
:
'/api/transfer_server_request/process'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
export
function
getMainGameInfo
(
data
)
{
export
function
getMainGameInfo
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/service_wechat/getMainGameInfo'
,
api
:
'/api/service_wechat/getMainGameInfo'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 掌游标签搜索
// 掌游标签搜索
export
function
roleLabelSearch
(
data
)
{
export
function
roleLabelSearch
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/role/labelSearch'
,
api
:
'/role/labelSearch'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 掌游标签列表
// 掌游标签列表
export
function
roleGetRoleLabel
(
data
)
{
export
function
roleGetRoleLabel
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/role/getRoleLabel'
,
api
:
'/role/getRoleLabel'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 编辑角色标签
// 编辑角色标签
export
function
editRoleLabel
(
data
)
{
export
function
editRoleLabel
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/role/editRoleLabel'
,
api
:
'/role/editRoleLabel'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 编辑角色标签
// 编辑角色标签
export
function
getRoleLabelCreate
(
data
)
{
export
function
getRoleLabelCreate
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/role/getRoleLabelCreate'
,
api
:
'/role/getRoleLabelCreate'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
export
function
ruleList
(
data
)
{
export
function
ruleList
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/member_trans_request/ruleList'
,
api
:
'/member_trans_request/ruleList'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
)
;
})
})
;
})
})
;
}
}
// 查询客服未完成任务
// 查询客服未完成任务
export
function
getTaskTotal
(
data
)
{
export
function
getTaskTotal
(
data
)
{
data
.
zw_user_id
=
getZwUserId
()
data
.
zw_user_id
=
getZwUserId
();
return
new
Promise
((
resovle
,
reject
)
=>
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
cross_systemRequest
({
system
:
'zhangyou'
,
system
:
'zhangyou'
,
api
:
'/api/operator_task/getTaskTotal'
,
api
:
'/api/operator_task/getTaskTotal'
,
params
:
data
params
:
data
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
resovle
(
res
)
resovle
(
res
);
})
});
})
});
}
/**
* 当前w账号充值金额最靠前的有未推送的近期要开首条数据
* @param {{member_id}} data
* @returns
*/
export
function
getRoleRecentActivityOneApi
(
data
)
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/recent_activity/roleRecentActivityOne'
,
params
:
data
,
})
.
then
((
res
)
=>
{
resovle
(
res
);
})
.
catch
((
error
)
=>
{
reject
(
error
);
});
});
}
/**
* 角色近期要开活动编辑
* @param {Object} data - 请求参数对象
* @param {string} data.role_id - 角色ID
* @param {string} data.open_activity_time - 活动开启时间
* @param {string} data.activity_rule_id - 活动规则ID
* @param {string} data.is_push - 是否推送(2=已推送,只能传2)
* @param {number} data.type - 操作类型(1=更新推送,2=更新备注)
* @param {string} data.remark - 备注信息
* @param {number} data.user_id - 操作人ID
* @param {string} data.user_name - 操作人姓名
* @returns {Promise} 返回Promise对象,包含请求结果
*/
export
function
getRoleRecentActivityEditApi
(
data
)
{
console
.
log
(
data
,
'===123123123123123==='
);
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/recent_activity/roleRecentActivityEdit'
,
params
:
data
,
})
.
then
((
res
)
=>
{
resovle
(
res
);
})
.
catch
((
error
)
=>
{
reject
(
error
);
});
});
}
/**
* 角色近期要开列表
* @param {{role_id}} data
* @returns
*/
export
function
getRoleRecentActivityListApi
(
data
)
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/recent_activity/roleRecentActivityList'
,
params
:
data
,
})
.
then
((
res
)
=>
{
resovle
(
res
);
})
.
catch
((
error
)
=>
{
reject
(
error
);
});
});
}
/**
* 角色近期活动列表
* @param {{role_id}} data
* @returns
*/
export
function
getRecentActivityListApi
(
data
)
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/recent_activity/recentActivityList'
,
params
:
data
,
})
.
then
((
res
)
=>
{
resovle
(
res
);
})
.
catch
((
error
)
=>
{
reject
(
error
);
});
});
}
/**
* 账号近期要开活动数
* @param {{member_id}} data
* @returns
*/
export
function
getRoleRecentActivityNotPushNumApi
(
data
)
{
return
new
Promise
((
resovle
,
reject
)
=>
{
cross_systemRequest
({
system
:
'zhangyou'
,
api
:
'/api/recent_activity/roleRecentActivityNotPushNum'
,
params
:
data
,
})
.
then
((
res
)
=>
{
resovle
(
res
);
})
.
catch
((
error
)
=>
{
reject
(
error
);
});
});
}
}
src/api/skill.js
浏览文件 @
adecf774
import
request
from
'@/utils/request'
import
request
from
'@/utils/request'
;
import
store
from
'@/store/index'
import
store
from
'@/store/index'
;
// 所属分组下拉
// 所属分组下拉
function
returnApi
(
api
){
function
returnApi
(
api
)
{
return
'/sidebar'
+
api
return
'/sidebar'
+
api
;
}
}
export
function
procedure_group
(
data
)
{
export
function
procedure_group
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/procedure_group/index'
),
url
:
returnApi
(
'/procedure_group/index'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 话术列表
// 话术列表
export
function
procedureList
(
data
)
{
export
function
procedureList
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/procedure/index'
),
url
:
returnApi
(
'/procedure/index'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 删除话术
// 删除话术
...
@@ -25,8 +25,8 @@ export function proceduredel(data) {
...
@@ -25,8 +25,8 @@ export function proceduredel(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/procedure/del'
),
url
:
returnApi
(
'/procedure/del'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 批量移动
// 批量移动
...
@@ -34,8 +34,8 @@ export function proceduremove(data) {
...
@@ -34,8 +34,8 @@ export function proceduremove(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/procedure/move'
),
url
:
returnApi
(
'/procedure/move'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 新增话术
// 新增话术
...
@@ -43,8 +43,8 @@ export function procedureadd(data) {
...
@@ -43,8 +43,8 @@ export function procedureadd(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/procedure/add'
),
url
:
returnApi
(
'/procedure/add'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 分组添加/修改
// 分组添加/修改
...
@@ -52,8 +52,8 @@ export function procedure_groupAdd(data) {
...
@@ -52,8 +52,8 @@ export function procedure_groupAdd(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/procedure_group/add'
),
url
:
returnApi
(
'/procedure_group/add'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 分组删除
// 分组删除
...
@@ -61,8 +61,8 @@ export function procedure_groupDel(data) {
...
@@ -61,8 +61,8 @@ export function procedure_groupDel(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/procedure_group/del'
),
url
:
returnApi
(
'/procedure_group/del'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 个人话术移到企业库
// 个人话术移到企业库
...
@@ -70,8 +70,8 @@ export function addCompany(data) {
...
@@ -70,8 +70,8 @@ export function addCompany(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/procedure/addCompany'
),
url
:
returnApi
(
'/procedure/addCompany'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 个人话术详情
// 个人话术详情
...
@@ -79,8 +79,8 @@ export function procedureInfo(data) {
...
@@ -79,8 +79,8 @@ export function procedureInfo(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/procedure/info'
),
url
:
returnApi
(
'/procedure/info'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 个人话术排序
// 个人话术排序
...
@@ -88,8 +88,8 @@ export function procedureSort(data) {
...
@@ -88,8 +88,8 @@ export function procedureSort(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/procedure/sort'
),
url
:
returnApi
(
'/procedure/sort'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 个人话术租排序
// 个人话术租排序
...
@@ -97,8 +97,8 @@ export function procedureGroupSort(data) {
...
@@ -97,8 +97,8 @@ export function procedureGroupSort(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/procedure_group/sort'
),
url
:
returnApi
(
'/procedure_group/sort'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 企业话术增至个人
// 企业话术增至个人
...
@@ -106,8 +106,8 @@ export function addToPersonal(data) {
...
@@ -106,8 +106,8 @@ export function addToPersonal(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/procedure/addToPersonal'
),
url
:
returnApi
(
'/procedure/addToPersonal'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 话术使用次数
// 话术使用次数
...
@@ -115,8 +115,8 @@ export function skillQuote(data) {
...
@@ -115,8 +115,8 @@ export function skillQuote(data) {
return
request
({
return
request
({
url
:
'/admin/procedure/quote'
,
url
:
'/admin/procedure/quote'
,
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
/* ----------- 知识库的接口 ---------- */
/* ----------- 知识库的接口 ---------- */
...
@@ -125,16 +125,16 @@ export function groupList(data) {
...
@@ -125,16 +125,16 @@ export function groupList(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_group/index'
),
url
:
returnApi
(
'/knowledge_group/index'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 知识库分组下拉
// 知识库分组下拉
export
function
libraryIndex
(
data
)
{
export
function
libraryIndex
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_base/index'
),
url
:
returnApi
(
'/knowledge_base/index'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 新增和编辑
// 新增和编辑
...
@@ -142,8 +142,8 @@ export function groupHandle(data) {
...
@@ -142,8 +142,8 @@ export function groupHandle(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_group/add'
),
url
:
returnApi
(
'/knowledge_group/add'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 删除分组
// 删除分组
...
@@ -151,63 +151,63 @@ export function groupDel(data) {
...
@@ -151,63 +151,63 @@ export function groupDel(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_group/del'
),
url
:
returnApi
(
'/knowledge_group/del'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 新增知识库任务
// 新增知识库任务
export
function
addLibraryTask
(
data
)
{
export
function
addLibraryTask
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_base/add'
),
url
:
returnApi
(
'/knowledge_base/add'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 详情
// 详情
export
function
libraryTaskView
(
data
)
{
export
function
libraryTaskView
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_base/view'
),
url
:
returnApi
(
'/knowledge_base/view'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 编辑
// 编辑
export
function
libraryTaskEdit
(
data
)
{
export
function
libraryTaskEdit
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_base/edit'
),
url
:
returnApi
(
'/knowledge_base/edit'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 删除
// 删除
export
function
libraryTaskDel
(
data
)
{
export
function
libraryTaskDel
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_base/del'
),
url
:
returnApi
(
'/knowledge_base/del'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 批量删除
// 批量删除
export
function
multipleDel
(
data
)
{
export
function
multipleDel
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_base/batchDel'
),
url
:
returnApi
(
'/knowledge_base/batchDel'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
// 导入
}
// 导入
export
function
importData
(
data
)
{
export
function
importData
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_base/importKnowledgeBase'
),
url
:
returnApi
(
'/knowledge_base/importKnowledgeBase'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 知识库计数
// 知识库计数
export
function
logClickTime
(
data
)
{
export
function
logClickTime
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_base/logClickTime'
),
url
:
returnApi
(
'/knowledge_base/logClickTime'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 问答模块
// 问答模块
...
@@ -215,18 +215,17 @@ export function Aihistory(data) {
...
@@ -215,18 +215,17 @@ export function Aihistory(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/corp_beta_question_log/history'
),
url
:
returnApi
(
'/corp_beta_question_log/history'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 同步知识库
// 同步知识库
export
function
asyncKnowledge
(
data
)
{
export
function
asyncKnowledge
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/knowledge_base/syncToCorp'
),
url
:
returnApi
(
'/knowledge_base/syncToCorp'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
/* -------------------- 机器人知识库 ----------------------- */
/* -------------------- 机器人知识库 ----------------------- */
...
@@ -235,8 +234,8 @@ export function corp_robot_knowledge_add(data) {
...
@@ -235,8 +234,8 @@ export function corp_robot_knowledge_add(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_base/add'
),
url
:
returnApi
(
'/corp_robot_knowledge_base/add'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 机器人知识库列表
// 机器人知识库列表
...
@@ -244,48 +243,48 @@ export function corp_robot_knowledge_list(data) {
...
@@ -244,48 +243,48 @@ export function corp_robot_knowledge_list(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_base/index'
),
url
:
returnApi
(
'/corp_robot_knowledge_base/index'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 机器人知识库编辑
// 机器人知识库编辑
export
function
corp_robot_knowledge_edit
(
data
)
{
export
function
corp_robot_knowledge_edit
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_base/edit'
),
url
:
returnApi
(
'/corp_robot_knowledge_base/edit'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 机器人知识库详情
// 机器人知识库详情
export
function
corp_robot_knowledge_view
(
data
)
{
export
function
corp_robot_knowledge_view
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_base/view'
),
url
:
returnApi
(
'/corp_robot_knowledge_base/view'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 机器人知识库删除
// 机器人知识库删除
export
function
corp_robot_knowledge_del
(
data
)
{
export
function
corp_robot_knowledge_del
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_base/delete'
),
url
:
returnApi
(
'/corp_robot_knowledge_base/delete'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 机器人知识库批量删除
// 机器人知识库批量删除
export
function
corp_robot_knowledge_batchDelete
(
data
)
{
export
function
corp_robot_knowledge_batchDelete
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_base/batchDelete'
),
url
:
returnApi
(
'/corp_robot_knowledge_base/batchDelete'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 机器人知识库批量导入
// 机器人知识库批量导入
export
function
corp_robot_knowledge_import
(
data
)
{
export
function
corp_robot_knowledge_import
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_base/import'
),
url
:
returnApi
(
'/corp_robot_knowledge_base/import'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
/* --------------------机器人知识库分组-----------------------*/
/* --------------------机器人知识库分组-----------------------*/
// 知识库分组列表
// 知识库分组列表
...
@@ -293,32 +292,32 @@ export function corp_robot_knowledge_group_index(data) {
...
@@ -293,32 +292,32 @@ export function corp_robot_knowledge_group_index(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_group/index'
),
url
:
returnApi
(
'/corp_robot_knowledge_group/index'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 知识库分组新增
// 知识库分组新增
export
function
corp_robot_knowledge_group_add
(
data
)
{
export
function
corp_robot_knowledge_group_add
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_group/add'
),
url
:
returnApi
(
'/corp_robot_knowledge_group/add'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 知识库分组编辑
// 知识库分组编辑
export
function
corp_robot_knowledge_group_edit
(
data
)
{
export
function
corp_robot_knowledge_group_edit
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_group/edit'
),
url
:
returnApi
(
'/corp_robot_knowledge_group/edit'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 知识库分组删除
// 知识库分组删除
export
function
corp_robot_knowledge_group_del
(
data
)
{
export
function
corp_robot_knowledge_group_del
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/corp_robot_knowledge_group/delete'
),
url
:
returnApi
(
'/corp_robot_knowledge_group/delete'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// AI问答对列表
// AI问答对列表
...
@@ -326,8 +325,8 @@ export function AI_list(data) {
...
@@ -326,8 +325,8 @@ export function AI_list(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/corp_ai_question_answer/index'
),
url
:
returnApi
(
'/corp_ai_question_answer/index'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 业务下拉
// 业务下拉
...
@@ -335,8 +334,8 @@ export function search_condition(data) {
...
@@ -335,8 +334,8 @@ export function search_condition(data) {
return
request
({
return
request
({
url
:
'/admin/search_condition'
,
url
:
'/admin/search_condition'
,
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 智能体列表
// 智能体列表
...
@@ -344,8 +343,8 @@ export function corp_beta_config(data) {
...
@@ -344,8 +343,8 @@ export function corp_beta_config(data) {
return
request
({
return
request
({
url
:
'/admin/corp_beta_config/index'
,
url
:
'/admin/corp_beta_config/index'
,
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 标记有用/无用
// 标记有用/无用
...
@@ -353,22 +352,30 @@ export function markUseful(data) {
...
@@ -353,22 +352,30 @@ export function markUseful(data) {
return
request
({
return
request
({
url
:
returnApi
(
'/corp_ai_question_answer/markUseful'
),
url
:
returnApi
(
'/corp_ai_question_answer/markUseful'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 跨主体分组列表
// 跨主体分组列表
export
function
cross_corp_robot_knowledge_group_index
(
data
)
{
export
function
cross_corp_robot_knowledge_group_index
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/corp_cross_knowledge_group/index'
),
url
:
returnApi
(
'/corp_cross_knowledge_group/index'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
})
;
}
}
// 跨主体知识库分组列表
// 跨主体知识库分组列表
export
function
cross_corp_robot_knowledge_group_getList
(
data
)
{
export
function
cross_corp_robot_knowledge_group_getList
(
data
)
{
return
request
({
return
request
({
url
:
returnApi
(
'/corp_cross_knowledge_base/getList'
),
url
:
returnApi
(
'/corp_cross_knowledge_base/getList'
),
method
:
'post'
,
method
:
'post'
,
data
data
,
})
});
}
}
\ No newline at end of file
// 营销面板-话术生成
export
function
getGenerateProcedureApi
(
data
)
{
return
request
({
url
:
returnApi
(
'/corp_activity_procedure/generateProcedure'
),
method
:
'post'
,
data
,
});
}
src/views/components/roleInfo/roleInfoPanel.vue
浏览文件 @
adecf774
...
@@ -2,19 +2,76 @@
...
@@ -2,19 +2,76 @@
<div
class=
"details-user-info-role columnFlex"
>
<div
class=
"details-user-info-role columnFlex"
>
<div
v-loading=
"loading"
class=
"detailsContent"
>
<div
v-loading=
"loading"
class=
"detailsContent"
>
<div
v-if=
"roleList.length > 0"
>
<div
v-if=
"roleList.length > 0"
>
<p
class=
"textInfo"
>
角色充值金额信息会有5-10分钟延迟,请以订单信息为准
</p>
<p
class=
"textInfo"
>
角色充值金额信息会有5-10分钟延迟,请以订单信息为准
</p>
<el-collapse
v-model=
"collapseActive"
@
change=
"handleChange"
>
<el-collapse
v-model=
"collapseActive"
@
change=
"handleChange"
>
<div
v-for=
"(items, indexs) in roleList"
:key=
"indexs"
class=
"contentItem mb-[10px]"
>
<div
v-for=
"(items, indexs) in roleList"
:key=
"indexs"
class=
"contentItem mb-[10px]"
>
<div
class=
"title"
></div>
<div
class=
"title"
></div>
<el-collapse-item
:name=
"items.id"
>
<el-collapse-item
:name=
"items.id"
>
<template
slot=
"title"
>
<template
slot=
"title"
>
<div
class=
"collapseTitle rowFlex columnCenter spaceBetween"
>
<
!--
<
div
class=
"collapseTitle rowFlex columnCenter spaceBetween"
>
<p
class=
"hidden"
>
<p
class=
"hidden"
>
{{
items
.
role_name
}}
-
{{
items
.
server_name
}}
-
{{
{{
items
.
role_name
}}
-
{{
items
.
server_name
}}
-
{{
items
.
recharge_total
?
items
.
recharge_total
+
'元'
:
'0元'
}}
items
.
recharge_total
?
items
.
recharge_total
+
'元'
:
'0元'
}}
</p>
</p>
<el-button
type=
"primary"
size=
"mini"
class=
"collapseTitleBtn"
<el-button
type=
"primary"
size=
"mini"
class=
"collapseTitleBtn"
@
click
.
stop=
"appealLayer(items)"
>
申诉
</el-button>
@
click
.
stop=
"appealLayer(items)"
>
申诉
</el-button>
</div>
-->
<div
class=
"flex w-[100%] justify-between"
>
<div>
<div>
<span>
角色名:
</span><span>
{{
items
.
role_name
}}
</span>
</div>
<div>
<span>
区服:
</span><span>
{{
items
.
server_name
}}
</span>
</div>
<div>
<span>
充值金额:
</span
><span>
{{
items
.
recharge_total
?
items
.
recharge_total
+
'元'
:
'0元'
}}
</span>
</div>
</div>
<div
class=
"flex-1 h-0 flex justify-end items-start pt-[10px]"
>
<el-button
type=
"primary"
size=
"mini"
class=
"collapseTitleBtn"
@
click
.
stop=
"appealLayer(items)"
>
申诉
</el-button
>
<el-badge
:value=
"
roleRecentActivityNotPushNumInstance?.getNumByRoleId(
items.role_id
)
"
class=
"text-center leading-[0] ml-[8px]"
>
<el-button
type=
"primary"
size=
"mini"
@
click
.
stop=
"
() =>
recentActivitiesPopupInstance.instance.open(
items.role_id,
`$
{items.role_name}-${items.server_name}-${items.recharge_total}元`
)
"
>
近期要开
</el-button
>
</el-badge>
</div>
</div>
</div>
</
template
>
</
template
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
...
@@ -68,13 +125,25 @@
...
@@ -68,13 +125,25 @@
<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"
>
{{ $moment(items.last_login_time * 1000).format('YYYY-MM-DD HH:mm:ss') }}
</p>
<p
class=
"text"
>
{{
$moment(items.last_login_time * 1000).format(
'YYYY-MM-DD HH:mm:ss'
)
}}
</p>
</div>
</div>
</div>
</div>
<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"
>
{{ $moment(items.create_time * 1000).format('YYYY-MM-DD HH:mm:ss') }}
</p>
<p
class=
"text"
>
{{
$moment(items.create_time * 1000).format(
'YYYY-MM-DD HH:mm:ss'
)
}}
</p>
</div>
</div>
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
...
@@ -87,25 +156,37 @@
...
@@ -87,25 +156,37 @@
</div>
</div>
</el-collapse>
</el-collapse>
</div>
</div>
<div
v-else-if=
"!loading && roleList.length == 0"
class=
"noContent rowFlex allCenter"
>
<div
<noContent
title=
"暂无数据"
description=
"当前没有任何数据,请稍后再试或联系管理员"
/>
v-else-if=
"!loading && roleList.length == 0"
class=
"noContent rowFlex allCenter"
>
<noContent
title=
"暂无数据"
description=
"当前没有任何数据,请稍后再试或联系管理员"
/>
</div>
</div>
</div>
</div>
<appeal
v-if=
"showAppeal"
:show
.
sync=
"showAppeal"
:appeal-info=
"appealInfo"
/>
<appeal
v-if=
"showAppeal"
:show
.
sync=
"showAppeal"
:appeal-info=
"appealInfo"
/>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
mapState
,
mapMutations
,
mapActions
}
from
'vuex'
import
{
mapState
,
mapMutations
,
mapActions
}
from
'vuex'
;
import
{
getRoleHoLo
}
from
'@/api/game'
import
{
getRoleHoLo
}
from
'@/api/game'
;
import
noContent
from
'@/components/noContent.vue'
import
noContent
from
'@/components/noContent.vue'
;
import
appeal
from
'./layer/appeal.vue'
import
appeal
from
'./layer/appeal.vue'
;
import
watchMember
from
'@/mixins/watchMember'
import
watchMember
from
'@/mixins/watchMember'
;
import
{
createDetails
}
from
'@/views/popup/RecentActivitiesPopup/index.js'
;
import
{
createRoleRecentActivityNotPushNum
}
from
'@/views/hooks/useGetCount.js'
;
export
default
{
export
default
{
name
:
'roleInfo'
,
name
:
'roleInfo'
,
components
:
{
components
:
{
noContent
,
noContent
,
appeal
appeal
,
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -118,58 +199,75 @@ export default {
...
@@ -118,58 +199,75 @@ export default {
pageInfo
:
{
pageInfo
:
{
page_size
:
100
,
page_size
:
100
,
page
:
1
,
page
:
1
,
total
:
0
total
:
0
,
},
},
infoList
:
[]
infoList
:
[],
}
recentActivitiesPopupInstance
:
null
,
//近期要开模块弹框
roleRecentActivityNotPushNumInstance
:
null
,
//侧边栏计数弹框
};
},
},
computed
:
{
computed
:
{
...
mapState
(
'game'
,
[
'accountSelect'
])
...
mapState
(
'game'
,
[
'accountSelect'
])
,
},
},
mixins
:
[
watchMember
],
mixins
:
[
watchMember
],
mounted
()
{
mounted
()
{
this
.
requestRoleList
()
this
.
requestRoleList
();
this
.
nowTime
=
new
Date
().
getTime
()
this
.
nowTime
=
new
Date
().
getTime
();
// 初始化创建角色最近活动未推送数量
this
.
initInstance
();
},
},
methods
:
{
methods
:
{
handleChange
()
{
//初始化创建模块
async
initInstance
()
{
this
.
recentActivitiesPopupInstance
=
createDetails
();
this
.
roleRecentActivityNotPushNumInstance
=
await
createRoleRecentActivityNotPushNum
(
this
.
accountSelect
);
},
},
handleChange
()
{},
memberChange
()
{
memberChange
()
{
this
.
requestRoleList
()
this
.
requestRoleList
()
;
},
},
// 申诉
// 申诉
appealLayer
(
item
)
{
appealLayer
(
item
)
{
this
.
appealInfo
=
item
this
.
appealInfo
=
item
;
this
.
showAppeal
=
true
this
.
showAppeal
=
true
;
},
},
requestRoleList
()
{
requestRoleList
()
{
if
(
this
.
accountSelect
===
''
)
{
if
(
this
.
accountSelect
===
''
)
{
this
.
$message
.
warning
(
'暂无关联的账号,请先去关联账号!'
)
this
.
$message
.
warning
(
'暂无关联的账号,请先去关联账号!'
)
;
return
false
return
false
;
}
}
this
.
loading
=
true
this
.
loading
=
true
;
const
data
=
{
const
data
=
{
api_search_name
:
''
,
api_search_name
:
''
,
member_id
:
this
.
accountSelect
,
member_id
:
this
.
accountSelect
,
search_type
:
'list'
,
search_type
:
'list'
,
...
this
.
pageInfo
...
this
.
pageInfo
,
}
};
getRoleHoLo
(
data
).
then
(
res
=>
{
getRoleHoLo
(
data
).
then
(
this
.
loading
=
false
(
res
)
=>
{
if
(
res
.
status_code
==
1
)
{
this
.
loading
=
false
;
if
(
res
.
data
.
data
.
length
>
0
)
{
if
(
res
.
status_code
==
1
)
{
this
.
roleList
=
res
.
data
.
data
.
sort
((
a
,
b
)
=>
{
return
Number
(
b
.
recharge_total
)
-
Number
(
a
.
recharge_total
)
})
if
(
res
.
data
.
data
.
length
>
0
)
{
}
else
{
this
.
roleList
=
res
.
data
.
data
.
sort
((
a
,
b
)
=>
{
this
.
roleList
=
[]
return
Number
(
b
.
recharge_total
)
-
Number
(
a
.
recharge_total
);
});
}
else
{
this
.
roleList
=
[];
}
}
}
},
(
err
)
=>
{
this
.
loading
=
false
;
}
}
},
err
=>
{
);
this
.
loading
=
false
},
})
},
}
beforeDestroy
()
{
}
this
.
recentActivitiesPopupInstance
.
destroy
();
}
this
.
roleRecentActivityNotPushNumInstance
?.
destroy
();
},
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.details-user-info-role
{
.details-user-info-role
{
...
@@ -291,7 +389,26 @@ export default {
...
@@ -291,7 +389,26 @@ export default {
display
:
block
;
display
:
block
;
}
}
}
}
::v-deep
.el-collapse-item
{
margin-bottom
:
20px
;
}
::v-deep
.el-collapse-item__content
{
padding-bottom
:
10px
;
}
::v-deep
.el-collapse
{
border
:
none
;
}
::v-deep
.el-collapse-item__header
{
width
:
100%
;
height
:
auto
;
background
:
#f9faff
;
color
:
#333333
;
padding-left
:
10px
;
font-size
:
14px
;
font-weight
:
400
;
}
/* 已移除局部 el-collapse 样式,使用全局样式 */
/* 已移除局部 el-collapse 样式,使用全局样式 */
}
}
</
style
>
</
style
>
\ No newline at end of file
src/views/hooks/useGetCount.js
0 → 100644
浏览文件 @
adecf774
import
{
getRoleRecentActivityNotPushNumApi
}
from
'@/api/game'
;
// 账号近期要开活动数
let
roleRecentActivityNotPushNum
=
null
;
let
cacheMemberId
=
null
;
function
setCacheMemberId
(
member_id
)
{
cacheMemberId
=
member_id
;
}
export
async
function
queryRoleRecentActivityNotPushNum
(
member_id
)
{
const
{
data
}
=
await
getRoleRecentActivityNotPushNumApi
({
member_id
:
member_id
,
});
roleRecentActivityNotPushNum
=
data
.
data
;
}
function
validate
(
v
)
{
if
(
!
roleRecentActivityNotPushNum
)
throw
new
Error
(
`执行
${
v
}
前请先调用createRoleRecentActivityNotPushNum方法`
);
}
export
function
getTotalNum
()
{
validate
(
'getTotalNum'
);
return
roleRecentActivityNotPushNum
?.
totalNum
||
null
;
}
export
function
getNumByRoleId
(
role_id
)
{
validate
(
'getNumByRoleId'
);
return
(
roleRecentActivityNotPushNum
?.
roleNum
.
find
(
(
item
)
=>
item
.
role_id
==
role_id
)?.
num
||
null
);
}
export
function
destroy
()
{
roleRecentActivityNotPushNum
=
null
;
cacheMemberId
=
null
;
}
export
async
function
createRoleRecentActivityNotPushNum
(
member_id
)
{
if
(
member_id
||
member_id
!==
cacheMemberId
)
{
setCacheMemberId
(
member_id
);
await
queryRoleRecentActivityNotPushNum
(
member_id
);
}
return
{
queryRoleRecentActivityNotPushNum
,
getTotalNum
,
getNumByRoleId
,
destroy
,
};
}
src/views/popup/RecentActivitiesPopup/components/ActivityConfigurationList.vue
0 → 100644
浏览文件 @
adecf774
<
template
>
<div
v-loading=
"loading"
>
<div
class=
"px-[20px] h-full space-y-[8px] rounded-[4px] overflow-y-auto"
>
<template
v-if=
"list.length"
>
<div
class=
"bg-[#F7F8FA] min-h-[99px] p-[8px]"
v-for=
"item in list"
:key=
"item.id"
>
<div
class=
"text-[#131920] pb-[8px] text-[14px] border-b-[1px] border-solid border-[#E5E5E6]"
>
主服
{{
item
.
main_server_day
}}
天开启
{{
item
.
name
}}
活动
</div>
<div
class=
"text-[13px] flex pt-[8px]"
>
<div
class=
"text-[#6D7176] mr-[16px] flex-shrink-0"
>
活动详情
</div>
<div
class=
"text-[#131920]"
>
{{
item
.
detail
}}
</div>
</div>
</div>
</
template
>
<svg-icon
v-else
icon-class=
"noContent"
class=
"text-[280px]"
/>
</div>
</div>
</template>
<
script
>
import
{
mapState
}
from
'vuex'
;
import
{
getRecentActivityListApi
}
from
'@/api/game'
;
export
default
{
name
:
'ActivityConfigurationList'
,
components
:
{},
props
:
[
'role_id'
],
data
()
{
return
{
list
:
[],
loading
:
false
,
};
},
computed
:
{
...
mapState
(
'game'
,
[
'gameUserInfo'
]),
},
methods
:
{
async
getRecentActivityList
()
{
try
{
this
.
loading
=
true
;
const
{
data
}
=
await
getRecentActivityListApi
({
role_id
:
this
.
role_id
,
main_game_id
:
this
.
gameUserInfo
.
main_game_id
,
weixin_blongs_id
:
this
.
gameUserInfo
.
weixin_blongs_id
,
});
this
.
list
=
data
.
data
;
}
catch
(
error
)
{
}
finally
{
this
.
loading
=
false
;
}
},
},
created
()
{
this
.
getRecentActivityList
();
},
};
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
src/views/popup/RecentActivitiesPopup/components/RecentActivitiesList.vue
0 → 100644
浏览文件 @
adecf774
<
template
>
<div
v-loading=
"loading"
>
<div
class=
"px-[20px] h-full gap-y-[8px] overflow-y-auto"
>
<template
v-if=
"list.length"
>
<RecentActivities
@
handleUpdate=
"query"
:item=
"item"
v-for=
"item in list"
:key=
"item.activity_rule_id"
/>
</
template
>
<svg-icon
v-else
icon-class=
"noContent"
class=
"text-[280px]"
/>
</div>
</div>
</template>
<
script
>
import
RecentActivities
from
'@/views/popup/RecentActivitiesPopup/templates/RecentActivities.vue'
;
import
{
getRoleRecentActivityListApi
}
from
'@/api/game'
;
export
default
{
name
:
'RecentActivitiesList'
,
components
:
{
RecentActivities
},
props
:
[
'role_id'
],
data
()
{
return
{
list
:
[],
loading
:
false
,
};
},
methods
:
{
async
query
()
{
try
{
this
.
loading
=
true
;
const
{
data
}
=
await
getRoleRecentActivityListApi
({
role_id
:
this
.
role_id
,
});
this
.
list
=
data
.
data
;
}
catch
(
error
)
{
}
finally
{
this
.
loading
=
false
;
}
},
},
created
()
{
this
.
query
();
},
};
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
src/views/popup/RecentActivitiesPopup/index.js
0 → 100644
浏览文件 @
adecf774
// utils/componentHelper.js 或 useCreatePlayerDetails.js
import
Vue
from
'vue'
import
RecentActivitiesPopup
from
'./index.vue'
import
store
from
'@/store'
// 导入你的 Vuex store
export
function
createDetails
(
propsData
=
{})
{
const
ComponentConstructor
=
Vue
.
extend
(
RecentActivitiesPopup
)
const
instance
=
new
ComponentConstructor
({
propsData
,
// 手动注入 store
store
})
const
mountNode
=
document
.
createElement
(
'div'
)
document
.
querySelector
(
'#recentActivitiesPopup'
).
appendChild
(
mountNode
)
instance
.
$mount
(
mountNode
)
return
{
instance
,
destroy
:
()
=>
{
instance
.
$destroy
()
if
(
instance
.
$el
&&
instance
.
$el
.
parentNode
)
{
instance
.
$el
.
parentNode
.
removeChild
(
instance
.
$el
)
}
}
}
}
\ No newline at end of file
src/views/popup/RecentActivitiesPopup/index.vue
0 → 100644
浏览文件 @
adecf774
<
template
>
<div
class=
"absolute z-10 top-0 left-0 h-full w-full bg-white"
v-if=
"show"
>
<div
class=
"h-[60px] relative px-[18px] flex items-center border-b-[1px] border-solid border-[#e5e6eb]"
>
<i
class=
"el-icon-arrow-left text-[25px] hover:cursor-pointer"
@
click=
"close"
></i>
<span
class=
"absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 text-[#323335] font-bold"
>
{{
title
}}
</span
>
</div>
<el-tabs
class=
"h-[40px]"
v-model=
"activeName"
@
tab-click=
"handleClick"
>
<el-tab-pane
label=
"近期要开"
name=
"0"
>
</el-tab-pane>
<el-tab-pane
label=
"活动配置"
name=
"1"
>
</el-tab-pane>
</el-tabs>
<RecentActivitiesList
v-if=
"activeName === '0'"
:role_id=
"role_id"
/>
<ActivityConfigurationList
v-if=
"activeName === '1'"
:role_id=
"role_id"
/>
</div>
</
template
>
<
script
>
import
RecentActivitiesList
from
'./components/RecentActivitiesList.vue'
;
import
ActivityConfigurationList
from
'./components/ActivityConfigurationList.vue'
;
export
default
{
name
:
'RecentActivitiesPopup'
,
components
:
{
RecentActivitiesList
,
ActivityConfigurationList
},
data
()
{
return
{
show
:
false
,
activeName
:
'0'
,
role_id
:
''
,
title
:
''
,
};
},
methods
:
{
open
(
role_id
,
title
)
{
this
.
show
=
true
;
this
.
role_id
=
role_id
;
this
.
title
=
title
;
},
handleClick
()
{},
close
()
{
this
.
show
=
false
;
this
.
activeName
=
'0'
;
},
},
created
()
{},
};
</
script
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-tabs__item
{
padding
:
0
20px
!important
;
}
</
style
>
src/views/popup/RecentActivitiesPopup/templates/RecentActivities.vue
0 → 100644
浏览文件 @
adecf774
<
template
>
<div
class=
"space-y-[12px] mt-[10px] !p-[8px] bg-[#F7F8FA] rounded-[4px] item"
>
<div>
<span
class=
"label"
>
近期要开:
</span>
<el-popover
placement=
"top-start"
width=
"250"
trigger=
"hover"
:content=
"item.activity_rule_detail"
>
<span
slot=
"reference"
>
{{
item
.
activity_rule_name
}}
</span>
</el-popover>
</div>
<div>
<span
class=
"label"
>
开启时间:
</span
><span>
{{
item
.
open_activity_time
}}
</span>
</div>
<div>
<span
class=
"label"
>
关联客服:
</span><span>
{{
item
.
cser_name
}}
</span>
</div>
<div
class=
"group"
>
<span
class=
"label"
>
备注:
</span
><span
v-show=
"!editShow"
>
{{
item
.
remark
}}
</span>
<el-input
@
blur=
"updated"
v-show=
"editShow"
type=
"textarea"
:rows=
"2"
placeholder=
"请输入内容"
v-model
.
trim=
"textarea"
>
</el-input>
<svg-icon
icon-class=
"edit"
class=
"icon invisible group-hover:visible"
style=
"font-size: 14px"
@
click=
"editRemark"
/>
</div>
<div
class=
"flex items-center"
>
<span
class=
"label flex-shrink-0"
>
推送状态:
</span>
<span
v-if=
"item.is_push === '2'"
>
已推送
</span>
<el-select
v-else
class=
"w-[70px]"
:clearable=
"false"
:value=
"item.is_push"
@
change=
"handleChange"
>
<el-option
label=
"未推送"
value=
"1"
>
</el-option>
<el-option
label=
"已推送"
value=
"2"
>
</el-option>
</el-select>
</div>
<div
class=
"flex items-center"
>
<span
class=
"label flex-shrink-0"
>
推送话术:
</span>
<span
class=
"group flex-1 w-0 flex items-center"
v-if=
"pushLanguageTechnique"
>
<span
class=
"truncate flex-1"
>
{{
pushLanguageTechnique
}}
</span>
<i
class=
"el-icon-refresh mr-[8px] refreshList invisible group-hover:visible"
:class=
"isRefresh ? 'refreshListActive' : ''"
@
click=
"refreshTag"
></i>
<svg-icon
icon-class=
"fuzhi"
class=
"icon invisible group-hover:visible"
style=
"font-size: 14px"
@
click=
"copyText"
/>
</span>
<el-button
v-else
size=
"mini"
@
click=
"queryGenerateProcedure"
:loading=
"isRefresh"
>
生成话术
</el-button
>
</div>
<slot></slot>
</div>
</
template
>
<
script
>
import
{
getRoleRecentActivityEditApi
}
from
'@/api/game.js'
;
import
{
getGenerateProcedureApi
}
from
'@/api/skill'
;
import
{
mapState
}
from
'vuex'
;
const
UpdateType
=
{
PUSH
:
1
,
//修改推送
REMARK
:
2
,
//修改备注
};
export
default
{
name
:
'RecentActivitiesTemplate'
,
emits
:
[
'handleUpdate'
],
components
:
{},
props
:
[
'item'
],
data
()
{
return
{
editShow
:
false
,
textarea
:
''
,
isRefresh
:
false
,
pushLanguageTechnique
:
''
,
//推送话术
};
},
computed
:
{
...
mapState
(
'common'
,
[
'zqUserInfo'
]),
...
mapState
(
'game'
,
[
'accountSelect'
,
'bindGameUserList'
]),
nowGameUserInfo
()
{
return
{
member_id
:
this
.
accountSelect
,
username
:
this
.
bindGameUserList
.
find
(
(
item
)
=>
item
.
member_id
==
this
.
accountSelect
)?.
username
,
};
},
},
methods
:
{
editRemark
()
{
this
.
editShow
=
true
;
this
.
textarea
=
this
.
item
.
remark
;
},
async
updated
()
{
this
.
editShow
=
false
;
if
(
this
.
textarea
===
this
.
item
.
remark
)
return
;
this
.
edit
(
UpdateType
.
REMARK
);
},
handleChange
()
{
this
.
edit
(
UpdateType
.
PUSH
);
},
async
edit
(
type
)
{
try
{
await
getRoleRecentActivityEditApi
({
type
,
role_id
:
this
.
item
.
role_id
,
open_activity_time
:
this
.
item
.
open_activity_time
,
remark
:
this
.
textarea
,
activity_rule_id
:
this
.
item
.
activity_rule_id
,
is_push
:
2
,
user_id
:
this
.
zqUserInfo
.
zq_user_id
,
user_name
:
this
.
zqUserInfo
.
name
,
});
this
.
$message
.
success
(
'修改成功'
);
this
.
$emit
(
'handleUpdate'
);
}
catch
(
error
)
{
this
.
$message
.
error
(
error
);
}
},
async
queryGenerateProcedure
()
{
try
{
this
.
isRefresh
=
true
;
const
{
data
}
=
await
getGenerateProcedureApi
({
...
this
.
item
,
...
this
.
nowGameUserInfo
,
});
this
.
pushLanguageTechnique
=
data
.
content
;
}
catch
(
error
)
{
}
finally
{
this
.
isRefresh
=
false
;
}
},
async
copyText
()
{
try
{
await
navigator
.
clipboard
.
writeText
(
this
.
pushLanguageTechnique
);
this
.
$message
.
success
(
'复制成功'
);
}
catch
(
err
)
{
console
.
error
(
'复制失败:'
,
err
);
}
},
refreshTag
()
{
this
.
queryGenerateProcedure
();
},
},
created
()
{
console
.
log
(
this
.
nowGameUserInfo
,
1111111
);
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.item
{
width
:
100%
;
height
:
auto
;
font-size
:
14px
;
font-weight
:
400
;
color
:
#333333
;
transition
:
all
0.5s
;
position
:
relative
;
cursor
:
pointer
;
.label
{
font-size
:
14px
;
color
:
#999999
;
font-weight
:
500
;
margin-right
:
8px
;
}
.tag-icon
{
cursor
:
pointer
;
font-size
:
14px
;
color
:
#333333
;
margin-right
:
8px
;
}
}
.refreshListActive
{
animation
:
rotate
0.5s
linear
infinite
;
}
.refreshList
{
color
:
#00bf8a
;
cursor
:
pointer
;
font-size
:
18px
;
}
::v-deep
.el-input__inner
{
background-color
:
transparent
;
border
:
0
;
box-shadow
:
none
;
padding
:
0
;
}
::v-deep
.el-select
.el-input.is-focus
.el-input__inner
{
border-color
:
transparent
!important
;
box-shadow
:
none
;
}
</
style
>
src/views/userInfo/components/gameInfo/MarketingPanel.vue
0 → 100644
浏览文件 @
adecf774
<
template
>
<!-- 营销面板组件 -->
<div
class=
"item"
>
<div
class=
"rowFlex columnCenter"
>
<span
class=
"label"
>
营销面板:
</span>
<i
v-if=
"recentInfo.role_id"
:class=
"['el-icon-arrow-' + (active ? 'down' : 'right'), 'tag-icon']"
@
click=
"handleClick"
></i>
</div>
<RecentActivities
v-if=
"recentInfo.role_id"
:item=
"recentInfo"
v-show=
"active"
@
handleUpdate=
"getRoleData"
>
<el-button
type=
"text"
size=
"mini"
@
click=
"
() =>
recentActivitiesPopupInstance.instance.open(
recentInfo.role_id,
popupTitle
)
"
>
查看更多 >
</el-button>
</RecentActivities>
</div>
</
template
>
<
script
>
import
RecentActivities
from
'@/views/popup/RecentActivitiesPopup/templates/RecentActivities.vue'
;
import
{
createDetails
}
from
'@/views/popup/RecentActivitiesPopup/index.js'
;
import
{
getRoleRecentActivityOneApi
}
from
'@/api/game'
;
import
{
getRoleHoLo
}
from
'@/api/game'
;
import
{
mapState
}
from
'vuex'
;
export
default
{
name
:
'MarketingPanel'
,
components
:
{
RecentActivities
},
data
()
{
return
{
active
:
true
,
recentActivitiesPopupInstance
:
null
,
//近期要开模块弹框
recentInfo
:
{},
roleInfoList
:
[],
};
},
computed
:
{
...
mapState
(
'game'
,
[
'accountSelect'
]),
popupTitle
()
{
const
findItem
=
this
.
roleInfoList
.
find
(
(
item
)
=>
item
.
role_id
==
this
.
recentInfo
.
role_id
);
if
(
findItem
)
{
return
`
${
findItem
.
role_name
}
-
${
findItem
.
server_name
}
-
${
findItem
.
recharge_total
}
元`
;
}
return
;
},
},
methods
:
{
async
queryGetRoleHoLo
()
{
const
{
data
}
=
await
getRoleHoLo
({
page_size
:
100
,
page
:
1
,
member_id
:
this
.
accountSelect
,
search_type
:
'list'
,
});
this
.
roleInfoList
=
data
.
data
;
},
handleClick
()
{
this
.
active
=
!
this
.
active
;
},
async
getRoleData
()
{
const
{
data
}
=
await
getRoleRecentActivityOneApi
({
member_id
:
this
.
accountSelect
,
});
this
.
recentInfo
=
data
.
data
;
},
},
created
()
{
this
.
getRoleData
();
this
.
queryGetRoleHoLo
();
},
mounted
()
{
this
.
recentActivitiesPopupInstance
=
createDetails
({
gameUserInfoInject
:
this
.
gameUserInfoInject
,
});
},
beforeDestroy
()
{
this
.
recentActivitiesPopupInstance
.
destroy
();
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.item
{
width
:
100%
;
height
:
auto
;
font-size
:
14px
;
padding
:
16px
;
font-weight
:
400
;
color
:
#333333
;
padding
:
10px
0
;
transition
:
all
0.5s
;
position
:
relative
;
cursor
:
pointer
;
.label
{
font-size
:
14px
;
color
:
#999999
;
font-weight
:
500
;
margin-right
:
8px
;
}
.tag-icon
{
cursor
:
pointer
;
font-size
:
14px
;
color
:
#333333
;
margin-right
:
8px
;
}
}
.refreshListActive
{
animation
:
rotate
0.5s
linear
infinite
;
}
.refreshList
{
color
:
#3491fa
;
cursor
:
pointer
;
font-size
:
18px
;
}
</
style
>
src/views/userInfo/components/gameInfo/gameUserInfo.vue
浏览文件 @
adecf774
<
template
>
<
template
>
<div
class=
"gameUserDetails"
>
<div
class=
"gameUserDetails"
>
<!-- 智能标签 -->
<!-- 智能标签 -->
<div
class=
"item rowFlex columnCenter"
>
<div
class=
"item rowFlex columnCenter"
>
<div
class=
"rowFlex columnCenter"
>
<span
class=
"label"
style=
"min-width: 60px"
>
智能标签:
</span>
<p
class=
"text"
>
<el-tag
v-for=
"(item, index) in chatUserDetails.intelligence_tag_group"
:key=
"index"
style=
"margin-right: 5px; margin-bottom: 5px"
>
{{
item
.
name
}}
</el-tag>
</p>
</div>
<el-popover
placement=
"top"
trigger=
"hover"
content=
"手动更新当前用户的智能标签,每个用户半个小时仅能更新一次"
>
<i
slot=
"reference"
class=
"el-icon-refresh refreshList"
:class=
"isRefresh ? 'refreshListActive' : ''"
@
click=
"refreshTag"
></i>
</el-popover>
</div>
<ZyouTag
:game-user-info=
"gameUserInfo"
:account-select=
"accountSelect"
/>
<div
v-if=
"accountSelect && accountSelect !== '' && gameUserInfo.username"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"rowFlex columnCenter"
>
<span
class=
"label"
style=
"min-width:60px;"
>
智能标签:
</span>
<span
class=
"label"
>
账号:
</span>
<p
class=
"text"
>
<p
class=
"text"
>
{{
gameUserInfo
.
username
}}
</p>
<el-tag
v-for=
"(item,index) in chatUserDetails.intelligence_tag_group"
:key=
"index"
style=
"margin-right:5px;margin-bottom:5px;"
>
{{
item
.
name
}}
</el-tag>
<span
v-if=
"gameUserInfo.account_type == 2"
class=
"account_type"
</p>
>
内
</span
>
</div>
</div>
<el-popover
placement=
"top"
trigger=
"hover"
content=
"手动更新当前用户的智能标签,每个用户半个小时仅能更新一次"
>
<i
slot=
"reference"
class=
"el-icon-refresh refreshList"
:class=
"isRefresh?'refreshListActive':''"
@
click=
"refreshTag"
></i>
</el-popover>
</div>
</div>
<
ZyouTag
:game-user-info=
"gameUserInfo"
:account-select=
"accountSelect"
/
>
<
!-- 营销面板 --
>
<
div
v-if=
"accountSelect && accountSelect!=='' && gameUserInfo.username"
>
<
MarketingPanel
/
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<!-- 充值金额 --
>
<div
class=
"rowFlex columnCenter
"
>
<div
class=
"item rowFlex columnCenter spaceBetween
"
>
<span
class=
"label"
>
账号:
</span
>
<div
class=
"rowFlex columnCenter"
>
<p
class=
"text"
>
{{
gameUserInfo
.
username
}}
</p>
<span
v-if=
"gameUserInfo.account_type==2"
class=
"account_type"
>
内
</span>
<span
class=
"label"
>
充值金额:
</span>
<
/div
>
<
p
class=
"text"
>
{{
gameUserInfo
.
real_recharge_total
}}
</p
>
</div>
</div>
<!-- 充值金额 -->
</div>
<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"
>
{{
gameUserInfo
.
real_recharge_total
}}
</p>
<p
class=
"text"
>
{{
change_user
==
1
?
'是'
:
'否'
}}
</p>
</div>
<el-popconfirm
confirm-button-text=
"确定"
cancel-button-text=
"取消"
icon=
"el-icon-info"
title=
"是否切换易主状态"
@
confirm=
"changeUserFn"
>
<!-- changeUser -->
<div
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
>
<p>
<i
class=
"el-icon-sort-down"
></i>
</p>
<p>
<i
class=
"el-icon-sort-up"
></i>
</p>
</div>
</el-popconfirm>
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<span
class=
"label"
>
是否易主:
</span>
<div
class=
"rowFlex columnCenter"
>
<p
class=
"text"
>
{{
change_user
==
1
?
'是'
:
'否'
}}
</p>
<span
class=
"label"
>
白名单:
</span>
<el-popconfirm
<p
class=
"text"
>
{{
change_name
==
1
?
'是'
:
'否'
}}
</p>
confirm-button-text=
"确定"
<el-popconfirm
cancel-button-text=
"取消"
confirm-button-text=
"确定"
icon=
"el-icon-info"
cancel-button-text=
"取消"
title=
"是否切换易主状态"
icon=
"el-icon-info"
@
confirm=
"changeUserFn"
title=
"是否切换白名单状态"
>
@
confirm=
"changeNameFn"
<!-- changeUser -->
>
<div
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
>
<div
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
>
<p>
<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>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<span
class=
"label"
>
白名单:
</span>
<div
class=
"rowFlex columnCenter"
>
<p
class=
"text"
>
{{
change_name
==
1
?
'是'
:
'否'
}}
</p>
<span
class=
"label"
>
异常账号:
</span>
<el-popconfirm
<p
class=
"text"
>
{{
change_risk
==
1
?
'是'
:
'否'
}}
</p>
confirm-button-text=
"确定"
<el-popconfirm
cancel-button-text=
"取消"
confirm-button-text=
"确定"
icon=
"el-icon-info"
cancel-button-text=
"取消"
title=
"是否切换白名单状态"
icon=
"el-icon-info"
@
confirm=
"changeNameFn"
title=
"是否切换账号异常状态"
@
confirm=
"changeRiskFn"
>
<div
v-if=
"change_risk == 0"
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
>
>
<div
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
>
<p>
<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>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div>
<div
class=
"rowFlex columnCenter"
>
<div
<span
class=
"label"
>
异常账号:
</span>
v-if=
"gameUserInfo.role_info && gameUserInfo.role_info.role_level"
<p
class=
"text"
>
{{
change_risk
==
1
?
'是'
:
'否'
}}
</p>
class=
"item rowFlex columnCenter spaceBetween"
<el-popconfirm
>
confirm-button-text=
"确定"
<div
class=
"rowFlex columnCenter"
>
cancel-button-text=
"取消"
<span
class=
"label"
>
等级:
</span>
icon=
"el-icon-info"
<p
class=
"text"
>
{{
gameUserInfo
.
role_info
.
role_level
}}
</p>
title=
"是否切换账号异常状态"
@
confirm=
"changeRiskFn"
>
<div
v-if=
"change_risk==0"
slot=
"reference"
class=
"rowFlex columnCenter changeUser"
>
<p>
<i
class=
"el-icon-sort-down"
></i>
</p>
<p>
<i
class=
"el-icon-sort-up"
></i>
</p>
</div>
</el-popconfirm>
</div>
</div>
</div>
<div
v-if=
"gameUserInfo.role_info && gameUserInfo.role_info.role_level "
class=
"item rowFlex columnCenter spaceBetween"
>
</div>
<div
class=
"rowFlex columnCenter"
>
<div
<span
class=
"label"
>
等级:
</span>
v-if=
"
<p
class=
"text"
>
{{
gameUserInfo
.
role_info
.
role_level
}}
</p>
gameUserInfo.role_info &&
</div>
gameUserInfo.role_info.trans_check_status_text
"
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"rowFlex columnCenter"
>
<span
class=
"label"
>
转端审核:
</span>
<p
class=
"text"
>
{{
gameUserInfo
.
role_info
.
trans_check_status_text
}}
</p>
</div>
</div>
<div
v-if=
"gameUserInfo.role_info && gameUserInfo.role_info.trans_check_status_text "
class=
"item rowFlex columnCenter spaceBetween"
>
</div
>
<div
class=
"rowFlex columnCenter
"
>
<div
class=
"item rowFlex columnCenter spaceBetween
"
>
<span
class=
"label"
>
转端审核:
</span
>
<div
class=
"rowFlex columnCenter"
>
<p
class=
"text"
>
{{
gameUserInfo
.
role_info
.
trans_check_status_text
}}
</p
>
<span
class=
"label"
>
近期是否被封禁:
</span
>
<
/div
>
<
p
class=
"text"
>
{{
gameUserInfo
.
is_banned
==
1
?
'是'
:
'否'
}}
</p
>
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div
>
<div
class=
"rowFlex columnCenter
"
>
<div
class=
"item rowFlex columnCenter spaceBetween
"
>
<span
class=
"label"
>
近期是否被封禁:
</span
>
<div
class=
"rowFlex columnCenter"
>
<p
class=
"text"
>
{{
gameUserInfo
.
is_banned
==
1
?
'是'
:
'否'
}}
</p
>
<span
class=
"label"
>
真实姓名:
</span
>
<
/div
>
<
p
class=
"text"
>
{{
gameUserInfo
.
real_name
}}
</p
>
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<span
class=
"label"
>
真实姓名:
</span>
<div
class=
"rowFlex columnCenter"
>
<p
class=
"text"
>
{{
gameUserInfo
.
real_name
}}
</p>
<span
class=
"label"
>
CP角色ID:
</span>
</div>
<p
v-if=
"gameUserInfo.role_info && gameUserInfo.role_info.cp_role_id"
class=
"text"
>
{{
gameUserInfo
.
role_info
.
cp_role_id
}}
</p>
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<span
class=
"label"
>
CP角色ID:
</span>
<div
class=
"rowFlex columnCenter"
>
<p
v-if=
"gameUserInfo.role_info && gameUserInfo.role_info.cp_role_id"
class=
"text"
>
{{
gameUserInfo
.
role_info
.
cp_role_id
}}
</p>
<span
class=
"label"
>
是否愿意转端:
</span>
</div>
<p
class=
"text"
>
<el-radio-group
v-model=
"chatUserDetails.transferred"
@
change=
"toTransfer"
>
<el-radio
:label=
"0"
>
是
</el-radio>
<el-radio
:label=
"1"
>
否
</el-radio>
</el-radio-group>
</p>
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"item rowFlex columnCenter"
>
<span
class=
"label"
>
是否愿意转端:
</span>
<div
class=
"rowFlex columnCenter"
>
<p
class=
"text"
>
<span
class=
"label"
>
手机号:
</span>
<el-radio-group
v-model=
"chatUserDetails.transferred"
@
change=
"toTransfer"
>
<p
v-if=
"!showUserMobile"
class=
"text"
>
{{
gameUserInfo
.
mobile
}}
</p>
<el-radio
:label=
"0"
>
是
</el-radio>
<el-radio
:label=
"1"
>
否
</el-radio>
</el-radio-group>
</p>
</div>
</div>
</div>
<div
class=
"item rowFlex columnCenter"
>
<el-input
<div
class=
"rowFlex columnCenter"
>
v-if=
"showUserMobile"
<span
class=
"label"
>
手机号:
</span>
v-model=
"newMobileValue"
<p
v-if=
"!showUserMobile"
class=
"text"
>
{{
gameUserInfo
.
mobile
}}
</p>
style=
"width: 120px; margin-left: 10px"
</div>
@
change=
"changeUserMobile"
<el-input
v-if=
"showUserMobile"
v-model=
"newMobileValue"
style=
"width: 120px; margin-left: 10px"
@
change=
"changeUserMobile"
@
blur=
"showUserMobile = false"
></el-input>
@
blur=
"showUserMobile = false"
<!-- 暂时禁止用户修改手机号 -->
></el-input>
<i
class=
"el-icon-edit icon"
style=
"font-size: 14px"
@
click=
"editUserMobile"
></i>
<!-- 暂时禁止用户修改手机号 -->
<i
class=
"el-icon-edit icon"
style=
"font-size: 14px"
@
click=
"editUserMobile"
></i>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"rowFlex columnCenter"
>
<span
class=
"label"
>
注册游戏:
</span>
<p
class=
"text"
>
{{
gameUserInfo
.
reg_game_name
}}
</p>
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div
>
<div
class=
"rowFlex columnCenter
"
>
<div
class=
"item rowFlex columnCenter spaceBetween
"
>
<span
class=
"label"
>
注册游戏:
</span
>
<div
class=
"rowFlex columnCenter"
>
<p
class=
"text"
>
{{
gameUserInfo
.
reg_game_name
}}
</p
>
<span
class=
"label"
>
主游戏:
</span
>
<
/div
>
<
p
class=
"text"
>
{{
gameUserInfo
.
main_game_name
}}
</p
>
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div
>
<div
class=
"rowFlex columnCenter
"
>
<div
class=
"item rowFlex columnCenter spaceBetween
"
>
<span
class=
"label"
>
主游戏:
</span
>
<div
class=
"rowFlex columnCenter"
>
<p
class=
"text"
>
{{
gameUserInfo
.
main_game_name
}}
</p
>
<span
class=
"label"
>
登录系统:
</span
>
<
/div
>
<
p
class=
"text"
>
{{
gameUserInfo
.
last_login_os
}}
</p
>
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div>
<div
v-if=
"
gameUserInfo.service_wechat_number_info &&
gameUserInfo.service_wechat_number_info.length > 0
"
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"rowFlex columnCenter"
style=
"width: 100%"
>
<span
class=
"label"
>
客服微信号:
</span>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"rowFlex columnCenter"
>
<span
class=
"label"
>
登录系统:
</span>
<!-- 显示第一个微信号 -->
<p
class=
"text"
>
{{
gameUserInfo
.
last_login_os
}}
</p>
</div>
</div>
<div
v-if=
"gameUserInfo.service_wechat_number_info && gameUserInfo.service_wechat_number_info.length>0"
class=
"item rowFlex columnCenter spaceBetween"
>
<div
class=
"rowFlex columnCenter"
style=
"width:100%;"
>
<span
class=
"label"
>
客服微信号:
</span>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"rowFlex columnCenter"
>
<!-- 显示第一个微信号 -->
<p
class=
"hidden wxName"
>
<div
class=
"rowFlex columnCenter"
>
{{
<p
class=
"hidden wxName"
>
{{
gameUserInfo
.
service_wechat_number_info
[
0
].
service_wechat_number_name
}}
(
{{
gameUserInfo
.
service_wechat_number_info
[
0
].
service_type_name
}}
)
</p>
gameUserInfo
.
service_wechat_number_info
[
0
]
<span
class=
"bradge"
>
{{
gameUserInfo
.
service_wechat_number_info
[
0
].
type_name
}}
</span>
.
service_wechat_number_name
<div
class=
"colorStatus rowFlex columnCenter"
style=
"margin-left: 10px;"
>
}}
(
{{
<span
v-if=
"gameUserInfo.service_wechat_number_info[0].loss_status==1"
class=
"fail"
>
{{
gameUserInfo
.
service_wechat_number_info
[
0
].
loss_status_text
}}
</span>
gameUserInfo
.
service_wechat_number_info
[
0
].
service_type_name
</div>
}}
)
</p>
<span
class=
"bradge"
>
{{
gameUserInfo
.
service_wechat_number_info
[
0
].
type_name
}}
</span>
<div
class=
"colorStatus rowFlex columnCenter"
style=
"margin-left: 10px"
>
<span
v-if=
"
gameUserInfo.service_wechat_number_info[0].loss_status == 1
"
class=
"fail"
>
{{
gameUserInfo
.
service_wechat_number_info
[
0
].
loss_status_text
}}
</span
>
</div>
</div>
<!-- 如果有多个,显示 +n -->
</div>
<div
v-if=
"gameUserInfo.service_wechat_number_info.length > 1"
>
<!-- 如果有多个,显示 +n -->
<el-popover
<div
v-if=
"gameUserInfo.service_wechat_number_info.length > 1"
>
placement=
"top"
<el-popover
placement=
"top"
trigger=
"hover"
width=
"300"
>
trigger=
"hover"
<div
width=
"300"
v-for=
"(
item, index
) in gameUserInfo.service_wechat_number_info.slice(1)"
:key=
"index"
class=
"rowFlex columnCenter"
style=
"margin-bottom: 10px"
>
>
<div
v-for=
"(item,index) in gameUserInfo.service_wechat_number_info.slice(1)"
:key=
"index"
class=
"rowFlex columnCenter"
style=
"margin-bottom:10px;"
>
<p
class=
"hidden wxName"
>
<p
class=
"hidden wxName"
>
{{
item
.
service_wechat_number_name
}}
(
{{
item
.
service_type_name
}}
)
</p>
{{
item
.
service_wechat_number_name
}}
(
{{
<span
class=
"bradge"
>
{{
item
.
type_name
}}
</span>
item
.
service_type_name
<div
class=
"colorStatus rowFlex columnCenter"
style=
"margin-left: 10px;"
>
}}
)
<span
v-if=
"item.loss_status==1"
class=
"fail"
>
{{
item
.
loss_status_text
}}
</span>
</p>
</div>
<span
class=
"bradge"
>
{{
item
.
type_name
}}
</span>
<div
class=
"colorStatus rowFlex columnCenter"
style=
"margin-left: 10px"
>
<span
v-if=
"item.loss_status == 1"
class=
"fail"
>
{{
item
.
loss_status_text
}}
</span>
</div>
</div>
<el-button
slot=
"reference"
type=
"text"
style=
"font-size: 14px;"
>
+
{{
gameUserInfo
.
service_wechat_number_info
.
length
-
1
}}
</el-button>
</div>
</el-popover>
<el-button
slot=
"reference"
type=
"text"
style=
"font-size: 14px"
</div>
>
+
{{
gameUserInfo
.
service_wechat_number_info
.
length
-
1
}}
</el-button
>
</el-popover>
</div>
</div>
</div>
</div>
</div>
</div>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
</div>
<div
class=
"rowFlex columnCenter"
>
<div
class=
"item rowFlex columnCenter spaceBetween"
>
<span
class=
"label"
>
注册时间:
</span>
<div
class=
"rowFlex columnCenter"
>
<p
class=
"text"
>
{{
moment
(
gameUserInfo
.
reg_time
*
1000
).
format
(
'YYYY-MM-DD'
)
}}
</p>
<span
class=
"label"
>
注册时间:
</span>
</div>
<p
class=
"text"
>
{{
moment
(
gameUserInfo
.
reg_time
*
1000
).
format
(
'YYYY-MM-DD'
)
}}
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</
template
>
</div>
<
script
>
</
template
>
import
{
bindMobile
,
getMemberLabel
,
editMemberLabel
}
from
'@/api/game'
<
script
>
import
{
mapState
,
mapMutations
}
from
'vuex'
import
{
bindMobile
,
getMemberLabel
,
editMemberLabel
}
from
'@/api/game'
;
import
{
toTransfer
,
syncSessionIntelTag
}
from
'@/api/works'
import
{
mapState
,
mapMutations
}
from
'vuex'
;
import
moment
from
'moment'
import
{
toTransfer
,
syncSessionIntelTag
}
from
'@/api/works'
;
import
ZyouTag
from
'./ZyouTag.vue'
import
MarketingPanel
from
'./MarketingPanel.vue'
;
import
{
debounce
}
from
'@/utils'
import
moment
from
'moment'
;
export
default
{
import
ZyouTag
from
'./ZyouTag.vue'
;
name
:
'gameUserInfo'
,
import
{
debounce
}
from
'@/utils'
;
components
:
{
export
default
{
ZyouTag
name
:
'gameUserInfo'
,
},
components
:
{
props
:
[
'gameUserInfo'
,
'chatUserDetails'
],
ZyouTag
,
data
()
{
MarketingPanel
,
return
{
},
moment
,
props
:
[
'gameUserInfo'
,
'chatUserDetails'
],
showUserMobile
:
false
,
data
()
{
change_user
:
0
,
return
{
change_name
:
0
,
moment
,
change_risk
:
0
,
showUserMobile
:
false
,
change_appraisal
:
0
,
change_user
:
0
,
newMobileValue
:
''
,
change_name
:
0
,
isRefresh
:
false
,
change_risk
:
0
,
showWxNumber
:
true
change_appraisal
:
0
,
}
newMobileValue
:
''
,
},
isRefresh
:
false
,
computed
:
{
showWxNumber
:
true
,
...
mapState
(
'game'
,
[
'accountSelect'
])
};
},
computed
:
{
...
mapState
(
'game'
,
[
'accountSelect'
]),
},
watch
:
{
accountSelect
:
{
handler
:
debounce
(
function
(
newVal
,
oldVal
)
{
if
(
newVal
&&
newVal
!==
''
&&
newVal
!==
oldVal
)
{
this
.
getMemberLabel
();
}
},
200
),
immediate
:
false
,
},
},
watch
:
{
},
accountSelect
:
{
mounted
()
{
handler
:
debounce
(
function
(
newVal
,
oldVal
)
{
this
.
$nextTick
(()
=>
{
if
(
newVal
&&
newVal
!==
""
&&
newVal
!==
oldVal
)
{
if
(
this
.
accountSelect
&&
this
.
accountSelect
!==
''
)
{
this
.
getMemberLabel
()
this
.
getMemberLabel
();
}
},
200
),
immediate
:
false
}
}
},
});
mounted
()
{
},
this
.
$nextTick
(()
=>
{
methods
:
{
if
(
this
.
accountSelect
&&
this
.
accountSelect
!==
''
)
{
getMemberLabel
()
{
this
.
getMemberLabel
()
const
data
=
{
member_id
:
this
.
accountSelect
,
label_type
:
[
2
,
3
,
4
,
6
],
};
getMemberLabel
(
data
).
then
((
res
)
=>
{
if
(
res
?.
data
?.
data
?.
length
>
0
)
{
const
change_user
=
res
.
data
.
data
.
find
(
(
item
)
=>
item
.
label_type
==
2
);
const
change_name
=
res
.
data
.
data
.
find
(
(
item
)
=>
item
.
label_type
==
3
);
const
change_risk
=
res
.
data
.
data
.
find
(
(
item
)
=>
item
.
label_type
==
4
);
// 风险用户
const
change_appraisal
=
res
.
data
.
data
.
find
(
(
item
)
=>
item
.
label_type
==
6
);
// 石锤用户
this
.
change_user
=
change_user
.
label_value
;
this
.
change_name
=
change_name
.
label_value
;
this
.
change_risk
=
change_risk
.
label_value
;
this
.
change_appraisal
=
change_appraisal
.
label_value
;
this
.
$emit
(
'changeAppraisal'
,
this
.
change_appraisal
);
}
else
{
this
.
change_user
=
0
;
this
.
change_name
=
0
;
this
.
change_risk
=
0
;
this
.
change_appraisal
=
0
;
this
.
$emit
(
'changeAppraisal'
,
this
.
change_appraisal
);
}
}
})
})
;
},
},
methods
:
{
// 白名单
getMemberLabel
()
{
changeNameFn
()
{
const
data
=
{
const
data
=
{
member_id
:
this
.
accountSelect
,
member_id
:
this
.
accountSelect
,
label_type
:
[
2
,
3
,
4
,
6
]
create_user
:
this
.
cser_name
,
label_type
:
3
,
label_value
:
this
.
change_name
==
1
?
0
:
1
,
};
editMemberLabel
(
data
).
then
((
res
)
=>
{
if
(
res
.
status_code
==
1
)
{
this
.
$message
.
success
(
res
.
msg
);
this
.
change_name
==
1
?
(
this
.
change_name
=
0
)
:
(
this
.
change_name
=
1
);
}
}
getMemberLabel
(
data
).
then
(
res
=>
{
this
.
$emit
(
'update:show'
,
false
);
if
(
res
?.
data
?.
data
?.
length
>
0
)
{
});
const
change_user
=
res
.
data
.
data
.
find
(
item
=>
item
.
label_type
==
2
)
},
const
change_name
=
res
.
data
.
data
.
find
(
item
=>
item
.
label_type
==
3
)
// 异常账号
const
change_risk
=
res
.
data
.
data
.
find
(
item
=>
item
.
label_type
==
4
)
// 风险用户
changeRiskFn
()
{
const
change_appraisal
=
res
.
data
.
data
.
find
(
item
=>
item
.
label_type
==
6
)
// 石锤用户
const
data
=
{
this
.
change_user
=
change_user
.
label_value
member_id
:
this
.
accountSelect
,
this
.
change_name
=
change_name
.
label_value
create_user
:
this
.
cser_name
,
this
.
change_risk
=
change_risk
.
label_value
label_type
:
4
,
this
.
change_appraisal
=
change_appraisal
.
label_value
label_value
:
this
.
change_risk
==
0
?
1
:
0
,
this
.
$emit
(
'changeAppraisal'
,
this
.
change_appraisal
)
};
}
else
{
editMemberLabel
(
data
).
then
((
res
)
=>
{
this
.
change_user
=
0
if
(
res
.
status_code
==
1
)
{
this
.
change_name
=
0
this
.
$message
.
success
(
res
.
msg
);
this
.
change_risk
=
0
this
.
change_risk
==
1
this
.
change_appraisal
=
0
?
(
this
.
change_risk
=
0
)
this
.
$emit
(
'changeAppraisal'
,
this
.
change_appraisal
)
:
(
this
.
change_risk
=
1
);
}
})
},
// 白名单
changeNameFn
()
{
const
data
=
{
member_id
:
this
.
accountSelect
,
create_user
:
this
.
cser_name
,
label_type
:
3
,
label_value
:
this
.
change_name
==
1
?
0
:
1
}
editMemberLabel
(
data
).
then
((
res
)
=>
{
if
(
res
.
status_code
==
1
)
{
this
.
$message
.
success
(
res
.
msg
)
this
.
change_name
==
1
?
this
.
change_name
=
0
:
this
.
change_name
=
1
}
this
.
$emit
(
'update:show'
,
false
)
})
},
// 异常账号
changeRiskFn
()
{
const
data
=
{
member_id
:
this
.
accountSelect
,
create_user
:
this
.
cser_name
,
label_type
:
4
,
label_value
:
this
.
change_risk
==
0
?
1
:
0
}
editMemberLabel
(
data
).
then
((
res
)
=>
{
if
(
res
.
status_code
==
1
)
{
this
.
$message
.
success
(
res
.
msg
)
this
.
change_risk
==
1
?
this
.
change_risk
=
0
:
this
.
change_risk
=
1
}
this
.
$emit
(
'update:show'
,
false
)
})
},
changeUserFn
()
{
const
data
=
{
member_id
:
this
.
accountSelect
,
create_user
:
this
.
cser_name
,
label_type
:
2
,
label_value
:
this
.
change_user
==
1
?
0
:
1
}
editMemberLabel
(
data
).
then
((
res
)
=>
{
if
(
res
.
status_code
==
1
)
{
this
.
$message
.
success
(
res
.
msg
)
this
.
change_user
==
1
?
this
.
change_user
=
0
:
this
.
change_user
=
1
}
this
.
$emit
(
'update:show'
,
false
)
})
},
toTransfer
()
{
const
data
=
{
external_userid
:
this
.
chatUserDetails
.
external_userid
,
userid
:
this
.
chatUserDetails
.
userid
,
transferred
:
this
.
chatUserDetails
.
transferred
}
}
toTransfer
(
data
).
then
(
res
=>
{
this
.
$emit
(
'update:show'
,
false
);
if
(
res
.
status_code
==
1
)
{
});
this
.
$message
.
success
(
res
.
msg
)
},
}
changeUserFn
()
{
})
const
data
=
{
},
member_id
:
this
.
accountSelect
,
// 修改用户手机号
create_user
:
this
.
cser_name
,
changeUserMobile
()
{
label_type
:
2
,
if
(
!
/^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
))
{
label_value
:
this
.
change_user
==
1
?
0
:
1
,
this
.
$message
.
warning
(
'请填写正确的手机号'
)
};
return
false
editMemberLabel
(
data
).
then
((
res
)
=>
{
if
(
res
.
status_code
==
1
)
{
this
.
$message
.
success
(
res
.
msg
);
this
.
change_user
==
1
?
(
this
.
change_user
=
0
)
:
(
this
.
change_user
=
1
);
}
}
this
.
gameUserInfo
.
mobile
=
this
.
newMobileValue
.
substr
(
0
,
3
)
+
'****'
+
this
.
newMobileValue
.
substr
(
7
)
this
.
$emit
(
'update:show'
,
false
);
this
.
showUserMobile
=
false
});
const
data
=
{
},
member_id
:
this
.
accountSelect
,
toTransfer
()
{
mobile
:
this
.
newMobileValue
const
data
=
{
external_userid
:
this
.
chatUserDetails
.
external_userid
,
userid
:
this
.
chatUserDetails
.
userid
,
transferred
:
this
.
chatUserDetails
.
transferred
,
};
toTransfer
(
data
).
then
((
res
)
=>
{
if
(
res
.
status_code
==
1
)
{
this
.
$message
.
success
(
res
.
msg
);
}
}
bindMobile
(
data
).
then
((
res
)
=>
{
});
if
(
res
.
status_code
==
1
)
{
},
this
.
$message
.
success
(
res
.
msg
)
// 修改用户手机号
}
changeUserMobile
()
{
})
if
(
},
!
/^1
((
3
[
0-9
])
|
(
4
[
1579
])
|
(
5
[
0-9
])
|
(
6
[
6
])
|
(
7
[
0-9
])
|
(
8
[
0-9
])
|
(
9
[
0-9
]))\d{8}
$/
.
test
(
editUserMobile
()
{
this
.
newMobileValue
this
.
showUserMobile
=
true
)
},
)
{
async
refreshTag
()
{
this
.
$message
.
warning
(
'请填写正确的手机号'
);
this
.
isRefresh
=
true
return
false
;
const
data
=
{
}
corp_id
:
this
.
chatUserDetails
.
corp_id
,
this
.
gameUserInfo
.
mobile
=
userid
:
this
.
chatUserDetails
.
userid
,
this
.
newMobileValue
.
substr
(
0
,
3
)
+
external_userid
:
this
.
chatUserDetails
.
external_userid
'****'
+
this
.
newMobileValue
.
substr
(
7
);
this
.
showUserMobile
=
false
;
const
data
=
{
member_id
:
this
.
accountSelect
,
mobile
:
this
.
newMobileValue
,
};
bindMobile
(
data
).
then
((
res
)
=>
{
if
(
res
.
status_code
==
1
)
{
this
.
$message
.
success
(
res
.
msg
);
}
}
try
{
});
const
res
=
await
syncSessionIntelTag
(
data
)
},
if
(
res
.
status_code
===
1
)
{
editUserMobile
()
{
if
(
res
.
data
.
is_can_sync
==
1
)
{
this
.
showUserMobile
=
true
;
this
.
$message
.
success
(
res
.
msg
)
},
this
.
$set
(
this
.
chatUserDetails
,
'intelligence_tag_group'
,
res
.
data
.
intel_tag
)
async
refreshTag
()
{
}
else
{
this
.
isRefresh
=
true
;
this
.
$message
.
warning
(
'每个用户半个小时仅能更新一次'
)
const
data
=
{
}
corp_id
:
this
.
chatUserDetails
.
corp_id
,
userid
:
this
.
chatUserDetails
.
userid
,
external_userid
:
this
.
chatUserDetails
.
external_userid
,
};
try
{
const
res
=
await
syncSessionIntelTag
(
data
);
if
(
res
.
status_code
===
1
)
{
if
(
res
.
data
.
is_can_sync
==
1
)
{
this
.
$message
.
success
(
res
.
msg
);
this
.
$set
(
this
.
chatUserDetails
,
'intelligence_tag_group'
,
res
.
data
.
intel_tag
);
}
else
{
this
.
$message
.
warning
(
'每个用户半个小时仅能更新一次'
);
}
}
}
catch
(
error
)
{
this
.
isRefresh
=
false
}
finally
{
this
.
isRefresh
=
false
}
}
}
catch
(
error
)
{
this
.
isRefresh
=
false
;
}
finally
{
this
.
isRefresh
=
false
;
}
}
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.gameUserDetails
{
width
:
100%
;
.changeUser
{
font-size
:
18px
;
transform
:
rotate
(
90deg
);
color
:
#3491fa
;
margin-left
:
10px
;
margin-top
:
-5px
;
:first-child
{
margin-right
:
-5px
;
}
}
}
}
</
script
>
.item
{
<
style
lang=
"scss"
scoped
>
.gameUserDetails
{
width
:
100%
;
width
:
100%
;
.changeUser{
height
:
auto
;
font-size
:
18px
;
font-size
:
14px
;
transform
:
rotate
(
90deg
);
font-weight
:
400
;
color
:
#3491FA
;
color
:
#333333
;
padding
:
5px
0
;
transition
:
all
0.5s
;
position
:
relative
;
cursor
:
pointer
;
.tableImage
{
width
:
40px
;
height
:
40px
;
border-radius
:
6px
;
margin-right
:
5px
;
}
.wxName
{
max-width
:
80%
;
}
.bradge
{
padding
:
2px
5px
;
border-radius
:
3px
;
background
:
#f4f4f5
;
color
:
#909399
;
margin-left
:
10px
;
margin-left
:
10px
;
margin-top
:
-5px
;
:first-child{
margin-right
:
-5px
;
}
}
}
.item
{
.showInputRemarkInput
{
width
:
100%
;
width
:
200px
;
height
:
auto
;
margin-left
:
10px
;
}
.label
{
color
:
#86909c
;
font-size
:
14px
;
font-size
:
14px
;
font-weight
:
400
;
}
.text
{
color
:
#333333
;
color
:
#333333
;
padding
:
5px
0
;
margin-left
:
3px
;
transition
:
all
0.5s
;
word-break
:
break-all
;
position
:
relative
;
max-width
:
calc
(
100%
-
20px
);
}
.icon
{
display
:
none
;
position
:
absolute
;
right
:
0
;
top
:
12px
;
}
.noBind
{
width
:
44px
;
height
:
22px
;
border-radius
:
4px
;
border
:
1px
solid
#3491fa
;
font-size
:
12px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#3491fa
;
margin-left
:
30px
;
cursor
:
pointer
;
cursor
:
pointer
;
.tableImage
{
}
width
:
40px
;
.tags
{
height
:
40px
;
width
:
250px
;
border-radius
:
6px
;
margin-left
:
10px
;
margin-right
:
5px
;
.tagsItem
{
}
width
:
250px
;
.wxName
{
max-width
:
80%
;
}
.bradge
{
padding
:
2px
5px
;
border-radius
:
3px
;
background
:
#f4f4f5
;
color
:
#909399
;
margin-left
:
10px
;
}
.showInputRemarkInput
{
width
:
200px
;
margin-left
:
10px
;
}
.label
{
color
:
#86909C
;
font-size
:
14px
;
}
.text
{
color
:
#333333
;
margin-left
:
3px
;
word-break
:
break-all
;
max-width
:
calc
(
100%
-
20px
);
}
.icon
{
display
:
none
;
position
:
absolute
;
right
:
0
;
top
:
12px
;
}
}
.noBind
{
.tag
{
width
:
44px
;
height
:
22px
;
height
:
22px
;
line-height
:
22px
;
padding
:
0
8px
;
background
:
#ffffff
;
border-radius
:
4px
;
border-radius
:
4px
;
border
:
1px
solid
#3491FA
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.2
)
;
font-size
:
12px
;
font-size
:
12px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
font-weight
:
400
;
color
:
#3491FA
;
color
:
#333333
;
margin-left
:
30px
;
margin-right
:
10px
;
cursor
:
pointer
;
margin-bottom
:
10px
;
}
.tags
{
width
:
250px
;
margin-left
:
10px
;
.tagsItem
{
width
:
250px
;
}
.tag
{
height
:
22px
;
line-height
:
22px
;
padding
:
0
8px
;
background
:
#ffffff
;
border-radius
:
4px
;
border
:
1px
solid
rgba
(
0
,
0
,
0
,
0.2
);
font-size
:
12px
;
font-family
:
PingFangSC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#333333
;
margin-right
:
10px
;
margin-bottom
:
10px
;
}
}
}
}
}
.item
:hover
.icon
{
display
:
block
;
}
.el-icon-sort-up
{
font-size
:
16px
;
}
}
}
.refreshList
{
.item
:hover
.icon
{
color
:
#3491FA
;
display
:
block
;
cursor
:
pointer
;
font-size
:
18px
;
margin-left
:
20px
;
}
}
.
refreshListActive
{
.
el-icon-sort-up
{
animation
:
rotate
0.5s
linear
infinite
;
font-size
:
16px
;
}
}
@keyframes
rotate
{
}
0
%
{
.refreshList
{
transform
:
rotate
(
0deg
);
color
:
#3491fa
;
}
cursor
:
pointer
;
100
%
{
font-size
:
18px
;
transform
:
rotate
(
360deg
);
margin-left
:
20px
;
}
}
.refreshListActive
{
animation
:
rotate
0.5s
linear
infinite
;
}
@keyframes
rotate
{
0
%
{
transform
:
rotate
(
0deg
);
}
}
</
style
>
100
%
{
<
style
>
transform
:
rotate
(
360deg
);
.wxName
{
}
max-width
:
80%
;
}
}
</
style
>
.bradge
{
<
style
>
padding
:
2px
5px
;
.wxName
{
border-radius
:
3px
;
max-width
:
80%
;
background
:
#f4f4f5
;
}
color
:
#909399
;
.bradge
{
margin-left
:
10px
;
padding
:
2px
5px
;
}
border-radius
:
3px
;
background
:
#f4f4f5
;
color
:
#909399
;
margin-left
:
10px
;
}
</
style
>
</
style
>
\ No newline at end of file
src/views/userInfo/userInfo.vue
浏览文件 @
adecf774
<
template
>
<
template
>
<div
class=
"userInfo-content"
>
<div
class=
"userInfo-content
relative"
id=
"recentActivitiesPopup
"
>
<el-tabs
v-model=
"activeTab"
class=
"user-tabs"
>
<el-tabs
v-model=
"activeTab"
class=
"user-tabs"
>
<el-tab-pane
label=
"客户信息"
name=
"info"
>
<el-tab-pane
label=
"客户信息"
name=
"info"
>
<Info
:chatUserDetails=
"chatUserInfo"
/>
<Info
:chatUserDetails=
"chatUserInfo"
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"角色信息"
name=
"role"
>
<el-tab-pane
label=
"角色信息"
name=
"role"
>
<template
#
label
v-if=
"totalNum"
>
<el-badge
:value=
"totalNum"
class=
"text-center"
>
<p>
角色信息
</p>
</el-badge>
</
template
>
<roleInfo
v-if=
"activeTab === 'role'"
/>
<roleInfo
v-if=
"activeTab === 'role'"
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"订单信息"
name=
"order"
>
<el-tab-pane
label=
"订单信息"
name=
"order"
>
...
@@ -17,52 +22,68 @@
...
@@ -17,52 +22,68 @@
</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
violationRecord
from
'@/views/ViolationRecord.vue'
import
violationRecord
from
'@/views/ViolationRecord.vue'
;
import
{
mapState
,
mapMutations
}
from
'vuex'
import
{
mapState
,
mapMutations
}
from
'vuex'
;
import
Cookies
from
'js-cookie'
import
{
createRoleRecentActivityNotPushNum
}
from
'@/views/hooks/useGetCount'
;
import
Cookies
from
'js-cookie'
;
export
default
{
export
default
{
name
:
'userInfo'
,
name
:
'userInfo'
,
components
:
{
components
:
{
Info
,
Info
,
roleInfo
,
roleInfo
,
orderList
,
orderList
,
violationRecord
violationRecord
,
},
},
mounted
()
{
mounted
()
{},
watch
:
{
async
accountSelect
(
newVal
)
{
await
this
.
initInstance
();
console
.
log
(
this
.
instance
.
getTotalNum
(),
'+++++++++++++++++++++++'
);
this
.
totalNum
=
this
.
instance
.
getTotalNum
();
},
},
},
data
()
{
data
()
{
return
{
return
{
activeTab
:
'info'
activeTab
:
'info'
,
}
instance
:
null
,
totalNum
:
0
,
};
},
},
computed
:
{
computed
:
{
...
mapState
(
'game'
,
[
'chatUserInfo'
]),
...
mapState
(
'game'
,
[
'chatUserInfo'
,
'accountSelect'
]),
},
},
created
()
{
created
()
{
// 初始化 vuex 中的值
// 初始化 vuex 中的值
},
},
mounted
()
{
mounted
()
{
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
this
.
initVuexValue
()
this
.
initVuexValue
()
;
})
})
;
},
},
methods
:
{
methods
:
{
...
mapMutations
(
'user'
,
[
'set_userInfo'
]),
...
mapMutations
(
'user'
,
[
'set_userInfo'
]),
initVuexValue
(){
async
initInstance
()
{
this
.
instance
=
await
createRoleRecentActivityNotPushNum
(
this
.
accountSelect
);
},
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
);
}
},
},
}
beforeDestroy
()
{
}
this
.
instance
.
destroy
();
},
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
...
@@ -74,29 +95,33 @@ export default {
...
@@ -74,29 +95,33 @@ export default {
.user-tabs
{
.user-tabs
{
width
:
100%
;
width
:
100%
;
::v-deep
.el-tabs__header
{
::v-deep
.el-tabs__header
{
margin-bottom
:
15px
;
margin-bottom
:
15px
;
padding
:
0
10px
;
padding
:
0
10px
;
}
}
::v-deep
.el-tabs__nav-wrap
::after
{
::v-deep
.el-tabs__nav-wrap
::after
{
height
:
1px
;
height
:
1px
;
}
}
::v-deep
.el-tabs__item
{
::v-deep
.el-tabs__item
{
height
:
40px
;
height
:
40px
;
line-height
:
40px
;
line-height
:
40px
;
font-size
:
14px
;
font-size
:
14px
;
}
}
::v-deep
.el-tabs__active-bar
{
::v-deep
.el-tabs__active-bar
{
height
:
2px
;
height
:
2px
;
}
}
::v-deep
.el-tabs__content
{
::v-deep
.el-tabs__content
{
height
:
calc
(
100%
-
55px
);
height
:
calc
(
100%
-
55px
);
}
}
}
}
}
}
::v-deep
.el-badge__content.is-fixed
{
top
:
8px
;
right
:
6px
;
}
</
style
>
</
style
>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论