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 375582d..a63e283 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/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/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 997bc24..aa9285e 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 @@
- 设置
+ 设置
@@ -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() {
@@ -708,8 +710,10 @@ export default {
handleClick(tab, event) {
console.log(tab, event);
},
- paySetting(row) {
- window.open('/agent/payInfoSetting?payid='+row.payid, '_blank');
+ paySetting(row,payType) {
+ console.log(typeof(payType),'===payType');
+ const data = this.$filterByPermission(this.paySettingData,Number(payType))
+ window.open(data[0].path + '?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', '支付授权');