From 7713e63365e74047c08f3416b5a95108fdee7002 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期一, 20 一月 2025 10:53:02 +0800
Subject: [PATCH] 产品结构树: 1、工序和工步层级新增加工设备型号和加工设备类型字段 2、各层级详细信息调整创建人及修改人字段 3、指派到设备窗口布局完成100%

---
 src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue             |    6 
 src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepInfo.vue       |    9 
 src/views/dnc/base/modules/ProductStructure/Document/DocumentVersionTableList.vue |   82 ++
 src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue              |    5 
 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue      |   14 
 src/views/dnc/common/ImportFileModal.vue                                          |   42 +
 src/views/dnc/base/modules/ProductStructure/Process/ProcessInfo.vue               |    6 
 src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue              |   18 
 src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModal.vue      |   18 
 src/views/dnc/base/modules/ProductStructure/Product/ProductInfo.vue               |    4 
 src/views/dnc/base/modules/ProductStructure/Component/ComponentInfo.vue           |    4 
 src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue   |    7 
 src/views/dnc/base/modules/ProductStructure/Process/ProcessModalForm.vue          |   25 +
 src/api/dnc.js                                                                    |    7 
 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue    |  943 ++++++++++--------------------------------
 src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue           |    3 
 src/views/dnc/base/modules/ProductStructure/Part/PartInfo.vue                     |    4 
 src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModalForm.vue  |   20 
 src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue        |   46 +
 19 files changed, 471 insertions(+), 792 deletions(-)

diff --git a/src/api/dnc.js b/src/api/dnc.js
index 0c55a47..2a0862b 100644
--- a/src/api/dnc.js
+++ b/src/api/dnc.js
@@ -12,14 +12,17 @@
 
 export default {
   //-------------------------浜у搧缁撴瀯鏍�------------------------------------------------
+  // 鑾峰彇浜у搧缁撴瀯鏍�
   getProductStructureTreeApi: () => getAction('/nc/product/load/tree'),
-
+  // 鑾峰彇鎵�鏈夎澶囩殑鍒楄〃
+  getAllDeviceListApi: (type) => getAction('/nc/device/list/all'),
   // 瀵煎叆NC绋嬪簭/鏂囨。
   importDocumentFromLocalApi: ({ params, formData }) => {
     const paramsStringify = querystring.stringify(params)
     return uploadAction(`/nc/doc/add?${paramsStringify}`, formData)
   },
-
+  // 鑾峰彇鎸囨淳鍒拌澶囦腑鐨勮澶囨爲
+  getDocumentAssignDeviceTreeApi: ({ attributionType, attributionId }) => getAction(`/nc/device/load/depart/tree/${attributionType}/${attributionId}`),
   // 涓嬭浇鏂囨。
   downloadDocumentApi: ({ id, docName }) => downloadFile(`/nc/doc/download/${id}`, docName),
   // 鏂囨。鍑哄簱
diff --git a/src/views/dnc/base/modules/ProductStructure/Component/ComponentInfo.vue b/src/views/dnc/base/modules/ProductStructure/Component/ComponentInfo.vue
index 84d9e3a..c409cde 100644
--- a/src/views/dnc/base/modules/ProductStructure/Component/ComponentInfo.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Component/ComponentInfo.vue
@@ -11,9 +11,9 @@
     <a-descriptions-item label="澶勭悊绫诲瀷	">{{currentLevelDetails.processType}}</a-descriptions-item>
     <a-descriptions-item label="缁撴瀯绫诲瀷	">{{currentLevelDetails.structureType}}</a-descriptions-item>
     <a-descriptions-item label="閲嶉噺" :span="2">{{currentLevelDetails.componentWeight}}</a-descriptions-item>
-    <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createUser_dicText}}</a-descriptions-item>
+    <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createName}}</a-descriptions-item>
     <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item>
-    <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateUser_dicText}}</a-descriptions-item>
+    <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateName}}</a-descriptions-item>
     <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item>
     <a-descriptions-item label="鎻忚堪" :span="3">{{currentLevelDetails.description}}</a-descriptions-item>
   </a-descriptions>
diff --git a/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue b/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue
index 95743e5..218d3e0 100644
--- a/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue
@@ -7,7 +7,11 @@
     <a-descriptions-item label="鏂囨。鐘舵��">{{currentLevelDetails.docStatus_dictText}}</a-descriptions-item>
     <a-descriptions-item label="绯荤粺鎸囧畾鐗堟湰">{{currentLevelDetails.publishVersion}}</a-descriptions-item>
     <a-descriptions-item label="鍑哄簱鐘舵��">{{currentLevelDetails.pullStatus_dictText}}</a-descriptions-item>
-    <a-descriptions-item label="鍑哄簱浜�" :span="2">{{currentLevelDetails.pullUser}}</a-descriptions-item>
+    <a-descriptions-item label="鍑哄簱浜�" :span="2">{{currentLevelDetails.pullUser_dictText}}</a-descriptions-item>
+    <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createBy_dictText}}</a-descriptions-item>
+    <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item>
+    <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateBy_dictText}}</a-descriptions-item>
+    <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item>
     <a-descriptions-item label="鎻忚堪" :span="3">{{currentLevelDetails.description}}</a-descriptions-item>
   </a-descriptions>
 </template>
diff --git a/src/views/dnc/base/modules/ProductStructure/Document/DocumentVersionTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/DocumentVersionTableList.vue
index 14f5344..b909b4c 100644
--- a/src/views/dnc/base/modules/ProductStructure/Document/DocumentVersionTableList.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Document/DocumentVersionTableList.vue
@@ -1,39 +1,87 @@
 <template>
