From f3371fc9c33f979bd2b00e3241769a27c9c79c38 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 25 三月 2025 16:56:19 +0800
Subject: [PATCH] Merge branch 'radio-frequency-cable' of http://114.132.189.42:9002/r/lims-ruoyi-before into radio-frequency-cable

---
 src/views/standard/standardLibrary/index.vue |  243 ++++++++++++++++++++---------------------------
 1 files changed, 104 insertions(+), 139 deletions(-)

diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue
index 05bd11d..377a29f 100644
--- a/src/views/standard/standardLibrary/index.vue
+++ b/src/views/standard/standardLibrary/index.vue
@@ -8,7 +8,7 @@
         </el-col>
         <el-col v-if="checkPermi(['standard:standardLibrary:add'])" :span="4"
           style="text-align: center; line-height: 30px">
-          <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="addDia = true"></el-button>
+          <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="openAddDia"></el-button>
         </el-col>
       </el-row>
       <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list"
@@ -17,7 +17,8 @@
           height: calc(100% - 30px);
           overflow-y: scroll;
           scrollbar-width: none;
-        " @node-click="handleNodeClick" @node-drop="handleDrop">
+        " @node-click="handleNodeClick"
+               @node-drop="handleDrop">
         <div slot-scope="{ node, data }" class="custom-tree-node">
           <el-row style="width: 100%">
             <el-col :class="{ sort: node.level > 3 }" :span="19" :title="data.label" style="text-align: left">
@@ -65,8 +66,9 @@
       </el-row>
       <el-row v-loading="tableLoad" class="standard_table">
         <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220"
-          :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border highlight-current-row
-          style="width: 100%; height: 220px !important" tooltip-effect="dark" @row-click="rowClick">
+                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+          highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark"
+          @row-click="rowClick">
           <el-table-column label="鏍囧噯缂栧彿" prop="code" show-overflow-tooltip width="200">
             <template slot-scope="scope">
               <span style="color: red; font-size: 14px">{{
@@ -80,10 +82,11 @@
       </el-row>
       <el-row v-loading="tableLoad2" class="product_table">
         <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList"
-          :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :fit="true"
-          :row-class-name="tableRowClassName" class="productTable" header-row-class-name="header-class" height="100%"
-          row-key="id" stripe style="width: 100%" tooltip-effect="dark" @select="upProductSelect"
-          @selection-change="handleSelectionChange" @select-all="handleAll">
+                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+          :fit="true" :row-class-name="tableRowClassName" class="productTable"
+          header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%"
+          tooltip-effect="dark" @select="upProductSelect" @selection-change="handleSelectionChange"
+          @select-all="handleAll">
           <el-table-column type="selection" width="50"> </el-table-column>
           <el-table-column label="浜у搧" min-width="100" prop="sample" show-overflow-tooltip></el-table-column>
           <el-table-column label="鍨嬪彿" min-width="100" prop="model" show-overflow-tooltip></el-table-column>
@@ -173,14 +176,11 @@
             <template slot-scope="scope">
               <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                 ">鍖洪棿璁剧疆</el-button>
-              <!-- <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
-                " @click="bindSupplierDensitySecond(scope.row)">缁戝畾鍘傚</el-button> -->
+              <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
+                " @click="bindSupplierDensitySecond(scope.row)">缁戝畾鍘傚</el-button>
             </template>
           </el-table-column>
         </el-table>
-        <!-- <el-pagination :current-page="currentPage" :page-size="300" :total="total" layout="total"
-          style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange">
-        </el-pagination> -->
         <p style="text-align: right;margin-right: 20px;color: #333;">鍏眥{ total }}鏉�</p>
       </el-row>
     </div>
@@ -192,8 +192,7 @@
             <span class="required-span">* </span>鍨嬪彿锛�
           </el-col>
           <el-col :offset="1" :span="16">
-            <el-input v-model="addOb.model" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small"
-              @keyup.enter.native="addStandardTree"></el-input>
+            <el-input v-model="addOb.modelName" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small"></el-input>
           </el-col>
         </el-row>
       </div>
@@ -209,8 +208,7 @@
             <span class="required-span">* </span>鍨嬪彿锛�
           </el-col>
           <el-col :offset="1" :span="16">
-            <el-input v-model="addOb.model" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small"
-              @keyup.enter.native="updateStandardTree"></el-input>
+            <el-input v-model="addOb.modelName" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small"></el-input>
           </el-col>
         </el-row>
       </div>
@@ -222,7 +220,7 @@
     <el-dialog :close-on-click-modal="false" :visible.sync="sectionUpDia" title="鍖洪棿璁剧疆" width="80%">
       <div class="body" style="padding: 5px 0">
         <el-table :data="sectionList" border height="350px" style="width: 100%"
-          :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }">
+                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }">
           <el-table-column align="center" label="搴忓彿" type="index" width="70">
           </el-table-column>
           <el-table-column align="center" label="鍖洪棿">
