From 8f06fbf30772f2dd23a0ca7957d0f6d3db92c0e9 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 17 九月 2026 17:36:19 +0800
Subject: [PATCH] feat: 移除“标准维护”中的“标准描述EN”

---
 src/views/standard/standardLibrary/index.vue |   83 +++++++++++++++++++++++++++++++----------
 1 files changed, 62 insertions(+), 21 deletions(-)

diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue
index 7f57755..a800e11 100644
--- a/src/views/standard/standardLibrary/index.vue
+++ b/src/views/standard/standardLibrary/index.vue
@@ -6,14 +6,17 @@
         <pane size="12">
           <el-col>
             <div class="head-container addButton">
-              <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small" style="margin-bottom: 5px"
+              <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small"
+                        style="margin-bottom: 5px; flex: 1; min-width: 0"
                         suffix-icon="el-icon-search" @keydown.enter.native="searchFilter" @blur="searchFilter" @clear="searchFilter"></el-input>
-              <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="openAddDia"></el-button>
+              <el-button icon="el-icon-refresh" size="small" title="鍒锋柊"
+                         style="margin-bottom: 5px; margin-left: 8px"
+                         @click="selectStandardTreeList"></el-button>
             </div>
             <div class="head-container">
               <el-tree ref="tree" v-loading="treeLoad" :data="list"
                        :default-expanded-keys="expandedKeys" :filter-node-method="filterNode"
-                       :props="{ children: 'children', label: 'label' }" highlight-current node-key="label"
+                       :props="{ children: 'children', label: 'label' }" highlight-current node-key="id"
                        style="
                         height: calc(100vh - 173px);
                         overflow-y: scroll;
@@ -32,22 +35,6 @@
                 {{ data.label }}
               </span>
                     </el-col>
-                    <el-col v-if="
-              checkPermi(['standard:standardLibrary:delStandardTree']) &&
-              isLeaf(node.data)
-            " :span="2" style="text-align: right">
-                      <el-button size="mini" type="text" @click.stop="editTreeName(node)">
-                        <i class="el-icon-edit"></i>
-                      </el-button>
-                    </el-col>
-                    <el-col v-if="
-              checkPermi(['standard:standardLibrary:delStandardTree']) &&
-              isLeaf(node.data)
-            " :span="2" style="text-align: right">
-                      <el-button size="mini" type="text" @click.stop="remove(node, data)">
-                        <i class="el-icon-delete"></i>
-                      </el-button>
-                    </el-col>
                   </el-row>
                 </div>
               </el-tree>
@@ -56,6 +43,17 @@
         </pane>
         <!--鐢ㄦ埛鏁版嵁-->
         <pane size="88">
+          <el-card v-if="selected.isLeaf" shadow="never" class="template-binding-card">
+            <div slot="header"><span>鍘熷璁板綍妯℃澘</span><el-button v-if="checkPermi(['standard:standardLibrary:upStandardProduct'])" type="primary" size="mini" style="float:right" @click="saveBindings">淇濆瓨缁戝畾</el-button></div>
+            <p v-if="!templateBindings.length" class="binding-tip">璇蜂负褰撳墠鏍囧噯缁戝畾鍘熷璁板綍妯℃澘銆�</p>
+            <el-table :data="templateBindings" border size="small">
+              <el-table-column type="index" label="椤哄簭" width="70" /><el-table-column label="妯℃澘缂栧彿" prop="number" width="180" /><el-table-column label="妯℃澘鍚嶇О" prop="name" /><el-table-column label="妫�娴嬩緷鎹紙妯℃澘澶囨敞锛�" prop="remark" />
+              <el-table-column v-if="checkPermi(['standard:standardLibrary:upStandardProduct'])" label="鎿嶄綔" width="150"><template slot-scope="scope"><el-button type="text" :disabled="scope.$index === 0" @click="moveBinding(scope.$index, -1)">涓婄Щ</el-button><el-button type="text" :disabled="scope.$index === templateBindings.length - 1" @click="moveBinding(scope.$index, 1)">涓嬬Щ</el-button><el-button type="text" @click="removeBinding(scope.$index)">绉婚櫎</el-button></template></el-table-column>
+            </el-table>
+            <el-select v-if="checkPermi(['standard:standardLibrary:upStandardProduct'])" v-model="templateToBind" filterable placeholder="閫夋嫨鍘熷璁板綍妯℃澘" size="small" style="width:320px;margin-top:16px" @change="addBinding"><el-option v-for="template in templateList.filter(item => !templateBindings.some(binding => binding.templateId === item.id))" :key="template.id" :label="template.number ? template.number + ' - ' + template.name : template.name" :value="template.id" /></el-select>
+          </el-card>
+          <el-empty v-else description="璇烽�夋嫨浜岀骇鏍囧噯锛岀淮鎶ゅ叾鍘熷璁板綍妯℃澘" />
+          <div v-if="false">
           <div class="search_form">
             <div style="height:37px">
               <p style="font-size: 14px; color: #999;margin-left: 10px">{{ selectTree }}</p>
