diff --git a/src/views/channelManage/fans/fans.vue b/src/views/channelManage/fans/fans.vue index 8e8008f..5911a2e 100644 --- a/src/views/channelManage/fans/fans.vue +++ b/src/views/channelManage/fans/fans.vue @@ -57,7 +57,8 @@ const beanConsumeFan = ref({ }) // 频道列表 const channels = ref([]) -// 获取频道列表的方法 +const showChannelFilter = ref(false) + const getChannel = async function () { try { const result = await request({ @@ -76,6 +77,26 @@ const getChannel = async function () { }) } } + +const getRoleChannel = async function () { + try { + if (!adminData.value || !adminData.value.roleId) { + showChannelFilter.value = true + return + } + const result = await request({ + url: '/beanConsume/getRoleChannel', + data: { roleId: adminData.value.roleId } + }) + const data = result.data ?? result + const channelName = typeof data === 'string' ? data : data.channelName + const allLabel = t('common.all') + showChannelFilter.value = channelName === allLabel || channelName === '全部' + } catch (error) { + console.log('请求角色频道失败', error) + showChannelFilter.value = true + } +} // // 频道模糊查询方法 // const filterChannel = (query) => { // if (query) { @@ -390,10 +411,10 @@ const handleCurrentChange = function (val) { onMounted(async function () { await getAdminData() + await getRoleChannel() await ConsumeSelectBy() await getChannel() await getDept() - }) @@ -500,7 +521,7 @@ const getTagText = (state) => {
-
+
{{ t('common.jwcode') }}:
diff --git a/src/views/channelManage/reward/reward.vue b/src/views/channelManage/reward/reward.vue index 4532112..b2fa03b 100644 --- a/src/views/channelManage/reward/reward.vue +++ b/src/views/channelManage/reward/reward.vue @@ -40,7 +40,6 @@ const formatTime = (val) => val ? dayjs(val).format('YYYY-MM-DD HH:mm:ss') : '' /* ====================数据================================= */ -//这是获取用户信息的接口 const adminData = ref({}) // 充值明细表格 const tableData = ref([]) @@ -83,7 +82,8 @@ const getGift = async function () { // 频道列表 const channels = ref([]) -// 获取频道列表的方法 +const showChannelFilter = ref(false) + const getChannel = async function () { try { const result = await request({ @@ -103,6 +103,26 @@ const getChannel = async function () { } } +const getRoleChannel = async function () { + try { + if (!adminData.value || !adminData.value.roleId) { + showChannelFilter.value = true + return + } + const result = await request({ + url: '/beanConsume/getRoleChannel', + data: { roleId: adminData.value.roleId } + }) + const data = result.data ?? result + const channelName = typeof data === 'string' ? data : data.channelName + const allLabel = t('common.all') + showChannelFilter.value = channelName === allLabel || channelName === '全部' + } catch (error) { + console.log('请求角色频道失败', error) + showChannelFilter.value = true + } +} + // 抽离类型选项到响应式数组 const consumeTypes = ref([ {label: t('consume.consumeTypes.1'), value: 1}, @@ -402,10 +422,11 @@ const handleCurrentChange = function (val) { onMounted(async function () { await getAdminData() - await selectLiveBy() + await getRoleChannel() await getDept() - await getGift() + await selectLiveBy() await getChannel() + await getGift() }) @@ -538,7 +559,7 @@ const getTagText = (state) => {
-
+
{{ t('common.giftName') }}: {
-
+
{{ t('common.channel') }}: diff --git a/src/views/permissions/rolePermission.vue b/src/views/permissions/rolePermission.vue index b904b35..00b08b9 100644 --- a/src/views/permissions/rolePermission.vue +++ b/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 () { {{ t('common.noData') }}
- + @@ -794,7 +819,7 @@ onMounted(async function () {
- + @@ -802,7 +827,7 @@ onMounted(async function () {
- {{ t('common.cancel') }} + {{ t('common.cancel') }} {{ t('common.submit') }}