From 5bde60d8447b953c536528b57b613740c951295b Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Wed, 4 Nov 2026 03:14:45 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E7=BC=96=E8=BE=91=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=A4=9A=E9=80=89=E7=BB=84=E7=BB=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- src/views/system/user.vue | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/views/system/user.vue b/src/views/system/user.vue index 20fcb3b..53f3997 100644 --- a/src/views/system/user.vue +++ b/src/views/system/user.vue @@ -172,6 +172,21 @@ /> + + + + + @@ -592,6 +607,26 @@ export default { this.$refs.userFormRef?.validateField('deptId'); }, }, + // 数据管理权限多选级联:form.dataScopeDeptIds 为 id 数组 + dataScopeCascaderValue: { + get() { + const ids = Array.isArray(this.form.dataScopeDeptIds) + ? this.form.dataScopeDeptIds + : this.form.dataScopeDeptIds + ? String(this.form.dataScopeDeptIds).split(',').filter(Boolean) + : []; + return ids + .filter(item => item !== undefined && item !== null && item !== '') + .map(item => (typeof item === 'number' ? item : String(item))); + }, + set(value) { + this.form.dataScopeDeptIds = Array.isArray(value) + ? value.filter(item => item !== undefined && item !== null && item !== '') + : value + ? [value] + : []; + }, + }, isUserViewMode() { return this.userDialogMode === 'view'; }, @@ -1034,6 +1069,7 @@ export default { sex: undefined, postId: '', deptId: [], + dataScopeDeptIds: [], code: '', personCategory: 1, remark: '', @@ -1046,9 +1082,13 @@ export default { getUser(row.id).then(res => { const user = res.data.data; const deptIds = func.split(user.deptId || ''); + const dataScopeDeptIds = Array.isArray(user.dataScopeDeptIds) + ? user.dataScopeDeptIds.map(item => String(item)) + : []; this.form = { ...user, deptId: Array.isArray(deptIds) ? deptIds : [], + dataScopeDeptIds, postId: func.split(user.postId || '')[0] || '', roleId: func.join(user.roleId || ''), personCategory: user.personCategory || 1, @@ -1064,9 +1104,13 @@ export default { submitUserForm() { this.$refs.userFormRef.validate(valid => { if (!valid) return; + const dataScopeDeptIds = Array.isArray(this.form.dataScopeDeptIds) + ? this.form.dataScopeDeptIds.filter(item => item !== undefined && item !== null && item !== '') + : []; const row = { ...this.form, deptId: func.join(this.form.deptId), + dataScopeDeptIds, postId: func.join(this.form.postId), roleId: func.join(this.form.roleId), leaderId: func.join(this.form.leaderId),