From 60af97808e44b3a483145199f79a0828469db122 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 28 十月 2025 15:23:04 +0800
Subject: [PATCH] 客户管理,供应商列表导入功能

---
 src/views/basicData/supplierManage/index.vue |   52 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 45 insertions(+), 7 deletions(-)

diff --git a/src/views/basicData/supplierManage/index.vue b/src/views/basicData/supplierManage/index.vue
index f5eb792..e990bce 100644
--- a/src/views/basicData/supplierManage/index.vue
+++ b/src/views/basicData/supplierManage/index.vue
@@ -192,6 +192,7 @@
         :disabled="upload.isUploading"
         :on-progress="handleFileUploadProgress"
         :on-success="handleFileSuccess"
+        :on-error="handleFileError"
         :auto-upload="false"
         drag
       >
@@ -200,13 +201,13 @@
         <template #tip>
           <div class="el-upload__tip text-center">
             <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
-            <!-- <el-link
+            <el-link
               type="primary"
               :underline="false"
               style="font-size: 12px; vertical-align: baseline"
               @click="importTemplate"
               >涓嬭浇妯℃澘</el-link
-            > -->
+            >
           </div>
         </template>
       </el-upload>
@@ -221,7 +222,7 @@
 </template>
 
 <script setup>
-import { ref } from "vue";
+import { onMounted, ref } from "vue";
 import { Search } from "@element-plus/icons-vue";
 import { delSupplier } from "@/api/basicData/supplierManageFile.js";
 import { ElMessageBox } from "element-plus";
@@ -244,6 +245,11 @@
     width: 250,
   },
   {
+    label: "绾崇◣浜鸿瘑鍒彿",
+    prop: "taxpayerIdentificationNum",
+    width: 230,
+  },
+  {
     label: "鍏徃鍦板潃",
     prop: "companyAddress",
     width: 220,
@@ -251,14 +257,17 @@
   {
     label: "鑱旂郴鏂瑰紡",
     prop: "companyPhone",
+    width:150
   },
   {
     label: "寮�鎴疯",
     prop: "bankAccountName",
+    width: 220,
   },
   {
     label: "璐﹀彿",
     prop: "bankAccountNum",
+    width: 220,
   },
   {
     label: "鑱旂郴浜�",
@@ -267,6 +276,7 @@
   {
     label: "鑱旂郴鐢佃瘽",
     prop: "contactUserPhone",
+    width: 150,
   },
   {
     label: "缁存姢浜�",
@@ -276,11 +286,13 @@
   {
     label: "缁存姢鏃堕棿",
     prop: "maintainTime",
+    width:100
   },
   {
     dataType: "action",
     label: "鎿嶄綔",
     align: "center",
+		fixed: 'right',
     operation: [
       {
         name: "缂栬緫",
@@ -288,6 +300,9 @@
         clickFun: (row) => {
           openForm("edit", row);
         },
+				disabled: (row) => {
+					return row.maintainUserName !== userStore.nickName
+				}
       },
     ],
   },
@@ -351,7 +366,7 @@
 };
 /** 鎻愪氦涓婁紶鏂囦欢 */
 function submitFileForm() {
-  console.log(upload.url + '?updateSupport=' + upload.updateSupport)
+  upload.isUploading = true;
   proxy.$refs["uploadRef"].submit();
 }
 const getList = () => {
@@ -381,6 +396,10 @@
   upload.title = "渚涘簲鍟嗗鍏�";
   upload.open = true;
 }
+/** 涓嬭浇妯℃澘 */
+function importTemplate() {
+  proxy.download("/system/supplier/downloadTemplate", {}, "渚涘簲鍟嗗鍏ユā鏉�.xlsx");
+}
 
 /**鏂囦欢涓婁紶涓鐞� */
 const handleFileUploadProgress = (event, file, fileList) => {
@@ -389,10 +408,23 @@
 
 /** 鏂囦欢涓婁紶鎴愬姛澶勭悊 */
 const handleFileSuccess = (response, file, fileList) => {
-  upload.open = false;
   upload.isUploading = false;
-  proxy.$refs["uploadRef"].handleRemove(file);
-  getList();
+  if(response.code === 200){
+    proxy.$modal.msgSuccess("鏂囦欢涓婁紶鎴愬姛");
+    upload.open = false;
+    proxy.$refs["uploadRef"].clearFiles();
+    getList();
+  }else if(response.code === 500){
+    proxy.$modal.msgError(response.msg);
+  }else{
+    proxy.$modal.msgWarning(response.msg);
+  }
+};
+
+/** 鏂囦欢涓婁紶澶辫触澶勭悊 */
+const handleFileError = (error, file, fileList) => {
+  upload.isUploading = false;
+  proxy.$modal.msgError("鏂囦欢涓婁紶澶辫触");
 };
 // 琛ㄦ牸閫夋嫨鏁版嵁
 const handleSelectionChange = (selection) => {
@@ -465,6 +497,12 @@
 const handleDelete = () => {
   let ids = [];
   if (selectedRows.value.length > 0) {
+		// 妫�鏌ユ槸鍚︽湁浠栦汉缁存姢鐨勬暟鎹�
+		const unauthorizedData = selectedRows.value.filter(item => item.maintainUserName !== userStore.nickName);
+		if (unauthorizedData.length > 0) {
+			proxy.$modal.msgWarning("涓嶅彲鍒犻櫎浠栦汉缁存姢鐨勬暟鎹�");
+			return;
+		}
     ids = selectedRows.value.map((item) => item.id);
   } else {
     proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");

--
Gitblit v1.9.3