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 |  688 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 370 insertions(+), 318 deletions(-)

diff --git a/src/view/index.vue b/src/view/index.vue
index 434a923..3d5a9e8 100644
--- a/src/view/index.vue
+++ b/src/view/index.vue
@@ -1,228 +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>
-			<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">
+      <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>
@@ -231,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>
@@ -248,162 +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"
-          }]
-        }, {
+          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: "laboratoryManagement"
-          }, {
-            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
-				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
-          }
-        })
-        // 濡傛灉娌℃湁閬嶅巻鍒皌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
-        } else if(num == 11){
-					this.activeBox = 3
-				}
-      },
-      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>

--
Gitblit v1.9.3