提交 adecf774 作者: 施汉文

feat: 新增营销模块

上级 ded7e8cc
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);
});
});
} }
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,
});
}
...@@ -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
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,
};
}
<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>
<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>
// 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
<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>
<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>
<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>
<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
<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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论