提交 c6cdba8c 作者: 毛细亚

Merge branch '6.2' into 6.3

......@@ -15,7 +15,16 @@
ref="menuRef"
>
<el-menu-item v-for="item in menuList" :key="item.path" :index="item.path" class="mobile-menu-item">
{{ item.label }}
<!-- 任务列表菜单项显示红点 -->
<div v-if="item.path === '/taskList' && hasTaskRedDot" class="menu-item-with-badge">
<div class="task-badge">
<el-badge is-dot>
<span>{{ item.label }}</span>
</el-badge>
</div>
</div>
<!-- 普通菜单项 -->
<span v-else>{{ item.label }}</span>
</el-menu-item>
</el-menu>
......@@ -43,10 +52,11 @@
<script>
import bindUserList from '@/views/components/bindGameAccount/bindUserList.vue'
import { getToken } from '@/utils/auth'
import { mapState, mapMutations } from 'vuex'
import { mapState, mapMutations, mapActions } from 'vuex'
import Cookies from 'js-cookie'
import { getParams } from '@/utils/index'
import Debug from '@/components/debug.vue'
export default {
name: 'App',
components: {
......@@ -99,7 +109,8 @@ export default {
},
{
label: '任务列表',
path: '/taskList'
path: '/taskList',
hasRedDot: false // 红点状态
},
// {
// label: '通讯录',
......@@ -113,7 +124,12 @@ export default {
}
},
computed: {
...mapState('user', ['external_userid', 'token']),
...mapState('user', ['external_userid', 'token', 'userInfo']),
...mapState('game', ['taskData']),
// 计算任务列表是否需要显示红点
hasTaskRedDot() {
return this.taskData.user_task > 0 || this.taskData.account_task > 0
}
},
watch: {
'$route.path'(val) {
......@@ -125,6 +141,18 @@ export default {
}
console.log('路由变化:', val, '选中路径:', this.selectedPath)
},
// 监听用户信息变化,只在初始化时获取一次任务数据
userInfo: {
handler(newVal, oldVal) {
if (newVal && newVal.id && (!oldVal || !oldVal.id)) {
console.log('用户信息初始化完成,获取任务数据:', newVal)
// 只在用户信息第一次设置时获取任务数据
this.getTaskUnReadData()
}
},
deep: true,
immediate: true
},
// 监听 external_userid 的变化,确保界面及时更新
external_userid: {
handler(newVal) {
......@@ -181,6 +209,7 @@ export default {
methods: {
...mapMutations('user', ['set_userid', 'set_corp_id', 'set_token', 'set_cser_info', 'set_cser_id', 'set_cser_name', 'set_userInfo']),
...mapMutations('game', ['set_accountSelect']),
...mapActions('game', ['getTaskUnReadData']),
// 设置缓存
cacheCorp_id(corp_id) {
Cookies.set('corp_id', corp_id, { expires: 7 })
......@@ -205,23 +234,6 @@ export default {
handleSelect(key, keyPath) {
console.log('菜单选择:', key, keyPath, window.location.href)
},
initVuexValue(){
this.set_userid(Cookies.get('userid'))
this.set_corp_id(Cookies.get('corp_id'))
this.set_token(Cookies.get('token'))
this.set_cser_id(Cookies.get('cser_id'))
this.set_cser_name(Cookies.get('cser_name'))
const userinfo = {
cser_id:Cookies.get('cser_id'),
cser_name:Cookies.get('cser_name'),
username:Cookies.get('cser_name'),
id:Cookies.get('cser_id'),
}
this.set_userInfo(userinfo)
const cser_info = Cookies.get('cser_info')
console.log(Cookies.get('cser_id'),'cser_info',Cookies.get('cser_name'))
cser_info?this.set_cser_info(JSON.parse(cser_info)):this.set_cser_info({})
},
// 切换菜单展开收起状态
toggleMenu() {
this.isMenuExpanded = !this.isMenuExpanded
......@@ -366,4 +378,23 @@ export default {
body {
background: #f0f2f5;
}
/* 任务列表菜单项红点样式 */
.menu-item-with-badge {
display: inline-block;
}
.task-badge {
::v-deep .el-badge__content.is-dot {
top: 8px !important;
right: -5px !important;
}
}
/* 确保菜单项内容居中 */
.mobile-menu-item .menu-item-with-badge {
display: flex;
align-items: center;
justify-content: center;
}
</style>
import request from '@/utils/request'
import store from '@/store/index'
import Cookies from 'js-cookie'
const zw_user_id = Cookies.get('cser_id') || store.state.user.userInfo.id || store.state.user.cser_id
// 获取用户ID的函数,避免在模块加载时访问可能未初始化的 store
function getZwUserId() {
return Cookies.get('cser_id') ||
(store.state?.user?.userInfo?.id) ||
(store.state?.user?.cser_id)
}
// 游戏业务所属的接口信息
// 所属分组下拉
function returnApi(api){
......@@ -385,7 +391,7 @@ export function channelList(data) {
// 任务列表
export function taskIndex(data) {
return new Promise((resovle, reject) => {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
cross_systemRequest({
system: 'zhangyou',
api: '/operator_task/index',
......@@ -399,7 +405,7 @@ export function taskIndex(data) {
// 任务详情
export function taskDetails(data) {
return new Promise((resovle, reject) => {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
cross_systemRequest({
system: 'zhangyou',
api: '/operator_task/info',
......@@ -412,7 +418,7 @@ export function taskDetails(data) {
// 分配
export function taskAssign(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -426,7 +432,7 @@ export function taskAssign(data) {
// 完成任务
export function taskTrack(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -440,7 +446,7 @@ export function taskTrack(data) {
// 结果列表
export function taskRecord(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -454,7 +460,7 @@ export function taskRecord(data) {
// 备注
export function logsSave(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -468,7 +474,7 @@ export function logsSave(data) {
// 角色累充
export function RoleTodayOrder(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -481,7 +487,7 @@ export function RoleTodayOrder(data) {
}
// 用户充值
export function memberOrder(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -494,7 +500,7 @@ export function memberOrder(data) {
}
// 下拉加载
export function searchcondition(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -507,7 +513,7 @@ export function searchcondition(data) {
}
// 误操作列表
export function misoperationIndex(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -520,7 +526,7 @@ export function misoperationIndex(data) {
}
// 添加误操作
export function addErrorHandle(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -532,7 +538,7 @@ export function addErrorHandle(data) {
})
}
export function updateErrorHandle(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -545,7 +551,7 @@ export function updateErrorHandle(data) {
}
// 操作数量
export function numErrorHandle(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -558,7 +564,7 @@ export function numErrorHandle(data) {
}
// 操作数量新
export function operationCount(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -571,7 +577,7 @@ export function operationCount(data) {
}
// 任务消息读取
export function taskRead(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -584,7 +590,7 @@ export function taskRead(data) {
}
// 任务消息状态
export function taskReadStatus(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -598,7 +604,7 @@ export function taskReadStatus(data) {
// 撤回消息
export function cancelRefundRequest(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -612,7 +618,7 @@ export function cancelRefundRequest(data) {
// 举报列表
export function reportIndex(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -627,7 +633,7 @@ export function reportIndex(data) {
// 玩家举报
export function playerReport(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -642,7 +648,7 @@ export function playerReport(data) {
// 审批记录
export function reportProcess(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -656,7 +662,7 @@ export function reportProcess(data) {
// 撤销举报
export function reportCancel(data) {
data.zw_user_id = store.state.user.cser_id || store.state.user.userInfo.id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -670,7 +676,7 @@ export function reportCancel(data) {
// 新增举报
export function reportAdd(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -684,7 +690,7 @@ export function reportAdd(data) {
// 申诉列表
export function appealList(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -698,7 +704,7 @@ export function appealList(data) {
// 新增申诉
export function appealAdd(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -712,7 +718,7 @@ export function appealAdd(data) {
// 撤销申诉
export function appealCancel(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -726,7 +732,7 @@ export function appealCancel(data) {
// 申诉记录
export function appealProcess(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -739,7 +745,7 @@ export function appealProcess(data) {
}
// 玩家举报审批记录
export function gamerReportProcess(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -753,7 +759,7 @@ export function gamerReportProcess(data) {
// 角色列表Holo 实时性较高
export function getRoleHoLo(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -766,7 +772,7 @@ export function getRoleHoLo(data) {
}
// 角色列表 待请求
export function memberTaskStatus(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -780,7 +786,7 @@ export function memberTaskStatus(data) {
// 举报申请列表
export function report_request_list(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -793,7 +799,7 @@ export function report_request_list(data) {
}
// 举报申请驳回或者通过
export function report_request_approval(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -807,7 +813,7 @@ export function report_request_approval(data) {
// 游戏类型下的游戏列表 游戏类型:安卓 h5 ios
export function getTransferRecallGameList(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -820,7 +826,7 @@ export function getTransferRecallGameList(data) {
}
// 转端和召回 游戏类型列表
export function getGameConfig(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -834,7 +840,7 @@ export function getGameConfig(data) {
// 召回的时候染色
export function recallChannelSeq(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -848,7 +854,7 @@ export function recallChannelSeq(data) {
// 获取游戏信息
export function getGameInfo(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -861,7 +867,7 @@ export function getGameInfo(data) {
}
// 新增渠道
export function addChannel(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -874,7 +880,7 @@ export function addChannel(data) {
}
// 一键发送召回渠道链接
export function quickRecallChannelLink(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -887,7 +893,7 @@ export function quickRecallChannelLink(data) {
}
// 转端发送落地页
export function getLandingPageTransfer(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -901,7 +907,7 @@ export function getLandingPageTransfer(data) {
// 工作台关联客服
export function bindUserSelfAdd(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -914,7 +920,7 @@ export function bindUserSelfAdd(data) {
}
// 关联客服列表
export function bindUserList(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -927,7 +933,7 @@ export function bindUserList(data) {
}
// 新增关联客服
export function bindUserAdd(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -941,7 +947,7 @@ export function bindUserAdd(data) {
// 删除关联客服
export function bindUserDelete(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -955,7 +961,7 @@ export function bindUserDelete(data) {
// 调用掌游的日志中心
export function getSystemModelLog(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -969,7 +975,7 @@ export function getSystemModelLog(data) {
export function getMemberTransStatus(data) {
// 转端文档 获取W账号的转端状态 如果状态是 false 表示不允许转端 在工作台 发送游戏 里面转端里 点开发送的时候 提示 当前w账号不满足转端要求,请联系组长处理
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -982,7 +988,7 @@ export function getMemberTransStatus(data) {
}
export function getTaskTracer(data) {
// 获取运营任务的跟进人 参数 member_id
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -995,7 +1001,7 @@ export function getTaskTracer(data) {
}
// 用户触达 发送客服号添加消息的日志
export function getTaskTracerTouch(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1008,7 +1014,7 @@ export function getTaskTracerTouch(data) {
}
// 添加一条任务跟进记录
export function getTaskTracerTouchAdd(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1021,7 +1027,7 @@ export function getTaskTracerTouchAdd(data) {
}
// 审批组流程下拉
export function approval_group_flow_list(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1034,7 +1040,7 @@ export function approval_group_flow_list(data) {
}
// 审批人员表格
export function approval_group_flow_user(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1048,7 +1054,7 @@ export function approval_group_flow_user(data) {
// 保存转端提交
export function approval_group_flow_add(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1062,7 +1068,7 @@ export function approval_group_flow_add(data) {
// 转端申请列表
export function member_trans_request_list(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1076,7 +1082,7 @@ export function member_trans_request_list(data) {
// 转端申请审批记录
export function member_trans_request_process(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1090,7 +1096,7 @@ export function member_trans_request_process(data) {
// 转区列表
export function transfer_server_request_list(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1104,7 +1110,7 @@ export function transfer_server_request_list(data) {
// 转区申请
export function transfer_server_request_add(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1118,7 +1124,7 @@ export function transfer_server_request_add(data) {
// 转区申请节点
export function transfer_server_request_process(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1130,7 +1136,7 @@ export function transfer_server_request_process(data) {
})
}
export function getMainGameInfo(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1144,7 +1150,7 @@ export function getMainGameInfo(data) {
// 掌游标签搜索
export function roleLabelSearch(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1158,7 +1164,7 @@ export function roleLabelSearch(data) {
// 掌游标签列表
export function roleGetRoleLabel(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1171,7 +1177,7 @@ export function roleGetRoleLabel(data) {
}
// 编辑角色标签
export function editRoleLabel(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1185,7 +1191,7 @@ export function editRoleLabel(data) {
// 编辑角色标签
export function getRoleLabelCreate(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1197,7 +1203,7 @@ export function getRoleLabelCreate(data) {
})
}
export function ruleList(data) {
data.zw_user_id = zw_user_id
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
......@@ -1208,3 +1214,16 @@ export function ruleList(data) {
})
})
}
// 查询客服未完成任务
export function getTaskTotal(data) {
data.zw_user_id = getZwUserId()
return new Promise((resovle, reject) => {
cross_systemRequest({
system: 'zhangyou',
api: '/api/operator_task/getTaskTotal',
params: data
}).then((res) => {
resovle(res)
})
})
}
......@@ -2,6 +2,7 @@
// 管理公共的store
import { zyouBindMember } from '@/api/works'
import { getTaskTotal } from '@/api/game'
import Cookies from 'js-cookie'
// 从本地缓存获取accountSelect
......@@ -15,6 +16,13 @@ const state = {
chatUserInfo: {}, // 当前选中的用户的详情
viewLoading:false, // 查看用户详情的时候 加载状态
taskDetails: {}, // 任务详情
// 任务数据
taskData: {
user_task: 0,
account_task: 0,
operator_task: 0,
lastUpdateTime: null
},
}
const mutations = {
......@@ -38,6 +46,13 @@ const mutations = {
},
set_taskDetails(state, data) {
state.taskDetails = data
},
// 设置任务数据
set_taskData(state, data) {
state.taskData = {
...data,
lastUpdateTime: Date.now()
}
}
}
......@@ -62,6 +77,46 @@ const actions = {
})
})
},
// 获取任务数据
async getTaskUnReadData({ commit, rootState }) {
return new Promise( async (resolve, reject) => {
try {
// 确保用户信息存在
if (!rootState.user.userInfo || !rootState.user.userInfo.id) {
console.log('用户信息不存在,跳过任务数据获取')
return
}
const data = {
zw_user_id: rootState.user.userInfo.id
}
console.log('开始获取任务数据:', data)
const res = await getTaskTotal(data)
if (res.status_code === 1) {
// 使用真实的 API 响应数据
const responseData = res.data.data || {}
const taskData = {
user_task: responseData.user_num || 0,
account_task: responseData.member_num || 0,
operator_task: Number(responseData.user_num || 0) + Number(responseData.member_num || 0)
}
commit('set_taskData', taskData)
resolve(taskData)
return taskData
} else {
reject(res.msg)
console.error('获取任务数据失败:', res.msg)
}
} catch (error) {
reject(error)
console.error('获取任务数据异常:', error)
throw error
}
})
}
}
export default {
......
......@@ -76,7 +76,7 @@ const mutations = {
},
set_client_online_status(state, status) {
state.client_online_status = status
},
}
}
const actions = {
......
......@@ -50,8 +50,10 @@
<div
v-for="(items,indexs) in item.children"
:key="indexs"
class="gameListItem rowFlex columnCenter spaceBetween gameListItemAc"
class="gameListItemChange"
>
<p v-if="item.group_name" style="margin-left: 10px;" class="gameName">{{ item.group_name }}</p>
<div class="gameListItem rowFlex columnCenter spaceBetween gameListItemAc">
<p class="rowFlex columnCenter spaceBetween">
<el-popover
placement="top"
......@@ -85,6 +87,7 @@
@click="sendGameCode(items)"
>发送礼包码</el-button>
</div>
</div>
</div>
<div
v-else
......@@ -227,6 +230,7 @@
item.label = item.main_game_name + '/' + item.main_game_id
item.value = item.main_game_id
item.children = item.gift_package_list
item.group_name = item.gift_package_group_name
})
},
// 发送渠道
......@@ -349,6 +353,7 @@
.gameListItem {
width: 100%;
height: 40px;
padding-left: 20px;
.gameName{
max-width: 120px;
overflow: hidden;
......
......@@ -235,7 +235,7 @@
<layer
:show.sync="showLayer"
title="填写跟进结果"
width="400px"
width="320px"
@confirm="onConfirm"
>
<div class="editLayer">
......@@ -511,9 +511,13 @@
this.assionInfo = { ...this.assionInfo, ...this.todayOrder }
},
async taskRecord() {
const res = await taskRecord({ task_id: this.taskDetails.id })
const res = await taskRecord({ task_id: this.taskDetails.id,user_type:'' })
console.log(res.data.data, 'res.data.data')
this.remarks = res.data.data[0]
if(res.data.data.length > 0){
this.remarks = res.data.data[0].remarks
}else{
this.remarks = [{remark:''}]
}
},
async memberBindExternalUser() {
let member_list = []
......
......@@ -44,7 +44,7 @@
<el-form-item
label="跟进客服:"
>
<p class="text" style="margin-left: 10px;">{{ item.tracer_name }}</p>
<p class="text" style="margin-left: 10px;">{{ item.tracer_name || '--' }}</p>
</el-form-item>
<el-form-item
label="待维护日期:"
......@@ -167,6 +167,7 @@
</div>
<div
v-else-if="!loading && orderList.length == 0"
style="margin-top: 100px;"
class="noContent rowFlex allCenter"
>
<noContent />
......@@ -622,15 +623,13 @@
.money {
width: 100%;
height: auto;
padding-left: 10px;
.btns {
padding-right: 40px;
margin-right: 20px;
}
.btn {
background: #fff;
border-radius: 4px;
padding: 2px 5px;
margin-left: 10px;
font-size: 12px;
border: 1px solid rgba(0, 0, 0, 0.15);
color: #333333;
......@@ -729,6 +728,7 @@
color: #333333;
font-size: 14px;
font-weight: 400;
padding: 0 5px;
/* 单行显示省略号 */
overflow: hidden;
text-overflow: ellipsis;
......
......@@ -4,24 +4,17 @@
<el-tabs v-model="taskForm.type" @tab-click="taskTypeChange">
<el-tab-pane v-for="(item, index) in typeList" :key="index" :label="item.label" :name="item.value + ''">
<template slot="label">
<!-- 有数字 -->
<div v-if="item.redNum && item.redNum > 0">
<el-badge is-dot class="badgeItem">
<!-- 有红点数字显示 badge -->
<div v-if="item.redNum && item.redNum > 0" class="tab-label-with-badge">
<el-badge :value="item.redNum" class="badgeItem">
<span>{{ item.label }}</span>
</el-badge>
<!-- <el-badge
v-else
:value="item.redNum"
class="badgeItem"
>
<span>{{ item.label }}</span>
</el-badge> -->
</div>
<div v-else>
<span class="badgeLabel">{{ item.label }}</span>
<!-- 没有红点时正常显示标签 -->
<div v-else class="tab-label-normal">
<span>{{ item.label }}</span>
</div>
</template>
</el-tab-pane>
</el-tabs>
<!-- 运营任务 -->
......@@ -186,9 +179,10 @@ import {
taskIndex,
searchcondition,
reportCancel,
appealCancel
appealCancel,
getTaskTotal
} from '@/api/game'
import { getTaskUnReadData, clearTaskUnReadData } from '@/api/works'
import { clearTaskUnReadData } from '@/api/works'
import { mapState, mapMutations, mapActions } from 'vuex'
import mainGameSelect from '@/components/mainGame.vue'
import { removeDp } from '@/utils/index'
......@@ -215,7 +209,7 @@ export default {
},
},
computed: {
...mapState('game', ['taskDetails', 'accountSelect']),
...mapState('game', ['taskDetails', 'accountSelect', 'taskData']),
...mapState('user', ['userInfo', 'corp_id'])
},
components: {
......@@ -350,7 +344,6 @@ export default {
}
},
created() {
this.getTaskUnReadData()
this.reportForm.create_time_start = this.$moment().subtract(30, 'days').format('YYYY-MM-DD 00:00:00')
this.reportForm.create_time_end = this.$moment().format('YYYY-MM-DD 23:59:59')
this.reportForm.createTimeDate = [this.reportForm.create_time_start, this.reportForm.create_time_end]
......@@ -360,25 +353,25 @@ export default {
this.requstPlanList('')
},
mounted() {
// 进入任务列表页面时重新请求任务数据,刷新红点状态
const taskForm = window.sessionStorage.getItem('newTaskForm')
if (taskForm) {
const form = JSON.parse(taskForm)
!form.type || form.type == '' ? (form.type = '1') : form.type = form.type + ''
// if (form.assignment_time_start == '') {
// form.timeDate = [this.$moment().subtract(7, 'days').format('YYYY-MM-DD 00:00:00'), this.$moment().format('YYYY-MM-DD 23:59:59')]
// form.assignment_time_start = this.$moment().subtract(7, 'days').format('YYYY-MM-DD 00:00:00')
// form.assignment_time_end = this.$moment().format('YYYY-MM-DD 00:00:00')
// }
this.taskForm = form
}
this.requestList()
this.searchcondition()
this.requstApprovalList()
this.initializeWecom()
this.$nextTick(() => {
this.refreshTaskData()
})
},
methods: {
...mapActions('user', ['initWecom']),
...mapActions('game', ['getTaskUnReadData']),
...mapMutations('game', ['set_taskDetails']),
filterChange() {
this.pageInfo.page = 1
......@@ -395,23 +388,41 @@ export default {
console.error('❌ 企业微信 SDK 初始化失败:', error)
}
},
// 获取更新
getTaskUnReadData() {
let taskNum = {}
getTaskUnReadData().then(res => {
if (res.status_code === 1) {
taskNum = res.data
this.typeList.map(item => {
for (const key in taskNum) {
if (item.type == key) {
item.redNum = taskNum[key]
}
}
})
this.typeList[0].redNum = 0
this.$forceUpdate()
// 刷新任务数据
async refreshTaskData() {
try {
console.log('taskList.vue 刷新任务数据')
// 重新请求任务数据接口,更新 Vuex 状态
await this.getTaskUnReadData()
console.log('任务数据刷新成功')
// 更新本地显示(这里调用本地的方法来更新 typeList 显示)
this.updateLocalTaskDisplay()
} catch (error) {
console.error('刷新任务数据失败:', error)
}
},
// 更新本地任务显示
updateLocalTaskDisplay() {
// 直接使用 Vuex 中存储的任务数据
const taskData = this.taskData
console.log(taskData, 'taskData')
const taskNum = {
operator_task: taskData.operator_task || 0,
user_task: taskData.user_task || 0,
account_task: taskData.account_task || 0
}
// 更新 typeList 中的红点数量
this.typeList.forEach(item => {
// 重置红点数量
item.redNum = 0
// 根据任务类型设置红点数量
if (taskNum[item.type] && taskNum[item.type] > 0) {
item.redNum = taskNum[item.type]
}
})
this.$forceUpdate()
},
iconSort(type) {
if (type == 'top') {
......@@ -440,18 +451,9 @@ export default {
taskTypeChange() {
this.reportForm.create_time_start = this.$moment().subtract(30, 'days').format('YYYY-MM-DD 00:00:00')
this.reportForm.create_time_end = this.$moment().format('YYYY-MM-DD 23:59:59')
const tabItem = this.typeList.find((item) => item.value == this.taskForm.type)
this.loading = true
this.set_taskDetails({})
this.filterChange()
if (tabItem.redNum > 0) {
this.clearTaskUnReadData(tabItem.type)
}
},
// 清除红点
async clearTaskUnReadData(type) {
const res = await clearTaskUnReadData({ type: type })
this.getTaskUnReadData()
},
mainGameResult(data) {
this.taskForm.main_game_id = [data]
......@@ -857,12 +859,21 @@ export default {
}
.badgeItem {
::v-deep .is-dot {
top: 8px;
}
::v-deep .el-badge__content {
top: 8px;
top: 12px !important;
right: -2px !important;
}
::v-deep .el-badge__content.is-dot {
top: 10px !important;
right: -2px !important;
width: 8px !important;
height: 8px !important;
}
}
.tab-label-normal {
display: inline-block;
}
.badgeLabel {
......
......@@ -581,8 +581,8 @@ export default {
}
.label {
color: #999999;
}
color: #999999;
}
.text {
color: #333333;
......@@ -610,11 +610,11 @@ export default {
display: flex;
align-items: center;
flex-wrap: wrap;
}
}
::v-deep .el-form-item__label {
font-weight: normal;
color: #999999;
font-weight: normal;
color: #999999;
padding-right: 8px;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论