From a37fe239e659295f20f6629c406d0b7b767e33b7 Mon Sep 17 00:00:00 2001 From: zry <18990852002@163.com> Date: Mon, 21 Jul 2025 14:46:28 +0800 Subject: [PATCH 1/4] password regular expression --- src/components/changePassword.vue | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/changePassword.vue b/src/components/changePassword.vue index 10e0d7a..9c36913 100644 --- a/src/components/changePassword.vue +++ b/src/components/changePassword.vue @@ -133,8 +133,7 @@ const rules = reactive({ {required: true, message: '新密码不能为空', trigger: 'blur'}, { validator: (rule, value, callback) => { - // 新增中文检测逻辑 - if (!/^[a-zA-Z0-9\W_]+$/.test(value)) { + if (!/^[a-zA-Z0-9!@#$%^&*()-_+={}[\]|\\:;"'<>,.?/~\`]+$/.test(value)) { callback(new Error('密码只能包含数字、字母或符号')); } else if (value === passwd.oldPassword) { callback(new Error('新密码不能与旧密码一致')) From 4e64dfb9865502c6db83492c6950ef1f9bf62d05 Mon Sep 17 00:00:00 2001 From: zry <18990852002@163.com> Date: Mon, 21 Jul 2025 15:44:01 +0800 Subject: [PATCH 2/4] password modified --- src/components/changePassword.vue | 41 +++------------------------------------ 1 file changed, 3 insertions(+), 38 deletions(-) diff --git a/src/components/changePassword.vue b/src/components/changePassword.vue index 9c36913..f9fcd68 100644 --- a/src/components/changePassword.vue +++ b/src/components/changePassword.vue @@ -178,9 +178,10 @@ const changePassword = async function () { } const result = await API({url: '/admin/password', data: params}) - console.log('@@@@@@@@@@@修改密码结果:', result) + console.log('修改密码结果:', result) if (result.code === 0){ ElMessage.error('原密码错误') + } if (result.code === 200) { // 使用命名路由跳转 @@ -199,7 +200,6 @@ const changePassword = async function () { } } catch (error) { - console.log('re:', result) console.error('修改密码失败', error) ElMessage.error('操作失败') // 抛出错误让外层捕获,保持finally正常执行 @@ -207,42 +207,7 @@ const changePassword = async function () { } } -// 修改密码接口调用方法(模拟始终成功) -// const changePassword = async function () { -// try { -// // 模拟API调用 -// const result = { -// status: 200, -// data: {success: true, message: '密码修改成功'} -// }; - -// console.log('修改密码结果:', result); - -// // 统一处理成功逻辑 -// if (result.status === 200 ) { -// // 显示成功提示 -// ElMessage.success(result.data.message || '修改密码成功'); - -// // 重置表单字段 -// resetFields(); - -// router.replace ('/PasswordSuccess'); - - -// return result; -// } else { -// // 处理API返回但状态非成功的情况 -// const errorMsg = result.data.message || '密码修改失败'; -// ElMessage.error(errorMsg); -// throw new Error(errorMsg); -// } -// } catch (error) { -// // 处理网络错误或API异常 -// console.error('修改密码失败:', error); -// ElMessage.error(error.message || '操作失败,请重试'); -// throw error; -// } -// }; + // 表单提交与重置 const resetFields = () => { From acb89d16a232bc7ba707c55a3868e05d9f8abd4f Mon Sep 17 00:00:00 2001 From: zry <18990852002@163.com> Date: Mon, 21 Jul 2025 16:04:50 +0800 Subject: [PATCH 3/4] password modified prompt --- src/components/changePassword.vue | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/components/changePassword.vue b/src/components/changePassword.vue index f9fcd68..70ab0a1 100644 --- a/src/components/changePassword.vue +++ b/src/components/changePassword.vue @@ -179,19 +179,19 @@ const changePassword = async function () { const result = await API({url: '/admin/password', data: params}) console.log('修改密码结果:', result) - if (result.code === 0){ - ElMessage.error('原密码错误') - - } + if (result.code === 200) { // 使用命名路由跳转 //await router.push({ name: 'PasswordSuccess' }); - + ElMessage.success('修改密码成功'); // 或者使用路径跳转(确保大小写完全匹配) await router.push('/PasswordSuccess'); - ElMessage.success('修改密码成功'); + resetFields(); + }else if (result.code === 0){ + ElMessage.error('原密码错误') + }else if(result.code === 400){ // 显示失败弹窗 console.log('修改密码失败') @@ -211,7 +211,9 @@ const changePassword = async function () { // 表单提交与重置 const resetFields = () => { - passwdFormRef.value.resetFields() + if (passwdFormRef.value) { + passwdFormRef.value.resetFields() + } errorMsg.value = '' } From 3ef303760b9b38720fd3a64a312914b9d72943f5 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Mon, 21 Jul 2025 16:24:09 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E8=A1=A8=E5=8D=95=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/permissions/permission.vue | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/views/permissions/permission.vue b/src/views/permissions/permission.vue index d14fe24..940f3f5 100644 --- a/src/views/permissions/permission.vue +++ b/src/views/permissions/permission.vue @@ -499,7 +499,7 @@ const permissionEdit = async function () { market: permissionEditObj.value.market,//地区 postiton: permissionEditObj.value.postiton,//职位 roleId: permissionEditObj.value.roleId,//角色id - machineId: permissionEditObj.value.machineId,//机器码 + machineId: permissionEditObj.value.machineIds[0],//机器码 machineIds: permissionEditObj.value.machineIds[1],//机器码 password: permissionEditObj.value.password,// remark: permissionEditObj.value.remark//备注 @@ -579,6 +579,15 @@ const delRoleConfirm = async function () { } const handleAddRole = async function () { try { + await new Promise((resolve, reject) => { + Ref.value.validate((valid) => { + if (valid) { + resolve(); // 验证通过,继续执行后续代码 + } else { + reject(new Error('请检查并完善表单信息')); // 验证失败,抛出错误 + } + }); + }); const res = await API({ @@ -723,6 +732,20 @@ onMounted(async function () { await getRoleList() await getAdminData() }) + + const Rolerules = reactive({ + roleName: [ + { required: true, message: '请输入角色名称', trigger: 'blur' }, + { min: 2, max: 20, message: '角色名称长度应在2-20个字符之间', trigger: 'blur' } + ], + market: [ + { required: true, message: '请选择所属地区', trigger: 'change' } + ], + grade: [ + { required: true, message: '请输入优先级', trigger: 'blur' }, + { pattern: /^[1-9]\d{0,2}$/, message: '优先级应为1-999的数字', trigger: 'blur' } + ] + });