From aa9b7c2b95de867ba00a3f281c9477b53af11ca1 Mon Sep 17 00:00:00 2001 From: zq <136432190602163.com> Date: Tue, 26 Aug 2025 16:45:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=94=AE=E4=BB=B7=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E4=BE=A7=E8=BE=B9=E6=95=B0=E6=8D=AE=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 10 -- src/components/SliderMenu.vue | 6 + src/components/SliderScondThree.vue | 16 +- src/store/index.js | 293 +++++++++++-------------------- src/views/agent/siteAddChooseService.vue | 2 +- src/views/agent/siteServiceAdd.vue | 118 +++++++------ src/views/agent/supplyList.vue | 18 +- 7 files changed, 182 insertions(+), 281 deletions(-) diff --git a/src/App.vue b/src/App.vue index f6dda01..9f8fcd7 100755 --- a/src/App.vue +++ b/src/App.vue @@ -58,16 +58,6 @@ export default { mounted() { window.addEventListener('beforeunload', this.clearStorage); console.log(this.secondMenu,'secondMenu===='); - if (!this.secondMenu || this.secondMenu.length === 0 || Object.keys(this.secondMenu).length == 0) { - // 尝试从 localStorage 恢复 - console.log(savedData,'savedData'); - const savedData = localStorage.getItem('selectedServices'); - if (savedData) { - this.$store.commit('SET_SECOND_MENU', JSON.parse(savedData)); - } else { - this.$router.go(-1); - } - } }, beforeUnmount() { window.removeEventListener('beforeunload', this.clearStorage); diff --git a/src/components/SliderMenu.vue b/src/components/SliderMenu.vue index 95a2933..7f13e53 100644 --- a/src/components/SliderMenu.vue +++ b/src/components/SliderMenu.vue @@ -162,6 +162,12 @@ export default { // }, handleSelect(index, indexPath, menuItem) { if (menuItem.path && this.$route.path !== menuItem.path) { + //menu增加属性 external: true, + if(menuItem.external){ + // location.href= menuItem.path + window.open(menuItem.path, '_blank') + return + } this.$router.push(menuItem.path); } }, diff --git a/src/components/SliderScondThree.vue b/src/components/SliderScondThree.vue index b51b450..9023404 100644 --- a/src/components/SliderScondThree.vue +++ b/src/components/SliderScondThree.vue @@ -14,11 +14,9 @@ :class="['flex-between point gap8 menuListItem', activeFloor == item1[renderKeyNew.subtitle] ? 'curActive' : '']" :key="index1"> 设置价格中 + 设置价格中 {{ item1.unit_price }}元/{{ item1.unit_num }}字 - - - + {{ item1.unit_price }}元/篇 @@ -83,14 +81,11 @@ export default { menuList:{ handler(newVal, oldVal) { this.activeNames = newVal.map(item => item.type) - console.log( this.activeNames,' this.activeNames='); - // console.log(newVal, oldVal,'---====val'); // 初次加载或强制刷新时,oldVal为空 if (!oldVal || oldVal.length === 0) { this.setDefaultActive(newVal); return; } - // console.log(newVal,'newVal==='); // 检查当前高亮的菜单项是否仍然存在于新的menuList中 const currentItemExists = this.checkCurrentItem(newVal); // console.log(currentItemExists,'currentItemExists--'); @@ -151,7 +146,8 @@ export default { const subtitle = this.renderKeyNew.subtitle; this.activeFloor = menuList[0].list[0][subtitle] || menuList[0].list[0]?.componentsName || ''; this.componentsName = menuList[0].list[0]?.componentsName || ''; - this.currentMenuItem = menuList[0].list[0] + this.currentMenuItem = {...menuList[0].list[0]} + console.log('更新了'); store.commit('SET_CURRENTMENUITEM', menuList[0].list[0]); this.curIndex = 0; } @@ -235,8 +231,8 @@ export default { // }, 1000) // } setActiveCur(item1, item, index) { - console.log(item1,'===---item1'); - store.commit('SET_CURRENTMENUITEM', item1); + console.log(item1,item,'===---item1'); + store.commit('SET_CURRENTMENUITEM', {...item1,parentType:item.type}); this.currentMenuItem = item1; this.curIndex = index; let subtitle = this.renderKeyNew.subtitle; diff --git a/src/store/index.js b/src/store/index.js index 8c36200..04d7375 100755 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,94 +1,19 @@ import Vue from 'vue'; import Vuex from 'vuex'; - +// import createPersistedState from 'vuex-persistedstate'; Vue.use(Vuex) export default new Vuex.Store({ state: { - showSecondSide:false, + showSecondSide: false, showSidebar: false, showFooter: false, 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:{},//第三种侧边栏 -- 可折叠、 切换显示 + secondMenu: {}, + + // secondMenu:{},//第三种侧边栏 -- 可折叠、 切换显示 showBreadcrumb: false, //是否展示面包屑 breadRightText: '', //是否展示面包屑 breadRightTextLink: '', //是否展示面包屑 @@ -96,18 +21,16 @@ export default new Vuex.Store({ addServiceList: [], //选中的服务 isLoading: false, //页面loading customize: false, //页面loading - componentsName:'', - currentMenuItem:null, - slidermenu:[], + componentsName: '', + currentMenuItem: null, + slidermenu: [], // 第二种侧边栏--单项可跳转 - rankMenuData: [ - { + rankMenuData: [{ name: '总利润', path: '', - img:'site/sitebase.svg', + img: 'site/sitebase.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '年排行', path: '/super/ranking/yearProfit' }, @@ -120,10 +43,9 @@ export default new Vuex.Store({ { name: '产品', path: '', - img:'site/sitebase.svg', + img: 'site/sitebase.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '毛利润排行', path: '/super/ranking/checkProfit' }, @@ -144,10 +66,9 @@ export default new Vuex.Store({ { name: '代理商', path: '', - img:'site/sitebase.svg', + img: 'site/sitebase.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '毛利润排行', path: '/super/ranking/agentProfit' }, @@ -164,10 +85,9 @@ export default new Vuex.Store({ { name: '设置', path: '', - img:'site/sitebase.svg', + img: 'site/sitebase.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '采购价', path: '/super/ranking/purchase' }, @@ -179,19 +99,17 @@ export default new Vuex.Store({ }, ], // 第一种侧边栏--可折叠、可跳转 - menuData: [ - { + menuData: [{ index: '1', title: '首页', - path:'/', + path: '/', icon: 'home', }, { index: '2', title: '订单列表', icon: 'orderList', - children: [ - { + children: [{ index: '2-1', title: '查重订单', path: '/agent/checkOrderList' @@ -213,32 +131,34 @@ export default new Vuex.Store({ title: '销售渠道', icon: 'channel', children: [{ - index: '3-1', - title: '站点列表', - path: '/agent/siteList' - }, - ] + index: '3-1', + title: '站点列表', + path: '/agent/siteList' + }, ] }, { index: '4', title: '财务', icon: 'Totalprofit', children: [{ - index: '4-1', - title: '收款方式', - path: '/agent/payList' - }, - ] + index: '4-1', + title: '收款方式', + path: '/agent/payList' + },{ + index: '4-2', + title: '代收款结算', + path:'http://admin.pengda.checkcopy.com/pay/payoff_list?tab=info', + external: true,//是否跳转外部链接 + } + ] } ], - siteSettingData1:[ - { + siteSettingData1: [{ name: '基本设置', path: '/agent/siteBaseSetting', - img:'site/sitebase.svg', + img: 'site/sitebase.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '站点信息', desc: 'siteMessage1' }, @@ -261,8 +181,7 @@ export default new Vuex.Store({ path: '/agent/sitePersonalization', img: 'site/gexinghua.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '网页模板', desc: 'siteMessage4' }, @@ -289,8 +208,7 @@ export default new Vuex.Store({ path: '/agent/siteMobileSetting', img: 'site/siteh5.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '微信H5', desc: 'siteMessage9' }, @@ -305,8 +223,7 @@ export default new Vuex.Store({ path: '/siteSetting/siteSem', img: 'site/sitesem.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: 'SEO设置', desc: 'siteMessage11' }, @@ -321,14 +238,13 @@ export default new Vuex.Store({ ] } ], - siteSettingData:[//第二种侧边栏 -- 点击单项进行页面滚动 + siteSettingData: [ //第二种侧边栏 -- 点击单项进行页面滚动 { name: '基本设置', path: '/agent/siteBaseSetting', - img:'site/sitebase.svg', + img: 'site/sitebase.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '站点信息', desc: 'siteMessage1' }, @@ -351,8 +267,7 @@ export default new Vuex.Store({ path: '/agent/sitePersonalization', img: 'site/gexinghua.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '网页模板', desc: 'siteMessage4' }, @@ -379,8 +294,7 @@ export default new Vuex.Store({ path: '/agent/siteMobileSetting', img: 'site/siteh5.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '微信H5', desc: 'siteMessage9' }, @@ -399,8 +313,7 @@ export default new Vuex.Store({ path: '/agent/siteSemSetting', img: 'site/sitesem.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: 'SEO设置', desc: 'siteMessage11' }, @@ -415,33 +328,32 @@ export default new Vuex.Store({ ] } ], - siteServiceSettingData:[//第二种侧边栏 -- 单项切换对应组件 + siteServiceSettingData: [ //第二种侧边栏 -- 单项切换对应组件 { name: '服务设置', - path: '',//设置为空 - img:'site/settingIcon.svg', - noToPath:true, + path: '', //设置为空 + img: 'site/settingIcon.svg', + noToPath: true, imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '价格设置', - desc: 'priceSet',//和组件名称、componentsName 一致 - componentsName:'priceSet'//和页面内引入的组件名称 、及上面desc 一致 + desc: 'priceSet', //和组件名称、componentsName 一致 + componentsName: 'priceSet' //和页面内引入的组件名称 、及上面desc 一致 }, { name: '收款设置', desc: 'paymentSet', - componentsName:'paymentSet' + componentsName: 'paymentSet' }, { name: '展示设置', desc: 'showSet', - componentsName:'showSet' + componentsName: 'showSet' }, { name: '页面品牌与色彩', desc: 'menuColorSet', - componentsName:'menuColorSet' + componentsName: 'menuColorSet' } ] }, @@ -449,18 +361,17 @@ export default new Vuex.Store({ name: 'SEO优化', path: '', img: 'site/sitesem.svg', - noToPath:true, + noToPath: true, imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '提交页SEO', desc: 'submitSeoSet', - componentsName:'submitSeoSet' + componentsName: 'submitSeoSet' }, { name: '报告页SEO', desc: 'reportSeoSet', - componentsName:'reportSeoSet' + componentsName: 'reportSeoSet' }, ] }, @@ -468,86 +379,79 @@ export default new Vuex.Store({ name: '域名与链接', path: '', img: 'site/form_link.svg', - noToPath:true, + noToPath: true, imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '独立域名', desc: 'domainSet', - componentsName:'domainSet' + componentsName: 'domainSet' }, { name: '自定义导航', desc: 'linkSet', - componentsName:'linkSet' + componentsName: 'linkSet' }, ] } ], - demoPageData:[ - { + demoPageData: [{ name: '支付授权', - path: '',//设置为空 - img:'site/pay.svg', - noToPath:true, + path: '', //设置为空 + img: 'site/pay.svg', + noToPath: true, imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { - name: '默认展示组件', - desc: 'Franchise1',//和组件名称、componentsName 一致 - componentsName:'Franchise1'//和页面内引入的组件名称 、及上面desc 一致 - } - ] + list: [{ + name: '默认展示组件', + desc: 'Franchise1', //和组件名称、componentsName 一致 + componentsName: 'Franchise1' //和页面内引入的组件名称 、及上面desc 一致 + }] }, { name: '支付设置', path: '', img: 'site/setting.svg', - noToPath:true, + noToPath: true, imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '平台退款', desc: 'Register', - componentsName:'Register' + componentsName: 'Register' }, { name: '管理证书', desc: 'Franchise', - componentsName:'Franchise' + componentsName: 'Franchise' }, ] }, ], - paySettingData:[ - { + paySettingData: [{ name: '支付授权', path: '/agent/payInfoSetting', - img:'site/pay.svg', + img: 'site/pay.svg', imgActive: require('@/assets/site/sitebase_active.svg'), list: [], - permission:[0,4,11,2,3] + permission: [0, 4, 11, 2, 3] }, { name: '钱款交易', path: '/agent/payCertSetting', - img:'site/pay_trade.svg', + img: 'site/pay_trade.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '管理证书', desc: 'siteMessage1', - permission:[2] + permission: [2] }, { name: '平台退款', desc: 'siteMessage2', - permission:[3,2] + permission: [3, 2] }, { name: '分账管理', desc: 'siteMessage3', - permission:[2] + permission: [2] }, ], }, @@ -556,21 +460,20 @@ export default new Vuex.Store({ path: '/agent/paySetting', img: 'site/setting.svg', imgActive: require('@/assets/site/sitebase_active.svg'), - list: [ - { + list: [{ name: '支付客服', desc: 'siteMessage4', - permission:[2] + permission: [2] }, { name: '启停收款方式', desc: 'siteMessage5', - permission:[0,4,11,3,2], + permission: [0, 4, 11, 3, 2], }, { name: '移除收款方式', desc: 'siteMessage6', - permission:[0,4,11,3,2], + permission: [0, 4, 11, 3, 2], }, ] }, @@ -654,23 +557,25 @@ export default new Vuex.Store({ }, }, mutations: { - SET_CURRENTMENUITEM(state,data){ + SET_CURRENTMENUITEM(state, data) { + // console.log(data,'=====data====currentMenuItem'); state.currentMenuItem = data && JSON.parse(JSON.stringify(data)); }, - SET_COMPONENTS_NAME(state,name){ + SET_COMPONENTS_NAME(state, name) { state.componentsName = name; }, - SET_SLIDER_MENU(state,type){ - if(typeof(type) == 'string'){ + SET_SLIDER_MENU(state, type) { + if (typeof (type) == 'string') { state.slidermenu = state[type] - }else{ + } else { state.slidermenu = type } }, - SET_SECOND_MENU(state,data){ + SET_SECOND_MENU(state, data) { state.secondMenu = data && JSON.parse(JSON.stringify(data)) + localStorage.setItem('selectedServices',JSON.stringify(data)) }, - SET_CUSTOMIZE(state,show) { + SET_CUSTOMIZE(state, show) { state.customize = show }, SHOW_LOADING(state) { @@ -712,6 +617,6 @@ export default new Vuex.Store({ getters: { menuData: state => state.menuData }, - + // plugins: [createPersistedState()], modules: {} }) \ No newline at end of file diff --git a/src/views/agent/siteAddChooseService.vue b/src/views/agent/siteAddChooseService.vue index 83dda80..c8a4258 100644 --- a/src/views/agent/siteAddChooseService.vue +++ b/src/views/agent/siteAddChooseService.vue @@ -116,6 +116,7 @@ export default { list.push({ type: type, name: this.type2name[type], + parentType:key }) }) @@ -127,7 +128,6 @@ export default { } }); store.commit('SET_SECOND_MENU', result); - localStorage.setItem('selectedServices',JSON.stringify(result)) this.$router.push(this.serviceAddUrl + '?uid=' + this.uid + '&prodid=' + this.prodid) }, // 初始化请求 diff --git a/src/views/agent/siteServiceAdd.vue b/src/views/agent/siteServiceAdd.vue index eae3310..2731944 100644 --- a/src/views/agent/siteServiceAdd.vue +++ b/src/views/agent/siteServiceAdd.vue @@ -27,19 +27,19 @@
-- {{ }}人工摘要翻译 - {{ }}站点开通服务后,除了新增了翻译入口外,该站点的检测服务网页的右上角会显示翻译的广告宣传图,点击会跳转到已开启的翻译页面。 + {{siteInfo && currentMenuItem && siteInfo['ver2info'][currentMenuItem.parentType]['name'] }} + {{siteInfo && currentMenuItem && siteInfo['ver2info'][currentMenuItem.parentType]['desc'] }}
- {{ }} - {{ }} + {{ serviceAddInfo.type_name }} + {{ siteInfo&&siteInfo['type2info'][currentMenuItem.type]['introduce'] }}
电商禁止售卖降重类的商品,如果上架建议调整文案规避 @@ -65,7 +65,7 @@