From 66506f2a1b836e955264f3efbfdcd3e27008b6a6 Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期四, 12 十月 2023 13:05:41 +0800 Subject: [PATCH] modified: index.html modified: src/components/view/carrierManagement.vue modified: src/view/index.vue --- src/view/index.vue | 843 ++++++++++++++++++++++++++++--------------------------- 1 files changed, 427 insertions(+), 416 deletions(-) diff --git a/src/view/index.vue b/src/view/index.vue index b84de4a..e6947d6 100644 --- a/src/view/index.vue +++ b/src/view/index.vue @@ -1,208 +1,208 @@ <style scoped> - .all { - width: 100vw; - height: 100vh; - background-size: 100% 100%; - display: flex; - flex-wrap: wrap; - } +.all { + width: 100vw; + height: 100vh; + background-size: 100% 100%; + display: flex; + flex-wrap: wrap; +} - .title { - width: 100%; - height: 58px; - display: flex; - align-items: center; - padding: 0 30px; - } +.title { + width: 100%; + height: 58px; + display: flex; + align-items: center; + padding: 0 30px; +} - .logo { - width: 140px; - } +.logo { + width: 140px; +} - .logo img { - width: 100%; - height: 100%; - } +.logo img { + width: 100%; + height: 100%; +} - .title .label { - font-size: 18px; - text-align: center; - width: calc(100% - 130px - 200px); - } +.title .label { + font-size: 18px; + text-align: center; + width: calc(100% - 130px - 200px); +} - .user { - width: 200px; - height: 100%; - display: flex; - align-items: center; - justify-content: right; - color: #000; - } +.user { + width: 200px; + height: 100%; + display: flex; + align-items: center; + justify-content: right; + color: #000; +} - .user * { - margin: 0 5px; - } +.user * { + margin: 0 5px; +} - .user img { - margin-left: 20px; - cursor: pointer; - width: 14px; - } +.user img { + margin-left: 20px; + cursor: pointer; + width: 14px; +} - .user span { - font-size: 14px; - } +.user span { + font-size: 14px; +} - .left { - height: calc(100vh - 58px - 40px); - background-color: #004ea2; - display: flex; - align-items: center; - flex-direction: column; - padding: 20px 0; - transition: .3s; - overflow-y: auto; - } +.left { + height: calc(100vh - 58px - 40px); + background-color: #004ea2; + display: flex; + align-items: center; + flex-direction: column; + padding: 20px 0; + transition: 0.3s; + overflow-y: auto; +} - .left .box { - color: #fff; - width: 71px; - height: 75px; - margin: 8px 0; - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - flex-direction: column; - border-radius: 8px; - } +.left .box { + color: #fff; + width: 71px; + height: 75px; + margin: 8px 0; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + border-radius: 8px; +} - .left .box:active { - opacity: 0.8; - } +.left .box:active { + opacity: 0.8; +} - .left .active_box { - background-color: #fff; - color: #004ea2; - } +.left .active_box { + background-color: #fff; + color: #004ea2; +} - .left .box i { - font-size: 32px; - margin-bottom: 8px; - } +.left .box i { + font-size: 32px; + margin-bottom: 8px; +} - .left .box div { - font-size: 14px; - } +.left .box div { + font-size: 14px; +} - .small_menu { - color: #666; - } +.small_menu { + color: #666; +} - .small_menu .active_p { - color: #004ea2; - } +.small_menu .active_p { + color: #004ea2; +} - .small_menu p { - padding: 12px 15px; - cursor: pointer; - } +.small_menu p { + padding: 12px 15px; + cursor: pointer; +} - .small_menu p:hover { - background-color: rgba(0, 0, 0, 0.05); - } +.small_menu p:hover { + background-color: rgba(0, 0, 0, 0.05); +} - .small_menu i { - font-size: 16px; - } +.small_menu i { + font-size: 16px; +} - .small_menu span { - font-size: 14px; - } +.small_menu span { + font-size: 14px; +} - .right { - height: calc(100vh - 58px); - transition: .3s; - } +.right { + height: calc(100vh - 58px); + transition: 0.3s; +} - .tag { - width: 100%; - height: 36px; - background: rgb(255, 255, 255); - opacity: 0.8; - box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1); - display: flex; - align-items: center; - color: #999; - font-size: 14px; - } - - .tag .el-icon-delete{ - display: none; - } - - .tag .el-icon-delete:hover{ - color: #F56C6C; - } - - .tag:hover .el-icon-delete{ - display: block; - } - - .tag>.el-icon-s-unfold, - .el-icon-s-fold, - .el-icon-delete { - font-size: 18px; - cursor: pointer; - margin: 0 8px; - } +.tag { + width: 100%; + height: 36px; + background: rgb(255, 255, 255); + opacity: 0.8; + box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1); + display: flex; + align-items: center; + color: #999; + font-size: 14px; +} - .tabs { - min-width: calc(100% - 68px); - height: 100%; - align-items: center; - display: flex; - overflow-x: auto; - } +.tag .el-icon-delete { + display: none; +} - .tab { - cursor: pointer; - font-size: 14px; - margin: 0 8px; - line-height: 32px; - transition: 0.3s; - border-top: 2px solid transparent; - border-bottom: 2px solid transparent; - user-select: none; - flex-shrink: 0; - } +.tag .el-icon-delete:hover { + color: #f56c6c; +} - .tab i { - font-size: 12px; - display: none; - } +.tag:hover .el-icon-delete { + display: block; +} - .active_tab { - border-bottom: 2px solid #004ea2; - color: #004ea2; - } +.tag>.el-icon-s-unfold, +.el-icon-s-fold, +.el-icon-delete { + font-size: 18px; + cursor: pointer; + margin: 0 8px; +} - .active_tab i { - display: inline; - color: #004ea2; - } +.tabs { + min-width: calc(100% - 68px); + height: 100%; + align-items: center; + display: flex; + overflow-x: auto; +} - .component_view { - height: calc(100vh - 94px - 22px); - width: calc(100% - 48px); - padding: 11px 24px; - background: rgb(245, 247, 251); - } +.tab { + cursor: pointer; + font-size: 14px; + margin: 0 8px; + line-height: 32px; + transition: 0.3s; + border-top: 2px solid transparent; + border-bottom: 2px solid transparent; + user-select: none; + flex-shrink: 0; +} - .com_index { - width: 100%; - height: 100%; - } +.tab i { + font-size: 12px; + display: none; +} + +.active_tab { + border-bottom: 2px solid #004ea2; + color: #004ea2; +} + +.active_tab i { + display: inline; + color: #004ea2; +} + +.component_view { + height: calc(100vh - 94px - 22px); + width: calc(100% - 48px); + padding: 11px 24px; + background: rgb(245, 247, 251); +} + +.com_index { + width: 100%; + height: 100%; +} </style> <style></style> <template> @@ -211,14 +211,14 @@ <div class="logo"> <img src="../../static/img/lg.png" /> </div> - <div class="label">鐟炵繑鏂版潗TMS绯荤粺</div> + <div class="label" id="label">鐟炵繑鏂版潗TMS绯荤粺</div> <div class="user"> <el-avatar :size="24">{{ userName.substring(0, 1) }}</el-avatar> <span>{{ userName }}</span> <img src="../../static/img/閫�鍑�.png" @click="out" /> </div> </div> - <div class="left" :style="`width: ${leftOpen?'92':'0'}px;`"> + <div class="left" :style="`width: ${leftOpen ? '92' : '0'}px;`"> <div :class="`box ${activeBox == 0 ? 'active_box' : ''}`" @click="addTab(menu[0].c[0])"> <i class="font icon-shouye"></i> <div>棣栭〉</div> @@ -230,21 +230,21 @@ <div>{{ a.v }}</div> </div> <div class="small_menu"> - <p v-for="(b, bi) in a.c" :key="bi" :class="activeP == b.k ? 'active_p' : ''" @click="addTab(b)"> + <p v-for="(b, bi) in a.c" :key="bi" :class="activeP == b.k ? 'active_p' : ''" @click="addTab(b)"> <i :class="b.i"></i> - <span>{{ b.v }}</span> + <span :id="menu+`${b.k}`" >{{ b.v }}</span> </p> </div> </el-popover> </div> - <div class="right" :style="`width: calc(100% - ${leftOpen?'92':'0'}px);`"> + <div class="right" :style="`width: calc(100% - ${leftOpen ? '92' : '0'}px);`"> <div class="tag"> - <i :class="`${leftOpen?'el-icon-s-unfold':'el-icon-s-fold'}`" @click="leftOpen = !leftOpen"></i> + <i :class="`${leftOpen ? 'el-icon-s-unfold' : 'el-icon-s-fold'}`" @click="leftOpen = !leftOpen"></i> <div class="tabs"> <div :class="`tab ${tabActive == a.k ? 'active_tab' : ''}`" v-for="(a, ai) in tabs" :key="ai" @click="upTabActive(a.k)"> {{ a.v }} - <i class="el-icon-close" @click="removeTab(ai)" v-if="tabActive!=0"></i> + <i class="el-icon-close" @click="removeTab(ai)" v-if="tabActive != 0"></i> </div> </div> <i class="el-icon-delete" @click="allDel" title="鍒犻櫎鎵�鏈夋爣绛鹃〉"></i> @@ -259,248 +259,259 @@ </template> <script> - const requireComponent = require.context("../components/view", false, /\.vue/); - var comObj = {}; - requireComponent.keys().forEach(fileName => { - var names = fileName - .split("/") - .pop() - .replace(".vue", ""); - const componentConfig = requireComponent(fileName); - comObj[names] = componentConfig.default || componentConfig; - }); - export default { - components: comObj, - data() { - return { - userName: "value", - leftOpen: true, - menu: [{ - k: 0, - v: "棣栭〉", - i: "font icon-shouye", - self: true, - c: [{ - k: 0, - v: "棣栭〉", - i: "font icon-shouye", - u: "index-index" - }] - }, - { - k: 2, - v: "鎵胯繍鍟嗙鐞�", - i: "font icon-kuguanfahuo", - c: [{ - k: 3, - v: "鎵胯繍鍟嗙鐞�", - i: "font icon-bodanguanli", - u: "carrierManagement" - },{ - k: 4, - v: "鎵胯繍鍟嗗悎鍚岀鐞�", - i: "font icon-icon-contract", - u: "carrierContract" - }] - }, - { - k: 1, - v: "杩愯緭绠$悊", - i: "font icon-yunyingguanli_tieziguanli", - c: [{ - k: 5, - v: "鍙戣揣鐢宠", - i: "font icon-bodanguanli", - u: "shipmentRequest" - }, - { - k: 6, - v: "鍙戣揣鎿嶄綔", - i: "font icon-bodanguanli", - u: "shipmentOperate" - }, - { - k: 7, - v: "鍙戣揣鍒楄〃", - i: "font icon-bodanguanli", - u: "shipmentTabulation" - }, - - { - k: 8, - v: "鍙戣揣璺熻釜", - i: "font icon-bodanguanli", - u: "shipmentTrack" - },{ - k: 9, - v: "鍒扮エ鏍搁攢", - i: "font icon-bodanguanli", - u: "invoiceVerification" - }, - - { - k: 10, - v: "杩愯垂缁撶畻", - i: "font icon-bodanguanli", - u: "freightSettlement" - }, - { - k: 11, - v: "寰�鏉ユ牳瀵�", - i: "font icon-bodanguanli", - u: "reconciliationTransactions" - }, - { - k: 12, - v: "鍥炲崟鏍搁攢", - i: "font icon-bodanguanli", - u: "receiptVerification" - }, - - { - k: 13, - v: "鍥炲崟鍙婃椂鐜囩粺璁�", - i: "font icon-bodanguanli", - u: "receiptStatistics" - },{ - k: 14, - v: "鏁磋溅鐜囩粺璁�", - i: "font icon-bodanguanli", - u: "vehicleStatistics" - }, - { - k: 15, - v: "瀹氫綅鍗$鐞�", - i: "font icon-bodanguanli", - u: "locationCardManagement" - }, - { - k: 16, - v: "璐ц溅棰勭害", - i: "font icon-bodanguanli", - u: "trackAppointment" - }, - ] - }, - { - k: 3, - v: "鎵胯繍鍟嗚�冩牳", - i: "font icon-wodekaohe", - c: [{ - k: 17, - v: "鎵胯繍鍟嗘寚鏍囨煡璇�", - i: "font icon-bodanguanli", - u: "carrierMetrics" - }, - { - k: 18, - v: "鍥炲崟鍛ㄦ湡缁存姢", - i: "font icon-bodanguanli", - u: "receiptPeriod" - } - ] - }, - { - k: 4, - v: "绯荤粺閰嶇疆", - i: "el-icon-s-tools", - c: [{ - k: 19, - v: "瀹氫綅鍗¢鐢ㄧ鐞�", - i: "font icon-bodanguanli", - u: "" - }, - { - k: 20, - v: "瀹氫綅鍗″洖鏀剁鐞�", - i: "font icon-bodanguanli", - u: "" - }, - { - k: 21, - v: "杞﹂暱鍗曚环缁存姢", - i: "font icon-bodanguanli", - u: "" - }, - { - k: 22, - v: "閰嶈浇鍗曚环缁存姢", - i: "font icon-bodanguanli", - u: "" - }, - { - k: 23, - v: "涓撹溅浠风淮鎶�", - i: "font icon-bodanguanli", - u: "" - } - ] - } - ], - activeBox: 0, - activeP: 0, - tabActive: 0, - tabs: [{ +import { ref,onMounted } from 'vue' +const requireComponent = require.context("../components/view", false, /\.vue/); +var comObj = {}; +requireComponent.keys().forEach(fileName => { + var names = fileName + .split("/") + .pop() + .replace(".vue", ""); + const componentConfig = requireComponent(fileName); + comObj[names] = componentConfig.default || componentConfig; +}); +export default { + components: comObj, + data() { + return { + userName: "value", + leftOpen: true, + menu: [{ + k: 0, + v: "棣栭〉", + i: "font icon-shouye", + self: true, + c: [{ k: 0, v: "棣栭〉", i: "font icon-shouye", u: "index-index" - }], - upIndex: 0 - }; - }, - created() {}, - mounted() { - // this.userName = JSON.parse(localStorage.getItem("user")).name; - }, - methods: { - addTab(ob) { - if (ob.k == 0) this.activeBox = 0; - this.activeP = ob.k; //0 - this.tabActive = ob.k; //0 - let num = -1; - this.tabs.forEach((a, ai) => { - if (ob.k == a.k) { - num = a.k; - } - }); - if (num == -1) { - this.tabs.push(ob); - } - }, - removeTab(index) { - this.tabs.splice(index, 1); - this.activeP = this.tabs[this.tabs.length - 1].k; - this.tabActive = this.tabs[this.tabs.length - 1].k; - }, - allDel() { - this.activeBox = 0 - this.activeP = 0 - this.tabActive = 0 - this.tabs = [{ - k: 0, - v: " 棣栭〉", - i: "font icon-shouye", - u: "index-index" }] }, - upTabActive(num) { - this.tabActive = num; - this.activeP = num; - for (var i = 0; i < this.menu.length; i++) { - this.menu[i].c.forEach(b => { - if (b.k == num) { - this.activeBox = this.menu[i].k; - return - } - }) - } + { + k: 24, + v: "鎵胯繍鍟嗙鐞�", + i: "font icon-kuguanfahuo", + c: [{ + k: 3, + v: "鎵胯繍鍟嗙鐞�", + i: "font icon-bodanguanli", + u: "carrierManagement" + }, { + k: 4, + v: "鎵胯繍鍟嗗悎鍚岀鐞�", + i: "font icon-icon-contract", + u: "carrierContract" + }] }, - out() { - sessionStorage.clear(); - localStorage.removeItem("autoenter"); - this.$router.push("/enter"); + { + k: 25, + v: "杩愯緭绠$悊", + i: "font icon-yunyingguanli_tieziguanli", + c: [{ + k: 5, + v: "鍙戣揣鐢宠", + i: "font icon-bodanguanli", + u: "shipmentRequest" + }, + { + k: 6, + v: "鍙戣揣鎿嶄綔", + i: "font icon-bodanguanli", + u: "shipmentOperate" + }, + { + k: 7, + v: "鍙戣揣鍒楄〃", + i: "font icon-bodanguanli", + u: "shipmentTabulation" + }, + + { + k: 8, + v: "鍙戣揣璺熻釜", + i: "font icon-bodanguanli", + u: "shipmentTrack" + }, { + k: 9, + v: "鍒扮エ鏍搁攢", + i: "font icon-bodanguanli", + u: "invoiceVerification" + }, + + { + k: 10, + v: "杩愯垂缁撶畻", + i: "font icon-bodanguanli", + u: "freightSettlement" + }, + { + k: 11, + v: "寰�鏉ユ牳瀵�", + i: "font icon-bodanguanli", + u: "reconciliationTransactions" + }, + { + k: 12, + v: "鍥炲崟鏍搁攢", + i: "font icon-bodanguanli", + u: "receiptVerification" + }, + + { + k: 13, + v: "鍥炲崟鍙婃椂鐜囩粺璁�", + i: "font icon-bodanguanli", + u: "receiptStatistics" + }, { + k: 14, + v: "鏁磋溅鐜囩粺璁�", + i: "font icon-bodanguanli", + u: "vehicleStatistics" + }, + { + k: 15, + v: "瀹氫綅鍗$鐞�", + i: "font icon-bodanguanli", + u: "locationCardManagement" + }, + { + k: 16, + v: "璐ц溅棰勭害", + i: "font icon-bodanguanli", + u: "trackAppointment" + }, + ] + }, + { + k: 26, + v: "鎵胯繍鍟嗚�冩牳", + i: "font icon-wodekaohe", + c: [{ + k: 17, + v: "鎵胯繍鍟嗘寚鏍囨煡璇�", + i: "font icon-bodanguanli", + u: "carrierMetrics" + }, + { + k: 18, + v: "鍥炲崟鍛ㄦ湡缁存姢", + i: "font icon-bodanguanli", + u: "receiptPeriod" + } + ] + }, + { + k: 27, + v: "绯荤粺閰嶇疆", + i: "el-icon-s-tools", + c: [{ + k: 19, + v: "瀹氫綅鍗¢鐢ㄧ鐞�", + i: "font icon-bodanguanli", + u: "" + }, + { + k: 20, + v: "瀹氫綅鍗″洖鏀剁鐞�", + i: "font icon-bodanguanli", + u: "" + }, + { + k: 21, + v: "杞﹂暱鍗曚环缁存姢", + i: "font icon-bodanguanli", + u: "" + }, + { + k: 22, + v: "閰嶈浇鍗曚环缁存姢", + i: "font icon-bodanguanli", + u: "" + }, + { + k: 23, + v: "涓撹溅浠风淮鎶�", + i: "font icon-bodanguanli", + u: "" + } + ] } + ], + activeBox: 0, + activeP: 0, + tabActive: 0, + menuIsClick: false, + tabs: [{ + k: 0, + v: "棣栭〉", + i: "font icon-shouye", + u: "index-index" + }], + upIndex: 0 + }; + }, + created() { }, + mounted() { + // this.userName = JSON.parse(localStorage.getItem("user")).name; + }, + watch:{ + menuIsClick(){ + $("#label").click() } + }, + methods: { + menuClick() { + this.menuIsClick=!this.menuIsClick + }, + addTab(ob) { + this.menuClick() + if (ob.k == 0) this.activeBox = 0; + this.activeP = ob.k; //0 + this.tabActive = ob.k; //0 + let num = -1; + this.tabs.forEach((a, ai) => { + if (ob.k == a.k) { + num = a.k; + } + }); + if (num == -1) { + this.tabs.push(ob); + } + }, + removeTab(index) { + this.tabs.splice(index, 1); + this.activeP = this.tabs[this.tabs.length - 1].k; + this.tabActive = this.tabs[this.tabs.length - 1].k; + }, + allDel() { + this.activeBox = 0 + this.activeP = 0 + this.tabActive = 0 + this.tabs = [{ + k: 0, + v: " 棣栭〉", + i: "font icon-shouye", + u: "index-index" + }] + }, + upTabActive(num) { + this.tabActive = num; + this.activeP = num; + for (var i = 0; i < this.menu.length; i++) { + this.menu[i].c.forEach(b => { + if (b.k == num) { + this.activeBox = this.menu[i].k; + return + } + }) + } + }, + out() { + sessionStorage.clear(); + localStorage.removeItem("autoenter"); + this.$router.push("/enter"); + } +} }; </script> \ No newline at end of file -- Gitblit v1.9.3