From 97732a0faa3d9ef7bf5e88d4a9b7330327cc1c6b Mon Sep 17 00:00:00 2001 From: zq <136432190602163.com> Date: Fri, 8 Aug 2025 18:40:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=94=B6=E6=AC=BE=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=9B=B8=E5=85=B3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/GuipTable.vue | 2 +- src/components/SetLeftMenu.vue | 14 ++++++++++---- src/main.js | 28 ++++++++++++++++++++++++++++ src/style/theme/common.scss | 4 ++++ src/views/agent/payCertSetting.vue | 6 ++++-- src/views/agent/payInfoSetting.vue | 6 ++++-- src/views/agent/payList.vue | 14 +++++++------- src/views/agent/paySetting.vue | 6 ++++-- 8 files changed, 62 insertions(+), 18 deletions(-) diff --git a/src/components/GuipTable.vue b/src/components/GuipTable.vue index 351f02d..ba85bb2 100644 --- a/src/components/GuipTable.vue +++ b/src/components/GuipTable.vue @@ -39,7 +39,7 @@ -
+
无数据

暂无数据

diff --git a/src/components/SetLeftMenu.vue b/src/components/SetLeftMenu.vue index 0598ce7..a9e8b13 100644 --- a/src/components/SetLeftMenu.vue +++ b/src/components/SetLeftMenu.vue @@ -58,8 +58,14 @@ export default { } }, mounted() { - this.activeFloor = this.menuList[this.curIndex]?.list?.[0]?.desc || this.menuList[this.curIndex]?.list?.[0]?.path; - this.componentsName = this.menuList[this.curIndex]?.list?.[0]?.componentsName; + let curItem = this.menuList[this.curIndex]; + // 增加单项初始值判断 + if(!curItem.list || !curItem.list.length){ + this.activeFloor = curItem.path + }else{ + this.activeFloor = curItem?.list?.[0]?.desc || curItem?.list?.[0]?.path; + } + this.componentsName = curItem?.list?.[0]?.componentsName; this.$nextTick(() => { // 更可靠的获取滚动容器方式 this.scrollContainer = document.querySelector('.main-content') || @@ -160,7 +166,7 @@ export default { // } gotoPath(item) { let path = item.path; - this.activeFloor = null + this.activeFloor = path if (!path) { this.curIndex = 0; return; @@ -185,7 +191,7 @@ export default { setActiveCur(item1, item,index) { this.curIndex = index; - let componentsName = item1.componentsName; + let componentsName = item1?.componentsName; // 如果采用的是 组件切换显示的办法 if(componentsName){ this.activeFloor = componentsName; diff --git a/src/main.js b/src/main.js index 7e8af37..90e30ce 100755 --- a/src/main.js +++ b/src/main.js @@ -19,8 +19,36 @@ import clipboard from '@/utils/dirClipBoard'; import { modernCopyToClipboard } from '@/utils/clipboard'; //登陆 import { autoLoginByToken } from '@/utils/login' + +function filterByPermission(data, targetPermission) { + return data.filter(item => { + // 检查主项权限 + const hasMainPermission = item.permission?.includes(targetPermission); + + // 检查子项权限(如果存在list) + const hasChildPermission = item.list?.some( + child => child.permission?.includes(targetPermission) + ); + + return hasMainPermission || hasChildPermission; + }).map(item => { + // 深拷贝避免污染原数据 + const newItem = JSON.parse(JSON.stringify(item)); + + // 过滤子项 + if (newItem.list) { + newItem.list = newItem.list.filter( + child => child.permission?.includes(targetPermission) + ); + } + + return newItem; + }); +} + // 复制 Vue.prototype.$copy = modernCopyToClipboard; +Vue.prototype.$filterByPermission = filterByPermission; Vue.prototype.$loadingFn = LoadingService; Vue.config.productionTip = false; // 请求 diff --git a/src/style/theme/common.scss b/src/style/theme/common.scss index 6fe95f2..fe743ba 100644 --- a/src/style/theme/common.scss +++ b/src/style/theme/common.scss @@ -213,6 +213,10 @@ body { .el-table__body-wrapper::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 3px; + transition: all .3s; + &:hover{ + background: #6B7280; + } } @keyframes fadeInOut { diff --git a/src/views/agent/payCertSetting.vue b/src/views/agent/payCertSetting.vue index 430fa6f..d2f45ba 100644 --- a/src/views/agent/payCertSetting.vue +++ b/src/views/agent/payCertSetting.vue @@ -320,11 +320,13 @@ export default { } }, computed: { - ...mapState(['pageTitle']) // 从Vuex映射showSidebar状态到组件的计算属性中 + ...mapState(['pageTitle','paySettingData']) // 从Vuex映射showSidebar状态到组件的计算属性中 }, created() { + const {payType} = this.$route.query store.commit('SET_CUSTOMIZE', true); - store.commit('SET_SLIDER_MENU', 'paySettingData'); + const data = this.$filterByPermission(this.paySettingData,Number(payType)) + store.commit('SET_SLIDER_MENU', data); }, mounted() { store.commit('SET_PAGETITLE', '支付授权'); diff --git a/src/views/agent/payInfoSetting.vue b/src/views/agent/payInfoSetting.vue index 9bd365a..29e5fe0 100644 --- a/src/views/agent/payInfoSetting.vue +++ b/src/views/agent/payInfoSetting.vue @@ -219,11 +219,13 @@ export default { } }, computed: { - ...mapState(['pageTitle']) // 从Vuex映射showSidebar状态到组件的计算属性中 + ...mapState(['pageTitle','paySettingData']) // 从Vuex映射showSidebar状态到组件的计算属性中 }, created() { + const {payType} = this.$route.query store.commit('SET_CUSTOMIZE', true); - store.commit('SET_SLIDER_MENU', 'paySettingData'); + const data = this.$filterByPermission(this.paySettingData,Number(payType)) + store.commit('SET_SLIDER_MENU', data); }, mounted() { store.commit('SET_PAGETITLE', '支付授权'); diff --git a/src/views/agent/payList.vue b/src/views/agent/payList.vue index 7678ca2..0512570 100644 --- a/src/views/agent/payList.vue +++ b/src/views/agent/payList.vue @@ -54,7 +54,7 @@ @@ -109,7 +109,7 @@ @@ -161,7 +161,7 @@ @@ -214,7 +214,7 @@ @@ -266,7 +266,7 @@ @@ -699,8 +699,8 @@ export default { handleClick(tab, event) { console.log(tab, event); }, - paySetting(row) { - window.open('/agent/payInfoSetting?payid='+row.payid, '_blank'); + paySetting(row,payType) { + window.open('/agent/payInfoSetting?payid='+row.payid + '&payType=' + payType, '_blank'); } }, diff --git a/src/views/agent/paySetting.vue b/src/views/agent/paySetting.vue index 958ff3e..09a82fd 100644 --- a/src/views/agent/paySetting.vue +++ b/src/views/agent/paySetting.vue @@ -92,11 +92,13 @@ export default { } }, computed: { - ...mapState(['pageTitle']) // 从Vuex映射showSidebar状态到组件的计算属性中 + ...mapState(['pageTitle','paySettingData']) // 从Vuex映射showSidebar状态到组件的计算属性中 }, created() { + const {payType} = this.$route.query store.commit('SET_CUSTOMIZE', true); - store.commit('SET_SLIDER_MENU', 'paySettingData'); + const data = this.$filterByPermission(this.paySettingData,Number(payType)) + store.commit('SET_SLIDER_MENU', data); }, mounted() { store.commit('SET_PAGETITLE', '支付授权'); From 3d41a634c40ffaac8f3a0ff07171c1fb32878c96 Mon Sep 17 00:00:00 2001 From: zq <136432190602163.com> Date: Mon, 11 Aug 2025 15:08:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E8=B7=B3=E8=BD=AC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/index.js | 106 ++++++++++++++++++++++++++++++++++++++++---- src/views/agent/payList.vue | 6 ++- 2 files changed, 102 insertions(+), 10 deletions(-) diff --git a/src/store/index.js b/src/store/index.js index 0cc8c57..cbaf5cf 100755 --- a/src/store/index.js +++ b/src/store/index.js @@ -11,6 +11,83 @@ export default new Vuex.Store({ showHeader: false, showHeaderRight: false, menuList: [], //目录菜单 + // secondMenu:{ + // '1': { + // type: '1', + // name: '万方数字哈哈哈哈', + // is_select: false, + // list: [ + // { + // type: '29', + // name: '万方通用版44生生世世生生世世', + // is_select: true, + // //componentsName:'1-1' + // }, + // { + // type: '30', + // name: '通用说播版44', + // is_select: false, + // //componentsName:'1-2' + // }, + // { + // type: '32', + // name: '本科通用版44', + // is_select: false, + // //componentsName:'1-3' + // }, + // ] + // }, + // '3': { + // type: '3', + // name: '万方个哥哥个', + // is_select: true, + // list: [ + // { + // type: '6', + // name: '万方通用版a salads asides33', + // is_select: true, + // //componentsName:'2-2' + // }, + // { + // type: '27', + // name: '通用说播版33', + // is_select: true, + // //componentsName:'2-3' + // }, + // { + // type: '109', + // name: '本科通用版33', + // is_select: true, + // //componentsName:'2-4' + // }, + // ] + // }, + // '6': { + // type: '6', + // name: '万方', + // is_select: true, + // list: [ + // { + // type: '10', + // name: '万方通用版11', + // is_select: false, + // //componentsName:'3-4' + // }, + // { + // type: '11', + // name: '通用说播版11', + // is_select: true, + // //componentsName:'3-5' + // }, + // { + // type: '105', + // name: '本科通用版11', + // is_select: false, + // //componentsName:'3-4' + // }, + // ] + // }, + // }, secondMenu:{},//第三种侧边栏 -- 可折叠、 切换显示 showBreadcrumb: false, //是否展示面包屑 breadRightText: '', //是否展示面包屑 @@ -436,7 +513,8 @@ export default new Vuex.Store({ path: '/agent/payInfoSetting', img:'site/pay.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [] + list: [], + permission:[0,4,11,2] }, { name: '钱款交易', @@ -446,17 +524,20 @@ export default new Vuex.Store({ list: [ { name: '管理证书', - desc: 'siteMessage1' + desc: 'siteMessage1', + permission:[2] }, { name: '平台退款', - desc: 'siteMessage2' + desc: 'siteMessage2', + permission:[3,2] }, { name: '分账管理', - desc: 'siteMessage3' + desc: 'siteMessage3', + permission:[2] }, - ] + ], }, { name: '支付设置', @@ -466,15 +547,18 @@ export default new Vuex.Store({ list: [ { name: '支付客服', - desc: 'siteMessage4' + desc: 'siteMessage4', + permission:[2] }, { name: '启停收款方式', - desc: 'siteMessage5' + desc: 'siteMessage5', + permission:[0,4,11,3,2], }, { name: '移除收款方式', - desc: 'siteMessage6' + desc: 'siteMessage6', + permission:[0,4,11,3,2], }, ] }, @@ -565,7 +649,11 @@ export default new Vuex.Store({ state.componentsName = name; }, SET_SLIDER_MENU(state,type){ - state.slidermenu = state[type] + if(typeof(type) == 'string'){ + state.slidermenu = state[type] + }else{ + state.slidermenu = type + } }, SET_SECOND_MENU(state,data){ state.secondMenu = data && JSON.parse(JSON.stringify(data)) diff --git a/src/views/agent/payList.vue b/src/views/agent/payList.vue index 0512570..b0dc37b 100644 --- a/src/views/agent/payList.vue +++ b/src/views/agent/payList.vue @@ -408,6 +408,7 @@ import GuipInput from '@/components/GuipInput.vue'; import GuipSwitch from '@/components/GuipSwitch.vue'; import GuipDialog from '@/components/GuipDialog.vue'; import GuipTable from '@/components/GuipTable.vue'; +import { mapState } from 'vuex'; // 收款方式 const PAY_TYPE_TAOBAO = 0; // 淘宝 @@ -485,6 +486,7 @@ export default { } }, computed: { + ...mapState(['paySettingData']) // 从Vuex映射showSidebar状态到组件的计算属性中 }, mounted() { @@ -700,7 +702,9 @@ export default { console.log(tab, event); }, paySetting(row,payType) { - window.open('/agent/payInfoSetting?payid='+row.payid + '&payType=' + payType, '_blank'); + console.log(typeof(payType),'===payType'); + const data = this.$filterByPermission(this.paySettingData,Number(payType)) + window.open(data[0].path + '?payid='+row.payid + '&payType=' + payType, '_blank'); } },