-  <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false">
-
+  <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" :size="size" rowKey="fileId">
+    <template slot="rowIndex" slot-scope="text,record,index">
+      <span :style="{color:setCurrentVersionColor(record.publishFlag)}">{{parseInt(index) + 1}}</span>
+    </template>
+    <template slot="fileName" slot-scope="text,record,index">
+      <span :style="{color:setCurrentVersionColor(record.publishFlag)}">
+        {{text}}.{{record.fileSuffix}}
+        <span v-if="record.publishFlag">[褰撳墠鐗堟湰]</span>
+      </span>
+    </template>
+    <template slot="docVersion" slot-scope="text,record">
+      <span :style="{color:setCurrentVersionColor(record.publishFlag)}">{{text}}</span>
+    </template>
+    <template slot="fileSize" slot-scope="text,record">
+      <span :style="{color:setCurrentVersionColor(record.publishFlag)}">{{(text/1024).toFixed(2)}}KB</span>
+    </template>
   </a-table>
 </template>
 
 <script>
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import { getAction } from '@/api/manage'
 
   export default {
     name: 'DocumentVersionTableList',
     mixins: [JeecgListMixin],
     components: {},
+    props: {
+      currentDocumentInfo: {
+        type: Object
+      },
+      size: {
+        type: String
+      }
+    },
     data() {
       return {
+        disableMixinCreated: true,
+        queryParams: {},
         columns: [
-          {
-            title: '搴忓彿',
-            dataIndex: 'rowIndex',
-            key: 'rowIndex',
-            width: 65,
-            align: 'center',
-            customRender: function(t, r, index) {
-              return parseInt(index) + 1
-            }
-          },
-          { title: '鏂囦欢鍚嶇О', dataIndex: 'fileName', align: 'center' },
-          { title: '鐗堟湰鍙�', dataIndex: 'docVersion', align: 'center' },
-          { title: '鏂囦欢澶у皬', dataIndex: 'fileSize', align: 'center' }
+          { title: '搴忓彿', dataIndex: 'rowIndex', width: 65, align: 'center', scopedSlots: { customRender: 'rowIndex' } },
+          { title: '鏂囦欢鍚嶇О', dataIndex: 'fileName', align: 'center', scopedSlots: { customRender: 'fileName' } },
+          { title: '鐗堟湰鍙�', dataIndex: 'docVersion', align: 'center', scopedSlots: { customRender: 'docVersion' } },
+          { title: '鏂囦欢澶у皬', dataIndex: 'fileSize', align: 'center', scopedSlots: { customRender: 'fileSize' } }
         ],
         url: {
-          list: ''
+          list: '/nc/file/find/list'
         }
       }
     },
-    methods: {}
+    methods: {
+      loadData() {
+        this.dataSource = []
+        if (!this.url.list) {
+          this.$message.error('璇疯缃畊rl.list灞炴��!')
+          return
+        }
+        var params = this.getQueryParams()//鏌ヨ鏉′欢
+        params.docId = this.currentDocumentInfo.docId
+        if (!params) {
+          return false
+        }
+        this.loading = true
+        getAction(this.url.list, params).then((res) => {
+          if (res.success) {
+            this.dataSource = res.list
+          } else {
+            this.$message.warning(res.message)
+          }
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+
+      /**
+       * 璁剧疆琛ㄦ牸涓负褰撳墠鐗堟湰鐨勬枃浠惰〃鏍艰棰滆壊鏍囪瘑
+       * @param publishFlag 鏄惁涓哄綋鍓嶇増鏈�
+       * @returns {string} 棰滆壊鏍囪瘑
+       */
+      setCurrentVersionColor(publishFlag) {
+        return publishFlag ? '#DB9538' : ''
+      }
+    }
   }
 </script>
 
diff --git a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue
index 01a4e69..f00bfda 100644
--- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentAssignModal.vue
@@ -1,5 +1,6 @@
 <template>
-  <a-modal width="75%" :title="title" :visible="visible" @cancel="visible=false" :maskClosable="false" centered>
+  <a-modal width="75%" :title="title" :visible="visible" @cancel="visible=false" :maskClosable="false" centered
+           @ok="handleAssignDocumentToDevice">
     <div class="tabs-container">
       <div style="width: 72%">
         <a-tabs>
@@ -27,8 +28,9 @@
             </div>
 
 
-            <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false"
-                     :scroll="{y:440}" :size="size" rowKey="docId">
+            <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" :loading="loading"
+                     :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+                     :scroll="{y:456}" :size="size" rowKey="docId">
 
             </a-table>
           </a-tab-pane>
@@ -38,7 +40,44 @@
       <div style="width: 25%">
         <a-tabs>
           <a-tab-pane tab="璁惧鍒楄〃">
+            <a-spin :spinning="spinning">
+              <div style="display: flex;flex-direction: column;">
+                <div style="display: flex">
+                  <a-input placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" allowClear v-model="searchInput"
+                           @change="handleSearchInputChange"/>
+                  <a-dropdown :trigger="['click']" placement="bottomCenter" style="margin: 0 8px">
+                    <a-menu slot="overlay">
+                      <a-menu-item key="1" @click="expandedKeys = allTreeKeys">灞曞紑鎵�鏈�</a-menu-item>
+                      <a-menu-item key="2" @click="expandedKeys = []">鍚堝苟鎵�鏈�</a-menu-item>
+                    </a-menu>
+                    <a-button>
+                      <a-icon type="bars"/>
+                    </a-button>
+                  </a-dropdown>
+                </div>
 
+                <!--浜у搧缁撴瀯鏍�-->
+                <div style="overflow:auto;margin-top: 10px;height: 400px">
+                  <a-tree ref="tree" checkable :checkedKeys="checkedKeys" :expandedKeys.sync="expandedKeys"
+                          :autoExpandParent="autoExpandParent"
+                          :treeData="treeDataSource" @check="handleTreeNodeCheck" @expand="handleTreeExpand">
+                    <template slot="title" slot-scope="{ label, parentId, entity, key:treeKey,type}">
+                     <span v-if="label.indexOf(searchValue) > -1">{{ label.substr(0, label.indexOf(searchValue)) }}<span
+                       class="replaceSearch">{{ searchValue }}</span>{{ label.substr(label.indexOf(searchValue) + searchValue.length) }}</span>
+                      <span v-else>{{ label }}</span>
+                    </template>
+                  </a-tree>
+                </div>
+
+                <div>
+                  <a-form>
+                    <a-form-item label="鎸囨淳鍘熷洜">
+                      <a-textarea v-model="queryParam.applyReason" rows="3" style="resize: none"></a-textarea>
+                    </a-form-item>
+                  </a-form>
+                </div>
+              </div>
+            </a-spin>
           </a-tab-pane>
         </a-tabs>
       </div>
@@ -47,13 +86,19 @@
 </template>
 
 <script>
+  import { getAction } from '@/api/manage'
+  import dncApi from '@/api/dnc'
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import ATextarea from 'ant-design-vue/es/input/TextArea'
 
   export default {
     name: 'NcDocumentAssignModal',
-    components: {},
+    components: { ATextarea },
     mixins: [JeecgListMixin],
     props: {
+      currentDocumentInfo: {
+        type: Object
+      },
       size: {
         type: String
       }
@@ -76,736 +121,194 @@
           },
           { title: '鏂囦欢鍚嶇О', dataIndex: 'docName', align: 'center', width: 300 },
           { title: '璁惧缂栧彿', dataIndex: 'docCode', align: 'center' },
-          { title: '鍑哄簱鐘舵��', dataIndex: 'pullStatus', align: 'center' },
-          { title: '鐘�  鎬�', dataIndex: 'docStatus', align: 'center' },
+          { title: '鍑哄簱鐘舵��', dataIndex: 'pullStatus_dictText', align: 'center' },
+          { title: '鐘�  鎬�', dataIndex: 'docStatus_dictText', align: 'center' },
           { title: '涓婁紶鏃堕棿', dataIndex: 'createTime', align: 'center', width: 200 }
         ],
-        dataSource: [
-          {
-            'docId': '1872116579179859971',
-            'docName': 'api-ms-win-core-heap-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116579423129601',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116579179859972',
-            'docName': 'api-ms-win-core-libraryloader-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116579423129606',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116581352509442',
-            'docName': 'api-ms-win-core-processthreads-l1-1-1.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116581453172737',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116581352509441',
-            'docName': 'api-ms-win-core-profile-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116581453172738',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116581398646787',
-            'docName': 'api-ms-win-core-processenvironment-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116581499310083',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116581394452482',
-            'docName': 'api-ms-win-core-processthreads-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116581499310082',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116581398646786',
-            'docName': 'api-ms-win-core-namedpipe-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116581503504385',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116581398646791',
-            'docName': 'api-ms-win-core-rtlsupport-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116581503504386',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116583265112065',
-            'docName': 'api-ms-win-core-synch-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116583357386754',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116583298666502',
-            'docName': 'api-ms-win-core-timezone-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116583386746881',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116583298666498',
-            'docName': 'api-ms-win-core-sysinfo-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116583399329795',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116583298666499',
-            'docName': 'api-ms-win-core-util-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116583399329794',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:50',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116585123188739',
-            'docName': 'api-ms-win-crt-convert-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116585219657730',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:51',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116585123188738',
-            'docName': 'api-ms-win-crt-heap-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116585219657729',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:51',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116585131577347',
-            'docName': 'api-ms-win-crt-environment-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116585223852035',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:51',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116585131577350',
-            'docName': 'api-ms-win-crt-conio-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116585223852036',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:51',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116585131577346',
-            'docName': 'api-ms-win-crt-locale-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116585223852034',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:51',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116585139965954',
-            'docName': 'api-ms-win-crt-filesystem-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116585232240641',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:51',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116587392307203',
-            'docName': 'api-ms-win-crt-stdio-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116587505553412',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:52',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116587392307207',
-            'docName': 'api-ms-win-crt-process-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116587505553409',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:51',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116587379724289',
-            'docName': 'api-ms-win-crt-multibyte-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116587497164802',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:51',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116587388112901',
-            'docName': 'api-ms-win-crt-private-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116587497164801',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:52',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116587388112899',
-            'docName': 'api-ms-win-crt-runtime-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116587505553410',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:51',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116587392307205',
-            'docName': 'api-ms-win-crt-math-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116587505553411',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:51',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116589451710466',
-            'docName': 'api-ms-win-crt-string-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116589644648450',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:52',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116589472681986',
-            'docName': 'api-ms-win-crt-time-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116589653037060',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:52',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116589472681987',
-            'docName': 'api-ms-win-crt-utility-l1-1-0.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116589653037058',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:52',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116589472681985',
-            'docName': 'chrome_100_qq.pak',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'pak',
-            'docStatus': 1,
-            'publishFileId': '1872116589653037059',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:52',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116589787254785',
-            'docName': 'chrome_200_qq.pak',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'pak',
-            'docStatus': 1,
-            'publishFileId': '1872116589896306690',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:52',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116590152159233',
-            'docName': 'd3dcompiler_47.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116590277988354',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:52',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1872116591695663106',
-            'docName': 'ffmpeg.dll',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'dll',
-            'docStatus': 1,
-            'publishFileId': '1872116591783743489',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2024-12-26 11:05:52',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1878649744767254529',
-            'docName': 'avatar2.jpg',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'jpg',
-            'docStatus': 1,
-            'publishFileId': '1878649744901472258',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2025-01-13 11:46:18',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1327523708556668930',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          }
-        ],
-        queryParam: {},
+        searchValue: '',
+        searchInput: '',
+        spinning: false,
+        treeDataSource: [],
+        allTreeKeys: [],
+        checkedKeys: [],
+        expandedKeys: [],
+        autoExpandParent: true,
         url: {
-          list: ''
+          list: '/nc/doc/find/list'
         }
       }
     },
     watch: {
       visible: {
         handler(value) {
-          if (value) this.loadData(1)
+          if (value) {
+            this.resetData()
+            this.loadData()
+            this.getDocumentAssignDeviceTreeByApi()
+          }
         }
       }
     },
-    methods: {}
+    methods: {
+      loadData() {
+        this.dataSource = []
+        if (!this.url.list) {
+          this.$message.error('璇疯缃畊rl.list灞炴��!')
+          return
+        }
+        var params = this.getQueryParams()//鏌ヨ鏉′欢
+        if (!params) {
+          return false
+        }
+        const { attributionType, attributionId, param } = this.currentDocumentInfo
+        console.log('currentDocumentInfo', this.currentDocumentInfo)
+        params.attributionType = attributionType
+        params.attributionId = attributionId
+        params.docClassCode = param
+        console.log('params', params)
+        this.loading = true
+        getAction(this.url.list, params).then((res) => {
+          if (res.success) this.dataSource = res.result
+          else this.$message.warning(res.message)
+        }).finally(() => {
+          this.loading = false
+        })
+      },
+
+      getDocumentAssignDeviceTreeByApi() {
+        this.spinning = true
+        this.treeDataSource = []
+        dncApi.getDocumentAssignDeviceTreeApi(this.currentDocumentInfo)
+          .then(res => {
+            if (res.success) {
+              this.dataList = []
+              this.allTreeKeys = []
+              this.treeDataSource = res.list
+              this.generateList(this.treeDataSource)
+            } else {
+              this.$message.warn(res.message)
+            }
+          })
+          .finally(() => {
+            this.spinning = false
+          })
+      },
+
+      handleAssignDocumentToDevice() {
+        const param = {}
+        console.log('table', this.selectedRowKeys)
+        const treeCheckedDeviceKeys = []
+        this.checkedKeys.forEach(checkedKey => {
+          const deviceId = this.dataList.find(item => item.key === checkedKey && item.type === 2)
+          if (deviceId) treeCheckedDeviceKeys.push(deviceId.key)
+        })
+
+        console.log('treeCheckedDeviceKeys', treeCheckedDeviceKeys)
+      },
+
+      /* 杈撳叆鏌ヨ鍐呭鍙樺寲鏃惰Е鍙� */
+      handleSearchInputChange() {
+        let search = this.searchInput
+        console.log('data', this.dataList)
+        console.log('search', search)
+        let expandedKeys = this.dataList
+          .map(item => {
+            if (item.title != null) {
+              if (item.title.indexOf(search) > -1) {
+                return this.getParentKey(item.key, this.treeDataSource)
+              }
+              return null
+            }
+          })
+          .filter((item, i, self) => item && self.indexOf(item) === i)
+        Object.assign(this, {
+          expandedKeys,
+          searchValue: search,
+          autoExpandParent: true
+        })
+      },
+
+      /**
+       * 鏍戣妭鐐瑰睍寮�鍚堝苟鏃惰Е鍙�
+       * @param expandedKeys 灞曞紑椤筴ey
+       */
+      handleTreeExpand(expandedKeys) {
+        this.expandedKeys = expandedKeys
+        this.autoExpandParent = false
+      },
+
+      /**
+       * 鏍戣妭鐐瑰閫夋閫変腑鏃惰Е鍙�
+       * @param selectedKeys 閫変腑鑺傜偣key
+       * @param {node} node 鑺傜偣瀵硅薄
+       */
+      handleTreeNodeCheck(checkedKeys, { node }) {
+        let record = node.dataRef
+        this.checkedKeys = checkedKeys
+      },
+
+      /**
+       * 閫掑綊鑾峰緱杈撳叆椤圭殑鐖剁骇key
+       * @param key 瀛愰」key
+       * @param tree 瀛愰」
+       */
+      getParentKey(key, tree) {
+        let parentKey
+        for (let i = 0; i < tree.length; i++) {
+          const node = tree[i]
+          if (node.children) {
+            if (node.children.some(item => item.key === key)) {
+              parentKey = node.key
+              console.log('parentKey', parentKey)
+            } else if (
+              this.getParentKey(key, node.children)) {
+              parentKey = this.getParentKey(key, node.children)
+            }
+          }
+        }
+        return parentKey
+      },
+
+      /**
+       * 閫掑綊鑾峰緱鎵�鏈夋爲鑺傜偣key
+       * @param data
+       */
+      generateList(data) {
+        for (let i = 0; i < data.length; i++) {
+          data[i].key = data[i].id
+          const node = data[i]
+          const key = node.id
+          const title = node.label
+          const type = node.type
+          this.dataList.push({ key, title, type })
+          this.allTreeKeys.push(key)
+          if (node.children) this.generateList(node.children)
+        }
+      },
+
+      resetData() {
+        this.searchInput = ''
+        this.expandedKeys = []
+        this.selectedRowKeys = []
+        this.checkedKeys = []
+      }
+    }
   }
 </script>
 
