From 9b0a40a9b2918dd0e92161edaff4a3f61b510141 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 05 三月 2025 10:32:35 +0800
Subject: [PATCH] 优化下单

---
 src/views/standard/standardLibrary/index.vue |  176 +++++++++++++++++++---------------------------------------
 1 files changed, 57 insertions(+), 119 deletions(-)

diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue
index 21eeeb8..713c062 100644
--- a/src/views/standard/standardLibrary/index.vue
+++ b/src/views/standard/standardLibrary/index.vue
@@ -206,16 +206,17 @@
           height: calc(100% - 30px);
           overflow-y: scroll;
           scrollbar-width: none;
-        " @node-click="handleNodeClick" @node-expand="nodeOpen" @node-collapse="nodeClose" @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">
               <span>
                 <i :class="`node_i ${data.children != undefined
-                    ? data.code === '[1]'
-                      ? 'el-icon-folder-opened'
-                      : 'el-icon-folder'
-                    : 'el-icon-tickets'
+                  ? data.code === '[1]'
+                    ? 'el-icon-folder-opened'
+                    : 'el-icon-folder'
+                  : 'el-icon-tickets'
                   }`"></i>
                 {{ data.label }}
               </span>
@@ -225,7 +226,7 @@
               (node.data.children === null ||
                 node.data.children === undefined)
             " :span="2" style="text-align: right">
-              <el-button size="mini" type="text" @click="editTreeName(node.data)">
+              <el-button size="mini" type="text" @click.stop="editTreeName(node.data)">
                 <i class="el-icon-edit"></i>
               </el-button>
             </el-col>
@@ -286,8 +287,8 @@
             <template slot-scope="scope">
               <el-input v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
-              " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鍊�"
-                size="small" type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
+              " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鍊�" size="small"
+                type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
               <span v-else>{{ scope.row.ask }}</span>
             </template>
           </el-table-column>
@@ -306,7 +307,7 @@
               <el-select v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.methodS" clearable placeholder="璇曢獙鏂规硶" size="small" @change="(value) => upStandardProductListOfMethodS(value, scope.row.id)
-                  ">
+                ">
                 <el-option v-for="(a, i) in scope.row.method &&
                   JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option>
               </el-select>
@@ -318,7 +319,7 @@
               <el-select v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.radius" clearable placeholder="鏉′欢" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id)
-                  ">
+                ">
                 <el-option v-for="(a, i) in scope.row.radiusList &&
                   JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>
               </el-select>
@@ -331,7 +332,7 @@
               <el-input v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.price" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id)
-                  ">
+                ">
               </el-input>
               <span v-else>{{ scope.row.price }}</span>
             </template>
@@ -341,7 +342,7 @@
               <el-input v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.manHour" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id)
-                  ">
+                ">
               </el-input>
               <span v-else>{{ scope.row.manHour }}</span>
             </template>
@@ -351,7 +352,7 @@
             <template slot-scope="scope">
               <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                 " filterable size="small" @change="(value) =>
-                    upStandardProductListOfTemplate(value, scope.row.id)
+                  upStandardProductListOfTemplate(value, scope.row.id)
                   ">
                 <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option>
               </el-select>
@@ -367,10 +368,10 @@
             </template>
           </el-table-column>
         </el-table>
-        <el-pagination :current-page="currentPage" :page-size="300" :total="total"
-          layout="total, prev, pager, next, jumper" style="position: absolute; right: 16px; bottom: 1px"
-          @current-change="handleCurrentChange">
-        </el-pagination>
+        <!-- <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>
 
@@ -488,14 +489,10 @@
   obtainItemParameterList,
   selectTestObjectByName,
   selectStandardMethods,
-  addStandardMethodList,
   addStandardTree,
   updateStandardTree,
   selectsStandardMethodByFLSSM,
   upStandardProductList,
-  delStandardMethodByFLSSM,
-  delStandardProductByIds,
-  addStandardProduct,
   selectStandardProductListByMethodId,
   updateSection,
   upStandardProducts,
@@ -592,6 +589,7 @@
     this.selectTestObjectByName();
     this.selectStandardMethods();
     this.selectEnumByCategoryForSonLaboratory();
+    this.selectEnumByCategoryForsampleType();
     this.getStandardTemplate();
     this.selectStandardMethodsSec();
     this.token = {
@@ -685,10 +683,42 @@
         }
       }
     },
-    filterNode(value, data) {
-      if (!value) return true;
-      return data.label.indexOf(value) !== -1;
+    // 璋冪敤tree杩囨护鏂规硶 涓枃鑻辫繃婊�
+    filterNode (value, data, node) {
+      if (!value) {銆�銆�銆�銆�//濡傛灉鏁版嵁涓虹┖锛屽垯杩斿洖true,鏄剧ず鎵�鏈夌殑鏁版嵁椤�
+        return true
+      }
+      // 鏌ヨ鍒楄〃鏄惁鏈夊尮閰嶆暟鎹紝灏嗗�煎皬鍐欙紝鍖归厤鑻辨枃鏁版嵁
+      let val = value.toLowerCase()
+      return this.chooseNode(val, data, node) // 璋冪敤杩囨护浜屽眰鏂规硶
     },
+    // 杩囨护鐖惰妭鐐� / 瀛愯妭鐐� (濡傛灉杈撳叆鐨勫弬鏁版槸鐖惰妭鐐逛笖鑳藉尮閰嶏紝鍒欒繑鍥炶鑺傜偣浠ュ強鍏朵笅鐨勬墍鏈夊瓙鑺傜偣锛涘鏋滃弬鏁版槸瀛愯妭鐐癸紝鍒欒繑鍥炶鑺傜偣鐨勭埗鑺傜偣銆俷ame鏄腑鏂囧瓧绗︼紝enName鏄嫳鏂囧瓧绗�.
+    chooseNode (value, data, node) {
+      if (data.label.indexOf(value) !== -1) {
+        return true
+      }
+      const level = node.level
+      // 濡傛灉浼犲叆鐨勮妭鐐规湰韬氨鏄竴绾ц妭鐐瑰氨涓嶇敤鏍¢獙浜�
+      if (level === 1) {
+        return false
+      }
+      // 鍏堝彇褰撳墠鑺傜偣鐨勭埗鑺傜偣
+      let parentData = node.parent
+      // 閬嶅巻褰撳墠鑺傜偣鐨勭埗鑺傜偣
+      let index = 0
+      while (index < level - 1) {
+        // 濡傛灉鍖归厤鍒扮洿鎺ヨ繑鍥烇紝姝ゅname鍊兼槸涓枃瀛楃锛宔nName鏄嫳鏂囧瓧绗︺�傚垽鏂尮閰嶄腑鑻辨枃杩囨护
+        if (parentData.data.label.indexOf(value) !== -1) {
+          return true
+        }
+        // 鍚﹀垯鐨勮瘽鍐嶅線涓婁竴灞傚仛鍖归厤
+        parentData = parentData.parent
+        index++
+      }
+      // 娌″尮閰嶅埌杩斿洖false
+      return false
+    },
+
     searchFilter() {
       this.$refs.tree.filter(this.search);
     },
@@ -768,15 +798,6 @@
         }
       });
     },
-    nodeOpen(data, node, el) {
-      $($(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");
-    },
     selectEnumByCategoryForFactory() {
       this.getConfigKey("sys_factory").then((response) => {
         this.factory = response.msg;
@@ -845,22 +866,6 @@
         this.standardEnum = data;
       });
     },
-    addStandardMethodList() {
-      if (this.standardId == null || this.standardId == "") {
-        this.$message.error("鏍囧噯鏂规硶鏈�夋嫨");
-        return;
-      }
-      this.addLoad2 = true;
-      addStandardMethodList({
-        standardId: this.standardId,
-        tree: this.selectTree,
-      }).then((res) => {
-        this.addLoad2 = false;
-        this.addStandardDia = false;
-        this.$message.success("娣诲姞鎴愬姛");
-        this.selectsStandardMethodByFLSSM();
-      });
-    },
     // 鎻愪氦鍒嗙被娣诲姞
     addStandardTree() {
       if (this.addOb.sampleType == null || this.addOb.sampleType == "") {
@@ -916,7 +921,8 @@
             return;
           }
           this.$message.success("娣诲姞鎴愬姛");
-          this.selectStandardTreeList();
+          this.$tab.refreshPage();
+          // this.selectStandardTreeList();
           this.updateDia = false;
           this.updateLoad = false;
         })
@@ -1040,81 +1046,13 @@
         this.$message.success("宸蹭繚瀛�");
       });
     },
-    delStandardMethodByFLSSM(id) {
-      this.$confirm("鏄惁鍒犻櫎褰撳墠鏁版嵁?", "璀﹀憡", {
-        confirmButtonText: "纭畾",
-        cancelButtonText: "鍙栨秷",
-        type: "warning",
-      })
-        .then(() => {
-          this.tableLoad = true;
-          delStandardMethodByFLSSM({ id: id }).then((res) => {
-            if (res.code == 201) {
-              return;
-            }
-            this.$message.success("宸插垹闄�");
-            this.selectsStandardMethodByFLSSM();
-          });
-        })
-        .catch(() => { });
-    },
     handleSelectionChange(val) {
       this.selects = [];
       val.forEach((a) => {
         this.selects.push(a.id);
       });
     },
-    delStandardProductByIds() {
-      if (this.selects.length == 0) {
-        this.$message.error("鏈�変腑鏁版嵁");
-        return;
-      }
-      this.$confirm(
-        "鏄惁鍒犻櫎褰撳墠閫変腑 " + this.selects.length + " 鏉℃暟鎹�?",
-        "璀﹀憡",
-        {
-          confirmButtonText: "纭畾",
-          cancelButtonText: "鍙栨秷",
-          type: "warning",
-        }
-      )
-        .then(() => {
-          this.tableLoad = true;
-          delStandardProductByIds({
-            ids: JSON.stringify(this.selects),
-          }).then((res) => {
-            if (res.code == 201) {
-              return;
-            }
-            this.$message.success("宸插垹闄�");
-            this.selectsStandardMethodByFLSSM();
-          });
-        })
-        .catch(() => { });
-    },
-    addStandardProductDo() {
-      let selects = this.$refs.ValueTable.multipleSelection;
-      if (selects.length == 0) {
-        this.$message.error("鏈�夋嫨鏁版嵁");
-        return;
-      }
-      let select = [];
-      selects.forEach((a) => {
-        select.push(a.id);
-      });
-      this.tableLoad = true;
-      addStandardProduct({
-        ids: JSON.stringify(select),
-        tree: this.selectTree,
-      }).then((res) => {
-        if (res.code == 201) {
-          return;
-        }
-        this.$message.success("娣诲姞鎴愬姛");
-        this.selectsStandardMethodByFLSSM();
-      });
-      this.addProductDia = false;
-    },
+
     refreshList() {
       this.batchCopyDia = false;
       const index = this.standardList.findIndex(

--
Gitblit v1.9.3