Browse Source

新增角色地区权限修改7.24

zhangrenyuan/feature-20250714163943-金币前端二期
ZhangYong 3 weeks ago
parent
commit
5b01528624
  1. 4
      .env.development
  2. 103
      src/views/permissions/permission.vue

4
.env.development

@ -1,5 +1,7 @@
# VITE_API_BASE='https://hwjb.homilychart.com/dev/admin'
# VITE_API_BASE='http://192.168.9.28:8081/'
VITE_API_BASE='http://18.143.76.3:10704/'
# 测试环境
# VITE_API_BASE='http://18.143.76.3:10704/'
VITE_API_BASE='http://192.168.9.52:10705/'
VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload

103
src/views/permissions/permission.vue

@ -205,7 +205,18 @@ const reset = function () {
get()
getRoleList()
}
const RoleArea = ref([])
const getRoleArea = async function () {
try {
const result = await request({
url: '/general/allRoleMarket',
data: {}
})
RoleArea.value = result.data
} catch (error) {
console.log('请求失败', error)
}
}
const getArea = async function () {
try {
const result = await request({
@ -346,10 +357,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' }
@ -358,7 +372,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: [
{
@ -528,25 +543,60 @@ 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 () {
let { adminName: userName, roleName: oldRole, roleId: newRoleId } = permissionEditObj.value;
if(!oldRole||oldRole ==null){
oldRole = '暂未分配权限'
if(oldRole ==null){
oldRole = '暂未分配角色'
}
const newRole = permissionList.value.find(item => item.value === newRoleId)?.label || '未知角色';
try {
await new Promise((resolve, reject) => {
Ref.value.validate((valid) => {
if (valid) {
resolve(); //
} else {
reject(new Error('请检查并完善表单信息')); //
}
});
});
await ElMessageBox.confirm(
`确认修改权限角色?\n您正在将【${userName}】的权限角色从【${oldRole}】修改为【${newRole}\n变更后,该用户的可操作权限将同步更新为新角色配置,涉及数据访问、功能操作等权限变化,请谨慎确认。`,
`确认修改权限角色?<br>您正在将【${userName}】的权限角色从【${oldRole}】修改为【${newRole}<br>变更后,该用户的可操作权限将同步更新为新角色配置,涉及数据访问、功能操作等权限变化,请谨慎确认。`,
'警告',
{
confirmButtonText: '确认',
cancelButtonText: '取消',
type: "warning",
lockScroll: false
lockScroll: false,
dangerouslyUseHTMLString: true // HTML
}
);
closeUserEditVisible();
)
const result = await request({
url: '/permission/updateAdmin',
data: {
@ -572,6 +622,7 @@ const permissionEdit = async function () {
}
);
get();
closeUserEditVisible();
} else {
ElMessage.error(result.msg)
}
@ -579,7 +630,6 @@ const permissionEdit = async function () {
} catch (error) {
console.log('编辑用户权限失败', error)
ElMessage.error('编辑用户权限失败')
closeUserEditVisible()
}
}
const throttledPermissionEdit = _.throttle(permissionEdit, 5000, {
@ -735,7 +785,8 @@ 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 }
@ -759,17 +810,9 @@ 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(',');
addRole.value.market = ''
} else if (Array.isArray(adminData.value.markets)) {
addRoleMarket.value = adminData.value.markets
addRole.value.market = ''
}
else {
addRoleMarket.value = [];
addRole.value.market = ''
}
addRoleMarket.value = RoleArea.value
console.log('elseRoleArea',RoleArea);
}
} catch (error) {
@ -1111,6 +1154,7 @@ onMounted(async function () {
await getStore()
await getRoleList()
await getRolePermission()
await getRoleArea()
})
@ -1122,7 +1166,8 @@ onMounted(async function () {
<el-button :type="checkTab === 'admin' ? 'primary' : 'default'" @click="checkTab = 'admin'">
用户管理
</el-button>
<el-button v-if="viewRole.includes(30)" :type="checkTab === 'role' ? 'primary' : 'default'" @click="checkTab = 'role'">
<el-button v-if="viewRole.includes(30)" :type="checkTab === 'role' ? 'primary' : 'default'"
@click="checkTab = 'role'">
角色管理
</el-button>
</el-button-group>
@ -1371,7 +1416,8 @@ onMounted(async function () {
<!-- 这是编辑用户权限弹窗 -->
<el-dialog v-model="userEditVisible" title="编辑用户权限" width="800px" :close-on-click-modal="false">
<el-form ref="Ref" :model="permissionEditObj" label-width="auto" style="max-width: 600px; align-items: center">
<el-form ref="Ref" :rules="editAdminRules" :model="permissionEditObj" label-width="auto"
style="max-width: 600px; align-items: center">
<el-form-item prop="account" label="用户账号:" clearable>
<el-input v-model="permissionEditObj.account" placeholder="请输入OA号" style="width: 220px" disabled />
</el-form-item>
@ -1509,8 +1555,7 @@ onMounted(async function () {
<el-input v-model="permissionEditRoleObj.roleName" placeholder="请输入角色名称" style="width: 220px" />
</el-form-item>
<el-form-item prop="parentName" label="上级角色:">
<el-input v-model="permissionEditRoleObj.parentName" placeholder="无上级角色" disabled
style="width: 220px">
<el-input v-model="permissionEditRoleObj.parentName" placeholder="无上级角色" disabled style="width: 220px">
<el-option v-for="item in permissionList" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-input>
@ -1520,8 +1565,8 @@ onMounted(async function () {
</el-form-item>
<el-form-item prop="checkedKeys" label="权限列表:" required>
<el-tree v-if="data.length > 0" :data="data" show-checkbox node-key="id"
:props="{ label: 'menuName', children: 'children' }" :default-checked-keys="permissionEditRoleObj.checkedKeys"
@check="handleEditRolePermissionCheck">
:props="{ label: 'menuName', children: 'children' }"
:default-checked-keys="permissionEditRoleObj.checkedKeys" @check="handleEditRolePermissionCheck">
<template #default="{ node, data }">
<span>{{ node.label }}</span>
</template>

Loading…
Cancel
Save