From 28243550e53fcdf0d8dc4d0dd20f8b35acb4f6ba Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期一, 14 八月 2023 17:22:42 +0800
Subject: [PATCH] 8-14-计量模块
---
src/view/index.vue | 679 +++++++++++++++++++++++++++++++-------------------------
1 files changed, 374 insertions(+), 305 deletions(-)
diff --git a/src/view/index.vue b/src/view/index.vue
index f6e7402..3d5a9e8 100644
--- a/src/view/index.vue
+++ b/src/view/index.vue
@@ -1,224 +1,248 @@
<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: 130px;
- }
+.logo {
+ width: 130px;
+}
- .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 {
- width: 92px;
- height: calc(100vh - 58px - 40px);
- background-color: #004EA2;
- display: flex;
- align-items: center;
- flex-direction: column;
- padding: 20px 0;
- }
+.left {
+ width: 92px;
+ height: calc(100vh - 58px - 40px);
+ background-color: #004ea2;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ padding: 20px 0;
+}
- .left .box {
- color: #fff;
- width: 68px;
- height: 68px;
- margin: 20px 0;
- cursor: pointer;
- display: flex;
- align-items: center;
- justify-content: center;
- flex-direction: column;
- border-radius: 8px;
- }
+.left .box {
+ color: #fff;
+ width: 68px;
+ height: 68px;
+ margin: 20px 0;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ border-radius: 8px;
+}
- .left .box:active {
- opacity: .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 {
- width: calc(100% - 92px);
- height: calc(100vh - 58px);
- }
+.right {
+ width: calc(100% - 92px);
+ height: calc(100vh - 58px);
+}
- .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 {
+ 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-s-unfold {
- font-size: 18px;
- cursor: pointer;
- margin: 0 8px;
- }
+.tag .el-icon-s-unfold {
+ font-size: 18px;
+ cursor: pointer;
+ margin: 0 8px;
+}
- .tabs {
- min-width: calc(100% - 34px);
- height: 100%;
- align-items: center;
- display: flex;
- overflow-x: auto;
- }
+.tabs {
+ min-width: calc(100% - 34px);
+ height: 100%;
+ align-items: center;
+ display: flex;
+ overflow-x: auto;
+}
- .tab {
- cursor: pointer;
- font-size: 14px;
- margin: 0 8px;
- line-height: 32px;
- transition: .3s;
- border-top: 2px solid transparent;
- border-bottom: 2px solid transparent;
- user-select: none;
- flex-shrink: 0;
- }
+.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;
+}
- .tab i {
- font-size: 12px;
- display: none;
- }
+.tab i {
+ font-size: 12px;
+ display: none;
+}
- .active_tab {
- border-bottom: 2px solid #004EA2;
- color: #004EA2;
- }
+.active_tab {
+ border-bottom: 2px solid #004ea2;
+ color: #004ea2;
+}
- .active_tab i {
- display: inline;
- 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);
- }
+.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%;
- }
+.com_index {
+ width: 100%;
+ height: 100%;
+}
</style>
-<style>
-
-</style>
+<style></style>
<template>
<div class="all">
<div class="title">
<div class="logo">
- <img src="../../static/img/logo 1.png">
+ <img src="../../static/img/logo 1.png" />
</div>
<div class="label">鐢电紗闄勪欢鏂颁竴浠om绯荤粺</div>
<div class="user">
- <el-avatar :size="24">{{userName.substring(0,1)}}</el-avatar>
- <span>{{userName}}</span>
- <img src="../../static/img/閫�鍑�.png" @click="out">
+ <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">
- <div :class="`box ${activeBox==0?'active_box':''}`" @click="addTab(menu[0].c[0])">
+ <div
+ :class="`box ${activeBox == 0 ? 'active_box' : ''}`"
+ @click="addTab(menu[0].c[0])"
+ >
<i class="font icon-shouye"></i>
<div>棣栭〉</div>
</div>
- <el-popover placement="right-start" width="90" trigger="click" v-for="(a, ai) in menu" :key="ai" v-if="a.k!='0'">
- <div :class="`box ${activeBox==a.k?'active_box':''}`" @click="activeBox = a.k" slot="reference">
+ <div
+ :class="`box ${activeBox == 3 ? 'active_box' : ''}`"
+ @click="addTab(menu[1].c[0])"
+ >
+ <i class="font icon-jine"></i>
+ <div>閿�鍞鐞�</div>
+ </div>
+ <el-popover
+ placement="right-start"
+ width="90"
+ trigger="click"
+ v-for="(a, ai) in menu"
+ :key="ai"
+ v-if="a.k != '0' && a.k != '3'"
+ >
+ <div
+ :class="`box ${activeBox == a.k ? 'active_box' : ''}`"
+ @click="activeBox = a.k"
+ slot="reference"
+ >
<i :class="a.i"></i>
- <div>{{a.v}}</div>
+ <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>{{ b.v }}</span>
</p>
</div>
</el-popover>
@@ -227,16 +251,25 @@
<div class="tag">
<i class="el-icon-s-unfold"></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}}
+ <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)"></i>
</div>
</div>
</div>
<div class="component_view">
- <component class="com_index" v-for="(com,index) in tabs" :is="com.u" :key="upIndex+'|'+index"
- v-show="com.k == tabActive">
+ <component
+ class="com_index"
+ v-for="(com, index) in tabs"
+ :is="com.u"
+ :key="upIndex + '|' + index"
+ v-show="com.k == tabActive"
+ >
</component>
</div>
</div>
@@ -244,149 +277,185 @@
</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",
- menu: [{
+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",
+ menu: [
+ {
k: 0,
v: "棣栭〉",
i: "font icon-shouye",
- c: [{
- k: 0,
- v: "棣栭〉",
- i: "font icon-shouye",
- u: "index-index"
- }]
- }, {
+ c: [
+ {
+ k: 0,
+ v: "棣栭〉",
+ i: "font icon-shouye",
+ u: "index-index"
+ }
+ ]
+ },
+ {
+ k: 3,
+ v: "閿�鍞鐞�",
+ i: "font icon-jine",
+ c: [
+ {
+ k: 11,
+ v: "閿�鍞鐞�",
+ i: "font icon-jine",
+ u: "sale"
+ }
+ ]
+ },
+ {
k: 1,
v: "鎶�鏈鐞�",
i: "font icon-shouye",
- c: [{
- k: 1,
- v: "鏍囧噯BOM",
- i: "font icon-shouye",
- u: "standard"
- }, {
- k: 2,
- v: "鎶�鏈枃浠�",
- i: "font icon-shouye",
- u: "technical"
- }]
- }, {
+ c: [
+ {
+ k: 1,
+ v: "鏍囧噯BOM",
+ i: "font icon-shouye",
+ u: "standard"
+ },
+ {
+ k: 2,
+ v: "鎶�鏈枃浠�",
+ i: "font icon-shouye",
+ u: "technical"
+ }
+ ]
+ },
+ {
k: 2,
v: "QMS绠$悊",
i: "font icon-shouye",
- c: [{
- k: 3,
- v: "鍘熸潗鏂欐楠�",
- i: "font icon-shouye",
- u: "rawInsBox"
- }, {
- k: 4,
- v: "鍘熸潗鏂欎笉鍚堟牸鍝�",
- i: "font icon-shouye",
- u: "rawUnqualifiedBox"
- }, {
- k: 5,
- v: "杩囩▼妫�楠�",
- i: "font icon-shouye",
- u: "processInspection"
- }, {
- k: 6,
- v: "鎴愬搧妫�楠�",
- i: "font icon-shouye",
- u: "finishedProductInspection"
- }, {
- k: 7,
- v: "涓嶅悎鏍煎搧绠$悊",
- i: "font icon-shouye",
- u: "unqualifiedManagement"
- }, {
- k: 8,
- v: "瀹為獙瀹ょ鐞�",
- i: "font icon-shouye",
- u: ""
- }, {
- k: 9,
- v: "璐ㄩ噺缁熻",
- i: "font icon-shouye",
- u: ""
- }, {
- k: 10,
- v: "璁¢噺绠$悊",
- i: "font icon-shouye",
- u: ""
- }]
- }],
- activeBox: 0,
- activeP: 0,
- tabActive: 0,
- tabs: [{
+ c: [
+ {
+ k: 3,
+ v: "鍘熸潗鏂欐楠�",
+ i: "font icon-shouye",
+ u: "rawInsBox"
+ },
+ {
+ k: 4,
+ v: "鍘熸潗鏂欎笉鍚堟牸鍝�",
+ i: "font icon-shouye",
+ u: "rawUnqualifiedBox"
+ },
+ {
+ k: 5,
+ v: "杩囩▼妫�楠�",
+ i: "font icon-shouye",
+ u: "processInspection"
+ },
+ {
+ k: 6,
+ v: "鎴愬搧妫�楠�",
+ i: "font icon-shouye",
+ u: "finishedProductInspection"
+ },
+ {
+ k: 7,
+ v: "涓嶅悎鏍煎搧绠$悊",
+ i: "font icon-shouye",
+ u: "unqualifiedManagement"
+ },
+ {
+ k: 8,
+ v: "瀹為獙瀹ょ鐞�",
+ i: "font icon-shouye",
+ u: "laboratoryManagement"
+ },
+ {
+ k: 9,
+ v: "璐ㄩ噺缁熻",
+ i: "font icon-shouye",
+ u: ""
+ },
+ {
+ k: 10,
+ v: "璁¢噺绠$悊",
+ i: "font icon-shouye",
+ u: "measurementManagement"
+ }
+ ]
+ }
+ ],
+ activeBox: 0,
+ activeP: 0,
+ tabActive: 0,
+ tabs: [
+ {
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
- }
- })
- // 濡傛灉娌℃湁閬嶅巻鍒皌abs閲屾病鏈夎ob瀵瑰簲鐨則able锛屽線tabs閲岄潰鍔犲叆璇b
- if (num == -1) {
- this.tabs.push(ob)
}
- },
- removeTab(index) {
- if (this.tabs.length > 1) {
- this.tabs.splice(index, 1)
- this.activeP = this.tabs[this.tabs.length - 1].k
- this.tabActive = this.tabs[this.tabs.length - 1].k
- } else {
- this.$message.warning("涓嶈兘鍏抽棴鏈�鍚庣殑鏍囩")
+ ],
+ upIndex: 0
+ };
+ },
+ created() {},
+ mounted() {
+ this.userName = JSON.parse(localStorage.getItem("user")).name;
+ },
+ methods: {
+ addTab(ob) {
+ if (ob.k == 0) this.activeBox = 0;
+ if (ob.k == 11) this.activeBox = 3;
+ 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;
}
- },
- upTabActive(num) {
- this.tabActive = num
- this.activeP = num
- if (num == 0) {
- this.activeBox = 0
- } else if (num > 0 && num <= 2) {
- this.activeBox = 1
- } else if (num > 2 && num <= 10) {
- this.activeBox = 2
- }
- },
- out() {
- sessionStorage.clear()
- localStorage.removeItem('autoenter')
- this.$router.push("/enter")
+ });
+ // 濡傛灉娌℃湁閬嶅巻鍒皌abs閲屾病鏈夎ob瀵瑰簲鐨則able锛屽線tabs閲岄潰鍔犲叆璇b
+ if (num == -1) {
+ this.tabs.push(ob);
}
+ },
+ removeTab(index) {
+ if (this.tabs.length > 1) {
+ this.tabs.splice(index, 1);
+ this.activeP = this.tabs[this.tabs.length - 1].k;
+ this.tabActive = this.tabs[this.tabs.length - 1].k;
+ } else {
+ this.$message.warning("涓嶈兘鍏抽棴鏈�鍚庣殑鏍囩");
+ }
+ },
+ upTabActive(num) {
+ this.tabActive = num;
+ this.activeP = num;
+ if (num == 0) {
+ this.activeBox = 0;
+ } else if (num > 0 && num <= 2) {
+ this.activeBox = 1;
+ } else if (num > 2 && num <= 10) {
+ this.activeBox = 2;
+ } else if (num == 11) {
+ this.activeBox = 3;
+ }
+ },
+ out() {
+ sessionStorage.clear();
+ localStorage.removeItem("autoenter");
+ this.$router.push("/enter");
}
}
-</script>
\ No newline at end of file
+};
+</script>
--
Gitblit v1.9.3