-<style scoped>
-  .tabs-container {
-    display: flex;
-    justify-content: space-between;
+<style scoped lang="less">
+  /deep/ .ant-modal {
+    .tabs-container {
+      display: flex;
+      justify-content: space-between;
+
+      .replaceSearch {
+        color: #40a9ff;
+        font-weight: bold;
+        background-color: rgb(204, 204, 204);
+      }
+    }
+
   }
+
 </style>
\ No newline at end of file
diff --git a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
index f2f401a..c4ac74f 100644
--- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
@@ -1,13 +1,14 @@
 <template>
   <div>
     <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination"
-             :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId">
+             :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange">
 
     </a-table>
 
     <DocumentModal ref="modalForm" @ok="modalFormOk"/>
 
-    <NcDocumentAssignModal :size="size" ref="documentAssignModalRef"/>
+    <NcDocumentAssignModal :size="size" ref="documentAssignModalRef"
+                           :currentDocumentInfo="currentRightClickedDocumentInfo"/>
   </div>
 </template>
 
@@ -51,6 +52,8 @@
           { title: '涓婁紶鏃堕棿', dataIndex: 'createTime', align: 'center' }
         ],
         dataSource: [],
+        currentRightClickedDocumentInfo: {},
+        currentClickedDocumentInfo: {},
         url: {
           list: '/nc/doc/find/page'
         }