@@ -256,16 +254,6 @@
               <el-input v-model="scope.row.conductorType" clearable placeholder="瀵间綋绫诲瀷" size="small"></el-input>
             </template>
           </el-table-column>
-          <!--          <el-table-column align="center" label="鍗曚环" width="120">-->
-          <!--            <template slot-scope="scope">-->
-          <!--              <el-input v-model="scope.row.price" clearable placeholder="鍗曚环" size="small"></el-input>-->
-          <!--            </template>-->
-          <!--          </el-table-column>-->
-          <!--          <el-table-column align="center" label="宸ユ椂绯绘暟" width="120">-->
-          <!--            <template slot-scope="scope">-->
-          <!--              <el-input v-model="scope.row.manHour" clearable placeholder="宸ユ椂绯绘暟" size="small"></el-input>-->
-          <!--            </template>-->
-          <!--          </el-table-column>-->
           <el-table-column align="center" label="鎿嶄綔" width="70">
             <template slot-scope="scope">
               <el-button circle icon="el-icon-minus" size="mini" type="danger"
@@ -330,13 +318,11 @@
       factory: [],
       addDia: false,
       updateDia: false, // 淇敼鏍戝悕瀛楀脊妗�
-      oldModel: "",
       addOb: {
-        factory: null,
-        laboratory: null,
-        sampleType: null,
-        sample: null,
-        model: null,
+        id: '',
+        modelName: null,
+        parentLevel: '',
+        parentId: '',
       },
       laboratory: [],
       addLoad: false,
@@ -408,11 +394,6 @@
     };
   },
   methods: {
-    // 淇敼鏈�瀛愮骇鍚嶅瓧
-    editTreeName(info) {
-      this.updateDia = true;
-      this.oldModel = info.label;
-    },
     // 鎷栨嫿鏃跺垽瀹氱洰鏍囪妭鐐硅兘鍚﹁鏀剧疆
     // 'prev'銆�'inner' 鍜� 'next'锛屽墠銆佹彃鍏ャ�佸悗
     allowDrop(draggingNode, dropNode, type) {
@@ -495,7 +476,7 @@
       }
     },
     // 璋冪敤tree杩囨护鏂规硶 涓枃鑻辫繃婊�
