From d536d795bb0648b27fbe50e8b9b6d221bb9f1c29 Mon Sep 17 00:00:00 2001 From: zry <18990852002@163.com> Date: Wed, 23 Jul 2025 22:50:43 +0800 Subject: [PATCH 1/6] edit role success --- .env.development | 4 ++-- src/views/permissions/permission.vue | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.env.development b/.env.development index 82d8d16..c5af22d 100644 --- a/.env.development +++ b/.env.development @@ -1,4 +1,4 @@ -VITE_API_BASE='https://hwjb.homilychart.com/dev/admin' -# VITE_API_BASE='http://192.168.9.28:8081/' +# VITE_API_BASE='https://hwjb.homilychart.com/dev/admin' + VITE_API_BASE='http://192.168.9.28:8081/' VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload diff --git a/src/views/permissions/permission.vue b/src/views/permissions/permission.vue index b56656b..5298be2 100644 --- a/src/views/permissions/permission.vue +++ b/src/views/permissions/permission.vue @@ -81,7 +81,6 @@ const getAdminData = async function () { console.log('请求失败', error) } } -<<<<<<< HEAD const viewRole =ref([]) const getRolePermission = async function(){ const result = await request({ @@ -93,10 +92,8 @@ const getRolePermission = async function(){ viewRole.value = collectIds(result.data) console.log('result111',viewRole.value); } -======= ->>>>>>> zhangrenyuan/feature-20250714163943-金币前端二期 // 编辑用户权限对象 const permissionEditObj = ref({ checkedKeys: [], From 5a2393f476a34b1d605fc774b08abe74cb51d355 Mon Sep 17 00:00:00 2001 From: lihui Date: Wed, 23 Jul 2025 23:23:29 +0800 Subject: [PATCH 2/6] =?UTF-8?q?refactor(permissions):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=B7=BB=E5=8A=A0=E8=A1=A8=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/permissions/permission.vue | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/views/permissions/permission.vue b/src/views/permissions/permission.vue index 5298be2..bc9ce7f 100644 --- a/src/views/permissions/permission.vue +++ b/src/views/permissions/permission.vue @@ -1427,17 +1427,18 @@ onMounted(async function () { - - - - - + :value="item.value"> + + + + + + Date: Wed, 23 Jul 2025 23:42:11 +0800 Subject: [PATCH 3/6] =?UTF-8?q?feat(permissions):=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=8C=BA=E5=9F=9F=E6=8E=A5=E5=8F=A3=E5=92=8C?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/permissions/permission.vue | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/views/permissions/permission.vue b/src/views/permissions/permission.vue index bc9ce7f..3943b57 100644 --- a/src/views/permissions/permission.vue +++ b/src/views/permissions/permission.vue @@ -211,8 +211,10 @@ const reset = function () { const getArea = async function () { try { const result = await request({ - url: '/permission/getmarket', - data: {} + url: '/general/adminMarkets', + data: { + account: adminData.value.account + } }) market.value = result.data } catch (error) { From c2029686d15a6be40c2f887a56b82a9268163bd2 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Thu, 24 Jul 2025 00:15:11 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/permissions/permission.vue | 163 +++++++++++++++++++++-------------- 1 file changed, 97 insertions(+), 66 deletions(-) diff --git a/src/views/permissions/permission.vue b/src/views/permissions/permission.vue index bc9ce7f..f8e8c49 100644 --- a/src/views/permissions/permission.vue +++ b/src/views/permissions/permission.vue @@ -92,8 +92,6 @@ const getRolePermission = async function(){ viewRole.value = collectIds(result.data) console.log('result111',viewRole.value); } - - // 编辑用户权限对象 const permissionEditObj = ref({ checkedKeys: [], @@ -348,10 +346,13 @@ const permissionAdd = async function () { } const addUserRules = { account: [ - { required: true, message: '请输入OA号', trigger: 'blur' } + { required: true, message: '请输入OA号', trigger: 'blur' }, + { pattern: /^\d+$/, message: 'OA号必须为数字', trigger: 'blur' }, + { max: 20, message: '长度不能超过20位', trigger: 'blur' } ], name: [ - { required: true, message: '请输入用户名', trigger: 'blur' } + { required: true, message: '请输入用户名', trigger: 'blur' }, + { max: 20, message: '长度不能超过20位', trigger: 'blur' } ], market: [ { required: true, message: '请选择所属地区', trigger: 'change' } @@ -360,7 +361,8 @@ const addUserRules = { { required: true, message: '请选择角色名称', trigger: 'change' } ], postiton: [ - { required: true, message: '请输入职位', trigger: 'blur' } + { required: true, message: '请输入职位', trigger: 'blur' }, + { max: 20, message: '长度不能超过20位', trigger: 'blur' } ], machineIds: [ { @@ -403,15 +405,16 @@ const getRoles = async function () { // 打开编辑用户权限弹窗 const openUserEditVisible = function () { - getRoles() userEditVisible.value = true } // 关闭编辑用户权限弹窗 const closeUserEditVisible = function () { userEditVisible.value = false + data.value = [] } // 编辑用户权限初始化 const permissionEditInit = async function (row) { + getRoles() console.log('row', row) permissionEditObj.value = {} permissionEditObj.value.id = row.id @@ -439,7 +442,10 @@ const permissionEditInit = async function (row) { permissionEditObj.value.parentId = result.data?.fatherId permissionEditObj.value.parentName = result.data?.fatherName console.log('get前', permissionEditObj.value.roleId); - + permissionEditObj.value.roleName = row.roleName + if (permissionEditObj.value.roleId == 0) { + permissionEditObj.value.roleId = '' + } getUserLists(row.roleId) let machineIdsRef = await request({ @@ -461,7 +467,6 @@ const permissionEditInit = async function (row) { permissionEditObj.value.machineId = permissionEditObj.value.machineIds[0] //permissionEditObj.value.permission = row.permission - permissionEditObj.value.roleName = row.roleName console.log('编辑用户权限', permissionEditObj.value) console.log('11111111111111', permissionEditObj.value.machineId) openUserEditVisible() @@ -527,21 +532,62 @@ const getUserLists = async function (selectedRoleId) { console.log('请求失败', error) } } +//编辑用户表单校验 +const editAdminRules = { + market: [ + { required: true, message: '请选择所属地区', trigger: 'change' } + ], + postiton: [ + { required: true, message: '请输入职位', trigger: 'blur' }, + { max: 20, message: '长度不能超过20位', 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(); + } + } + } + ] +}; // 编辑用户权限提交 const permissionEdit = async function () { - const { adminName: userName, roleName: oldRole, roleId: newRoleId } = permissionEditObj.value; + let { adminName: userName, roleName: oldRole, roleId: newRoleId } = permissionEditObj.value; + console.log('oldRole', oldRole); + + if (oldRole == null) { + oldRole = '未分配权限' + } const newRole = permissionList.value.find(item => item.value === newRoleId)?.label || '未知角色'; try { - await ElMessageBox.confirm( - `确认修改权限角色?\n您正在将【${userName}】的权限角色从【${oldRole}】修改为【${newRole}】\n变更后,该用户的可操作权限将同步更新为新角色配置,涉及数据访问、功能操作等权限变化,请谨慎确认。`, - '警告', - { - confirmButtonText: '确认', - cancelButtonText: '取消', - type: "warning", - lockScroll: false - } - ); + await new Promise((resolve, reject) => { + Ref.value.validate((valid) => { + if (valid) { + resolve(); // 验证通过,继续执行后续代码 + } else { + reject(new Error('请检查并完善表单信息')); // 验证失败,抛出错误 + } + }); + }); + await ElMessageBox.confirm( + `确认修改权限角色?
您正在将【${userName}】的权限角色从【${oldRole}】修改为【${newRole}】
变更后,该用户的可操作权限将同步更新为新角色配置,涉及数据访问、功能操作等权限变化,请谨慎确认。`, + '警告', + { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: "warning", + lockScroll: false, + dangerouslyUseHTMLString: true //允许解析 HTML 标签 + } +); closeUserEditVisible(); const result = await request({ url: '/permission/updateAdmin', @@ -568,6 +614,7 @@ const permissionEdit = async function () { } ); get(); + closeUserEditVisible() } else { ElMessage.error(result.msg) } @@ -575,7 +622,6 @@ const permissionEdit = async function () { } catch (error) { console.log('编辑用户权限失败', error) ElMessage.error('编辑用户权限失败') - closeUserEditVisible() } } const throttledPermissionEdit = _.throttle(permissionEdit, 5000, { @@ -731,11 +777,13 @@ const getLists = async function () { } console.log('看看data', data.value) console.log('parentID:', addRole.value.parentId, 'roleId:', roleId) - if (addRole.value.parentId) { + if (addRole.value.parentId&& addRole.value.parentId!=2) { const result = await API({ url: '/general/roleMarket', data: { id: addRole.value.parentId } }) + console.log('result11',result.data); + if (result.code == 200) { if (typeof result.data === 'string' && result.data) { addRoleMarket.value = result.data.split(','); @@ -751,17 +799,16 @@ const getLists = async function () { } console.log('addRoleMarket.value', addRoleMarket.value); - } else { - if (typeof adminData.value.markets === 'string' && adminData.value.markets) { - addRoleMarket.value = adminData.value.markets.split(','); - } else if (Array.isArray(adminData.value.markets)) { - addRoleMarket.value = adminData.value.markets + } else{ + if (typeof market.value === 'string' && market.value) { + addRoleMarket.value = market.value.split(','); + } else if (Array.isArray(market.value)) { + addRoleMarket.value = market.value } else { addRoleMarket.value = []; } } - } catch (error) { console.log('请求失败', error) } @@ -794,8 +841,8 @@ const EdithandleMarketChange = (values) => { // 如果选择了总部,只保留总部 permissionEditObj.value.market = ['总部']; } - console.log('看看现在的地区',permissionEditObj.value.market); - + console.log('看看现在的地区', permissionEditObj.value.market); + }; // 处理编辑角色权限时的勾选事件 @@ -950,21 +997,6 @@ const permissionEditRoleObj = ref({ // 编辑角色弹窗 const permissionEditRoleVisible = ref(false); -const collectIds2 = (tree) => { - let ids = []; - tree.forEach((node) => { - // 如果当前节点没有 children 或 children 为空,说明是叶子节点 - if (!node.children || node.children.length === 0) { - ids.push(node.id); - } else { - // 如果有 children,递归收集子节点的叶子节点 - ids = ids.concat(collectIds2(node.children)); - } - }); - return ids; -}; - - // 编辑角色初始化 const permissionEditRoleInit = async function (row) { console.log('row', row); @@ -979,7 +1011,7 @@ const permissionEditRoleInit = async function (row) { // // 直接使用当前行的权限树数据 // if (row.tree && row.tree.length > 0) { // // 收集当前行权限树的所有 id - // permissionEditRoleObj.value.checkedKeys = collectIds2(row.tree); + // permissionEditRoleObj.value.checkedKeys = collectIds(row.tree); // // 以当前行的权限树数据作为 el-tree 的数据源 // data.value = row.tree; // } else { @@ -988,11 +1020,8 @@ const permissionEditRoleInit = async function (row) { // } try { - - - let roleId = permissionEditRoleObj.value.parentId; - // 如果没有上级角色,设置为管理员的id + // 如果没有上级角色,可根据实际情况设置默认值,这里假设为 2 if (permissionEditRoleObj.value.parentId === null || permissionEditRoleObj.value.parentId === undefined) { roleId = 2; } @@ -1005,7 +1034,7 @@ const permissionEditRoleInit = async function (row) { // 收集当前行权限树的所有 id if (row.tree && row.tree.length > 0) { - permissionEditRoleObj.value.checkedKeys = collectIds2(row.tree); + permissionEditRoleObj.value.checkedKeys = collectIds(row.tree); } else { permissionEditRoleObj.value.checkedKeys = []; } @@ -1014,7 +1043,7 @@ const permissionEditRoleInit = async function (row) { data.value = []; permissionEditRoleObj.value.checkedKeys = []; } - + console.log('编辑角色', permissionEditRoleObj.value); permissionEditRoleVisible.value = true; @@ -1279,9 +1308,9 @@ onMounted(async function () { --> @@ -1361,7 +1390,8 @@ onMounted(async function () { - + @@ -1384,17 +1414,20 @@ onMounted(async function () {
- + - +
+ 暂未分配权限 +
@@ -1430,7 +1463,7 @@ onMounted(async function () { + :value="item.value"> @@ -1438,7 +1471,6 @@ onMounted(async function () { - - +