@@ -192,6 +190,7 @@
               <p style="text-align: right;margin-right: 20px;color: #333;">鍏眥{ total }}鏉�</p>
             </el-row>
           </el-col>
+          </div>
         </pane>
       </splitpanes>
     </el-row>
@@ -321,6 +320,8 @@
   selectStandardProductListByMethodId,
   updateSection,
   getStandardTemplate,
+  selectTemplateBindings,
+  saveTemplateBindings,
 } from "@/api/standard/standardLibrary";
 import bindSupplierDensityDialogAsk from "./components/bindSupplierDensityDialogAsk.vue";
 import BatchCopy from "./components/BatchCopy.vue";
@@ -391,6 +392,8 @@
       sectionRow: null,
       sectionList: [],
       templateList: [],
+      templateBindings: [],
+      templateToBind: null,
       total: 0,
       currentPage: 1,
       standardId: 0,
@@ -495,6 +498,7 @@
       this.currentPage = 1;
       this.selectTree = buildSelectTree(node, "null");
       this.selected = {
+        id: val.id,
         label: val.label,
         tree: this.selectTree,
         isLeaf: leaf,
@@ -504,10 +508,11 @@
       this.standardList = [];
       this.productList = [];
       if (leaf) {
-        this.selectsStandardMethodByFLSSM();
+        this.loadTemplateBindings(val.id);
       } else {
         this.standardId = 0;
         this.syncSortable();
+        this.templateBindings = [];
       }
     },
     remove(node, data) {
@@ -567,7 +572,14 @@
     selectStandardTreeList() {
       this.treeLoad = true;
       selectStandardTreeList().then((res) => {
-        this.list = res.data;
+        this.list = (res.data || []).map(industry => ({
+          ...industry,
+          children: (industry.children || []).map(standard => ({
+            ...standard,
+            // 浜岀骇鑺傜偣鍙睍绀烘爣鍑嗙紪鍙凤紱鍏煎灏氭湭閲嶅惎鐨勬棫鍚庣杩斿洖鏍煎紡銆�
+            label: standard.standardCode || String(standard.label || '').split(' - ')[0],
+          })),
+        }));
         this.expandedKeys = [];
         this.list.forEach((a) => {
           this.expandedKeys.push(a.label);
@@ -965,6 +977,35 @@
         this.templateList = res.data;
       });
     },
+    loadTemplateBindings(standardTreeId) {
+      selectTemplateBindings({ standardTreeId }).then((res) => {
+        this.templateBindings = res.data || [];
+        this.templateToBind = null;
+      });
+    },
+    addBinding(templateId) {
+      const template = this.templateList.find((item) => item.id === templateId);
+      if (template && !this.templateBindings.some((item) => item.templateId === templateId)) {
+        this.templateBindings.push({ ...template, templateId, sort: this.templateBindings.length });
+      }
+      this.templateToBind = null;
+    },
+    removeBinding(index) {
+      this.templateBindings.splice(index, 1);
+    },
+    moveBinding(index, offset) {
+      const target = index + offset;
+      const item = this.templateBindings.splice(index, 1)[0];
+      this.templateBindings.splice(target, 0, item);
+    },
+    saveBindings() {
+      saveTemplateBindings({ standardTreeId: this.selected.id,
+        templates: this.templateBindings.map((item, index) => ({ templateId: item.templateId, sort: index }))
+      }).then(() => {
+        this.$message.success("妯℃澘缁戝畾宸蹭繚瀛�");
+        this.loadTemplateBindings(this.selected.id);
+      });
+    },
     handleCurrentChange(val) {
       this.currentPage = val;
       this.tableLoad2 = true;

--
Gitblit v1.9.3