Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
company_app
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
毛细亚
company_app
Commits
e05c2707
提交
e05c2707
authored
6月 19, 2025
作者:
毛细亚
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
任务详情
上级
6f2c25cf
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
15 行增加
和
367 行删除
+15
-367
works.js
src/api/works.js
+1
-2
taskDetails.vue
src/views/components/taskList/taskDetails.vue
+4
-159
uesrTask.vue
src/views/components/taskList/uesrTask.vue
+0
-5
taskList.vue
src/views/taskList.vue
+10
-201
没有找到文件。
src/api/works.js
浏览文件 @
e05c2707
...
...
@@ -250,4 +250,4 @@ export function memberBindExternalUser(data) {
method
:
'post'
,
data
})
}
\ No newline at end of file
}
src/views/components/taskList/taskDetails.vue
浏览文件 @
e05c2707
...
...
@@ -4,7 +4,7 @@
:lock-scroll=
"true"
title=
"玩家申诉"
:visible=
"show"
size=
"
300px
"
size=
"
100%
"
:append-to-body=
"true"
@
close=
"close"
>
...
...
@@ -298,16 +298,6 @@
</el-form>
</div>
</layer>
<el-dialog
:visible
.
sync=
"dialogRemarkVisible"
append-to-body
title=
"查看大图"
custom-class=
"remake-dialog"
>
<div
class=
"remake-box"
>
<div
v-html=
"dialogRemake"
></div>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
...
...
@@ -319,9 +309,6 @@
RoleTodayOrder
,
taskDetails
,
taskTrack
,
reportProcess
,
appealProcess
,
gamerReportProcess
}
from
'@/api/game'
import
{
memberBindExternalUser
}
from
'@/api/works'
import
layer
from
'@/components/dialog.vue'
...
...
@@ -333,10 +320,9 @@
components
:
{
layer
},
props
:
[
'show'
,
'taskDetails'
],
props
:
[
'show'
],
data
()
{
return
{
memberView
:
{},
is_finished
:
false
,
loading
:
false
,
remarks
:
[],
...
...
@@ -348,14 +334,12 @@
assionInfo
:
{},
current
:
0
,
showLayer
:
false
,
dialogRemarkVisible
:
false
,
dialogRemake
:
''
,
webForm
:
{
trace_result
:
''
,
remark
:
''
,
abnormal_types
:
[]
},
approvalProcessActive
:
1
,
webFormRule
:
{
remark
:
[{
required
:
true
,
message
:
'请输入备注'
,
trigger
:
'blur'
}],
trace_result
:
[
...
...
@@ -391,43 +375,6 @@
{
label
:
'完成事件'
,
value
:
'finished_event'
},
{
label
:
'目标客服号'
,
value
:
'target_service_name'
}
],
reprotDetails
:
[
{
label
:
'主游戏'
,
value
:
'main_game_name'
},
{
label
:
'马甲包'
,
value
:
'game_name'
},
{
label
:
'账号'
,
value
:
'username'
},
{
label
:
'审批状态'
,
value
:
'approval_status_text'
},
{
label
:
'CP角色ID'
,
value
:
'cp_role_id'
},
{
label
:
'角色名称'
,
value
:
'role_name'
},
{
label
:
'区服'
,
value
:
'server_name'
},
{
label
:
'登记人'
,
value
:
'create_user'
}
],
// 举报人信息
userReportDetails
:
[
{
label
:
'主游戏'
,
value
:
'main_game_name'
},
{
label
:
'马甲包'
,
value
:
'game_name'
},
{
label
:
'账号'
,
value
:
'report_username'
},
{
label
:
'区服'
,
value
:
'report_server_name'
},
{
label
:
'CP角色ID'
,
value
:
'report_cp_role_id'
},
{
label
:
'角色名称'
,
value
:
'report_role_name'
},
{
label
:
'举报人角色累计充值金额'
,
value
:
'report_recharge_total_amount'
,
type
:
'money'
},
{
label
:
'举报人角色近一周充值'
,
value
:
'report_recharge_week_amount'
,
type
:
'money'
},
{
label
:
'登记时间'
,
value
:
'create_time'
},
{
label
:
'与被举报人关系'
,
value
:
'report_relationship_text'
},
// 只有 type =4 的时候 玩家举报才有
{
label
:
'审批状态'
,
value
:
'approval_status_text'
},
{
label
:
'登记人'
,
value
:
'create_user'
}
],
// 被举报人信息
userCanReportDetails
:
[
{
label
:
'主游戏'
,
value
:
'main_game_name'
},
{
label
:
'马甲包'
,
value
:
'game_name'
},
{
label
:
'账号'
,
value
:
'username'
},
{
label
:
'区服'
,
value
:
'server_name'
},
{
label
:
'CP角色ID'
,
value
:
'cp_role_id'
},
{
label
:
'角色名称'
,
value
:
'role_name'
},
{
label
:
'累计充值金额'
,
value
:
'recharge_total_amount'
,
type
:
'money'
},
{
label
:
'近一周充值金额'
,
value
:
'recharge_week_amount'
,
type
:
'money'
},
{
label
:
'违规操作类型'
,
value
:
'violation_type_text'
}
]
}
},
watch
:
{
...
...
@@ -483,38 +430,6 @@
this
.
taskTypeList
=
res
.
data
.
data
})
},
async
reportProcess
()
{
this
.
current
=
0
const
res
=
await
reportProcess
({
id
:
this
.
taskDetails
.
id
})
this
.
approvalProcessList
=
res
.
data
.
data
res
.
data
.
data
.
map
((
item
)
=>
{
if
(
item
.
approval_result
!==
'0'
&&
item
.
approval_result
!==
'2'
)
{
this
.
current
+=
1
}
})
},
// 玩家申诉
async
appealProcess
()
{
this
.
current
=
0
const
res
=
await
appealProcess
({
id
:
this
.
taskDetails
.
id
})
this
.
approvalProcessList
=
res
.
data
.
data
res
.
data
.
data
.
map
((
item
)
=>
{
if
(
item
.
approval_result
!==
'0'
&&
item
.
approval_result
!==
'2'
)
{
this
.
current
+=
1
}
})
},
// 玩家举报进度
async
gamerReportProcess
()
{
this
.
current
=
0
const
res
=
await
gamerReportProcess
({
id
:
this
.
taskDetails
.
id
})
this
.
approvalProcessList
=
res
.
data
.
data
res
.
data
.
data
.
map
((
item
)
=>
{
if
(
item
.
approval_result
!==
'0'
&&
item
.
approval_result
!==
'2'
)
{
this
.
current
+=
1
}
})
},
searchTrackList
()
{
const
data
=
{
type
:
'dictionaries'
,
...
...
@@ -571,70 +486,8 @@
}
})
},
// 玩家举报发起会话 成功发起会话后 直接选中角色信息举报记录tab 其中搜索条件 审批记录为待审批 申请方式为玩家登记
reportRequestSession
(
item
)
{
// 复用之前的发起会话逻辑
const
data
=
{
userid
:
item
.
userid
,
user_name
:
item
.
user
.
name
,
user_avatar
:
item
.
user
.
avatar
,
external_userid
:
item
.
external_userid
,
external_user_name
:
item
.
external_user
.
name
,
external_user_avatar
:
item
.
external_user
.
avatar
,
corp_id
:
item
.
corp_id
}
// 为了给掌游记录答问比 发起会话的时候需要记录任务的 id 然后会在会话列表中 返回任务 ID 在和用户聊天的时候 每次都把 任务的信息 通过 webscoket 发送给后端
item
.
task_id
=
data
.
task_id
=
this
.
taskDetails
.
id
item
.
task_type
=
data
.
task_type
=
this
.
taskDetails
.
plan_type
launchSession
(
data
).
then
((
res
)
=>
{
// 随机取一个 member_id
let
member_list
=
[]
if
(
this
.
assionInfo
.
members
?.
length
>
0
)
{
member_list
=
this
.
assionInfo
.
members
.
map
((
item
)
=>
item
.
member_id
)
}
else
{
member_list
=
[
this
.
assionInfo
.
member_id
]
}
if
(
member_list
.
length
>
0
)
{
const
index
=
Math
.
floor
(
Math
.
random
(
0
,
1
)
*
member_list
.
length
)
this
.
set_task_session_member_id
(
member_list
[
index
])
const
itemData
=
this
.
$clone
(
item
)
itemData
.
session_id
=
res
.
data
.
session_id
this
.
$emit
(
'taskSession'
,
itemData
,
'report'
)
}
})
},
requestSession
(
item
)
{
const
data
=
{
userid
:
item
.
userid
,
user_name
:
item
.
user
.
name
,
user_avatar
:
item
.
user
.
avatar
,
external_userid
:
item
.
external_userid
,
external_user_name
:
item
.
external_user
.
name
,
external_user_avatar
:
item
.
external_user
.
avatar
,
corp_id
:
item
.
corp_id
}
// 为了给掌游记录答问比 发起会话的时候需要记录任务的 id 然后会在会话列表中 返回任务 ID 在和用户聊天的时候 每次都把 任务的信息 通过 webscoket 发送给后端 通过 task_type 召回任务发送的时候 需要在工作台发送游戏渠道的时候 显示 一键发送渠道链接
item
.
task_id
=
data
.
task_id
=
this
.
taskDetails
.
id
item
.
task_type
=
data
.
task_type
=
this
.
taskDetails
.
plan_type
// this.taskDetails.plan_type == 7 ? data.task_id = this.taskDetails.id : ''
launchSession
(
data
).
then
((
res
)
=>
{
// 随机取一个 member_id
let
member_list
=
[]
if
(
this
.
assionInfo
.
members
?.
length
>
0
)
{
member_list
=
this
.
assionInfo
.
members
.
map
((
item
)
=>
item
.
member_id
)
}
else
{
member_list
=
[
this
.
assionInfo
.
member_id
]
}
if
(
member_list
.
length
>
0
)
{
const
index
=
Math
.
floor
(
Math
.
random
(
0
,
1
)
*
member_list
.
length
)
this
.
set_task_session_member_id
(
member_list
[
index
])
}
const
itemData
=
this
.
$clone
(
item
)
itemData
.
session_id
=
res
.
data
.
session_id
// this.taskDetails.plan_type == 7 ? itemData.task_id = this.taskDetails.id : ''
this
.
$emit
(
'taskSession'
,
itemData
)
})
console
.
log
(
item
,
'发起会话'
)
},
async
memberOrder
()
{
let
res
=
{}
...
...
@@ -653,19 +506,11 @@
},
async
memberBindExternalUser
()
{
let
member_list
=
[]
if
(
this
.
taskTypeSelect
==
4
)
{
// 玩家举报
if
(
this
.
assionInfo
.
members
?.
length
>
0
)
{
member_list
=
this
.
assionInfo
.
members
.
map
((
item
)
=>
item
.
report_member_id
)
}
else
{
member_list
=
[
this
.
assionInfo
.
report_member_id
]
}
}
else
{
if
(
this
.
assionInfo
.
members
?.
length
>
0
)
{
if
(
this
.
assionInfo
.
members
?.
length
>
0
)
{
member_list
=
this
.
assionInfo
.
members
.
map
((
item
)
=>
item
.
member_id
)
}
else
{
member_list
=
[
this
.
assionInfo
.
member_id
]
}
}
this
.
loading
=
true
if
(
member_list
.
length
===
0
)
{
return
false
...
...
src/views/components/taskList/uesrTask.vue
浏览文件 @
e05c2707
...
...
@@ -173,8 +173,6 @@
</div>
</div>
</div>
<!-- 任务详情 -->
<taskDetails
v-if=
"showTaskDetails"
:taskDetails=
"taskDetails"
/>
</div>
</template>
<
script
>
...
...
@@ -182,16 +180,13 @@
import
{
mapState
}
from
'vuex'
import
textEditor
from
'@/components/textEditor.vue'
import
noContent
from
'@/components/noContent.vue'
import
taskDetails
from
'./taskDetails.vue'
export
default
{
components
:
{
textEditor
,
noContent
,
taskDetails
},
data
()
{
return
{
showTaskDetails
:
false
,
isloadMore
:
true
,
loading
:
false
,
collapseValue
:
[
'1'
],
...
...
src/views/taskList.vue
浏览文件 @
e05c2707
...
...
@@ -110,21 +110,7 @@
</el-form-item>
</div>
</el-form>
<!-- <div class="filterChat rowFlex">
<div
ref="btnList"
class="btnList rowFlex columnCenter flexWarp"
>
<el-button
v-for="(item,index) in taskTypeList"
:key="index"
class="btnListScroll"
:class="item.value===plan_type?'itemActive':'btnItem'"
round
@click="handleClick(item)"
>{{ item.label || '' }}</el-button>
</div>
</div> -->
<div
v-if=
"taskForm.type == 1"
class=
"taskSort rowFlex columnCenter spaceBetween"
>
<p>
任务数:{{ taskListNum || 0 }}
</p>
<p
class=
"rowFlex columnCenter sortIcon"
>
...
...
@@ -185,48 +171,6 @@
<div
class=
"bottom"
>
分配时间:{{ item.assignment_time }}
</div>
</div>
</div>
<!-- 举报申请 玩家投诉 -->
<div
v-if=
"taskForm.type == 2 || taskForm.type == 3 || taskForm.type == 4"
class=
"scrollMain"
>
<div
v-for=
"(item, index) in taskList"
:key=
"index"
class=
"reportItem rowFlex spaceBetween columnCenter"
:class=
"item.id === taskDetails.id ? 'chatListItemActive' : ''"
@
click=
"selectTaskItem(item)"
>
<div
class=
"reportItemLeft"
>
<p>
{{ item.username }}
</p>
<p>
<span
class=
"label"
>
角色名称:
</span><span
class=
"value"
>
{{ item.role_name }}
</span>
</p>
<p>
<span
class=
"label"
>
累计充值:
</span><span
class=
"value"
>
{{ item.recharge_total_amount
}}
</span>
</p>
<p>
<span
class=
"label"
>
近一周充值:
</span><span
class=
"value"
>
{{ item.recharge_week_amount
}}
</span>
</p>
<p
v-if=
"taskForm.type == 2"
>
<span
class=
"label"
>
违规操作:
</span><span
class=
"value"
>
{{ item.violation_type_text
}}
</span>
</p>
<p
v-else-if=
"taskForm.type == 3"
>
<span
class=
"label"
>
违规操作:
</span><span
class=
"value"
>
{{ item.appeal_type_text }}
</span>
</p>
<p>
<span
class=
"label"
>
登记时间:
</span><span
class=
"value"
>
{{ item.create_time }}
</span>
</p>
</div>
<div
class=
"reportItemRight columnFlex columnCenter"
>
<el-button
v-if=
"item.approval_status == 1 && item.create_user_id == userInfo.id && taskForm.type != 4"
type=
"primary"
size=
"mini"
class=
"handleReport"
@
click=
"handleReport(item)"
>
撤销
</el-button>
<img
v-if=
"item.approval_status == 1"
:src=
"shenpi1"
class=
"icon"
/>
<img
v-else-if=
"item.approval_status == 2"
:src=
"shenpi2"
class=
"icon"
/>
<img
v-else-if=
"item.approval_status == 3"
:src=
"shenpi3"
class=
"icon"
/>
<img
v-else-if=
"item.approval_status == 4"
:src=
"shenpi4"
class=
"icon"
/>
<img
v-else-if=
"item.approval_status == 5"
:src=
"shenpi5"
class=
"icon"
/>
</div>
</div>
</div>
</div>
<noContent
v-if=
"taskList.length == 0"
/>
</div>
...
...
@@ -234,15 +178,13 @@
<div
class=
"taskListContent"
v-else-if=
"taskForm.type == 'user_task' || taskForm.type == 'account_task'"
>
<userTask
:taskForm=
"taskForm"
:activeType=
"taskForm.type"
/>
</div>
<taskDetails
v-if=
"showTaskDetails"
:show
.
sync=
"showTaskDetails"
/>
</div>
</template>
<
script
>
import
{
taskIndex
,
searchcondition
,
reportIndex
,
appealList
,
reportCancel
,
appealCancel
}
from
'@/api/game'
...
...
@@ -250,7 +192,6 @@ import { getTaskUnReadData, clearTaskUnReadData } from '@/api/works'
import
{
mapState
,
mapMutations
}
from
'vuex'
import
mainGameSelect
from
'@/components/mainGame.vue'
import
{
removeDp
}
from
'@/utils/index'
import
{
report_request_list
,
playerReport
}
from
'@/api/game'
import
selectDate
from
'@/components/selectDate.vue'
import
{
formatNumber
}
from
'@/utils/index'
import
shenpi1
from
'@/assets/icon/shenpi1.svg'
...
...
@@ -260,6 +201,7 @@ import shenpi4 from '@/assets/icon/shenpi4.svg'
import
shenpi5
from
'@/assets/icon/shenpi5.svg'
import
noContent
from
'@/components/noContent.vue'
import
userTask
from
'./components/taskList/uesrTask.vue'
import
taskDetails
from
'./components/taskList/taskDetails.vue'
export
default
{
props
:
{
...
...
@@ -280,11 +222,13 @@ export default {
mainGameSelect
,
selectDate
,
noContent
,
userTask
userTask
,
taskDetails
},
data
()
{
return
{
formatNumber
,
showTaskDetails
:
false
,
taskForm
:
{
type
:
'1'
,
status
:
''
,
...
...
@@ -347,21 +291,6 @@ export default {
type
:
'account_task'
,
value
:
'account_task'
},
// {
// label: '举报申请',
// type: 'report_request',
// value: '2'
// },
// {
// label: '玩家申诉',
// type: 'appeal_request',
// value: '3'
// },
// {
// label: '玩家举报',
// type: 'member_report_request',
// value: '4'
// }
],
taskList
:
[],
isMoreRecord
:
false
,
...
...
@@ -575,6 +504,7 @@ export default {
this
.
reportForm
.
role_name
=
value
},
selectTaskItem
(
item
)
{
this
.
showTaskDetails
=
true
this
.
set_taskDetails
(
item
)
},
handleClick
(
item
)
{
...
...
@@ -596,12 +526,6 @@ export default {
requestList
()
{
if
(
this
.
taskForm
.
type
==
1
)
{
this
.
taskIndex
()
}
else
if
(
this
.
taskForm
.
type
==
2
)
{
this
.
reportIndex
()
}
else
if
(
this
.
taskForm
.
type
==
3
)
{
this
.
appealList
()
}
else
if
(
this
.
taskForm
.
type
==
4
)
{
this
.
report_request_list
()
}
},
handleCurrentChange
(
val
)
{
...
...
@@ -701,9 +625,9 @@ export default {
}
else
{
this
.
taskList
=
removeDp
(
this
.
taskList
,
res
.
data
.
data
,
'id'
)
}
if
(
!
this
.
taskDetails
.
id
&&
this
.
taskList
.
length
>
0
)
{
this
.
set_taskDetails
(
this
.
taskList
[
0
])
}
//
if (!this.taskDetails.id && this.taskList.length > 0) {
//
this.set_taskDetails(this.taskList[0])
//
}
if
(
res
.
data
.
data
.
length
<
20
)
{
this
.
isMoreRecord
=
false
}
else
{
...
...
@@ -714,121 +638,6 @@ export default {
this
.
loading
=
false
}
},
// 举报列表
async
reportIndex
()
{
if
(
this
.
pageInfo
.
page
==
1
)
{
this
.
taskList
=
[]
}
const
{
username
,
role_name
,
approval_status
,
create_time_start
,
create_time_end
}
=
this
.
reportForm
const
{
id
}
=
this
.
userInfo
const
data
=
{
username
,
role_name
,
approval_status
,
customer_id
:
id
,
create_time_start
,
create_time_end
,
...
this
.
pageInfo
}
try
{
const
res
=
await
reportIndex
(
data
)
this
.
loading
=
false
if
(
this
.
pageInfo
.
page
==
1
)
{
this
.
taskList
=
res
.
data
.
data
}
else
{
this
.
taskList
=
removeDp
(
this
.
taskList
,
res
.
data
.
data
,
'id'
)
}
if
(
!
this
.
taskDetails
.
id
&&
this
.
taskList
.
length
>
0
)
{
this
.
set_taskDetails
(
this
.
taskList
[
0
])
}
if
(
res
.
data
.
data
.
length
<
20
)
{
this
.
isMoreRecord
=
false
}
else
{
this
.
isMoreRecord
=
true
}
}
catch
(
error
)
{
this
.
loading
=
false
}
},
// 审核列表
async
appealList
()
{
if
(
this
.
pageInfo
.
page
==
1
)
{
this
.
taskList
=
[]
}
const
{
username
,
role_name
,
approval_status
,
create_time_start
,
create_time_end
}
=
this
.
reportForm
const
{
id
}
=
this
.
userInfo
const
data
=
{
username
,
role_name
,
approval_status
,
customer_id
:
id
,
create_time_start
,
create_time_end
,
...
this
.
pageInfo
}
try
{
const
res
=
await
appealList
(
data
)
this
.
loading
=
false
if
(
this
.
pageInfo
.
page
==
1
)
{
this
.
taskList
=
res
.
data
.
data
}
else
{
this
.
taskList
=
removeDp
(
this
.
taskList
,
res
.
data
.
data
,
'id'
)
}
if
(
!
this
.
taskDetails
.
id
&&
this
.
taskList
.
length
>
0
)
{
this
.
set_taskDetails
(
this
.
taskList
[
0
])
}
if
(
res
.
data
.
data
.
length
<
20
)
{
this
.
isMoreRecord
=
false
}
else
{
this
.
isMoreRecord
=
true
}
}
catch
(
error
)
{
this
.
loading
=
false
}
},
async
report_request_list
()
{
if
(
this
.
pageInfo
.
page
==
1
)
{
this
.
taskList
=
[]
}
const
{
username
,
role_name
,
create_time_start
,
create_time_end
}
=
this
.
reportForm
const
{
id
}
=
this
.
userInfo
const
user_name
=
this
.
userInfo
.
username
// approval_status 1 待审批 2 审批中 3 通过 4 驳回 5 已撤销 默认是待审批
const
data
=
{
username
,
role_name
,
// 这歌地方写死是 1 待审批状态
// approval_status: 1,
// customer_id: id,
user_id
:
id
,
user_name
:
user_name
,
create_time_start
,
create_time_end
,
register_type
:
2
,
// register_type 1 客服登记 2 玩家登记 默认是 2
...
this
.
pageInfo
}
try
{
const
res
=
await
playerReport
(
data
)
console
.
log
(
res
.
data
.
data
,
'res'
)
this
.
loading
=
false
if
(
this
.
pageInfo
.
page
==
1
)
{
this
.
taskList
=
res
.
data
.
data
}
else
{
this
.
taskList
=
removeDp
(
this
.
taskList
,
res
.
data
.
data
,
'id'
)
}
if
(
!
this
.
taskDetails
.
id
&&
this
.
taskList
.
length
>
0
)
{
this
.
set_taskDetails
(
this
.
taskList
[
0
])
}
if
(
res
.
data
.
data
.
length
<
20
)
{
this
.
isMoreRecord
=
false
}
else
{
this
.
isMoreRecord
=
true
}
}
catch
(
error
)
{
this
.
loading
=
false
}
}
}
}
</
script
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论