From 220852aeca6cdc814da5a5065e54e1c012d6b108 Mon Sep 17 00:00:00 2001 From: zou Date: Tue, 18 Aug 2026 16:46:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(F006):=20=E7=94=A8=E6=88=B7=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=BC=B9=E7=AA=97=E5=85=B3=E8=81=94=E4=BC=81=E4=B8=9A?= =?UTF-8?q?=E6=94=B9=E5=A4=9A=E9=80=89=20-=20=E4=B8=80=E4=BA=BA=E5=8F=AF?= =?UTF-8?q?=E5=B1=9E=E5=A4=9A=E4=B8=AA=E4=BC=81=E4=B8=9A,=20=E5=9B=9E?= =?UTF-8?q?=E6=98=BEenterpriseIdList,=20=E6=8F=90=E4=BA=A4enterpriseIds?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/user/UserFormDialog.vue | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/modules/user/UserFormDialog.vue b/src/modules/user/UserFormDialog.vue index 84fd853..3bb1420 100644 --- a/src/modules/user/UserFormDialog.vue +++ b/src/modules/user/UserFormDialog.vue @@ -13,7 +13,7 @@ * password 密码 (新建必填, 修改可选-留空表示不修改) * sex 性别 0男1女 (选填) * enabled 禁用标识 0正常1禁用 (选填, 默认正常) - * enterpriseId 关联企业 (单选, 取 tb_user.enterpriseId; 真多对多需后端加 user_enterprise_bind 表, 当前未做) + * enterpriseIds 关联企业 (多选, 一人可属多个企业; 后端维护 tb_supplier_enterprise 绑定表, C端可切换企业身份) * * 已去掉: * - header (头像 URL): 改用默认头像, 此处无意义 @@ -29,7 +29,7 @@ interface UserForm { mobile: string password: string sex: '' | '0' | '1' - enterpriseId: number | null + enterpriseIds: number[] enabled: '' | '0' | '1' } @@ -58,7 +58,7 @@ const form = reactive({ mobile: '', password: '', sex: '', - enterpriseId: null, + enterpriseIds: [], enabled: '0', }) @@ -108,7 +108,7 @@ function resetForm() { form.mobile = '' form.password = '' form.sex = '' - form.enterpriseId = null + form.enterpriseIds = [] form.enabled = '0' } @@ -155,7 +155,11 @@ async function loadDetail() { form.mobile = data.mobile || '' form.password = '' form.sex = (data.sex === 0 || data.sex === 1 ? String(data.sex) : '') as UserForm['sex'] - form.enterpriseId = data.enterpriseId ? Number(data.enterpriseId) : null + // 多企业关联回显: 后端 getUserInfo 返回 enterpriseIdList; 兼容旧数据单值 enterpriseId + const ids = Array.isArray(data.enterpriseIdList) + ? data.enterpriseIdList.map((v: any) => Number(v)).filter((v: any) => Number.isFinite(v) && v > 0) + : (data.enterpriseId ? [Number(data.enterpriseId)] : []) + form.enterpriseIds = ids form.enabled = (data.enabled === 0 || data.enabled === 1 ? String(data.enabled) : '0') as UserForm['enabled'] } await nextTick() @@ -187,7 +191,7 @@ async function submit() { } if (form.password) payload.password = form.password if (form.sex !== '') payload.sex = Number(form.sex) - if (form.enterpriseId) payload.enterpriseId = Number(form.enterpriseId) + if (form.enterpriseIds.length) payload.enterpriseIds = form.enterpriseIds if (form.enabled !== '') payload.enabled = Number(form.enabled) if (mode.value === 'create') { @@ -259,12 +263,13 @@ async function submit() { - +