From c3e8d4cb5edcacfd77a51d388e32a2bd0fb79643 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期五, 14 三月 2025 17:59:10 +0800
Subject: [PATCH] 1、产品结构树以及设备结构树中的列表增加行选中样式 2、产品结构树实现点击设备类出现设备类下挂载的NC程序列表 3、产品结构树实现在设备类中导入NC程序功能

---
 src/views/dnc/base/modules/DeviceStructure/Workshop/WorkshopInfo.vue                       |    2 
 src/views/dnc/common/DocumentBatchDeleteModal.vue                                          |  426 +++++++++++++-------------
 src/views/dnc/common/TableContextMenu.vue                                                  |    3 
 src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue                       |    2 
 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue               |  349 +++++++++++----------
 src/views/dnc/common/ImportFileModal.vue                                                   |    5 
 src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue |    9 
 src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue       |    3 
 src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue           |    3 
 src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue            |    5 
 /dev/null                                                                                  |   40 --
 src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue     |    2 
 src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue                    |   63 ++-
 src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue                 |    8 
 src/views/dnc/base/modules/DeviceStructure/DeviceStructureMain.vue                         |    2 
 src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue |    4 
 16 files changed, 471 insertions(+), 455 deletions(-)

diff --git a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMain.vue b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMain.vue
index 69be12a..3014644 100644
--- a/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMain.vue
+++ b/src/views/dnc/base/modules/DeviceStructure/DeviceStructureMain.vue
@@ -16,7 +16,7 @@
 
     <template v-else>
       <a-tabs>
-        <a-tab-pane :key="1" tab="杞﹂棿灞炴��">
+        <a-tab-pane :key="1" tab="灞炴��">
           <WorkshopInfo :currentLevelDetails="currentTreeNodeInfo" :size="containerSize"/>
         </a-tab-pane>
       </a-tabs>