@@ -96,10 +99,13 @@
           on: {
             contextmenu: event => {
               event.preventDefault()
-              this.$emit('handleTableContextMenuOpen', { ...record, param: 'NC' })
+              this.currentRightClickedDocumentInfo = Object.assign({ param: 'NC' }, record)
+              this.$emit('handleTableContextMenuOpen', this.currentRightClickedDocumentInfo)
             },
             click: () => {
-              this.$bus.$emit('sendCurrentLevelInfo', record)
+              if (this.currentClickedDocumentInfo.docId === record.docId) return
+              this.currentClickedDocumentInfo = Object.assign({}, record)
+              this.$bus.$emit('sendCurrentClickedDocumentInfo', record)
             }
           }
         }
diff --git a/src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue
index 5c71c42..e4191af 100644
--- a/src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue
@@ -1,7 +1,7 @@
 <template>
   <div>
     <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination"
-             :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId">
+             :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange">
 
     </a-table>
 
@@ -48,6 +48,7 @@
           { title: '涓婁紶鏃堕棿', dataIndex: 'createTime', align: 'center' }
         ],
         dataSource: [],
+        currentDocumentInfo: {},
         url: {
           list: '/nc/doc/find/page'
         }
@@ -96,7 +97,9 @@
               this.$emit('handleTableContextMenuOpen', { ...record, param: 'OTHER' })
             },
             click: () => {
-              this.$bus.$emit('sendCurrentLevelInfo', record)
+              if (this.currentDocumentInfo.docId === record.docId) return
+              this.currentDocumentInfo = Object.assign({}, record)
+              this.$bus.$emit('sendCurrentClickedDocumentInfo', record)
             }
           }
         }
