Browse Source

fix: 新增角色表单中添加频道名称选择,优化弹窗显示逻辑

zhangrenyuan/feature-20251215114424-现金管理三期
zhangrenyuan 4 weeks ago
parent
commit
fd0fb8385b
  1. 55
      src/views/permissions/rolePermission.vue

55
src/views/permissions/rolePermission.vue

@ -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>

Loading…
Cancel
Save