diff --git a/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue b/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue
index ec5431c..46d1425 100644
--- a/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue
+++ b/src/views/dnc/base/modules/DeviceStructure/Document/HasReceivedDocumentTableList.vue
@@ -132,6 +132,9 @@
 
       customRow(record) {
         return {
+          style: {
+            backgroundColor: this.currentClickedDocumentInfo.docId === record.docId ? '#BAE7FF' : 'transparent'
+          },
           on: {
             contextmenu: event => {
               event.preventDefault()
diff --git a/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue b/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue
index b54b18e..46ab561 100644
--- a/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue
+++ b/src/views/dnc/base/modules/DeviceStructure/Document/HasSentDocumentTableList.vue
@@ -142,6 +142,9 @@
 
       customRow(record) {
         return {
+          style: {
+            backgroundColor: this.currentClickedDocumentInfo.docId === record.docId ? '#BAE7FF' : 'transparent'
+          },
           on: {
             contextmenu: event => {
               event.preventDefault()
diff --git a/src/views/dnc/base/modules/DeviceStructure/Workshop/WorkshopInfo.vue b/src/views/dnc/base/modules/DeviceStructure/Workshop/WorkshopInfo.vue
index 13531a1..230833a 100644
--- a/src/views/dnc/base/modules/DeviceStructure/Workshop/WorkshopInfo.vue
+++ b/src/views/dnc/base/modules/DeviceStructure/Workshop/WorkshopInfo.vue
@@ -1,6 +1,6 @@
 <template>
   <a-descriptions bordered :size="size">
-    <a-descriptions-item label="杞﹂棿鍚嶇О">{{currentLevelDetails.title}}</a-descriptions-item>
+    <a-descriptions-item label="鍚嶇О">{{currentLevelDetails.title}}</a-descriptions-item>
     <a-descriptions-item label="澶囨敞">{{currentLevelDetails.memo}}</a-descriptions-item>
   </a-descriptions>
 </template>
diff --git a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue
index 82753ab..388f440 100644
--- a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue
+++ b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModal.vue
@@ -54,7 +54,7 @@
       this.$nextTick(() => {
         if (this.$refs.realForm) {
           this.$refs.realForm.getWorkshopListByApi()
-          this.$refs.realForm.handleProductionChange()
+          this.$refs.realForm.handleProductionChange(tableRowInfo.productionId)
           this.$refs.realForm.edit({ ...tableRowInfo })
         }
       })
diff --git a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue
index b587cd7..dbeef07 100644
--- a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue
+++ b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeModalForm.vue
@@ -84,10 +84,10 @@
     },
 
     // 杞﹂棿閫夋嫨鏀瑰彉鍚庢竻绌鸿澶囩被閫夋嫨骞堕噸鏂拌幏鍙栬澶囩被鍒楄〃
-    handleProductionChange() {
+    handleProductionChange(value) {
       if (this.model.deviceManagementId) delete this.model.deviceManagementId
       if (this.model.deviceManagementId_dictText) delete this.model.deviceManagementId_dictText
-      dncApi.getDeviceCustomTypeListByProductionIdApi(this.model.productionId)
+      dncApi.getDeviceCustomTypeListByProductionIdApi(value)
         .then(res => {
           if (res.success) this.deviceCustomTypeList = res.result
         })
diff --git a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue
index ca58908..b17e2f7 100644
--- a/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue
+++ b/src/views/dnc/base/modules/ProductStructure/DeviceCustomType/DeviceCustomTypeTableList.vue
@@ -1,7 +1,7 @@
 <template>
   <div style="flex: 0.25;margin-right: 10px">
     <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false"
-             :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="id" @change="handleTableChange">
+             :scroll="{y:265}" :customRow="customRow" :size="size" rowKey="id" @change="handleTableChange">
 
     </a-table>
   </div>
@@ -75,6 +75,9 @@
 
     customRow(record) {
       return {
+        style: {
+          backgroundColor: this.currentClickedTypeInfo.id === record.id ? '#BAE7FF' : 'transparent'
+        },
         on: {
           contextmenu: event => {
             event.preventDefault()
@@ -82,9 +85,9 @@
             this.$emit('handleTableContextMenuOpen', this.currentRightClickedTypeInfo)
           },
           click: () => {
-            if (this.currentClickedTypeInfo.docId === record.docId) return
+            if (this.currentClickedTypeInfo.id === record.id) return
             this.currentClickedTypeInfo = Object.assign({}, record)
-            // this.$bus.$emit('sendCurrentClickedDocumentInfo', record)
+            this.$bus.$emit('sendCurrentClickedTypeInfo', record)
           }
         }
       }
diff --git a/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue b/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue
deleted file mode 100644
index 218d3e0..0000000
--- a/src/views/dnc/base/modules/ProductStructure/Document/DocumentInfo.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-<template>
-  <a-descriptions bordered :size="size">
-    <a-descriptions-item label="鏂囨。鍚嶇О">{{currentLevelDetails.docName}}</a-descriptions-item>
-    <a-descriptions-item label="浠g爜鐗堟湰">{{currentLevelDetails.docAlias}}</a-descriptions-item>
-    <a-descriptions-item label="璁惧缂栧彿	">{{currentLevelDetails.docCode}}</a-descriptions-item>
-    <a-descriptions-item label="鏂囨。鍚庣紑">{{currentLevelDetails.docSuffix}}</a-descriptions-item>
-    <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_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>
-
-<script>
-  export default {
-    name: 'DocumentInfo',
-    components: {},
-    props: {
-      currentLevelDetails: {
-        type: Object
-      },
-      size: {
-        type: String
-      }
-    },
-    data() {
-      return {}
-    },
-    methods: {}
-  }
-</script>
-
-<style scoped>
-
-</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 079bd14..8afb748 100644
--- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
@@ -1,7 +1,7 @@
 <template>
   <div style="flex: 1">
     <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination"
-             :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange">
+             :scroll="{y:265}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange">
 
     </a-table>
 
@@ -13,185 +13,190 @@
 </template>
 
 <script>
-  import { getAction } from '@/api/manage'
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import DocumentModal from '../../../../common/DocumentModal'
-  import NcDocumentAssignModal from './NcDocumentAssignModal'
+import { getAction } from '@/api/manage'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import DocumentModal from '../../../../common/DocumentModal'
+import NcDocumentAssignModal from './NcDocumentAssignModal'
 
-  export default {
-    name: 'NcDocumentTableList',
-    components: { NcDocumentAssignModal, DocumentModal },
-    mixins: [JeecgListMixin],
-    props: {
-      currentTreeNodeInfo: {
-        type: Object
-      },
-      size: {
-        type: String
-      }
+export default {
+  name: 'NcDocumentTableList',
+  components: { NcDocumentAssignModal, DocumentModal },
+  mixins: [JeecgListMixin],
+  props: {
+    currentNCDocumentAttributionInfo: {
+      type: Object
     },
-    data() {
-      return {
-        disableMixinCreated: true,
-        columns: [
-          {
-            title: '搴忓彿',
-            dataIndex: 'rowIndex',
-            key: 'rowIndex',
-            width: 65,
-            align: 'center',
-            customRender: function(t, r, index) {
-              return parseInt(index) + 1
-            }
-          },
-          {
-            title: '鏂囦欢鍚嶇О',
-            dataIndex: 'docName',
-            key: 'docName',
-            align: 'center',
-            width: 300,
-            sorter: true
-          },
-          { title: '浠g爜鐗堟湰', dataIndex: 'docAlias', align: 'center' },
-          {
-            title: '鍑哄簱鐘舵��',
-            dataIndex: 'pullStatus_dictText',
-            key: 'pullStatus',
-            align: 'center',
-            filters: [
-              { text: '鏈嚭搴�', value: 1 },
-              { text: '宸插嚭搴�', value: 2 }
-            ]
-          },
-          {
-            title: '鐘�  鎬�',
-            dataIndex: 'docStatus_dictText',
-            key: 'docStatus',
-            align: 'center',
-            filters: [
-              { text: '璁捐', value: 1 },
-              { text: '鍙戝竷', value: 2 },
-              { text: '褰掓。', value: 3 }
-            ]
-          },
-          { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center', width: 200 },
-          {
-            title: '鍒涘缓鏃堕棿',
-            dataIndex: 'createTime',
-            align: 'center',
-            width: 200,
-            sorter: true
+    size: {
+      type: String
+    }
+  },
+  data() {
+    return {
+      disableMixinCreated: true,
+      columns: [
+        {
+          title: '搴忓彿',
+          dataIndex: 'rowIndex',
+          key: 'rowIndex',
+          width: 65,
+          align: 'center',
+          customRender: function(t, r, index) {
+            return parseInt(index) + 1
           }
-        ],
-        dataSource: [],
-        currentRightClickedDocumentInfo: {},
-        currentClickedDocumentInfo: {},
-        url: {
-          list: '/nc/doc/find/page'
-        }
-      }
-    },
-    watch: {
-      currentTreeNodeInfo: {
-        handler(value) {
-          this.currentClickedDocumentInfo = {}
         },
-        immediate: true
-      }
-    },
-    created() {
-      this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod)
-    },
-    methods: {
-      loadData(arg) {
-        if (!this.url.list) {
-          this.$message.error('璇疯缃畊rl.list灞炴��!')
-          return
+        {
+          title: '鏂囦欢鍚嶇О',
+          dataIndex: 'docName',
+          key: 'docName',
+          align: 'center',
+          width: 300,
+          sorter: true
+        },
+        { title: '浠g爜鐗堟湰', dataIndex: 'docAlias', align: 'center' },
+        {
+          title: '鍑哄簱鐘舵��',
+          dataIndex: 'pullStatus_dictText',
+          key: 'pullStatus',
+          align: 'center',
+          filters: [
+            { text: '鏈嚭搴�', value: 1 },
+            { text: '宸插嚭搴�', value: 2 }
+          ]
+        },
+        {
+          title: '鐘�  鎬�',
+          dataIndex: 'docStatus_dictText',
+          key: 'docStatus',
+          align: 'center',
+          filters: [
+            { text: '璁捐', value: 1 },
+            { text: '鍙戝竷', value: 2 },
+            { text: '褰掓。', value: 3 }
+          ]
+        },
+        { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center', width: 200 },
+        {
+          title: '鍒涘缓鏃堕棿',
+          dataIndex: 'createTime',
+          align: 'center',
+          width: 200,
+          sorter: true
         }
-        //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
-        if (arg === 1) this.ipagination.current = 1
-        var params = this.getQueryParams()//鏌ヨ鏉′欢
-        params.attributionId = this.currentTreeNodeInfo.id
-        params.attributionType = this.currentTreeNodeInfo.type
-        params.docClassCode = 'NC'
-        if (!params) return false
-        this.dataSource = []
-        this.loading = true
-        getAction(this.url.list + `/${this.ipagination.current}/${this.ipagination.pageSize}`, params).then((res) => {
-          if (res.success) {
-            this.dataSource = res.result.records
-            if (res.result.total) {
-              this.ipagination.total = res.result.total
-            } else {
-              this.ipagination.total = 0
-            }
-          } else {
-            this.$message.warning(res.message)
-          }
-        }).finally(() => {
-          this.loading = false
-        })
-      },
-
-      customRow(record) {
-        return {
-          on: {
-            contextmenu: event => {
-              event.preventDefault()
-              this.currentRightClickedDocumentInfo = Object.assign({ param: 'NC' }, record)
-              this.$emit('handleTableContextMenuOpen', this.currentRightClickedDocumentInfo)
-            },
-            click: () => {
-              if (this.currentClickedDocumentInfo.docId === record.docId) return
-              this.currentClickedDocumentInfo = Object.assign({}, record)
-              this.$bus.$emit('sendCurrentClickedDocumentInfo', record)
-            }
-          }
-        }
-      },
-
-      /**
-       * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂
-       * @param pagination 鍒嗛〉鍣ㄩ�夐」
-       * @param filters 绛涢�夐�夐」
-       * @param sorter 鎺掑簭閫夐」
-       */
-      handleTableChange(pagination, filters, sorter) {
-        if (sorter.order) {
-          this.isorter.column = sorter.field
-          this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc'
-        } else {
-          this.isorter.column = 'createTime'
-          this.isorter.order = 'desc'
-        }
-        for (let key in filters) {
-          this.filters[key] = filters[key].join(',')
-        }
-        this.ipagination = pagination
-        this.loadData()
-      },
-
-      handleDocumentEdit(record, modalTitle) {
-        if (!this.$refs.modalForm) return
-        this.$refs.modalForm.edit(record)
-        this.$refs.modalForm.title = modalTitle
-      },
-
-      handleDocumentAssign(record, modalTitle) {
-        if (!this.$refs.documentAssignModalRef) return
-        this.$refs.documentAssignModalRef.title = modalTitle
-        this.$refs.documentAssignModalRef.visible = true
-      },
-
-      handleDelete() {
-        // 姝ゅ鍑芥暟涓哄睆钄絤ixins涓殑鍚屽悕鍑芥暟锛岄�氱敤鍑芥暟鍐欏湪鐖剁骇涓�
-      },
-
-      triggerCorrespondingMethod({ methodName, level, modalTitle, tableRowInfo }) {
-        if (this[methodName] && tableRowInfo.param === 'NC') this[methodName](tableRowInfo, modalTitle)
+      ],
+      dataSource: [],
+      currentRightClickedDocumentInfo: {},
+      currentClickedDocumentInfo: {},
+      url: {
+        list: '/nc/doc/find/page'
       }
     }
+  },
+  watch: {
+    currentNCDocumentAttributionInfo: {
+      handler(value) {
+        this.currentClickedDocumentInfo = {}
+      },
+      immediate: true
+    }
+  },
+  created() {
+    this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod)
+  },
+  methods: {
+    loadData(arg) {
+      if (!this.url.list) {
+        this.$message.error('璇疯缃畊rl.list灞炴��!')
+        return
+      }
+      console.log('currentNCDocumentAttributionInfo', this.currentNCDocumentAttributionInfo)
+      const { attributionId, attributionType, docClassCode } = this.currentNCDocumentAttributionInfo
+      //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
+      if (arg === 1) this.ipagination.current = 1
+      var params = this.getQueryParams()//鏌ヨ鏉′欢
+      params.attributionId = attributionId
+      params.attributionType = attributionType
+      params.docClassCode = docClassCode
+      if (!params) return false
+      this.dataSource = []
+      this.loading = true
+      getAction(this.url.list + `/${this.ipagination.current}/${this.ipagination.pageSize}`, params).then((res) => {
+        if (res.success) {
+          this.dataSource = res.result.records
+          if (res.result.total) {
+            this.ipagination.total = res.result.total
+          } else {
+            this.ipagination.total = 0
+          }
+        } else {
+          this.$message.warning(res.message)
+        }
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+
+    customRow(record) {
+      return {
+        style: {
+          backgroundColor: this.currentClickedDocumentInfo.docId === record.docId ? '#BAE7FF' : 'transparent'
+        },
+        on: {
+          contextmenu: event => {
+            event.preventDefault()
+            this.currentRightClickedDocumentInfo = Object.assign({ param: 'NC' }, record)
+            this.$emit('handleTableContextMenuOpen', this.currentRightClickedDocumentInfo)
+          },
+          click: () => {
+            if (this.currentClickedDocumentInfo.docId === record.docId) return
+            this.currentClickedDocumentInfo = Object.assign({}, record)
+            this.$bus.$emit('sendCurrentClickedDocumentInfo', record)
+          }
+        }
+      }
+    },
+
+    /**
+     * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂
+     * @param pagination 鍒嗛〉鍣ㄩ�夐」
+     * @param filters 绛涢�夐�夐」
+     * @param sorter 鎺掑簭閫夐」
+     */
+    handleTableChange(pagination, filters, sorter) {
+      if (sorter.order) {
+        this.isorter.column = sorter.field
+        this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc'
+      } else {
+        this.isorter.column = 'createTime'
+        this.isorter.order = 'desc'
+      }
+      for (let key in filters) {
+        this.filters[key] = filters[key].join(',')
+      }
+      this.ipagination = pagination
+      this.loadData()
+    },
+
+    handleDocumentEdit(record, modalTitle) {
+      if (!this.$refs.modalForm) return
+      this.$refs.modalForm.edit(record)
+      this.$refs.modalForm.title = modalTitle
+    },
+
+    handleDocumentAssign(record, modalTitle) {
+      if (!this.$refs.documentAssignModalRef) return
+      this.$refs.documentAssignModalRef.title = modalTitle
+      this.$refs.documentAssignModalRef.visible = true
+    },
+
+    handleDelete() {
+      // 姝ゅ鍑芥暟涓哄睆钄絤ixins涓殑鍚屽悕鍑芥暟锛岄�氱敤鍑芥暟鍐欏湪鐖剁骇涓�
+    },
+
+    triggerCorrespondingMethod({ methodName, level, modalTitle, tableRowInfo }) {
+      if (this[methodName] && tableRowInfo.param === 'NC') this[methodName](tableRowInfo, modalTitle)
+    }
   }
+}
 </script>
 
 <style scoped>
diff --git a/src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/OtherDocumentTableList.vue
index 3c6083b..70f8f75 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" @change="handleTableChange">
+             :scroll="{y:265}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange">
 
     </a-table>
 
@@ -131,6 +131,9 @@
 
       customRow(record) {
         return {
+          style: {
+            backgroundColor: this.currentClickedDocumentInfo.docId === record.docId ? '#BAE7FF' : 'transparent'
+          },
           on: {
             contextmenu: event => {
               event.preventDefault()
diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue
index ddaa77d..899d586 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainBottom.vue
@@ -22,13 +22,18 @@
         <ProcessStepInfo :currentLevelDetails="currentLevelInfo.entity" :size="containerSize"/>
       </a-tab-pane>
 
+      <a-tab-pane :key="1" tab="璁惧鍒楄〃" v-if="currentLevelInfo.hasOwnProperty('deviceManagementId')">
+<!--        <ProcessStepInfo :currentLevelDetails="currentLevelInfo" :size="containerSize"/>-->
+        璁惧鍒楄〃
+      </a-tab-pane>
+
       <!--绯荤粺鍙傛暟閰嶇疆涓嫢鍙傛暟涓�1鏃舵墠灞曠ず瀵瑰簲灞傜骇鐨勫垁鍏峰垪琛�-->
       <a-tab-pane :key="2" tab="鍒�鍏峰垪琛�"
                   v-if="+currentLevelInfo.type===5&&isProcessHasCutterList||+currentLevelInfo.type===6&&isProcessStepHasCutterList">
         <CutterTableList ref="cutterTableListRef" :currentLevelInfo="currentLevelInfo" :size="containerSize"/>
       </a-tab-pane>
 
-      <template v-if="currentLevelInfo.hasOwnProperty('attributionType')">
+      <template v-if="currentLevelInfo.hasOwnProperty('docId')">
         <a-tab-pane :key="1" tab="鏂囨。灞炴��">
           <DocumentInfo :currentLevelDetails="currentLevelInfo" :size="containerSize"/>
         </a-tab-pane>
@@ -97,6 +102,7 @@
   },
   created() {
     this.$bus.$on('sendCurrentClickedDocumentInfo', this.receiveCurrentLevelInfo)
+    this.$bus.$on('sendCurrentClickedTypeInfo', this.receiveCurrentLevelInfo)
     this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentLevelInfo)
     this.$bus.$on('reloadMainBottomTableData', this.reloadMainBottomTableData)
     this.getCutterListDisplayPermission('dnc_cutter_process', 'isProcessHasCutterList')
diff --git a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
index e67db7c..e961d5f 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureMainTop.vue
@@ -10,7 +10,8 @@
             ref="deviceCustomTypeTableList" :currentTreeNodeInfo="currentTreeNodeInfo"
             @handleTableContextMenuOpen="handleTableContextMenuOpen" :size="tableContainerSize"/>
 
-          <NcDocumentTableList ref="ncDocumentTableListRef" :currentTreeNodeInfo="currentTreeNodeInfo"
+          <NcDocumentTableList ref="ncDocumentTableListRef"
+                               :currentNCDocumentAttributionInfo="currentNCDocumentAttributionInfo"
                                @handleTableContextMenuOpen="handleTableContextMenuOpen" :size="tableContainerSize"/>
         </div>
       </a-tab-pane>
@@ -55,11 +56,14 @@
       isProcessStepHasDeviceTypeList: false,
       currentRightClickedTableRowInfo: {},
       currentTreeNodeInfo: {},
+      currentClickedTypeInfo: {},
+      currentNCDocumentAttributionInfo: {},//褰撳墠NC鏂囨。鐨勬墍灞炵骇鍗崇埗绾х殑璇︾粏淇℃伅锛堝紩鍏ヨ澶囩被鍚嶯C鎸傝浇鑷宠澶囩被涓嬪弽涔嬪垯鎸傝浇鍦ㄥ伐搴忓拰宸ユ涓嬶級
       hasLoadedDataTabKeyArray: []
     }
   },
   created() {
     this.$bus.$on('sendCurrentTreeNodeInfo', this.receiveCurrentTreeNodeInfo)
+    this.$bus.$on('sendCurrentClickedTypeInfo', this.receiveCurrentClickedTypeInfo)
     this.$bus.$on('reloadDocumentListData', this.reloadDocumentListData)
     this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod)
     this.getDeviceTypeListDisplayPermission('dnc_device_type_process', 'isProcessHasDeviceTypeList')
@@ -104,6 +108,19 @@
       this.hasLoadedDataTabKeyArray.push(this.activeTabKey)
     },
 
+    receiveCurrentClickedTypeInfo(record) {
+      const { id, attributionType } = record
+      this.currentClickedTypeInfo = Object.assign({}, record)
+      this.currentNCDocumentAttributionInfo = Object.assign({}, {
+        attributionId: id,
+        attributionType,
+        docClassCode: 'NC'
+      })
+      this.$nextTick(() => {
+        if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1)
+      })
+    },
+
     /**
      * 鎺у埗鍙抽敭鑿滃崟寮�鍚�
      * @param record 褰撳墠琛ㄦ牸琛屼俊鎭�
@@ -134,13 +151,23 @@
     /**
      * 鏂囨。浠ュ強NC绋嬪簭瀵煎叆/鍑哄簱/鍏ュ簱鎴愬姛鍚庤Е鍙戦噸鏂板姞杞芥枃妗e垪琛�
      * @param docClassCode 鏂囨。绫诲埆
-     * @param attributionId 鑺傜偣Id
+     * @param attributionType 鏂囨。鐖剁骇type绫诲瀷
+     * @param attributionId 鏂囨。鐖剁骇Id
      */
-    reloadDocumentListData({ docClassCode, attributionId }) {
-      // 濡傛灉涓婁紶鐨勬枃妗d笉鏄墍灞炰簬褰撳墠鎵�灞曠ず鑺傜偣鐨勬枃妗e垯涓嶉噸鏂拌幏鍙栨枃妗e垪琛�
-      if (this.currentTreeNodeInfo.id !== attributionId) return
+    reloadDocumentListData({ docClassCode, attributionType, attributionId }) {
+      console.log('docClassCode, attributionType, attributionId', docClassCode, attributionType, attributionId)
+      // 鍦ㄦ澶勮澶嘚C鏂囨。鐖剁骇鍙傛暟鏄彲姝ゆ柟娉曟槸缁撴瀯鏍戜互鍙婅澶囩被涓ょ涓嶅悓瀵煎叆鏂瑰紡鐨勫叡鍚屽嚭鍙�
+      this.currentNCDocumentAttributionInfo = Object.assign({}, { docClassCode, attributionId, attributionType })
+      // 鑻ュ紩鍏ヨ澶囩被鍒欏彧闇�瑕佸垽鏂綋鍓嶅嚭鐜扮殑鏂囨。鎵�灞炴槸鍚︽槸褰撳墠宸﹂敭閫変腑鐨勬枃妗o紝鑻ヤ笉鏄綋鍓嶉�変腑鐨勬枃妗e垯涓嶅埛鏂版枃妗e垪琛�(閬垮厤鏃犳晥鍒锋柊)
+      if (this.currentRightClickedTableRowInfo.hasOwnProperty('deviceManagementId')) {
+        if (this.currentClickedTypeInfo.id !== attributionId) return
+      } else {
+        if (this.currentTreeNodeInfo.id !== attributionId) return
+      }
       if (docClassCode === 'NC') {
-        if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1)
+        this.$nextTick(() => {
+          if (this.$refs.ncDocumentTableListRef) this.$refs.ncDocumentTableListRef.loadData(1)
+        })
       } else {
         if (this.$refs.otherDocumentTableListRef) this.$refs.otherDocumentTableListRef.loadData(1)
       }
@@ -169,7 +196,7 @@
 
     // 鍒犻櫎褰撳墠鍙抽敭閫変腑鏂囨。
     handleDelete() {
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       const that = this
       that.$confirm({
         title: '鎻愮ず',
@@ -184,7 +211,7 @@
                   message: '娑堟伅',
                   description: res.message
                 })
-                that.reloadDocumentListData({ docClassCode: param, attributionId })
+                that.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
               } else {
                 that.$notification.warning({
                   message: '娑堟伅',
@@ -218,7 +245,7 @@
      */
     handlePull(menuLabel) {
       const that = this
-      const { docId, docName, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, docName, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       that.$confirm({
         title: '鎻愮ず',
         content: `纭${menuLabel}鍚楋紵`,
@@ -229,7 +256,7 @@
             .then(res => {
               console.log('res------------------', res)
               if (res.success) {
-                that.reloadDocumentListData({ docClassCode: param, attributionId })
+                that.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
                 that.$notification.success({
                   message: '娑堟伅',
                   description: `${menuLabel}鎴愬姛`
@@ -263,7 +290,7 @@
      */
     handleCancelPull(menuLabel) {
       const that = this
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       that.$confirm({
         title: '鎻愮ず',
         content: `纭${menuLabel}鍚楋紵`,
@@ -273,7 +300,7 @@
           dncApi.documentCancelOutboundApi(docId)
             .then(res => {
               if (res.success) {
-                this.reloadDocumentListData({ docClassCode: param, attributionId })
+                this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
                 that.$notification.success({
                   message: '娑堟伅',
                   description: res.message
@@ -307,7 +334,7 @@
      */
     handlePublish(menuLabel) {
       const that = this
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       that.$confirm({
         title: '鎻愮ず',
         content: `纭${menuLabel}鍚楋紵`,
@@ -317,7 +344,7 @@
           dncApi.documentPublishApi(docId)
             .then(res => {
               if (res.success) {
-                this.reloadDocumentListData({ docClassCode: param, attributionId })
+                this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
                 this.$bus.$emit('reloadMainBottomTableData', 'documentVersion')
                 that.$notification.success({
                   message: '娑堟伅',
@@ -352,7 +379,7 @@
      */
     handleRepublish(menuLabel) {
       const that = this
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       that.$confirm({
         title: '鎻愮ず',
         content: `纭${menuLabel}鍚楋紵`,
@@ -362,7 +389,7 @@
           dncApi.documentRepublishApi(docId)
             .then(res => {
               if (res.success) {
-                this.reloadDocumentListData({ docClassCode: param, attributionId })
+                this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
                 that.$notification.success({
                   message: '娑堟伅',
                   description: res.message
@@ -396,7 +423,7 @@
      */
     handlePigeonhole(menuLabel) {
       const that = this
-      const { docId, param, attributionId } = this.currentRightClickedTableRowInfo
+      const { docId, param, attributionId, attributionType } = this.currentRightClickedTableRowInfo
       that.$confirm({
         title: '鎻愮ず',
         content: `${menuLabel}鍚庝笉鍙彇娑堬紝纭${menuLabel}鍚楋紵`,
@@ -406,7 +433,7 @@
           dncApi.documentPigeonholeApi(docId)
             .then(res => {
               if (res.success) {
-                this.reloadDocumentListData({ docClassCode: param, attributionId })
+                this.reloadDocumentListData({ docClassCode: param, attributionId, attributionType })
                 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 37a06d1..6e45ede 100644
--- a/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue
+++ b/src/views/dnc/base/modules/ProductStructure/ProductStructureTree.vue
@@ -10,7 +10,7 @@
           </a-tooltip>
           <a-button type="primary" v-has="'product_add'" icon="plus" style="margin-left: 8px"
                     @click="$refs.productModalFormRef.triggerCorrespondingMethod({modalTitle:'娣诲姞浜у搧',methodName:'handleProductAdd'})">
-            娣诲姞浜у搧
+            浜у搧
           </a-button>
           <!--          <a-dropdown :trigger="['click']" placement="bottomCenter" style="margin: 0 8px">-->
           <!--            <a-menu slot="overlay">-->
diff --git a/src/views/dnc/common/DocumentBatchDeleteModal.vue b/src/views/dnc/common/DocumentBatchDeleteModal.vue
index f4fee17..ec1c412 100644
--- a/src/views/dnc/common/DocumentBatchDeleteModal.vue
+++ b/src/views/dnc/common/DocumentBatchDeleteModal.vue
@@ -27,227 +27,231 @@
     <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination" :loading="loading"
              :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange"
              :scroll="{y:380}" :size="size" rowKey="docId" style="min-height: 480px">
-      <span slot="docName" slot-scope="text">{{text}}</span>
+      <span slot="docName" slot-scope="text">{{ text }}</span>
     </a-table>
   </a-modal>
 </template>
 
 <script>
-  import { getAction } from '@/api/manage'
-  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import dncApi from '@/api/dnc'
+import { getAction } from '@/api/manage'
+import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+import dncApi from '@/api/dnc'
 
-  export default {
-    name: 'DocumentBatchDeleteModal',
-    components: {},
-    mixins: [JeecgListMixin],
-    props: {
-      currentDocumentInfo: {
-        type: Object
-      },
-      size: {
-        type: String
-      }
+export default {
+  name: 'DocumentBatchDeleteModal',
+  components: {},
+  mixins: [JeecgListMixin],
+  props: {
+    currentDocumentInfo: {
+      type: Object
     },
-    data() {
-      return {
-        disableMixinCreated: true,
-        visible: false,
-        title: '',
-        date: [],
-        columns: [
-          {
-            title: '搴忓彿',
-            dataIndex: 'rowIndex',
-            key: 'rowIndex',
-            width: 65,
-            align: 'center',
-            customRender: function(t, r, index) {
-              return parseInt(index) + 1
-            }
-          },
-          {
-            title: '鏂囦欢鍚嶇О',
-            dataIndex: 'docName',
-            key: 'docName',
-            align: 'center',
-            width: 300,
-            sorter: true
-          },
-          { title: '璁惧缂栧彿', dataIndex: 'docCode', align: 'center' },
-          {
-            title: '鍑哄簱鐘舵��',
-            dataIndex: 'pullStatus_dictText',
-            key: 'pullStatus',
-            align: 'center',
-            filters: [
-              { text: '鏈嚭搴�', value: 1 },
-              { text: '宸插嚭搴�', value: 2 }
-            ]
-          },
-          {
-            title: '鐘�  鎬�',
-            dataIndex: 'docStatus_dictText',
-            key: 'docStatus',
-            align: 'center',
-            filters: [
-              { text: '璁捐', value: 1 },
-              { text: '鍙戝竷', value: 2 },
-              { text: '褰掓。', value: 3 }
-            ]
-          },
-          { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center', width: 200 },
-          {
-            title: '鍒涘缓鏃堕棿',
-            dataIndex: 'createTime',
-            align: 'center',
-            width: 200,
-            sorter: true
+    size: {
+      type: String
+    }
+  },
+  data() {
+    return {
+      disableMixinCreated: true,
+      visible: false,
+      title: '',
+      date: [],
+      columns: [
+        {
+          title: '搴忓彿',
+          dataIndex: 'rowIndex',
+          key: 'rowIndex',
+          width: 65,
+          align: 'center',
+          customRender: function(t, r, index) {
+            return parseInt(index) + 1
           }
-        ],
-        spinning: false,
-        url: {
-          list: '/nc/doc/find/page'
+        },
+        {
+          title: '鏂囦欢鍚嶇О',
+          dataIndex: 'docName',
+          key: 'docName',
+          align: 'center',
+          width: 300,
+          sorter: true
+        },
+        { title: '璁惧缂栧彿', dataIndex: 'docCode', align: 'center' },
+        {
+          title: '鍑哄簱鐘舵��',
+          dataIndex: 'pullStatus_dictText',
+          key: 'pullStatus',
+          align: 'center',
+          filters: [
+            { text: '鏈嚭搴�', value: 1 },
+            { text: '宸插嚭搴�', value: 2 }
+          ]
+        },
+        {
+          title: '鐘�  鎬�',
+          dataIndex: 'docStatus_dictText',
+          key: 'docStatus',
+          align: 'center',
+          filters: [
+            { text: '璁捐', value: 1 },
+            { text: '鍙戝竷', value: 2 },
+            { text: '褰掓。', value: 3 }
+          ]
+        },
+        { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center', width: 200 },
+        {
+          title: '鍒涘缓鏃堕棿',
+          dataIndex: 'createTime',
+          align: 'center',
+          width: 200,
+          sorter: true
         }
-      }
-    },
-    watch: {
-      visible: {
-        handler(value) {
-          if (value) {
-            this.resetData()
-            this.loadData()
-          }
-        }
-      }
-    },
-    methods: {
-      // 鑾峰彇褰撳墠宸ュ簭鎴栧伐姝ュ搴旀枃妗e垪琛�
-      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
-        params.attributionType = attributionType
-        params.attributionId = attributionId
-        params.docClassCode = param
-        console.log('params', params)
-        this.loading = true
-        getAction(this.url.list + `/${this.ipagination.current}/${this.ipagination.pageSize}`, params).then((res) => {
-          if (res.success) {
-            this.dataSource = res.result.records
-            if (res.result.total) {
-              this.ipagination.total = res.result.total
-            } else {
-              this.ipagination.total = 0
-            }
-          }
-          else this.$message.warning(res.message)
-        }).finally(() => {
-          this.loading = false
-        })
-      },
-
-      /**
-       * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂
-       * @param pagination 鍒嗛〉鍣ㄩ�夐」
-       * @param filters 绛涢�夐�夐」
-       * @param sorter 鎺掑簭閫夐」
-       */
-      handleTableChange(pagination, filters, sorter) {
-        if (sorter.order) {
-          this.isorter.column = sorter.field
-          this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc'
-        } else {
-          this.isorter.column = 'createTime'
-          this.isorter.order = 'desc'
-        }
-        for (let key in filters) {
-          this.filters[key] = filters[key].join(',')
-        }
-        this.ipagination = pagination
-        this.loadData()
-      },
-
-      // 鏃堕棿閫夋嫨鍣ㄩ�夋嫨瀹屾垚鍚庤Е鍙�
-      handleDateChange(value) {
-        this.queryParam.startTime = value[0]
-        this.queryParam.endTime = value[1]
-      },
-
-      // 纭鎵归噺鍒犻櫎鏂囨。
-      confirmBatchDeleteDocument() {
-        const that = this
-        const { selectedRowKeys, $notification, $confirm, currentDocumentInfo: { param, attributionId, attributionType } } = that
-
-        if (selectedRowKeys.length === 0) {
-          $notification.warning({
-            message: '娑堟伅',
-            description: '璇烽�夋嫨鏂囨。'
-          })
-          return
-        }
-
-        $confirm({
-          title: '鎻愮ず',
-          content: `鍒犻櫎鍚庝笉鍙彇娑堬紝纭鍒犻櫎鍚楋紵`,
-          okText: '纭',
-          cancelText: '鍙栨秷',
-          onOk: () => {
-            let hasRequestedSuccessCount = 0
-            let hasRequestedCount = 0
-            let method
-            let queryParam
-            selectedRowKeys.forEach(key => {
-              if (attributionType !== 4) {
-                method = dncApi.deleteDocumentApi
-                queryParam = key
-              } else {
-                method = dncApi.deleteDeviceRelativeDocumentApi
-                queryParam = { docId: key, attributionId }
-              }
-              method(queryParam)
-                .then(res => {
-                  if (res.success) {
-                    $notification.success({
-                      message: '娑堟伅',
-                      description: res.message
-                    })
-                    hasRequestedSuccessCount++
-                  } else {
-                    $notification.error({
-                      message: '娑堟伅',
-                      description: res.message
-                    })
-                  }
-                })
-                .finally(() => {
-                  hasRequestedCount++
-                  if (hasRequestedCount === selectedRowKeys.length && hasRequestedSuccessCount > 0) {
-                    this.loadData()
-                    this.$emit('reloadDocumentListData', { docClassCode: param, attributionId })
-                  }
-                })
-            })
-            that.$destroyAll()
-          },
-          onCancel: () => {
-            that.$destroyAll()
-          }
-        })
-
-
-      },
-
-      resetData() {
-        this.queryParam = {}
-        this.selectedRowKeys = []
+      ],
+      spinning: false,
+      url: {
+        list: '/nc/doc/find/page'
       }
     }
+  },
+  watch: {
+    visible: {
+      handler(value) {
+        if (value) {
+          this.resetData()
+          this.loadData()
+        }
+      }
+    }
+  },
+  methods: {
+    // 鑾峰彇褰撳墠宸ュ簭鎴栧伐姝ュ搴旀枃妗e垪琛�
+    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
+      params.attributionType = attributionType
+      params.attributionId = attributionId
+      params.docClassCode = param
+      console.log('params', params)
+      this.loading = true
+      getAction(this.url.list + `/${this.ipagination.current}/${this.ipagination.pageSize}`, params).then((res) => {
+        if (res.success) {
+          this.dataSource = res.result.records
+          if (res.result.total) {
+            this.ipagination.total = res.result.total
+          } else {
+            this.ipagination.total = 0
+          }
+        } else this.$message.warning(res.message)
+      }).finally(() => {
+        this.loading = false
+      })
+    },
+
+    /**
+     * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂
+     * @param pagination 鍒嗛〉鍣ㄩ�夐」
+     * @param filters 绛涢�夐�夐」
+     * @param sorter 鎺掑簭閫夐」
+     */
+    handleTableChange(pagination, filters, sorter) {
+      if (sorter.order) {
+        this.isorter.column = sorter.field
+        this.isorter.order = sorter.order === 'ascend' ? 'asc' : 'desc'
+      } else {
+        this.isorter.column = 'createTime'
+        this.isorter.order = 'desc'
+      }
+      for (let key in filters) {
+        this.filters[key] = filters[key].join(',')
+      }
+      this.ipagination = pagination
+      this.loadData()
+    },
+
+    // 鏃堕棿閫夋嫨鍣ㄩ�夋嫨瀹屾垚鍚庤Е鍙�
+    handleDateChange(value) {
+      this.queryParam.startTime = value[0]
+      this.queryParam.endTime = value[1]
+    },
+
+    // 纭鎵归噺鍒犻櫎鏂囨。
+    confirmBatchDeleteDocument() {
+      const that = this
+      const {
+        selectedRowKeys,
+        $notification,
+        $confirm,
+        currentDocumentInfo: { param, attributionId, attributionType }
+      } = that
+
+      if (selectedRowKeys.length === 0) {
+        $notification.warning({
+          message: '娑堟伅',
+          description: '璇烽�夋嫨鏂囨。'
+        })
+        return
+      }
+
+      $confirm({
+        title: '鎻愮ず',
+        content: `鍒犻櫎鍚庝笉鍙彇娑堬紝纭鍒犻櫎鍚楋紵`,
+        okText: '纭',
+        cancelText: '鍙栨秷',
+        onOk: () => {
+          let hasRequestedSuccessCount = 0
+          let hasRequestedCount = 0
+          let method
+          let queryParam
+          selectedRowKeys.forEach(key => {
+            if (attributionType !== 4) {
+              method = dncApi.deleteDocumentApi
+              queryParam = key
+            } else {
+              method = dncApi.deleteDeviceRelativeDocumentApi
+              queryParam = { docId: key, attributionId }
+            }
+            method(queryParam)
+              .then(res => {
+                if (res.success) {
+                  $notification.success({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                  hasRequestedSuccessCount++
+                } else {
+                  $notification.error({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                }
+              })
+              .finally(() => {
+                hasRequestedCount++
+                if (hasRequestedCount === selectedRowKeys.length && hasRequestedSuccessCount > 0) {
+                  this.loadData()
+                  this.$emit('reloadDocumentListData', { docClassCode: param, attributionId, attributionType })
+                }
+              })
+          })
+          that.$destroyAll()
+        },
+        onCancel: () => {
+          that.$destroyAll()
+        }
+      })
+
+
+    },
+
+    resetData() {
+      this.queryParam = {}
+      this.selectedRowKeys = []
+    }
   }
+}
 </script>
\ No newline at end of file
diff --git a/src/views/dnc/common/ImportFileModal.vue b/src/views/dnc/common/ImportFileModal.vue
index e9ae1a0..250c3b4 100644
--- a/src/views/dnc/common/ImportFileModal.vue
+++ b/src/views/dnc/common/ImportFileModal.vue
@@ -64,9 +64,10 @@
           attributionType = treeNodeInfo.type
           docClassCode = treeNodeInfo.param
         } else {
-          attributionId = tableRowInfo.attributionId
+          // 鑻ュ伐搴忓強宸ユ灞傜骇涓嬫湁璁惧绫绘椂鍒欏鍏C鐨勫弬鏁伴渶瑕佽皟鏁�
+          attributionId = tableRowInfo.param==='deviceCustomType'?tableRowInfo.id:tableRowInfo.attributionId
           attributionType = tableRowInfo.attributionType
-          docClassCode = tableRowInfo.param
+          docClassCode = tableRowInfo.param==='deviceCustomType'?'NC':tableRowInfo.param
         }
         this.setModalTitle(modalTitle, docClassCode)
         this.uploadParams = Object.assign({}, { attributionId, attributionType, docClassCode })
diff --git a/src/views/dnc/common/TableContextMenu.vue b/src/views/dnc/common/TableContextMenu.vue
index 1d62177..9fdf6b8 100644
--- a/src/views/dnc/common/TableContextMenu.vue
+++ b/src/views/dnc/common/TableContextMenu.vue
@@ -45,7 +45,7 @@
           deviceCustomType:[
             { label: '缂栬緫璁惧绫讳俊鎭�', code: 'type_edit', subMenu: [], icon: 'edit', isCommonMethod: false },
             { label: '鍒犻櫎', code: 'type_delete', subMenu: [], icon: 'delete', isCommonMethod: false },
-            { label: '瀵煎叆NC绋嬪簭', code: 'type_document_import', subMenu: [], icon: 'import', isCommonMethod: true },
+            { label: '瀵煎叆NC绋嬪簭', code: 'type_import', subMenu: [], icon: 'import', isCommonMethod: true },
           ],
           //NC鏂囨。
           NC: [
@@ -159,6 +159,7 @@
           methodName = 'handle' + menuKeyArray.map(item => item[0].toUpperCase() + item.slice(1)).join('')
         }
         console.log('tableRowInfo---------------------------------------', this.tableRowInfo)
+        console.log('methodName---------------------------------------', methodName)
         this.$bus.$emit('tableMenuItemMethodTrigger', {
           methodName,
           modalTitle,

--
Gitblit v1.9.3