|
|
|
@ -32,16 +32,25 @@ const getRoleObj = ref({ |
|
|
|
pageSize: 10 |
|
|
|
}) |
|
|
|
const permissionAddVisible = ref(false) |
|
|
|
// 新增角色表单数据 |
|
|
|
const addRole = ref({ |
|
|
|
roleName: '', |
|
|
|
parentId: null, |
|
|
|
checkedKeys: [], |
|
|
|
market: '' |
|
|
|
market: '', |
|
|
|
// 新增角色选择的频道名称 |
|
|
|
channel: '' |
|
|
|
}) |
|
|
|
const addRoleMarket = ref([]) |
|
|
|
// 频道列表 |
|
|
|
const channelList = ref([t('common.all')]) |
|
|
|
// 新增弹窗是否需要展示“频道名称”下拉 |
|
|
|
const addHasChannel = ref(false) |
|
|
|
// 编辑弹窗是否需要展示“频道名称”下拉 |
|
|
|
const editHasChannel = ref(false) |
|
|
|
const getRoleList = async function (val) { |
|
|
|
if (!findMenuById(menuTree.value, permissionMapping.view_role_information)) { |
|
|
|
// 无此权限 |
|
|
|
ElMessage.error(t('elmessage.noPermissionText')) |
|
|
|
return |
|
|
|
} |
|
|
|
@ -119,12 +128,18 @@ const getRoleArea = async function () { |
|
|
|
// 新增角色弹窗 |
|
|
|
const openPermissionAddVisible = function () { |
|
|
|
permissionAddVisible.value = true |
|
|
|
// 打开新增弹窗时,重置“频道相关”的显示与选中状态,避免受上一次操作影响 |
|
|
|
addHasChannel.value = false |
|
|
|
addRole.value.channel = '' |
|
|
|
getRoles() |
|
|
|
getLists() |
|
|
|
} |
|
|
|
|
|
|
|
const closePermissionAddVisible = function () { |
|
|
|
permissionAddVisible.value = false |
|
|
|
// 关闭时也重置一次,确保下次打开是干净状态 |
|
|
|
addHasChannel.value = false |
|
|
|
addRole.value.channel = '' |
|
|
|
Ref.value.resetFields(); |
|
|
|
getRoleList() |
|
|
|
} |
|
|
|
@ -331,14 +346,15 @@ const filterPermission = (tree) => { |
|
|
|
return true |
|
|
|
}) |
|
|
|
} |
|
|
|
// 处理编辑角色权限时的勾选事件 |
|
|
|
// 处理编辑角色权限时的勾选事件(编辑弹窗专用) |
|
|
|
const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => { |
|
|
|
const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo |
|
|
|
|
|
|
|
// 判断是否有选中的节点 |
|
|
|
if (allCheckedNodes.length === 0) { |
|
|
|
permissionEditRoleObj.value.checkedKeys = [] |
|
|
|
ifHasChannel.value = false |
|
|
|
// 没有任何权限时,不显示频道下拉 |
|
|
|
editHasChannel.value = false |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
@ -349,21 +365,22 @@ const handleEditRolePermissionCheck = (checkedNodes, checkedInfo) => { |
|
|
|
console.log('编辑角色选中的权限ID:', checkedKeys) |
|
|
|
console.log('选中的节点数量:', allCheckedNodes.length) |
|
|
|
if (checkedKeys.includes(124) || checkedKeys.includes(125) || checkedKeys.includes(126) || checkedKeys.includes(127)) { |
|
|
|
ifHasChannel.value = true |
|
|
|
// 编辑时勾选了频道管理相关菜单 -> 显示频道下拉 |
|
|
|
editHasChannel.value = true |
|
|
|
} else { |
|
|
|
ifHasChannel.value = false |
|
|
|
editHasChannel.value = false |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
//用于标记是否勾选频道管理 |
|
|
|
const ifHasChannel = ref(false) |
|
|
|
// 新增弹窗权限树勾选事件(新增弹窗专用) |
|
|
|
const handleCheckChange = async (checkedNodes, checkedInfo) => { |
|
|
|
const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo |
|
|
|
|
|
|
|
// 判断是否有选中的节点 |
|
|
|
if (allCheckedNodes.length === 0) { |
|
|
|
addRole.value.checkedKeys = [] |
|
|
|
ifHasChannel.value = false |
|
|
|
// 新增时没有任何权限时,不显示频道下拉 |
|
|
|
addHasChannel.value = false |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
@ -380,10 +397,11 @@ const handleCheckChange = async (checkedNodes, checkedInfo) => { |
|
|
|
addRole.value.checkedKeys = Array.from(allKeys) |
|
|
|
console.log('新增角色包含所有父级的选中项:', addRole.value.checkedKeys) |
|
|
|
if (addRole.value.checkedKeys.includes(124)) { |
|
|
|
ifHasChannel.value = true |
|
|
|
// 新增时勾选了频道管理菜单 -> 显示频道下拉 |
|
|
|
addHasChannel.value = true |
|
|
|
console.log('勾选了频道'); |
|
|
|
} else { |
|
|
|
ifHasChannel.value = false |
|
|
|
addHasChannel.value = false |
|
|
|
} |
|
|
|
} |
|
|
|
const selectParentNodes = (treeData, nodeId, checkedKeys) => { |
|
|
|
@ -437,6 +455,12 @@ const permissionEditRoleObj = ref({ |
|
|
|
// 编辑角色弹窗 |
|
|
|
const permissionEditRoleVisible = ref(false) |
|
|
|
|
|
|
|
// 编辑弹窗关闭时,顺便把“编辑态是否显示频道下拉”的标记重置 |
|
|
|
const closePermissionEditRoleVisible = () => { |
|
|
|
permissionEditRoleVisible.value = false |
|
|
|
editHasChannel.value = false |
|
|
|
} |
|
|
|
|
|
|
|
const collectIds2 = (tree) => { |
|
|
|
let ids = [] |
|
|
|
tree.forEach((node) => { |
|
|
|
@ -481,9 +505,10 @@ const permissionEditRoleInit = async function (row) { |
|
|
|
console.log('permissionEditRoleObj.value', permissionEditRoleObj.value); |
|
|
|
|
|
|
|
if (EditIds.includes(124)) { |
|
|
|
ifHasChannel.value = true |
|
|
|
// 编辑初始化时,根据已有权限决定是否展示频道下拉 |
|
|
|
editHasChannel.value = true |
|
|
|
} else { |
|
|
|
ifHasChannel.value = false |
|
|
|
editHasChannel.value = false |
|
|
|
} |
|
|
|
try { |
|
|
|
let roleId = permissionEditRoleObj.value.parentId; |
|
|
|
@ -745,7 +770,7 @@ onMounted(async function () { |
|
|
|
<span style="color: #999;">{{ t('common.noData') }}</span> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item v-show="ifHasChannel" :label="t('common_add.channelName') + ':'" required> |
|
|
|
<el-form-item v-show="addHasChannel" :label="t('common_add.channelName') + ':'" required> |
|
|
|
<el-select v-model="addRole.channel" :placeholder="t('common_add.channelPlaceholder')" style="width: 220px" filterable clearable> |
|
|
|
<el-option v-for="item in channelList" :key="item" :label="item" :value="item" /> |
|
|
|
</el-select> |
|
|
|
@ -794,7 +819,7 @@ onMounted(async function () { |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item v-show="ifHasChannel" :label="t('common_add.channelName') + ':'" required> |
|
|
|
<el-form-item v-show="editHasChannel" :label="t('common_add.channelName') + ':'" required> |
|
|
|
<el-select v-model="permissionEditRoleObj.channel" :placeholder="t('common_add.channelPlaceholder')" style="width: 220px" clearable> |
|
|
|
<el-option v-for="item in channelList" :key="item" :label="item" :value="item" /> |
|
|
|
</el-select> |
|
|
|
@ -802,7 +827,7 @@ onMounted(async function () { |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<div> |
|
|
|
<el-button @click="permissionEditRoleVisible = false">{{ t('common.cancel') }}</el-button> |
|
|
|
<el-button @click="closePermissionEditRoleVisible">{{ t('common.cancel') }}</el-button> |
|
|
|
<el-button type="primary" @click="permissionEditRole"> |
|
|
|
{{ t('common.submit') }} |
|
|
|
</el-button> |
|
|
|
|