From c06d6952c55a5b34b08527c9f61117afd0b6e97a Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 08 九月 2023 17:13:41 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.22:9001/r/mom-before

---
 src/components/view/standard.vue |  398 ++++++++++++++++++--------------------------------------
 1 files changed, 132 insertions(+), 266 deletions(-)

diff --git a/src/components/view/standard.vue b/src/components/view/standard.vue
index 5e03711..0d1f689 100644
--- a/src/components/view/standard.vue
+++ b/src/components/view/standard.vue
@@ -2,166 +2,86 @@
   <div class="standard">
     <div class="title">
       <el-row>
-        <el-col :span="12" style="line-height: 32px">鏍囧噯BOM</el-col>
-        <el-col :span="12" style="text-align: right">
-          <el-button
-            type="primary"
-            icon="el-icon-plus"
-            style="background: #004ea2"
-            @click="bomAddModelVisible = true"
-            >鏂板</el-button
-          >
+        <el-col :span="12" style="line-height: 32px;">鏍囧噯BOM</el-col>
+        <el-col :span="12" style="text-align: right;">
+          <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;"
+            @click="bomAddModelVisible = true">鏂板</el-button>
           <el-button icon="el-icon-plus">鏂板鐗堟湰</el-button>
-          <!-- <el-button icon="el-icon-edit-outline">淇敼</el-button> -->
+          <el-button icon="el-icon-edit-outline">淇敼</el-button>
           <el-button icon="el-icon-delete">鍒犻櫎</el-button>
         </el-col>
       </el-row>
     </div>
     <div class="thing">
       <div class="left">
-        <el-input
-          v-model="search"
-          suffix-icon="el-icon-search"
-          placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�"
-          size="small"
-          clearable
-        ></el-input>
+        <el-input v-model="search" suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" size="small" clearable></el-input>
 
-        <el-tree
-          :data="list"
-          ref="tree"
-          :default-expand-all="false"
-          :props="{ children: 'children', label: 'name' }"
-          node-key="id"
-          :filter-node-method="filterNode"
-          @node-click="handleNodeClick"
-          highlight-current
-        >
+        <el-tree :data="list" ref="tree" :default-expand-all="false" :props="{ children: 'children', label: 'name' }"
+          node-key="id" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current>
           <div class="custom-tree-node" slot-scope="{ node, data }">
