From d5961e054bef591cde7885ce8eb014a12366d9b5 Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期五, 14 六月 2024 08:13:57 +0800
Subject: [PATCH] 标准库导入

---
 src/components/view/b2-standard.vue |   86 +++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 82 insertions(+), 4 deletions(-)

diff --git a/src/components/view/b2-standard.vue b/src/components/view/b2-standard.vue
index 51facba..5e6be92 100644
--- a/src/components/view/b2-standard.vue
+++ b/src/components/view/b2-standard.vue
@@ -147,9 +147,28 @@
     color: #bababa;
   }
 
-  .el-table-filter__list {
+  .standard .el-table-filter__list {
     max-height: 400px;
     overflow-y: auto;
+  }
+
+  .standard .el-upload {
+    width: 100%;
+  }
+
+  .standard .el-upload-dragger {
+    width: 100%;
+  }
+
+  .standard .handleBtn.is-disabled .el-upload:focus {
+    color: #C0C4CC !important;
+  }
+
+  .standard .avatar-uploader .el-upload {
+    height: 80px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
   }
 </style>
 
@@ -189,7 +208,8 @@
     <div class="right">
       <el-row class="title" style="width: 100%;">
         <el-col :span="20" style="font-size: 14px;color: #999;">{{selectTree}}</el-col>
-        <el-button size="small" type="primary" @click="handleMore" style="position: absolute;right: 0px;top: 1px;"
+        <el-button size="small" type="primary" style="position: absolute;right: 100px;top: 1px;" @click="uploadDia = true" v-if="inExcelOfTreePower">瀵煎叆</el-button>
+        <el-button size="small" type="primary" @click="handleMore" style="position: absolute;right: 5px;top: 1px;"
           v-if="upStandardProduct">鎵归噺缂栬緫</el-button>
       </el-row>
       <el-row class="standard_table" v-loading="tableLoad">
@@ -475,6 +495,20 @@
         <el-button type="primary" @click="sectionList.push({thing: ''})" icon="el-icon-plus"></el-button>
       </span>
     </el-dialog>
+    <el-dialog title="鏁版嵁瀵煎叆" :visible.sync="uploadDia" width="500px">
+      <div style="margin: 0 auto;">
+        <el-upload ref="upload" drag :action="javaApi + $api.standardTree.inExcelOfTree" :headers="token" :file-list="fileList" name="file"
+          :auto-upload="false" accept=".xlsx" :limit="1" :on-change="beforeUpload" :on-success="onSuccess"
+          :on-error="onError">
+          <i class="el-icon-upload"></i>
+          <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+        </el-upload>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="uploadDia = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitUpload()" :loading="uploading">涓� 浼�</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -583,7 +617,12 @@
         pages: 1,
         inspectionItem: null,
         inspectionItemSubclass: null,
-        sonLaboratory: null
+        sonLaboratory: null,
+        uploadDia: false,
+        token: null,
+        fileList: [],
+        inExcelOfTreePower: false,
+        uploading: false
       }
     },
     watch: {
@@ -620,6 +659,9 @@
       this.selectEnumByCategoryForSonLaboratory()
       this.getStandardTemplate()
       this.selectStandardMethods()
+      this.token = {
+        'token': sessionStorage.getItem('token')
+      }
     },
     methods: {
       filterNode(value, data) {
@@ -885,6 +927,7 @@
         let delStandardProduct = false
         let addStandardProduct = false
         let delStandardTree = false
+        let inExcelOfTreePower = false
         for (var i = 0; i < power.length; i++) {
           if (power[i].menuMethod == 'addStandardTree') {
             add = true
@@ -907,6 +950,9 @@
           if (power[i].menuMethod == 'delStandardTree') {
             delStandardTree = true
           }
+          if (power[i].menuMethod == 'inExcelOfTree') {
+            inExcelOfTreePower = true
+          }
         }
         this.addPower = add
         this.addStandardMethod = addStandardMethod
@@ -915,6 +961,7 @@
         this.delStandardProduct = delStandardProduct
         this.addStandardProduct = addStandardProduct
         this.delStandardTree = delStandardTree
+        this.inExcelOfTreePower = inExcelOfTreePower
       },
       upStandardProductList(value, index) {
         this.$axios.post(this.$api.standardTree.upStandardProductList, {
@@ -1406,7 +1453,38 @@
             }
           })
         })
-      }
+      },
+      beforeUpload(file, fileList) {
+        if (file.raw.type != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') {
+          this.$message.error('涓婁紶鏂囦欢鏍煎紡涓嶆纭�');
+          this.$refs.upload.clearFiles()
+          return false;
+        }
+      },
+      submitUpload() {
+        if (this.$refs.upload.uploadFiles.length == 0) {
+          this.$message.error('鏈�夋嫨鏂囦欢')
+          return
+        }
+        this.uploading = true
+        this.$refs.upload.submit();
+      },
+      onSuccess(response, file, fileList) {
+        this.$refs.upload.clearFiles()
+        this.uploadDia = false
+        this.uploading = false
+        if (response.code == 201) {
+          this.$message.error(response.message)
+          return
+        }
+        this.$message.success('涓婁紶鎴愬姛')
+        this.refresh()
+      },
+      onError(err, file, fileList) {
+        this.$message.error('涓婁紶澶辫触')
+        this.$refs.upload.clearFiles()
+        this.uploading = false
+      },
     }
   }
 </script>

--
Gitblit v1.9.3