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 f55855d..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: 3,
- v: "鎵胯繍鍟嗗悎鍚岀鐞�",
- i: "font icon-icon-contract",
- u: "carrierContract"
- }]
- },
- {
- k: 1,
- v: "杩愯緭绠$悊",
- i: "font icon-yunyingguanli_tieziguanli",
- c: [{
- k: 1,
- v: "鍙戣揣鐢宠",
- i: "font icon-bodanguanli",
- u: "shipmentRequest"
- },
- {
- k: 2,
- v: "鍙戣揣鎿嶄綔",
- i: "font icon-bodanguanli",
- u: "shipmentOperate"
- },
- {
- k: 3,
- v: "鍙戣揣鍒楄〃",
- i: "font icon-bodanguanli",
- u: "shipmentTabulation"
- },
-
- {
- k: 5,
- v: "鍙戣揣璺熻釜",
- i: "font icon-bodanguanli",
- u: "shipmentTrack"
- },{
- k: 6,
- v: "鍒扮エ鏍搁攢",
- i: "font icon-bodanguanli",
- u: "invoiceVerification"
- },
-
- {
- k: 7,
- v: "杩愯垂缁撶畻",
- i: "font icon-bodanguanli",
- u: "freightSettlement"
- },
- {
- k: 8,
- v: "寰�鏉ユ牳瀵�",
- i: "font icon-bodanguanli",
- u: "reconciliationTransactions"
- },
- {
- k: 9,
- v: "鍥炲崟鏍搁攢",
- i: "font icon-bodanguanli",
- u: "receiptVerification"
- },
-
- {
- k: 10,
- v: "鍥炲崟鍙婃椂鐜囩粺璁�",
- i: "font icon-bodanguanli",
- u: "receiptStatistics"
- },{
- k: 11,
- v: "鏁磋溅鐜囩粺璁�",
- i: "font icon-bodanguanli",
- u: "vehicleStatistics"
- },
- {
- k: 12,
- v: "瀹氫綅鍗$鐞�",
- i: "font icon-bodanguanli",
- u: "locationCardManagement"
- },
- {
- k: 13,
- v: "璐ц溅棰勭害",
- i: "font icon-bodanguanli",
- u: "trackAppointment"
- },
- ]
- },
- {
- k: 3,
- v: "鎵胯繍鍟嗚�冩牳",
- i: "font icon-wodekaohe",
- c: [{
- k: 1,
- v: "鎵胯繍鍟嗘寚鏍囨煡璇�",
- i: "font icon-bodanguanli",
- u: "carrierMetrics"
- },
- {
- k: 2,
- v: "鍥炲崟鍛ㄦ湡缁存姢",
- i: "font icon-bodanguanli",
- u: "receiptPeriod"
- }
- ]
- },
- {
- k: 4,
- v: "绯荤粺閰嶇疆",
- i: "el-icon-s-tools",
- c: [{
- k: 1,
- v: "瀹氫綅鍗¢鐢ㄧ鐞�",
- i: "font icon-bodanguanli",
- u: ""
- },
- {
- k: 2,
- v: "瀹氫綅鍗″洖鏀剁鐞�",
- i: "font icon-bodanguanli",
- u: ""
- },
- {
- k: 3,
- v: "杞﹂暱鍗曚环缁存姢",
- i: "font icon-bodanguanli",
- u: ""
- },
- {
- k: 4,
- v: "閰嶈浇鍗曚环缁存姢",
- i: "font icon-bodanguanli",
- u: ""
- },
- {
- k: 5,
- 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