Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
company_app
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
毛细亚
company_app
Commits
5629faa0
提交
5629faa0
authored
5月 11, 2026
作者:
施汉文
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(举报弹窗): 重构角色ID类型切换逻辑
上级
a00120de
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
149 行增加
和
39 行删除
+149
-39
App.vue
src/App.vue
+1
-1
index.vue
src/views/popup/reportPopup/index.vue
+148
-38
没有找到文件。
src/App.vue
浏览文件 @
5629faa0
...
...
@@ -211,7 +211,7 @@ export default {
// 页面刷新时从 Cookie 恢复 token 到 store
// Cookies.set(
// "token",
// "
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOjEyMzg2LCJkYXRhIjp7ImNzZXJfaWQiOjEyMzg2LCJjc2VyX25hbWUiOiLlvKDlpo3lpo0ifSwiaWF0IjoxNzc2OTk3MTgzLCJleHAiOjE3Nzk1ODkxODMsIm5iZiI6MTc3Njk5NzE4Mywic3ViIjoidG9rZW7orqTor4EiLCJqdGkiOiIxM2I3ODk0MjJjMThiOTUzNzFmOWVjZmYzZGMzNzY1NCJ9.2_8gCTzSrnR8q7i9_Pus1xT8NMY9-cXJim_FElSsa5A
"
// ""
// );
// Cookies.set("corp_id", "wweaefe716636df3d1");
// Cookies.set("userid", "ShanYi");
...
...
src/views/popup/reportPopup/index.vue
浏览文件 @
5629faa0
...
...
@@ -29,31 +29,31 @@
<div
class=
"role-card"
>
<el-form-item
label=
""
class=
"role-type-item"
>
<el-radio-group
v-model=
"reportForm.r
eport_role_id_typ
e"
>
<el-radio-group
v-model=
"reportForm.r
ole_id_type"
@
change=
"onReporteeTypeChang
e"
>
<el-radio
label=
"cp_role_id"
>
CP角色ID
</el-radio>
<el-radio
label=
"role_id"
>
掌游角色ID
</el-radio>
</el-radio-group>
</el-form-item>
<!--被举报人 -->
<inputTags
:input-select-list
.
sync=
"report
Form.cp_role_id
"
label-text=
"被举报人CP角色ID
"
placeholder=
"请输入被举报人
"
:input-select-list
.
sync=
"report
eeIds
"
:label-text=
"reporteeLabelText
"
:placeholder=
"reporteePlaceholder
"
:disabled=
"reportForm.main_game_id === ''"
rule-prop=
"cp_role_i
d"
:rule-prop=
"reporteeIdFiel
d"
@
inputChange=
"inputChange"
/>
<inputTags
:input-select-list
.
sync=
"reportForm.role_name"
label-text=
"被举报人角色名"
placeholder=
"输入CP角色ID后自动获取
"
:placeholder=
"autoFillPlaceholder
"
:disabled=
"true"
rule-prop=
"role_name"
/>
<inputTags
:input-select-list
.
sync=
"reportForm.server_name"
label-text=
"被举报人区服"
placeholder=
"输入CP角色ID后自动获取
"
:placeholder=
"autoFillPlaceholder
"
:disabled=
"true"
rule-prop=
"server_name"
/>
...
...
@@ -72,17 +72,17 @@
<div
class=
"role-card"
>
<el-form-item
label=
""
class=
"role-type-item"
>
<el-radio-group
v-model=
"reportForm.r
ole_id_typ
e"
>
<el-radio-group
v-model=
"reportForm.r
eport_role_id_type"
@
change=
"onReporterTypeChang
e"
>
<el-radio
label=
"cp_role_id"
>
CP角色ID
</el-radio>
<el-radio
label=
"role_id"
>
掌游角色ID
</el-radio>
</el-radio-group>
</el-form-item>
<!-- 举报人 -->
<el-form-item
label=
"举报人CP角色ID"
prop=
"report_cp_role_i
d"
>
<el-form-item
:label=
"reporterLabelText"
:prop=
"reporterIdFiel
d"
>
<el-input
v-model=
"report
Form.report_cp_role_i
d"
v-model=
"report
erI
d"
style=
"width: 100%"
placeholder=
"请输入举报人
"
:placeholder=
"reporterPlaceholder
"
@
change=
"change_report_role_id"
></el-input>
</el-form-item>
...
...
@@ -90,14 +90,14 @@
<el-input
v-model=
"reportForm.report_role_name"
style=
"width: 100%"
placeholder=
"输入CP角色ID后自动获取
"
:placeholder=
"reporterAutoFillPlaceholder
"
disabled
></el-input>
</el-form-item>
<el-form-item
label=
"举报人区服"
prop=
"report_server_name"
>
<el-input
v-model=
"reportForm.report_server_name"
placeholder=
"输入CP角色ID后自动获取
"
:placeholder=
"reporterAutoFillPlaceholder
"
style=
"width: 100%"
disabled
></el-input>
...
...
@@ -170,6 +170,60 @@
...
mapState
(
'game'
,
[
'accountSelect'
]),
...
mapState
(
'user'
,
[
'userInfo'
]),
/**
* 被举报人当前 type 对应的字段名(cp_role_id / role_id)
*/
reporteeIdField
()
{
return
this
.
reportForm
.
role_id_type
===
'role_id'
?
'role_id'
:
'cp_role_id'
},
/**
* 举报人当前 type 对应的字段名(report_cp_role_id / report_role_id)
*/
reporterIdField
()
{
return
this
.
reportForm
.
report_role_id_type
===
'role_id'
?
'report_role_id'
:
'report_cp_role_id'
},
/**
* inputTags 用:被举报人 ID 数组(按 type 路由读写,仅写入当前类型对应字段)
*/
reporteeIds
:
{
get
()
{
return
this
.
reportForm
[
this
.
reporteeIdField
]
||
[]
},
set
(
val
)
{
this
.
reportForm
[
this
.
reporteeIdField
]
=
val
}
},
/**
* 举报人 input v-model(按 type 路由读写,仅写入当前类型对应字段)
*/
reporterId
:
{
get
()
{
return
this
.
reportForm
[
this
.
reporterIdField
]
||
''
},
set
(
val
)
{
this
.
reportForm
[
this
.
reporterIdField
]
=
val
}
},
reporteeLabelText
()
{
return
this
.
reportForm
.
role_id_type
===
'role_id'
?
'被举报人掌游角色ID'
:
'被举报人CP角色ID'
},
reporteePlaceholder
()
{
return
this
.
reportForm
.
role_id_type
===
'role_id'
?
'请输入被举报人掌游角色ID'
:
'请输入被举报人CP角色ID'
},
reporterLabelText
()
{
return
this
.
reportForm
.
report_role_id_type
===
'role_id'
?
'举报人掌游角色ID'
:
'举报人CP角色ID'
},
reporterPlaceholder
()
{
return
this
.
reportForm
.
report_role_id_type
===
'role_id'
?
'请输入举报人掌游角色ID'
:
'请输入举报人CP角色ID'
},
autoFillPlaceholder
()
{
const
label
=
this
.
reportForm
.
role_id_type
===
'role_id'
?
'掌游角色ID'
:
'CP角色ID'
return
`输入
${
label
}
后自动获取`
},
reporterAutoFillPlaceholder
()
{
const
label
=
this
.
reportForm
.
report_role_id_type
===
'role_id'
?
'掌游角色ID'
:
'CP角色ID'
return
`输入
${
label
}
后自动获取`
},
/**
* 生态运营展示文案:有列表时拼接全部 user_name;无列表时回显表单已有值(如编辑态)
*/
ecoUserNamesDisplay
()
{
...
...
@@ -191,20 +245,19 @@
* 无生态运营数据时不校验 eco_user、is_negotiation
*/
reportRules
()
{
const
reporteeField
=
this
.
reporteeIdField
const
reporteeLabel
=
this
.
reportForm
.
role_id_type
===
'role_id'
?
'掌游角色ID'
:
'CP角色ID'
const
rules
=
{
main_game_id
:
[
{
required
:
true
,
message
:
'请选择主游戏'
,
trigger
:
'change'
}
],
cp_role_id
:
[
[
reporteeField
]
:
[
{
required
:
true
,
message
:
'请选择被举报人cp角色id'
,
message
:
`请选择被举报人
${
reporteeLabel
}
`
,
trigger
:
'change'
}
],
role_id
:
[
{
required
:
true
,
message
:
'请选择角色名'
,
trigger
:
'change'
}
],
server_name
:
[
{
required
:
true
,
message
:
'请选择区服'
,
trigger
:
'change'
}
],
...
...
@@ -380,28 +433,78 @@
},
// inputTag 返回的值
inputChange
(
value
)
{
this
.
reportForm
.
cp_role_id
=
value
this
.
change_cp_role_id
()
this
.
reportForm
[
this
.
reporteeIdField
]
=
value
this
.
change_reportee_role
()
},
/**
* 切换被举报人 ID 类型:清空两侧输入与回填,避免数据残留与校验红字
*/
onReporteeTypeChange
()
{
this
.
reportForm
.
cp_role_id
=
[]
this
.
reportForm
.
role_id
=
[]
this
.
reportForm
.
role_name
=
[]
this
.
reportForm
.
server_name
=
[]
this
.
zyou_server_id_list
=
[]
this
.
eco_user_list
=
[]
this
.
reportForm
.
eco_user
=
''
this
.
$nextTick
(()
=>
{
if
(
this
.
$refs
.
reportForm
)
{
this
.
$refs
.
reportForm
.
clearValidate
([
'cp_role_id'
,
'role_id'
,
'role_name'
,
'server_name'
,
'eco_user'
,
'is_negotiation'
])
}
})
},
/**
* 切换举报人 ID 类型:清空举报人输入与回填
*/
onReporterTypeChange
()
{
this
.
reportForm
.
report_cp_role_id
=
''
this
.
reportForm
.
report_role_id
=
''
this
.
reportForm
.
report_role_name
=
''
this
.
reportForm
.
report_server_name
=
''
this
.
$nextTick
(()
=>
{
if
(
this
.
$refs
.
reportForm
)
{
this
.
$refs
.
reportForm
.
clearValidate
([
'report_cp_role_id'
,
'report_role_id'
,
'report_role_name'
,
'report_server_name'
])
}
})
},
async
change_
cp_role_id
()
{
async
change_
reportee_role
()
{
if
(
this
.
reportForm
.
main_game_id
==
''
)
{
this
.
$message
.
warning
(
'请先选择主游戏'
)
return
}
if
(
this
.
reportForm
.
cp_role_id
.
length
==
0
)
{
this
.
$message
.
warning
(
'请按回车键确定CP角色ID'
)
const
inputIds
=
this
.
reportForm
[
this
.
reporteeIdField
]
if
(
!
inputIds
||
inputIds
.
length
==
0
)
{
this
.
$message
.
warning
(
'请按回车键确定输入'
)
return
}
this
.
cp_role_id_loading
=
true
this
.
$message
.
warning
(
'查询中,请稍等'
)
// 按 type 用对应字段名作为查询参数
const
res
=
await
searchcondition
({
type
:
'role'
,
cp_role_id
:
this
.
reportForm
.
cp_role_id
,
[
this
.
reporteeIdField
]:
inputIds
,
main_game_id
:
this
.
reportForm
.
main_game_id
})
this
.
cp_role_id_loading
=
false
if
(
res
.
status_code
==
1
&&
res
.
data
.
data
.
length
>
0
)
{
// 当前类型字段保留用户输入,另一类型字段从接口返回回填
if
(
this
.
reporteeIdField
===
'cp_role_id'
)
{
this
.
reportForm
.
role_id
=
res
.
data
.
data
.
map
((
item
)
=>
item
.
value
)
}
else
{
this
.
reportForm
.
cp_role_id
=
res
.
data
.
data
.
map
((
item
)
=>
item
.
cp_role_id
)
}
this
.
reportForm
.
role_name
=
res
.
data
.
data
.
map
((
item
)
=>
item
.
label
)
this
.
reportForm
.
server_name
=
res
.
data
.
data
.
map
(
(
item
)
=>
item
.
server_name
...
...
@@ -420,19 +523,24 @@
}
},
async
change_report_role_id
()
{
if
(
!!
this
.
reportForm
.
report_cp_role_id
&&
!!
this
.
reportForm
.
main_game_id
)
{
const
inputId
=
this
.
reportForm
[
this
.
reporterIdField
]
if
(
!!
inputId
&&
!!
this
.
reportForm
.
main_game_id
)
{
const
res
=
await
searchcondition
({
type
:
'role'
,
cp_role_id
:
this
.
reportForm
.
report_cp_role_i
d
,
[
this
.
reporterIdField
===
'report_role_id'
?
'role_id'
:
'cp_role_id'
]:
inputI
d
,
main_game_id
:
this
.
reportForm
.
main_game_id
})
if
(
res
.
status_code
==
1
&&
res
.
data
.
data
.
length
>
0
)
{
// 当前类型字段保留用户输入,另一类型字段从接口返回回填
if
(
this
.
reporterIdField
===
'report_cp_role_id'
)
{
this
.
reportForm
.
report_role_id
=
res
.
data
.
data
[
0
]
?
res
.
data
.
data
[
0
].
value
:
''
}
else
{
this
.
reportForm
.
report_cp_role_id
=
res
.
data
.
data
[
0
]
?
res
.
data
.
data
[
0
].
cp_role_id
:
''
}
this
.
reportForm
.
report_role_name
=
res
.
data
.
data
[
0
]
?
res
.
data
.
data
[
0
].
label
:
''
...
...
@@ -453,7 +561,6 @@
}
}
else
{
this
.
$message
.
warning
(
'请先选择主游戏'
)
this
.
reportForm
.
cp_role_id
=
''
this
.
zyou_server_id_list
=
[]
this
.
eco_user_list
=
[]
this
.
reportForm
.
eco_user
=
''
...
...
@@ -493,15 +600,16 @@
const
mainGameId
=
this
.
reportForm
.
main_game_id
if
(
!
mainGameId
)
return
try
{
const
cpIds
=
Array
.
isArray
(
this
.
reportForm
.
cp_role_id
)
?
this
.
reportForm
.
cp_role_id
.
filter
(
Boolean
)
:
this
.
reportForm
.
cp_role_id
?
[
this
.
reportForm
.
cp_role_id
]
const
reporteeRaw
=
this
.
reportForm
[
this
.
reporteeIdField
]
const
reporteeIds
=
Array
.
isArray
(
reporteeRaw
)
?
reporteeRaw
.
filter
(
Boolean
)
:
reporteeRaw
?
[
reporteeRaw
]
:
[]
if
(
cp
Ids
.
length
>
0
)
{
if
(
reportee
Ids
.
length
>
0
)
{
const
res
=
await
searchcondition
({
type
:
'role'
,
cp_role_id
:
cp
Ids
,
[
this
.
reporteeIdField
]:
reportee
Ids
,
main_game_id
:
mainGameId
})
if
(
res
.
status_code
==
1
&&
res
.
data
.
data
&&
res
.
data
.
data
.
length
>
0
)
{
...
...
@@ -512,10 +620,12 @@
return
}
}
if
(
this
.
reportForm
.
report_cp_role_id
)
{
const
reporterRaw
=
this
.
reportForm
[
this
.
reporterIdField
]
if
(
reporterRaw
)
{
const
reporterQueryField
=
this
.
reporterIdField
===
'report_role_id'
?
'role_id'
:
'cp_role_id'
const
res
=
await
searchcondition
({
type
:
'role'
,
cp_role_id
:
this
.
reportForm
.
report_cp_role_id
,
[
reporterQueryField
]:
reporterRaw
,
main_game_id
:
mainGameId
})
if
(
res
.
status_code
==
1
&&
res
.
data
.
data
&&
res
.
data
.
data
.
length
>
0
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论