From 2602bdd82484dabf3db312add0930a93b00e6969 Mon Sep 17 00:00:00 2001 From: ZKBH <1113799@qq.com> Date: 星期一, 28 七月 2025 11:43:01 +0800 Subject: [PATCH] 台账样式 --- src/components/layouts/TabLayout.vue | 66 ++++++++++++++++++++++++-------- 1 files changed, 49 insertions(+), 17 deletions(-) diff --git a/src/components/layouts/TabLayout.vue b/src/components/layouts/TabLayout.vue index 0340721..31d3ea8 100644 --- a/src/components/layouts/TabLayout.vue +++ b/src/components/layouts/TabLayout.vue @@ -4,8 +4,8 @@ <contextmenu :itemList="menuItemList" :visible.sync="menuVisible" style="z-index: 9999;" @select="onMenuSelect"/> <!-- update-end- author:sunjianlei --- date:20191009 --- for: 鎻愬崌鍙抽敭鑿滃崟鐨勫眰绾� --> <a-tabs - v-if="$route.meta.title!=='棣栭〉'&&multipage" @contextmenu.native="e => onContextmenu(e)" + v-if="$route.meta.title!=='棣栭〉'&&multipage" :active-key="activePage" class="tab-layout-tabs" style="height:52px" @@ -14,12 +14,12 @@ @change="changePage" @tabClick="tabCallBack" @edit="editPage"> - <a-tab-pane :id="page.fullPath" :key="page.fullPath" v-for="page in pageList" + <a-tab-pane :id="page.path" :key="page.path" v-for="page in pageList" :closable="!(page.meta.title=='棣栭〉')"> - <span slot="tab" :pagekey="page.fullPath">{{ page.meta.title }}</span> + <span slot="tab" :pagekey="page.path">{{ page.meta.title }}</span> </a-tab-pane> </a-tabs> - <div> + <div :style="{padding: $route.meta.title=='棣栭〉'?'0':'12px 12px 0'}"> <!-- update-begin-author:taoyan date:20201221 for:姝ゅ鍒犳帀transition鏍囩 涓嶇煡閬撲负浠�涔堝姞涓婂悗 椤甸潰璺敱鍒囨崲鐨勬椂鍊欏嵆1鍙婅彍鍗曞垏鍒�2鍙婅彍鍗曠殑鏃跺�� 涓や釜鑿滃崟椤甸潰浼氬悓鏃跺嚭鐜�300-500绉掑乏鍙� --> <keep-alive v-if="multipage"> <router-view v-if="reloadFlag"/> @@ -91,6 +91,7 @@ this.pageList.push(currentRoute) this.linkList.push(currentRoute.fullPath) this.activePage = currentRoute.fullPath + this.$bus.$on('clickMenuTitleSelected', this.clickMenuTitleSelected) }, mounted() { }, @@ -126,7 +127,7 @@ let index = this.linkList.lastIndexOf(key) let waitRouter = this.pageList[index] // 銆怲ESTA-523銆戜慨澶嶏細涓嶅厑璁搁噸澶嶈烦杞矾鐢卞紓甯� - if (waitRouter.fullPath !== this.$route.fullPath) { + if (waitRouter.path !== this.$route.fullPath) { this.$router.push(Object.assign({}, waitRouter)) } this.changeTitle(waitRouter.meta.title) @@ -201,9 +202,8 @@ this.$message.warning('杩欐槸鏈�鍚庝竴椤碉紝涓嶈兘鍐嶅叧闂簡鍟�') return } - console.log('this.pageList ', this.pageList) - let removeRoute = this.pageList.filter(item => item.fullPath == key) - this.pageList = this.pageList.filter(item => item.fullPath !== key) + let removeRoute = this.pageList.filter(item => item.path == key) + this.pageList = this.pageList.filter(item => item.path !== key) let index = this.linkList.indexOf(key) this.linkList = this.linkList.filter(item => item !== key) index = index >= this.linkList.length ? this.linkList.length - 1 : index @@ -214,8 +214,6 @@ let cacheRouterArray = Vue.ls.get(CACHE_INCLUDED_ROUTES) || [] if (removeRoute && removeRoute[0]) { let componentName = removeRoute[0].meta.componentName - console.log('key: ', key) - console.log('componentName: ', componentName) if (cacheRouterArray.includes(componentName)) { cacheRouterArray.splice(cacheRouterArray.findIndex(item => item === componentName), 1) Vue.ls.set(CACHE_INCLUDED_ROUTES, cacheRouterArray) @@ -223,7 +221,7 @@ this.emitPageClosed(removeRoute[0]) } //update-end--Author:scott Date:20201015 for锛氳矾鐢辩紦瀛橀棶棰橈紝鍏抽棴浜唗ab椤垫椂鍐嶆墦寮�灏变笉鍒锋柊 #842 - + this.tabCallBack() }, // 瑙﹀彂 page-closed 锛堥〉闈㈠叧闂級鍏ㄥ眬浜嬩欢 emitPageClosed(closedRoute) { @@ -284,7 +282,7 @@ let indexContent = this.pageList.slice(0, 1)[0] this.linkList = this.linkList.slice(index, index + 1) this.pageList = this.pageList.slice(index, index + 1) - this.linkList.unshift(indexContent.fullPath) + this.linkList.unshift(indexContent.path) this.pageList.unshift(indexContent) this.activePage = this.linkList[1] } @@ -298,17 +296,19 @@ let index = this.linkList.indexOf(pageKey) this.linkList = this.linkList.slice(index) this.pageList = this.pageList.slice(index) - this.linkList.unshift(indexContent.fullPath) + this.linkList.unshift(indexContent.path) this.pageList.unshift(indexContent) + // 鑻ュ皢婵�娲婚〉涓�骞跺叧闂垯鏄剧ず瀵艰埅鏍忛櫎棣栭〉绗竴涓〉闈� if (this.linkList.indexOf(this.activePage) < 0) { - this.activePage = this.linkList[0] + this.activePage = this.linkList[1] } }, closeRight(pageKey) { let index = this.linkList.indexOf(pageKey) this.linkList = this.linkList.slice(0, index + 1) this.pageList = this.pageList.slice(0, index + 1) - if (this.linkList.indexOf(this.activePage < 0)) { + // 鑻ュ皢婵�娲婚〉涓�骞跺叧闂垯鏄剧ず瀵艰埅鏍忔渶鍚庝竴涓〉闈� + if (this.linkList.indexOf(this.activePage) < 0) { this.activePage = this.linkList[this.linkList.length - 1] } }, @@ -340,6 +340,38 @@ //鏂板涓�涓繑鍥炴柟娉� excuteCallback(callback) { callback() + }, + + clickMenuTitleSelected(selectedMenus) { + //console.log("鏂扮殑璺敱",newRoute) + this.activePage = selectedMenus[0].path + if (!this.multipage) { + this.linkList = [this.linkList[0], selectedMenus[0].path] + this.pageList = [this.pageList[0], Object.assign({}, selectedMenus[0])] + // update-begin-author:taoyan date:20200211 for: TASK #3368 銆愯矾鐢辩紦瀛樸�戦椤电殑缂撳瓨璁剧疆鏈夐棶棰橈紝闇�瑕佹牴鎹悗鍙扮殑璺敱閰嶇疆鏉ュ疄鐜版槸鍚︾紦瀛� + } else if (indexKey == selectedMenus[0].path) { + //棣栭〉鏃� 鍒ゆ柇鏄惁缂撳瓨 娌℃湁缂撳瓨 鍒锋柊涔� + if (selectedMenus[0].meta.keepAlive === false) { + this.routeReload() + } + // update-end-author:taoyan date:20200211 for: TASK #3368 銆愯矾鐢辩紦瀛樸�戦椤电殑缂撳瓨璁剧疆鏈夐棶棰橈紝闇�瑕佹牴鎹悗鍙扮殑璺敱閰嶇疆鏉ュ疄鐜版槸鍚︾紦瀛� + } else { + // selectedMenus.forEach(menuItem => { + // if (!this.linkList.includes(menuItem.path)) { + // console.log('瑙﹀彂澧炲姞') + // this.linkList.push(menuItem.path) + // this.pageList.push(menuItem) + // } else { + // console.log('瑙﹀彂娌℃湁澧炲姞') + // let oldIndex = this.linkList.indexOf(menuItem.path) + // let oldPositionRoute = this.pageList[oldIndex] + // this.pageList.splice(oldIndex, 1, Object.assign({}, menuItem, { meta: oldPositionRoute.meta })) + // } + // }) + // 鐐瑰嚮鏍囬鍚庡湪瀵艰埅鏍忚鐩栧墠涓�涓爣棰樻墍灞曞紑鐨勪笅绾ц彍鍗� + this.linkList = [this.linkList[0], ...selectedMenus.map(item => item.path)] + this.pageList = [this.pageList[0], ...selectedMenus] + } } } } @@ -393,9 +425,9 @@ &.ant-tabs-card .ant-tabs-tab { - padding: 0 24px !important; + padding: 0 20px 0 2px !important; background-color: white !important; - margin-right: 10px !important; + /*margin-right: 10px !important;*/ .ant-tabs-close-x { width: 12px !important; -- Gitblit v1.9.3