From ba9490368b8bf27e0d4a6471420044dadf5b720e Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期二, 21 一月 2025 15:33:42 +0800
Subject: [PATCH] 产品结构树: 1、新增指定文档为当前版本功能与文档版本内容差异比对功能(新增插件vue-code-diff) 2、调整产品及部件属性tab栏标题为属性信息 3、删除产品及部件属性信息中对应层级名称 全局: 调整设置后端接口地址方式由vue.config.js改为env环境文件配置

---
 src/views/dnc/common/ImportFileModal.vue |   75 +++++++++++++++++++++++++++++++------
 1 files changed, 63 insertions(+), 12 deletions(-)

diff --git a/src/views/dnc/common/ImportFileModal.vue b/src/views/dnc/common/ImportFileModal.vue
index 653ad41..585022f 100644
--- a/src/views/dnc/common/ImportFileModal.vue
+++ b/src/views/dnc/common/ImportFileModal.vue
@@ -37,7 +37,8 @@
         title: '',
         fileList: [],
         uploadParams: {},
-        uploading: false
+        uploading: false,
+        isUploadMultiple: true
       }
     },
     created() {
@@ -48,9 +49,10 @@
       /**
        * 鐐瑰嚮瀵煎叆鏂囨。鎴朜C绋嬪簭鏃惰Е鍙�
        * @param treeNodeInfo 鐐瑰嚮鏍戣妭鐐瑰彸閿彍鍗曞鍏ョ▼搴忔椂浼犲叆鏍戣妭鐐逛俊鎭�
-       * @param tableRowInfo 鐐瑰嚮琛ㄦ牸琛屽彸閿彍鍗曞鍏ョ▼搴忔椂浼犲叆琛屼俊鎭�
+       * @param tableRowInfo 鍙抽敭琛ㄦ牸琛屾椂浼犲叆琛屼俊鎭�
        */
       handleImport(treeNodeInfo, tableRowInfo) {
+        this.isUploadMultiple = true
         let attributionId // 鏂囨。鎵�灞炲眰绾d
         let attributionType  // 鏂囨。鎵�灞炲眰绾х被鍨�
         let docClassCode // 鏂囨。绫诲瀷
@@ -67,32 +69,63 @@
         this.visible = true
       },
 
-      handleRemove(file) {
-        const index = this.fileList.indexOf(file)
-        const newFileList = this.fileList.slice()
-        newFileList.splice(index, 1)
-        this.fileList = newFileList
+      /**
+       * 鐐瑰嚮鏂囨。鐢熷懡鍛ㄦ湡鐨勫叆搴撴椂瑙﹀彂
+       * @param _
+       * @param tableRowInfo 鍙抽敭琛ㄦ牸琛屾椂浼犲叆琛屼俊鎭�
+       */
+      handlePush(_, tableRowInfo) {
+        this.isUploadMultiple = false
+        console.log('tableRowInfo', tableRowInfo)
+        this.uploadParams = Object.assign({}, {
+          docId: tableRowInfo.docId,
+          attributionId: tableRowInfo.attributionId,
+          docClassCode: tableRowInfo.param
+        })
+        this.visible = true
       },
 
+      /**
+       * 閫夋嫨濂芥枃浠剁偣鍑荤‘瀹氬悗
+       * @param file 鏂囦欢瀵硅薄
+       */
       beforeUpload(file) {
-        if (!this.fileList.find(item => item.name === file.name)) this.fileList = [...this.fileList, file]
+        if (this.isUploadMultiple) {
+          if (!this.fileList.find(item => item.name === file.name)) this.fileList = [...this.fileList, file]
+        }
+        else this.fileList.splice(0, 1, file)
         return false
       },
 
+      /**
+       * 鐐瑰嚮涓婁紶鑷虫湇鍔″櫒鎸夐挳鏃惰Е鍙�
+       */
       handleUpload() {
-        const { fileList, $notification } = this
+        const { fileList, $notification, isUploadMultiple, uploadParams, $bus, handleModalClose } = this
         this.uploading = true
         let uploadedFileCount = 0
         let uploadSuccessFileCount = 0
+        let apiMethod
+        let params
+
         fileList.forEach((file, index) => {
           const formData = new FormData()
           formData.append('file', file)
           file.status = 'uploading'
-          dncApi.importDocumentFromLocalApi(this.uploadParams, formData)
+          // 鐩墠鏍规嵁鏄惁涓婁紶澶氫釜鏂囦欢鍒ゆ柇涓や釜鍔熻兘锛岃嫢鍚庣画澧炲姞鍔熻兘鎴栬皟鏁撮渶姹傚垯璋冩暣鍒ゆ柇鏉′欢
+          if (isUploadMultiple) {
+            apiMethod = dncApi.importDocumentFromLocalApi
+            params = Object.assign({}, { params: uploadParams, formData })
+          } else {
+            apiMethod = dncApi.documentVersionUpdateApi
+            params = Object.assign({}, { docId: uploadParams.docId, formData })
+          }
+          apiMethod(params)
             .then(res => {
               if (res.success) {
                 file.status = 'done'
                 uploadSuccessFileCount++
+                console.log('uploadSuccessFileCount++', uploadSuccessFileCount)
                 $notification.success({
                   message: '娑堟伅',
                   description: res.message
@@ -111,12 +144,31 @@
             .finally(() => {
               uploadedFileCount++
               fileList.splice(index, 1, file)
+              // 褰撴枃浠跺叏閮ㄤ笂浼犲畬鎴愬悗
               if (uploadedFileCount === fileList.length) {
-                if (uploadSuccessFileCount > 0) this.$bus.$emit('importFileSuccess', this.uploadParams)
+                // 鑷冲皯鏈変竴涓枃浠朵笂浼犳垚鍔熷悗灏遍渶瑕侀噸鏂板姞杞芥枃妗e垪琛�
+                if (uploadSuccessFileCount > 0) {
+                  $bus.$emit('reloadDocumentListData', uploadParams)
+                  if (!isUploadMultiple) {
+                    $bus.$emit('reloadMainBottomTableData', 'documentVersion')
+                    handleModalClose() //鏃犳硶杩炵画鍏ュ簱澶氫釜鐗堟湰鍥犳鍏ュ簱鎴愬姛鍚庡嵆鍙��鍑虹獥鍙�
+                  }
+                }
                 this.uploading = false
               }
             })
         })
+      },
+
+      /**
+       * 鍒犻櫎鏂囦欢鍒楄〃椤规椂瑙﹀彂
+       * @param file 鏂囦欢瀵硅薄
+       */
+      handleRemove(file) {
+        const index = this.fileList.indexOf(file)
+        const newFileList = this.fileList.slice()
+        newFileList.splice(index, 1)
+        this.fileList = newFileList
       },
 
       /**
@@ -131,7 +183,6 @@
         if (this[methodName]) {
           this[methodName](treeNodeInfo, tableRowInfo)
           this.title = modalTitle
-
         }
       }
     }

--
Gitblit v1.9.3