diff --git a/src/views/mine/personList.vue b/src/views/mine/personList.vue
index 53585e20..90fab0fd 100644
--- a/src/views/mine/personList.vue
+++ b/src/views/mine/personList.vue
@@ -35,9 +35,17 @@
*电话1:
@@ -83,6 +91,8 @@
import {myMixins} from "@/utils/myMixins"
import {getConfirmPerson,getConfirmStatus,getQrCode,confirmAddWechat,confirm,submitConfirm} from "@/api/authentication";
import { Dialog } from 'vant';
+// 带关系角色(存储格式:角色名-关系)
+const RELATION_ROLES = ['其他', '法人关系人', '实控人关系人', '合伙人']
export default {
name: "personList",
mixins:[myMixins],
@@ -163,11 +173,26 @@ export default {
// this.type=2
let res=await getConfirmPerson({supplierId:this.supplierId})
if(res.data && res.data.length>0){
- this.personList=res.data
+ this.personList=res.data.map(item => this.buildRoleDisplay(item))
}else{
this.personList=[]
}
},
+ // 拆分带关系角色:roleName 按逗号拆项,识别 `角色名-关系`,按第一个 '-' 拆出基础角色与关系
+ buildRoleDisplay(item){
+ const parts = (item.roleName || '').split(',').filter(Boolean).map(raw => {
+ const dashIndex = raw.indexOf('-')
+ if (dashIndex > -1 && RELATION_ROLES.includes(raw.substring(0, dashIndex))) {
+ return { raw, base: raw.substring(0, dashIndex), relation: raw.substring(dashIndex + 1) }
+ }
+ return { raw, base: raw, relation: null }
+ })
+ item.roleParts = parts
+ item.roleDisplay = parts.map(p => p.relation != null ? p.base : p.raw).join(',')
+ item.relationRows = parts.filter(p => p.relation != null)
+ item.hasRelationRole = item.relationRows.length > 0
+ return item
+ },
async wechatConfirm(){//确认已添加微信按钮
Dialog.confirm({
message:'请确认相关人员是否已添加该二维码。',
@@ -238,6 +263,18 @@ export default {
this.$toast('电话号码格式不正确')
return
}
+ // 带关系角色:关系必填校验,并将 roleDisplay + relation 重新拼接为 `角色名-关系` 写回 roleName
+ for (const item of this.personList) {
+ if (item.hasRelationRole) {
+ for (const row of item.relationRows) {
+ if (!row.relation || !String(row.relation).trim()) {
+ this.$toast(`请填写${row.base}关系`)
+ return
+ }
+ }
+ item.roleName = item.roleParts.map(p => p.relation != null ? `${p.base}-${String(p.relation).trim()}` : p.raw).join(',')
+ }
+ }
await submitConfirm({supplierId:this.supplierId,infos:this.personList})
this.$toast('操作成功')
if(this.isWebFunc()){
@@ -407,6 +444,12 @@ export default {
color: #323643;
opacity: .65;
}
+ .item .left.relationLeft{
+ width: auto;
+ min-width: 66px;
+ white-space: nowrap;
+ padding-right: 4px;
+ }
.star{
font-weight: bold;
font-size: 13px;