diff --git a/src/views/dnc/base/modules/ProductStructure/Part/PartInfo.vue b/src/views/dnc/base/modules/ProductStructure/Part/PartInfo.vue
index 5f43682..b91d89a 100644
--- a/src/views/dnc/base/modules/ProductStructure/Part/PartInfo.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Part/PartInfo.vue
@@ -11,9 +11,9 @@
     <a-descriptions-item label="澶勭悊绫诲瀷	">{{currentLevelDetails.processType}}</a-descriptions-item>
     <a-descriptions-item label="缁撴瀯绫诲瀷	">{{currentLevelDetails.structureType}}</a-descriptions-item>
     <a-descriptions-item label="閲嶉噺" :span="2">{{currentLevelDetails.partsWeight}}</a-descriptions-item>
-    <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createUser_dicText}}</a-descriptions-item>
+    <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createName}}</a-descriptions-item>
     <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item>
-    <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateUser_dicText}}</a-descriptions-item>
+    <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateName}}</a-descriptions-item>
     <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item>
     <a-descriptions-item label="鎻忚堪" :span="3">{{currentLevelDetails.description}}</a-descriptions-item>
   </a-descriptions>
diff --git a/src/views/dnc/base/modules/ProductStructure/Process/ProcessInfo.vue b/src/views/dnc/base/modules/ProductStructure/Process/ProcessInfo.vue
index ec530a9..2595b24 100644
--- a/src/views/dnc/base/modules/ProductStructure/Process/ProcessInfo.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Process/ProcessInfo.vue
@@ -5,10 +5,14 @@
     <a-descriptions-item label="宸ヨ壓缂栧彿	">{{currentLevelDetails.craftNo}}</a-descriptions-item>
     <a-descriptions-item label="宸ュ簭绫诲瀷">{{currentLevelDetails.processType}}</a-descriptions-item>
     <a-descriptions-item label="鍔犲伐璁惧鍨嬪彿">{{currentLevelDetails.processingEquipmentModel}}</a-descriptions-item>
-    <!--<a-descriptions-item label="鍔犲伐璁惧绫诲瀷">{{currentLevelDetails.processingEquipmentOs}}</a-descriptions-item>-->
+    <a-descriptions-item label="鍔犲伐璁惧绫诲瀷">{{currentLevelDetails.processingEquipmentOs}}</a-descriptions-item>
     <a-descriptions-item label="鍔犲伐璁惧缂栧彿">{{currentLevelDetails.processingEquipmentCode}}</a-descriptions-item>
     <a-descriptions-item label="宸ヨ缂栧彿">{{currentLevelDetails.assembleStep}}</a-descriptions-item>
     <a-descriptions-item label="宸ヨ鍚嶇О	">{{currentLevelDetails.assembleName}}</a-descriptions-item>
+    <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createName}}</a-descriptions-item>
+    <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item>
+    <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateName}}</a-descriptions-item>
+    <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item>
     <a-descriptions-item label="鎻忚堪" :span="3">{{currentLevelDetails.description}}</a-descriptions-item>
   </a-descriptions>
 </template>
diff --git a/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue b/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue
index 57f3e4c..3d5c716 100644
--- a/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Process/ProcessModal.vue
@@ -8,11 +8,12 @@
     @ok="handleOk"
     @cancel="handleCancel"
     cancelText="鍏抽棴">
-    <ProcessModalForm ref="realForm" @ok="submitCallback"/>
+    <ProcessModalForm ref="realForm" @ok="submitCallback" :allDeviceList="allDeviceList"/>
   </j-modal>
 </template>
 
 <script>