-            <span
-              ><i
-                :class="`node_i ${
-                  data.code != '[5]'
-                    ? 'el-icon-folder-opened'
-                    : 'el-icon-tickets'
-                }`"
-              ></i>
-              {{ data.name }}</span
-            >
-            <!-- <el-button type="text" size="mini" @click.stop="remove(node, data)">
+            <span><i :class="`node_i ${data.code != '[4]' ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>
+              {{ data.name }}</span>
+            <el-button type="text" size="mini" @click.stop="remove(node, data)">
               <i class="el-icon-delete"></i>
-            </el-button> -->
+            </el-button>
           </div>
         </el-tree>
       </div>
 
+
       <div class="right">
         <div class="choose">
           <span>绫诲瀷锛�</span>
-          <el-select
-            v-model="tableType"
-            size="small"
-            placeholder="璇烽�夋嫨"
-            @change="TYPE"
-            style="width: 224px; margin-right: 52px"
-          >
+          <el-select v-model="tableType" size="small" placeholder="璇烽�夋嫨" @change="TYPE"
+            style="width: 224px;margin-right: 52px;">
             <el-option :value="0" label="宸ヨ壓璺嚎"></el-option>
             <el-option :value="1" label="鎶�鏈寚鏍�"></el-option>
             <el-option :value="2" label="鐗╂枡娓呭崟"></el-option>
             <el-option :value="3" label="鐢熶骇宸ヨ壓"></el-option>
           </el-select>
-          <span>{{ tableType == 1 ? "椤圭洰锛�" : "宸ヨ壓鍚嶇О锛�" }}</span>
-          <el-input
-            v-model="searchName"
-            size="small"
-            placeholder="璇疯緭鍏�"
-            style="width: 224px; margin-right: 24px"
-            clearable
-          ></el-input>
-          <span>{{ tableType == 1 ? "鐗堟湰锛�" : "宸ヨ壓鍚嶇О锛�" }}</span>
-          <el-select
-            v-model="VER"
-            @change="verevent"
-            style="width: 280px"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in version"
-              :key="item"
-              :label="item"
-              :value="item"
-            >
+          <span>{{ tableType == 1 ? '椤圭洰锛�' : '宸ヨ壓鍚嶇О锛�' }}</span>
+          <el-input v-model="searchName" size="small" placeholder="璇疯緭鍏�" style="width: 224px;margin-right: 24px;"
+            clearable></el-input>
+          <span>{{ tableType == 1 ? '鐗堟湰锛�' : '鐗堟湰锛�' }}</span>
+          <el-select v-model="VER" @change="verevent" style="width: 280px;" placeholder="璇烽�夋嫨">
+            <el-option v-for="item in version" :key="item" :label="item" :value="item">
             </el-option>
           </el-select>
-          <el-button
-            size="mini"
-            @click="
-              () => {
-                searchName = '';
-                selectProductTableData();
-              }
-            "
-            ><span>閲� 缃�</span></el-button
-          >
-          <el-button
-            size="mini"
-            type="primary"
-            style="background: #004ea2"
-            @click="selectProductTableData"
-            ><span>鏌� 璇�</span></el-button
-          >
+          <el-button size="mini" @click="() => { searchName = ''; selectProductTableData() }"><span>閲� 缃�</span></el-button>
+          <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectProductTableData"><span>鏌�
+              璇�</span></el-button>
         </div>
 
-        <div>
-          <el-table
-            :data="tableData"
-            style="width: 100%; margin-bottom: 20px"
-            row-key="name"
-            border
-            @selection-change="handleSelectionChange"
-            default-expand-all
-            :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
-          >
-            <el-table-column type="selection" width="55"> </el-table-column>
-            <el-table-column type="index" width="50" label="搴忓彿">
-            </el-table-column>
-            <el-table-column prop="name" label="宸ュ簭" sortable width="300px">
-              <!-- <template slot-scope="scope">
-                        <el-tag>
-                            <div class="firstDiv" :style="`color: ${scope.row.children? '#16a7ff' : '#58c173'}`">
-                            {{ scope.row.children ? "01" : "02" }}
-                            </div>
-                        </el-tag>
-                        <span style="color: black">{{ scope.row.name }}</span>
-
-                        </template> -->
-            </el-table-column>
-            <el-table-column prop="" sortable label="宸ヨ壓鍚嶇О">
-            </el-table-column>
-            <el-table-column prop="" label="鎸囨爣鍚嶇О"> </el-table-column>
-            <el-table-column prop="" label="鍗曚綅"> </el-table-column>
-            <el-table-column prop="" label="鍐呮帶鍊�"> </el-table-column>
-            <el-table-column prop="unit" label="鏍囧噯鍊�"> </el-table-column>
-          </el-table>
+        <div v-if="this.typeselect == 0">
+          <technology  :tableType="tableType" :tableData="tableData"></technology>
         </div>
-        <div class="table">
-          <technology
-            v-if="tableData.length !== 0"
-            :tableType="tableType"
-            :tableData="tableData"
-          ></technology>
+        <div v-if="this.typeselect == 1">
+          鎶�鏈寚鏍�
         </div>
+        <div v-if="this.typeselect == 2">
+          <material  :tableType="tableType" :tableData="tableData"></material>
+        </div>
+        <div v-if="this.typeselect == 3">
+          鐢熶骇宸ヨ壓
+        </div>
+        <!-- <div class="table">
+          <technology v-if="tableData.length !== 0" :tableType="tableType" :tableData="tableData"></technology>
+        </div> -->
+        <!-- <div class="table">
+          <technology v-if="tableData.length !== 0" :tableType="tableType" :tableData="tableData"></technology>
+        </div> -->
       </div>
     </div>
 
+
     <div class="bom-add-model">
       <el-dialog title="BOM鏂板" :visible.sync="bomAddModelVisible" width="30%">
-        <el-form> </el-form>
+        <el-form>
+            
+        </el-form>
         <span slot="footer" class="dialog-footer">
           <el-button @click="bomAddModelVisible = false">鍙� 娑�</el-button>
-          <el-button type="primary" @click="bomAddModelVisible = false"
-            >纭� 瀹�</el-button
-          >
+          <el-button type="primary" @click="bomAddModelVisible = false">纭� 瀹�</el-button>
         </span>
       </el-dialog>
     </div>
@@ -169,22 +89,26 @@
 </template>
 
 <script>
-import technology from "./standard-table/technology.vue";
+import technology from "./standard-table/technology.vue"
+import material from "./standard-table/material.vue"
 export default {
-  components: { technology },
+  components: { technology,material },
+
   data() {
     return {
       // BOM鏍戞暟鎹粨鏋�
       list: [],
       search: null,
-      tableType: 0, // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾�
-      searchName: "", // 鏌ヨ鏉′欢-鍚嶇О
-      checkTreeNode: {}, // 鐐瑰嚮閫変腑鏍戣妭鐐�
+      tableType: 1, // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾�
+      searchName: "",// 鏌ヨ鏉′欢-鍚嶇О
+      checkTreeNode: {},// 鐐瑰嚮閫変腑鏍戣妭鐐�
       tableData: [],
-      bomAddModelVisible: false, // 鎺у埗bom鏂板妯℃�佹鏄惁鏄剧ず
+      bomAddModelVisible: false,// 鎺у埗bom鏂板妯℃�佹鏄惁鏄剧ず
       list: [],
-      typeselect: {},
-      returntree: {},
+      typeselect: 0,
+      returntree: {
+        id:28,
+      },
       version: {},
       VER: {},
       verdata: {},
@@ -201,117 +125,90 @@
   // },
   mounted() {
     this.selectMaterialTree()
-    this.selectVersion()
     this.selectAll()
+    this.selectVersion()
   },
   methods: {
-    selectDataList() {
-      this.list.forEach((a) => {
-        a.code = "[1]";
-        if (a.children != undefined) {
-          a.children.forEach((b) => {
-            b.code = "[2]";
-            if (b.children != undefined) {
-              b.children.forEach((c) => {
-                c.code = "[3]";
-                if (c.children != undefined) {
-                  c.children.forEach((d) => {
-                    d.code = "[4]";
-                    if (d.children != undefined) {
-                      d.children.forEach((e) => {
-                        e.code = "[5]";
-                      });
-                    }
-                  });
-                }
-              });
-            }
-          });
-        }
-      });
-      this.upIndex++;
+    handleSelectionChange() {
+
     },
-    handleSelectionChange() {},
-    TYPE(val) {
-      //绫诲瀷.鏁版嵁
+    TYPE(val) {//绫诲瀷.鏁版嵁
       console.log(val);
-      this.typeselect = val;
-      console.log(this.typeselect);
-      this.selectVersion();
+      this.typeselect = val
+     
+      // console.log(this.typeselect);
+      this.selectVersion()
     },
-    handleNodeClick(val) {
-      //鏍戠殑鍊�
+    handleNodeClick(val) {//鏍戠殑鍊�
       console.log(val);
-      this.returntree = val;
+      this.returntree = val
     },
-   selectVersion() {//鐗堟湰
+    selectVersion() {//鐗堟湰
       this.$axios.get(this.$api.url.selectVersion, {
         params: {
           specificationsId: this.returntree.id,
           type: this.typeselect,
         }
-      }).then((res) => {
-          this.verdata = res.data;
-          this.version = this.verdata.map((el) => {
-            return (el = `v${el}`);
-          });
-          console.log(this.verdata);
-        });
-    },
-    verevent(val) {
-      console.log(val);
-      let cc = val.replace("v", "");
-      console.log(cc);
-      this.character = cc;
-      this.selectAll();
-      // const { v, ...newObj } = val;
-      // delete newObj.v
-      // console.log(newObj);
+      }).then(res => {
+        this.verdata = res.data
+        this.version = this.verdata.map(el => {
+          return el = `v${el}`
+        })
+        console.log(this.verdata);
+      })
     },
     //鍙充晶鏁版嵁
     selectAll() {
       console.log(this.$axios.get(this.$api.url.selectAll));
-      this.$axios
-        .get(this.$api.url.selectAll, {
-          params: {
-            specificationsId: this.returntree.id,
-            type: this.typeselect,
-            version: this.character,
-          },
-        })
-        .then((res) => {
-          this.tableData = res.data;
-        });
+      this.$axios.get(this.$api.url.selectAll, {
+        params: {
+          specificationsId: this.returntree.id,//tree鐨勭偣鍑诲弽棣�
+          type: this.typeselect,//绫诲瀷
+          version: this.character,//鐗堟湰
+        }
+      }).then(res => {
+        console.log(res.data);
+        this.tableData = res.data
+      })
+    },
+    verevent(val) {
+      console.log(val);
+      let cc = val.replace('v', '')
+      console.log(cc);
+      this.character = cc
+      this.selectAll()
+      // const { v, ...newObj } = val;
+      // delete newObj.v
+      // console.log(newObj);
     },
     //浜旂骇鏍�
     selectMaterialTree() {
-      this.$axios.get(this.$api.url.selectTreeByMaterial).then((res) => {
-        this.list = res.data;
+      this.$axios.get(this.$api.url.selectTreeByMaterial).then(res => {
+        this.list = res.data
         this.list.forEach((el, idx, arr) => {
           if (idx == 0) {
-            arr[idx].name = "鎴愬搧";
+            arr[idx].name = '鎴愬搧'
           }
           if (idx == 1) {
-            arr[idx].name = "鍗婃垚鍝�";
+            arr[idx].name = '鍗婃垚鍝�'
           }
           el.children.forEach((newEl, newIdx, newArr) => {
             if (newIdx == 0) {
-              newArr[newIdx].name = "姗¤兌杩炴帴鍣�";
+              newArr[newIdx].name = '姗¤兌杩炴帴鍣�'
             }
             if (newIdx == 1) {
-              newArr[newIdx].name = "閲戝睘杩炴帴鍣�";
+              newArr[newIdx].name = '閲戝睘杩炴帴鍣�'
             }
             if (newIdx == 2) {
-              newArr[newIdx].name = "婀挎彃鎷旂數杩炴帴鍣�";
+              newArr[newIdx].name = '婀挎彃鎷旂數杩炴帴鍣�'
             }
             if (newIdx == 3) {
-              newArr[newIdx].name = "鍒嗘敮缁勪欢";
+              newArr[newIdx].name = '鍒嗘敮缁勪欢'
             }
-          });
-        });
+          })
+        })
         console.log(this.list);
-       this.selectDataList()
-      });
+      })
     },
     filterNode(value, data) {
       if (!value) return true;
@@ -319,73 +216,47 @@
     },
     remove(node, data) {
       this.$confirm("鏄惁鍒犻櫎", "璀﹀憡", {
-        type: "warning",
-      })
-        .then((res) => {
-          const parent = node.parent;
-          const children = parent.data.children || parent.data;
-          const index = children.findIndex((d) => d.id === data.id);
-          children.splice(index, 1);
-        })
-        .catch((e) => {});
+        type: "warning"
+      }).then(res => {
+        const parent = node.parent;
+        const children = parent.data.children || parent.data;
+        const index = children.findIndex(d => d.id === data.id);
+        children.splice(index, 1);
+      }).catch(e => { })
     },
     nodeOpen(data, node, el) {
-      $($(el.$el).find(".node_i")[0]).attr(
-        "class",
-        "node_i el-icon-folder-opened"
-      );
+      $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened')
     },
     nodeClose(data, node, el) {
-      $($(el.$el).find(".node_i")[0]).attr("class", "node_i el-icon-folder");
+      $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder')
     },
     async selectProductTableData() {
       switch (this.tableType) {
         case 0:
-          const { data: technologyList } = await this.$axios.get(
-            this.$api.url.selectTechnologyByMaterial,
-            {
-              params: {
-                specificationId: this.checkTreeNode.id,
-                technologyName: this.searchName,
-              },
-            }
-          );
-          this.tableData = technologyList;
+          const { data: technologyList } = await this.$axios.get(this.$api.url.selectTechnologyByMaterial, { params: { specificationId: this.checkTreeNode.id, technologyName: this.searchName } })
+          this.tableData = technologyList
           break;
         case 1:
-          const { data: productList } = await this.$axios.get(
-            this.$api.url.selectProductByMaterial,
-            {
-              params: {
-                specifications: this.checkTreeNode.id,
-                project: this.searchName,
-              },
-            }
-          );
+          const { data: productList } = await this.$axios.get(this.$api.url.selectProductByMaterial, { params: { specifications: this.checkTreeNode.id, project: this.searchName } })
           productList.forEach((item, index) => {
-            item.name = item.father;
-            item.index = index + 1;
-            item.id = item.father;
+            item.name = item.father
+            item.index = index + 1
+            item.id = item.father
             if (item.children.length === 1) {
-              productList[index] = {
-                ...item.children[0],
-                index: index + 1,
-                name: item.father,
-              };
+              productList[index] = { ...item.children[0], index: index + 1, name: item.father }
             }
-          });
-          this.tableData = productList;
+          })
+          this.tableData = productList
           break;
       }
-    },
-  },
-};
+    }
+  }
+}
 </script>
 
 
 <style scoped>
-.standard {
-}
+.standard {}
 
 .standard .title .el-button {
   height: 32px;
@@ -436,7 +307,7 @@
 
 .el-icon-delete {
   display: none;
-  color: #004ea2;
+  color: #004EA2;
 }
 
 .custom-tree-node:hover .el-icon-delete {
@@ -477,17 +348,12 @@
 }
 
 .standard .title .el-button--default {
-  color: #004ea2;
+  color: #004EA2;
 }
 
-.standard
-  .thing
-  .left
-  .el-tree--highlight-current
-  .el-tree-node.is-current
-  > .el-tree-node__content {
+.standard .thing .left .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
   background: rgba(58, 124, 253, 0.3);
-  color: #004ea2;
+  color: #004EA2;
 }
 
 .el-tree-node__content {

--
Gitblit v1.9.3