-    filterNode(value, data, node) {
+    filterNode (value, data, node) {
       if (!value) {銆�銆�銆�銆�//濡傛灉鏁版嵁涓虹┖锛屽垯杩斿洖true,鏄剧ず鎵�鏈夌殑鏁版嵁椤�
         return true
       }
@@ -504,7 +485,7 @@
       return this.chooseNode(val, data, node) // 璋冪敤杩囨护浜屽眰鏂规硶
     },
     // 杩囨护鐖惰妭鐐� / 瀛愯妭鐐� (濡傛灉杈撳叆鐨勫弬鏁版槸鐖惰妭鐐逛笖鑳藉尮閰嶏紝鍒欒繑鍥炶鑺傜偣浠ュ強鍏朵笅鐨勬墍鏈夊瓙鑺傜偣锛涘鏋滃弬鏁版槸瀛愯妭鐐癸紝鍒欒繑鍥炶鑺傜偣鐨勭埗鑺傜偣銆俷ame鏄腑鏂囧瓧绗︼紝enName鏄嫳鏂囧瓧绗�.
-    chooseNode(value, data, node) {
+    chooseNode (value, data, node) {
       if (data.label.indexOf(value) !== -1) {
         return true
       }
@@ -537,67 +518,66 @@
       this.upIndex++;
     },
     handleNodeClick(val, node, el) {
-      //鏍戠殑鍊�
-      if (node.childNodes.length === 0) {
-        this.isShowCopy = true;
-      } else {
-        this.isShowCopy = false;
-      }
+      // 鍒ゆ柇鏄惁涓哄彾瀛愯妭鐐�
+      this.isShowCopy = node.childNodes.length === 0;
+
+      // 鏇存柊鐖惰妭鐐逛俊鎭�
+      this.addOb.parentLevel = node.data.level;
+      this.addOb.parentId = node.data.value;
+      this.addOb.id = node.data.value;
+
+      // 鍒濆鍖栧垎椤电浉鍏冲彉閲�
       this.total = 0;
       this.currentPage = 1;
-      this.selectTree = "";
-      this.getNodeParent(node);
-      this.selectTree = this.selectTree.replace(" - ", "");
-      let data = this.selectTree.split(" - ");
-      let data2 = "";
-      for (let index = data.length - 1; index >= 0; index--) {
-        data2 += " - " + data[index];
-      }
-      this.selectTree = data2.replace(" - ", "");
-      if (node.childNodes.length === 0) {
+
+      // 鎷兼帴鏍戣矾寰�
+      this.selectTree = this.getReversedTreePath(node);
+
+      // 濡傛灉鏄彾瀛愯妭鐐癸紝璋冪敤鐗瑰畾鏂规硶
+      if (this.isShowCopy) {
         this.selectsStandardMethodByFLSSM();
       }
-      let trees = this.selectTree.split(" - ");
-      this.addOb.factory = trees[0];
-      this.addOb.laboratory = trees[1];
-      this.addOb.sampleType = trees[2];
-      this.addOb.sample = trees[3];
     },
-    getNodeParent(val) {
-      if (val.parent != null) {
-        if (val.data.children === null) {
-          this.selectTree += " - " + val.label + " - " + "null";
-        } else {
-          this.selectTree += " - " + val.label;
+
+    /**
+     * 鑾峰彇鍙嶅悜鎷兼帴鐨勬爲璺緞瀛楃涓�
+     * @param {Object} node - 褰撳墠鑺傜偣
+     * @returns {string} - 鍙嶅悜鎷兼帴鐨勬爲璺緞
+     */
+    getReversedTreePath(node) {
+      const pathParts = [];
+
+      // 閫掑綊鑾峰彇鐖惰妭鐐硅矾寰�
+      const collectParentLabels = (currentNode) => {
+        if (currentNode && currentNode.label) {
+          pathParts.unshift(currentNode.label); // 灏嗗綋鍓嶈妭鐐规爣绛炬彃鍏ュ埌鏁扮粍寮�澶�
         }
-        this.getNodeParent(val.parent);
-      }
+        if (currentNode.parent) {
+          collectParentLabels(currentNode.parent); // 閫掑綊澶勭悊鐖惰妭鐐�
+        }
+      };
+
+      collectParentLabels(node);
+
+      // 鎷兼帴璺緞骞惰繑鍥�
+      return pathParts.join(" - ");
     },
     remove(node, data) {
       this.$confirm("鏄惁鍒犻櫎璇ュ眰绾�", "鎻愮ず", {
         type: "error",
-      })
-        .then(() => {
-          // this.treeLoad = true
+      }).then(() => {
+        this.selectTree = "";
+        // 鎷兼帴鏍戣矾寰�
+        this.selectTree = this.getReversedTreePath(node);
+        delStandardTree({ tree: this.selectTree }).then((res) => {
+          this.$message.success("宸插垹闄�");
+          let arr = this.selectTree.split(" - ");
+          this.deleteStandard(this.list, arr[arr.length - 1]);
           this.selectTree = "";
-          this.getNodeParent(node);
-          this.selectTree = this.selectTree.replace(" - ", "");
-          let data = this.selectTree.split(" - ");
-          let data2 = "";
-          for (let index = data.length - 1; index >= 0; index--) {
-            data2 += " - " + data[index];
-          }
-          this.selectTree = data2.replace(" - ", "");
-          delStandardTree({ tree: this.selectTree }).then((res) => {
-            this.$message.success("宸插垹闄�");
-            let arr = this.selectTree.split(" - ");
-            this.deleteStandard(this.list, arr[arr.length - 1]);
-            this.selectTree = "";
-            this.standardList = [];
-            this.productList = [];
-          });
+          this.standardList = [];
+          this.productList = [];
         })
-        .catch((e) => { });
+      }).catch((e) => { });
     },
     deleteStandard(arr, label) {
       arr.forEach((item, index) => {
@@ -676,62 +656,52 @@
         this.standardEnum = data;
       });
     },
+    // 鎵撳紑鏂板寮规
+    openAddDia () {
+      this.addDia = true
+      this.addOb.modelName = ''
+    },
     // 鎻愪氦鍒嗙被娣诲姞
     addStandardTree() {
-      if (this.addOb.sampleType == null || this.addOb.sampleType == "") {
-        this.$message.error("瀵硅薄涓嶅瓨鍦�");
-        return;
-      }
-      if (this.addOb.model == null || this.addOb.model == "") {
+      if (this.addOb.modelName == null || this.addOb.modelName == "") {
         this.$message.error("璇峰~鍐欏瀷鍙�");
         return;
       }
       this.addLoad = true;
-      addStandardTree(this.addOb)
-        .then((res) => {
-          this.$message.success("娣诲姞鎴愬姛");
-          this.addDia = false;
-          this.list
-            .find((a) => a.label == this.addOb.factory)
-            .children.find((a) => a.label == this.addOb.laboratory)
-            .children.find((a) => a.label == this.addOb.sampleType)
-            .children.find((a) => a.label == this.addOb.sample)
-            .children.push({
-              code: "[5]",
-              label: this.addOb.model,
-              value: this.addOb.model,
-            });
-          this.addLoad = false;
-        })
-        .catch((e) => {
-          this.addDia = false;
-          this.addLoad = false;
-        });
+      delete this.addOb.id;
+      addStandardTree(this.addOb).then((res) => {
+        this.$message.success("娣诲姞鎴愬姛");
+        this.addOb.modelName = "";
+        this.addDia = false;
+        this.selectStandardTreeList();
+        this.addLoad = false;
+      }).catch((e) => {
+        this.addLoad = false;
+      });
     },
-    // 淇敼鍨嬪彿
+    // 鎵撳紑淇敼鍚嶅瓧寮规
+    editTreeName(info) {
+      this.updateDia = true;
+      this.addOb.modelName = info.label;
+    },
+    // 鎻愪氦淇敼鍨嬪彿
     updateStandardTree() {
-      if (this.addOb.sampleType == null || this.addOb.sampleType == "") {
-        this.$message.error("瀵硅薄涓嶅瓨鍦�");
-        return;
-      }
-      if (this.addOb.model == null || this.addOb.model == "") {
+      if (this.addOb.modelName == null || this.addOb.modelName == "") {
         this.$message.error("璇峰~鍐欏瀷鍙�");
         return;
       }
-      this.addOb.oldModel = this.oldModel;
       this.updateLoad = true;
-      updateStandardTree(this.addOb)
-        .then((res) => {
-          this.$message.success("娣诲姞鎴愬姛");
-          this.$tab.refreshPage();
-          // this.selectStandardTreeList();
-          this.updateDia = false;
-          this.updateLoad = false;
-        })
-        .catch((e) => {
-          this.updateDia = false;
-          this.updateLoad = false;
-        });
+      delete this.addOb.parentLevel;
+      delete this.addOb.parentId;
+      updateStandardTree(this.addOb).then((res) => {
+        this.$message.success("娣诲姞鎴愬姛");
+        this.selectStandardTreeList();
+        this.addOb.modelName = "";
+        this.updateDia = false;
+        this.updateLoad = false;
+      }).catch((e) => {
+        this.updateLoad = false;
+      });
     },
     selectsStandardMethodByFLSSM() {
       this.tableLoad = true;
@@ -1333,11 +1303,6 @@
 
 >>>.is-disabled .el-textarea__inner {
   background: rgba(0, 0, 0, 0.05) !important;
-}
-
->>>.el-table__body-wrapper::-webkit-scrollbar {
-  height: 14px;
-  /* 璁剧疆婊氬姩鏉″搴� */
 }
 </style>
 <style scoped>

--
Gitblit v1.9.3