From 3a98a978c8f427d2cdfc9533358bf7d8ee51d725 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Tue, 22 Jul 2025 18:08:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A7=92=E8=89=B2=E5=9C=B0?= =?UTF-8?q?=E5=8C=BAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/permissions/permission.vue | 122 +++++++++++++++++++++++------------ 1 file changed, 79 insertions(+), 43 deletions(-) diff --git a/src/views/permissions/permission.vue b/src/views/permissions/permission.vue index c295f5e..f68c6b2 100644 --- a/src/views/permissions/permission.vue +++ b/src/views/permissions/permission.vue @@ -288,55 +288,85 @@ const permissionAddInit = function () { } //新增用户 const permissionAdd = async function () { - Ref.value.validate(async (valid) => { - console.log('addRole', addRole.value) - console.log('valid', valid) - if (valid) { - try { - addAdmin.value.adminFlag = 1 - addAdmin.value.status1 = 1 - if (addAdmin.value.postiton == '管理员') { - addAdmin.value.postiton == 1 - } - const params = { - "account": addAdmin.value.account,//OA号 - "adminName": addAdmin.value.name,//姓名 - "market": addAdmin.value.market,//地区 - "roleId": addAdmin.value.permission,//权限ID - "postiton": addAdmin.value.postiton,//职位 - "machineId": addAdmin.value.machineIds[0],//机器码 - "remark": addAdmin.value.remark//备注 - } - const result = await request({ - url: '/permission/addPermission', - data: params - }) - console.log(addAdmin.value) - - if (result.code == 200) { - ElMessage.success('添加成功') + try { + await new Promise((resolve, reject) => { + Ref.value.validate((valid) => { + if (valid) { + resolve(); // 验证通过,继续执行后续代码 } else { - ElMessage.error(result.msg) + reject(new Error('请检查并完善表单信息')); // 验证失败,抛出错误 } + }); + }); + addAdmin.value.adminFlag = 1 + addAdmin.value.status1 = 1 + if (addAdmin.value.postiton == '管理员') { + addAdmin.value.postiton == 1 + } + const params = { + "account": addAdmin.value.account,//OA号 + "adminName": addAdmin.value.name,//姓名 + "market": addAdmin.value.market,//地区 + "roleId": addAdmin.value.permission,//权限ID + "postiton": addAdmin.value.postiton,//职位 + "machineId": addAdmin.value.machineIds[0],//机器码 + "remark": addAdmin.value.remark//备注 + } + const result = await request({ + url: '/permission/addPermission', + data: params + }) + console.log(addAdmin.value) + + if (result.code == 200) { + ElMessage.success('添加成功') + } else { + ElMessage.error(result.msg) + } - addAdmin.value = {} - get() + addAdmin.value = {} + get() - closeUserAddVisible() - } catch (error) { - console.log('新增用户权限失败', error) + closeUserAddVisible() + } catch (error) { + console.log('新增用户权限失败', error) - ElMessage.error('新增用户权限失败') - closeUserAddVisible() + ElMessage.error('新增用户权限失败') + } +} +const addUserRules = { + account: [ + { required: true, message: '请输入OA号', trigger: 'blur' } + ], + name: [ + { required: true, message: '请输入用户名', trigger: 'blur' } + ], + market: [ + { required: true, message: '请选择所属地区', trigger: 'change' } + ], + permission: [ + { required: true, message: '请选择角色名称', trigger: 'change' } + ], + postiton: [ + { required: true, message: '请输入职位', trigger: 'blur' } + ], + machineIds: [ + { + required: true, + message: '请至少输入一个机器码', + trigger: 'change', + validator: (rule, value, callback) => { + // 检查是否有非空的机器码 + const hasValid = value.some(item => item.trim() !== ''); + if (!hasValid) { + callback(new Error('请至少输入一个机器码')); + } else { + callback(); + } } - } else { - ElMessage({ - type: 'error', - message: '请检查输入内容' - }) } - }) -} + ] +}; // 表单验证ref const Ref = ref(null) // 使用 _.throttle 并设置 trailing 为 false 实现严格节流,只执行一次 @@ -693,11 +723,14 @@ const getLists = async function () { if (result.code == 200) { if (typeof result.data === 'string' && result.data) { addRoleMarket.value = result.data.split(','); + addRole.value.market = '' } else if (Array.isArray(result.data)) { addRoleMarket.value = result.data + addRole.value.market = '' } else { addRoleMarket.value = []; + addRole.value.market = '' } } else { ElMessage.error('该上级角色无所属地区') @@ -708,11 +741,14 @@ const getLists = async function () { } else { if (typeof adminData.value.markets === 'string' && adminData.value.markets) { addRoleMarket.value = adminData.value.markets.split(','); + addRole.value.market = '' } else if (Array.isArray(adminData.value.markets)) { addRoleMarket.value = adminData.value.markets + addRole.value.market = '' } else { addRoleMarket.value = []; + addRole.value.market = '' } } @@ -1218,7 +1254,7 @@ onMounted(async function () {