+  import dncApi from '@/api/dnc'
   import ProcessModalForm from './ProcessModalForm.vue'
 
   export default {
@@ -30,13 +31,28 @@
         title: '',
         width: 700,
         visible: false,
+        allDeviceList: [],
         isAddNextLevel: false // 鏄惁涓烘坊鍔犱笅绾э紝浣滀负鏍戣妭鐐规槸鍚﹀睍寮�鐨勫垽鏂�
+      }
+    },
+    watch: {
+      visible: {
+        handler(value) {
+          if (value) this.getAllDeviceListByApi()
+        }
       }
     },
     created() {
       this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod)
     },
     methods: {
+      getAllDeviceListByApi() {
+        dncApi.getAllDeviceListApi()
+          .then(res => {
+            if (res.success) this.allDeviceList = res.list
+          })
+      },
+
       /**
        * 鐐瑰嚮閮ㄤ欢鍒涘缓閮ㄤ欢涓嬬骇宸ュ簭
        */
diff --git a/src/views/dnc/base/modules/ProductStructure/Process/ProcessModalForm.vue b/src/views/dnc/base/modules/ProductStructure/Process/ProcessModalForm.vue
index d077f67..c60ec92 100644
--- a/src/views/dnc/base/modules/ProductStructure/Process/ProcessModalForm.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Process/ProcessModalForm.vue
@@ -17,7 +17,24 @@
       <a-row>
         <a-col :span="24">
           <a-form-model-item label="鍔犲伐璁惧缂栧彿" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-select v-model="model.processingEquipmentCode" placeholder="璇烽�夋嫨鍔犲伐璁惧缂栧彿"></a-select>
+            <a-select v-model="model.processingEquipmentCode" placeholder="璇烽�夋嫨鍔犲伐璁惧缂栧彿">
+              <a-select-option v-for="item in allDeviceList" :key="item.deviceId">
+                {{item.deviceId}}
+              </a-select-option>
+            </a-select>
+          </a-form-model-item>
+        </a-col>
+      </a-row>
+
+      <a-row>
+        <a-col :span="12">
+          <a-form-model-item label="鍔犲伐璁惧鍨嬪彿">
+            <a-input v-model="model.processingEquipmentModel" placeholder="璇疯緭鍏ュ姞宸ヨ澶囧瀷鍙�"></a-input>
+          </a-form-model-item>
+        </a-col>
+        <a-col :span="12">
+          <a-form-model-item label="鍔犲伐璁惧绫诲瀷">
+            <a-input v-model="model.processingEquipmentOs" placeholder="璇疯緭鍏ュ姞宸ヨ澶囩被鍨�"></a-input>
           </a-form-model-item>
         </a-col>
       </a-row>
@@ -70,6 +87,11 @@
   export default {
     name: 'ProcessModalForm',
     components: {},
+    props: {
+      allDeviceList: {
+        type: Array
+      }
+    },
     data() {
       return {
         model: {
@@ -109,6 +131,7 @@
     created() {
       //澶囦唤model鍘熷鍊�
       this.modelDefault = JSON.parse(JSON.stringify(this.model))
+      this.$bus.$on('sendAllDeviceList', deviceList => this.deviceList = deviceList)
     },
     methods: {
       add(params) {
diff --git a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepInfo.vue b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepInfo.vue
index ceb18bb..d4649d5 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepInfo.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepInfo.vue
@@ -2,11 +2,16 @@
   <a-descriptions bordered :size="size">
     <a-descriptions-item label="宸ユ鍚嶇О">{{currentLevelDetails.stepName}}</a-descriptions-item>
     <a-descriptions-item label="宸ユ鍙�">{{currentLevelDetails.stepCode}}</a-descriptions-item>
-    <a-descriptions-item label="宸ヨ壓缂栧彿	">{{currentLevelDetails.craftNo}}</a-descriptions-item>
     <a-descriptions-item label="宸ユ绫诲瀷">{{currentLevelDetails.stepType}}</a-descriptions-item>
+    <a-descriptions-item label="鍔犲伐璁惧鍨嬪彿">{{currentLevelDetails.processingEquipmentModel}}</a-descriptions-item>
+    <a-descriptions-item label="鍔犲伐璁惧绫诲瀷">{{currentLevelDetails.processingEquipmentOs}}</a-descriptions-item>
     <a-descriptions-item label="鍔犲伐璁惧缂栧彿">{{currentLevelDetails.deviceNo}}</a-descriptions-item>
     <a-descriptions-item label="宸ヨ缂栧彿">{{currentLevelDetails.assembleStep}}</a-descriptions-item>
-    <a-descriptions-item label="宸ヨ鍚嶇О	">{{currentLevelDetails.assembleName}}</a-descriptions-item>
+    <a-descriptions-item label="宸ヨ鍚嶇О	" :span="2">{{currentLevelDetails.assembleName}}</a-descriptions-item>
+    <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createName}}</a-descriptions-item>
+    <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item>
+    <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateName}}</a-descriptions-item>
+    <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item>
     <a-descriptions-item label="鎻忚堪" :span="3">{{currentLevelDetails.description}}</a-descriptions-item>
   </a-descriptions>
 </template>
diff --git a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModal.vue b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModal.vue
index c430569..5456b2f 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModal.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModal.vue
@@ -8,11 +8,12 @@
     @ok="handleOk"
     @cancel="handleCancel"
     cancelText="鍏抽棴">
-    <ProcessStepModalForm ref="realForm" @ok="submitCallback"/>
+    <ProcessStepModalForm ref="realForm" @ok="submitCallback" :allDeviceList="allDeviceList"/>
   </j-modal>
 </template>
 
 <script>
+  import dncApi from '@/api/dnc'
   import ProcessStepModalForm from './ProcessStepModalForm.vue'
 
   export default {
@@ -25,11 +26,19 @@
         type: Object
       }
     },
+    watch: {
+      visible: {
+        handler(value) {
+          if (value) this.getAllDeviceListByApi()
+        }
+      }
+    },
     data() {
       return {
         title: '',
         width: 700,
         visible: false,
+        allDeviceList: [],
         isAddNextLevel: false // 鏄惁涓烘坊鍔犱笅绾э紝浣滀负鏍戣妭鐐规槸鍚﹀睍寮�鐨勫垽鏂�
       }
     },
@@ -37,6 +46,13 @@
       this.$bus.$on('treeMenuItemMethodTrigger', this.triggerCorrespondingMethod)
     },
     methods: {
+      getAllDeviceListByApi() {
+        dncApi.getAllDeviceListApi()
+          .then(res => {
+            if (res.success) this.allDeviceList = res.list
+          })
+      },
+
       /**
        * 鐐瑰嚮宸ュ簭鍒涘缓宸ュ簭涓嬬骇宸ユ
        */
diff --git a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModalForm.vue b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModalForm.vue
index d6982b6..8fcebaf 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModalForm.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProcessStep/ProcessStepModalForm.vue
@@ -17,23 +17,28 @@
       <a-row>
         <a-col :span="24">
           <a-form-model-item label="鍔犲伐璁惧缂栧彿" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-select v-model="model.deviceNo" placeholder="璇烽�夋嫨鍔犲伐璁惧缂栧彿"></a-select>
+            <a-select v-model="model.deviceNo" placeholder="璇烽�夋嫨鍔犲伐璁惧缂栧彿">
+              <a-select-option v-for="item in allDeviceList" :key="item.deviceId">
+                {{item.deviceId}}
+              </a-select-option>
+            </a-select>
           </a-form-model-item>
         </a-col>
       </a-row>
 
       <a-row>
         <a-col :span="12">
-          <a-form-model-item label="宸ヨ壓缂栧彿">
-            <a-input v-model="model.craftNo" placeholder="璇疯緭鍏ュ伐鑹虹紪鍙�"></a-input>
+          <a-form-model-item label="鍔犲伐璁惧鍨嬪彿">
+            <a-input v-model="model.processingEquipmentModel" placeholder="璇疯緭鍏ュ姞宸ヨ澶囧瀷鍙�"></a-input>
           </a-form-model-item>
         </a-col>
         <a-col :span="12">
-          <a-form-model-item label="宸ヨ壓瑙勭▼鐗堟湰">
-            <a-input v-model="model.craftVersion" placeholder="璇疯緭鍏ュ伐鑹鸿绋嬬増鏈�"></a-input>
+          <a-form-model-item label="鍔犲伐璁惧绫诲瀷">
+            <a-input v-model="model.processingEquipmentOs" placeholder="璇疯緭鍏ュ姞宸ヨ澶囩被鍨�"></a-input>
           </a-form-model-item>
         </a-col>
       </a-row>
+
 
       <a-row>
         <a-col :span="12">
@@ -70,6 +75,11 @@
   export default {
     name: 'ProcessStepModalForm',
     components: {},
+    props: {
+      allDeviceList: {
+        type: Array
+      }
+    },
     data() {
       return {
         model: {
diff --git a/src/views/dnc/base/modules/ProductStructure/Product/ProductInfo.vue b/src/views/dnc/base/modules/ProductStructure/Product/ProductInfo.vue
index da4feb0..f8ea01c 100644
--- a/src/views/dnc/base/modules/ProductStructure/Product/ProductInfo.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Product/ProductInfo.vue
@@ -3,9 +3,9 @@
     <a-descriptions-item label="浜у搧鍚嶇О">{{currentLevelDetails.productName}}</a-descriptions-item>
     <a-descriptions-item label="浜у搧鍨嬪彿">{{currentLevelDetails.productModel}}</a-descriptions-item>
     <a-descriptions-item label="浜у搧浠g爜	">{{currentLevelDetails.productNo}}</a-descriptions-item>
-    <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createUser_dicText}}</a-descriptions-item>
+    <a-descriptions-item label="鍒涘缓浜�">{{currentLevelDetails.createName}}</a-descriptions-item>
     <a-descriptions-item label="鍒涘缓鏃堕棿" :span="2">{{currentLevelDetails.createTime}}</a-descriptions-item>
-    <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateUser_dicText}}</a-descriptions-item>
+    <a-descriptions-item label="淇敼浜�">{{currentLevelDetails.updateName}}</a-descriptions-item>
     <a-descriptions-item label="淇敼鏃堕棿" :span="2">{{currentLevelDetails.updateTime}}</a-descriptions-item>
   </a-descriptions>
 </template>
diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue
index 5774215..c3a67b5 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue
@@ -1,28 +1,29 @@
 <template>
-  <a-tabs style="height: 100%" v-model="activeTabKey" v-if="Object.keys(currentLevelInfo).length>0">
+  <a-tabs style="height: 100%" v-model="activeTabKey" v-if="Object.keys(currentLevelInfo).length>0"
+          @change="handleTabChange">
     <a-tab-pane :key="1" tab="浜у搧灞炴��" v-if="currentLevelInfo.type===1">
-      <ProductInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/>
+      <ProductInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/>
     </a-tab-pane>
 
     <a-tab-pane :key="1" tab="閮ㄤ欢灞炴��" v-if="currentLevelInfo.type===2">
-      <ComponentInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/>
+      <ComponentInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/>
     </a-tab-pane>
 
     <a-tab-pane :key="1" tab="闆朵欢灞炴��" v-if="currentLevelInfo.type===3">
-      <PartInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/>
+      <PartInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/>
     </a-tab-pane>
 
     <a-tab-pane :key="1" tab="宸ュ簭灞炴��" v-if="currentLevelInfo.type===5">
-      <ProcessInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/>
+      <ProcessInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/>
     </a-tab-pane>
 
     <a-tab-pane :key="1" tab="宸ユ灞炴��" v-if="currentLevelInfo.type===6">
-      <ProcessStepInfo :currentLevelDetails="currentLevelInfo.entity" :size="descriptionsContainerSize"/>
+      <ProcessStepInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/>
     </a-tab-pane>
 
     <template v-if="currentLevelInfo.hasOwnProperty('attributionType')">
       <a-tab-pane :key="1" tab="鏂囨。灞炴��">
-        <DocumentInfo :currentLevelDetails="currentLevelInfo" :size="descriptionsContainerSize"/>
+        <DocumentInfo :currentLevelDetails="currentLevelInfo" :size="containerSize"/>
       </a-tab-pane>
 
       <a-tab-pane :key="2" tab="棰勮">
@@ -30,11 +31,12 @@
       </a-tab-pane>
 
       <a-tab-pane :key="3" tab="鏂囨。鐗堟湰">
-        <DocumentVersionTableList/>
+        <DocumentVersionTableList ref="documentVersionTableRef" :currentDocumentInfo="currentLevelInfo"
+                                  :size="containerSize"/>
       </a-tab-pane>
 
       <a-tab-pane :key="4" tab="浣跨敤璁惧" v-if="currentLevelInfo.attributionType===5">
-        <UseDocumentEquipmentTableList/>
+        <UseDocumentEquipmentTableList ref="useDocumentEquipmentTableRef"/>
       </a-tab-pane>
     </template>
   </a-tabs>
@@ -65,13 +67,15 @@
     data() {
       return {
         activeTabKey: 1,
-        descriptionsContainerSize: 'small',
-        currentLevelInfo: {}
+        containerSize: 'small',
+        currentLevelInfo: {},
+        hasLoadedDataTabKeyArray: []
       }
     },
     created() {
-      this.$bus.$on('sendCurrentLevelInfo', this.receiveCurrentLevelInfo)
+      this.$bus.$on('sendCurrentClickedDocumentInfo', this.receiveCurrentLevelInfo)
       this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentLevelInfo)
+      this.$bus.$on('reloadMainBottomTableData', this.reloadMainBottomTableData)
     },
     methods: {
       /**
@@ -80,7 +84,23 @@
        */
       receiveCurrentLevelInfo(levelInfo) {
         this.currentLevelInfo = levelInfo
-        if (levelInfo.attributionType) this.activeTabKey = 1
+        this.activeTabKey = 1
+        this.hasLoadedDataTabKeyArray = []
+      },
+
+      handleTabChange(activeTabKey) {
+        if (!this.hasLoadedDataTabKeyArray.includes(activeTabKey)) {
+          if (activeTabKey === 3) {
+            this.$nextTick(() => this.$refs.documentVersionTableRef.loadData())
+          } else if (activeTabKey === 4) {
+            this.$nextTick(() => this.$refs.useDocumentEquipmentTableRef.loadData())
+          }
+          this.hasLoadedDataTabKeyArray.push(activeTabKey)
+        }
+      },
+
+      reloadMainBottomTableData(tableName) {
+        if (this.$refs[tableName + 'TableRef']) this.$refs[tableName + 'TableRef'].loadData()
       }
     }
   }
diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
index 3619a9b..0847514 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
@@ -34,7 +34,7 @@
     },
     created() {
       this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo)
-      this.$bus.$on('importFileSuccess', this.reloadDocumentListData)
+      this.$bus.$on('reloadDocumentListData', this.reloadDocumentListData)
       this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod)
     },
     methods: {
@@ -204,6 +204,7 @@
               .then(res => {
                 if (res.success) {
                   this.reloadDocumentListData({ docClassCode: param, attributionId })
+                  this.$bus.$emit('reloadMainBottomTableData', 'documentVersion')
                   that.$notification.success({
                     message: '娑堟伅',
                     description: res.message
diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue
index 2930dd4..328e26f 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue
@@ -23,8 +23,8 @@
         </div>
 
         <!--浜у搧缁撴瀯鏍�-->
-        <div class="" style="flex: 1;overflow:auto;margin-top: 10px">
-          <a-tree ref="tree" show-icon :checkStrictly="checkStrictly" :expandedKeys.sync="expandedKeys"
+        <div style="flex: 1;overflow:auto;margin-top: 10px">
+          <a-tree ref="tree" show-icon :expandedKeys.sync="expandedKeys"
                   :selectedKeys="selectedKeys" :treeData="treeDataSource" :autoExpandParent="autoExpandParent"
                   @select="handleTreeSelect" @expand="handleTreeExpand" @rightClick="handleTreeRightClick">
             <template slot="title" slot-scope="{ label, parentId, entity, key:treeKey,type}">
@@ -106,7 +106,6 @@
         this.loading = true
         this.cardLoading = true
         dncApi.getProductStructureTreeApi().then(res => {
-          console.log('res', res)
           if (res.success) {
             this.dataList = []
             this.allTreeKeys = []
diff --git a/src/views/dnc/common/ImportFileModal.vue b/src/views/dnc/common/ImportFileModal.vue
index 6dd4ce0..d5d1af0 100644
--- a/src/views/dnc/common/ImportFileModal.vue
+++ b/src/views/dnc/common/ImportFileModal.vue
@@ -49,7 +49,7 @@
       /**
        * 鐐瑰嚮瀵煎叆鏂囨。鎴朜C绋嬪簭鏃惰Е鍙�
        * @param treeNodeInfo 鐐瑰嚮鏍戣妭鐐瑰彸閿彍鍗曞鍏ョ▼搴忔椂浼犲叆鏍戣妭鐐逛俊鎭�
-       * @param tableRowInfo 鐐瑰嚮琛ㄦ牸琛屽彸閿彍鍗曞鍏ョ▼搴忔椂浼犲叆琛屼俊鎭�
+       * @param tableRowInfo 鍙抽敭琛ㄦ牸琛屾椂浼犲叆琛屼俊鎭�
        */
       handleImport(treeNodeInfo, tableRowInfo) {
         this.isUploadMultiple = true
@@ -69,6 +69,11 @@
         this.visible = true
       },
 
+      /**
+       * 鐐瑰嚮鏂囨。鐢熷懡鍛ㄦ湡鐨勫叆搴撴椂瑙﹀彂
+       * @param _
+       * @param tableRowInfo 鍙抽敭琛ㄦ牸琛屾椂浼犲叆琛屼俊鎭�
+       */
       handlePush(_, tableRowInfo) {
         this.isUploadMultiple = false
         console.log('tableRowInfo', tableRowInfo)
@@ -80,22 +85,21 @@
         this.visible = true
       },
 
-      handleRemove(file) {
-        const index = this.fileList.indexOf(file)
-        const newFileList = this.fileList.slice()
-        newFileList.splice(index, 1)
-        this.fileList = newFileList
-      },
-
+      /**
+       * 閫夋嫨濂芥枃浠剁偣鍑荤‘瀹氬悗
+       * @param file 鏂囦欢瀵硅薄
+       */
       beforeUpload(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)
         }
+        else this.fileList.splice(0, 1, file)
         return false
       },
 
+      /**
+       * 鐐瑰嚮涓婁紶鑷虫湇鍔″櫒鎸夐挳鏃惰Е鍙�
+       */
       handleUpload() {
         const { fileList, $notification, isUploadMultiple, uploadParams, $bus } = this
         this.uploading = true
@@ -144,8 +148,11 @@
               if (uploadedFileCount === fileList.length) {
                 // 鑷冲皯鏈変竴涓枃浠朵笂浼犳垚鍔熷悗灏遍渶瑕侀噸鏂板姞杞芥枃妗e垪琛�
                 if (uploadSuccessFileCount > 0) {
-                  $bus.$emit('importFileSuccess', uploadParams)
-                  if (!isUploadMultiple) this.visible = false //鏃犳硶杩炵画鍏ュ簱澶氫釜鐗堟湰鍥犳鍏ュ簱鎴愬姛鍚庡嵆鍙��鍑虹獥鍙�
+                  $bus.$emit('reloadDocumentListData', uploadParams)
+                  if (!isUploadMultiple) {
+                    $bus.$emit('reloadMainBottomTableData', 'documentVersion')
+                    this.visible = false //鏃犳硶杩炵画鍏ュ簱澶氫釜鐗堟湰鍥犳鍏ュ簱鎴愬姛鍚庡嵆鍙��鍑虹獥鍙�
+                  }
                 }
                 this.uploading = false
               }
@@ -154,6 +161,17 @@
       },
 
       /**
+       * 鍒犻櫎鏂囦欢鍒楄〃椤规椂瑙﹀彂
+       * @param file 鏂囦欢瀵硅薄
+       */
+      handleRemove(file) {
+        const index = this.fileList.indexOf(file)
+        const newFileList = this.fileList.slice()
+        newFileList.splice(index, 1)
+        this.fileList = newFileList
+      },
+
+      /**
        * 鎺у埗鏂囦欢涓婁紶绐楀彛鍏抽棴骞舵竻绌烘枃浠跺垪琛�
        */
       handleModalClose() {

--
Gitblit v1.9.3