From 76f83ad33466ea704eec9a121d2e0a22c1828a84 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期三, 16 七月 2025 17:07:30 +0800
Subject: [PATCH] 提取刀具刷新页面

---
 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue |  235 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 210 insertions(+), 25 deletions(-)

diff --git a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
index 42cb9ee..0ce254b 100644
--- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
@@ -1,28 +1,34 @@
 <template>
-  <div>
-    <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination"
-             :scroll="{y:189}" :customRow="customRow" :size="size" rowKey="docId">
+  <div style="flex: 1">
+    <a-table :columns="columns" :data-source="dataSource" bordered :pagination="ipagination" :loading="loading"
+             :scroll="{y:265}" :customRow="customRow" :size="size" rowKey="docId" @change="handleTableChange">
 
+      <!-- 瀛楃涓茶秴闀挎埅鍙栫渷鐣ュ彿鏄剧ず-->
+      <span slot="docName" slot-scope="text">
+          <j-ellipsis :value="text"/>
+        </span>
     </a-table>
 
     <DocumentModal ref="modalForm" @ok="modalFormOk"/>
 
-    <NcDocumentAssignModal :size="size" ref="documentAssignModalRef"/>
+    <NcDocumentAssignModal :size="size" ref="documentAssignModalRef"
+                           :currentDocumentInfo="currentRightClickedDocumentInfo"/>
   </div>
 </template>
 
 <script>
-  import { getAction } from '@/api/manage'
+import { getAction, postAction } from '@/api/manage'
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import DocumentModal from './DocumentModal'
+  import DocumentModal from '../../../../common/DocumentModal'
   import NcDocumentAssignModal from './NcDocumentAssignModal'
+  import dncApi from '@api/dnc'
 
   export default {
     name: 'NcDocumentTableList',
     components: { NcDocumentAssignModal, DocumentModal },
     mixins: [JeecgListMixin],
     props: {
-      currentTreeNodeInfo: {
+      currentNCDocumentAttributionInfo: {
         type: Object
       },
       size: {
@@ -37,23 +43,70 @@
             title: '搴忓彿',
             dataIndex: 'rowIndex',
             key: 'rowIndex',
-            width: 65,
+            width: 50,
             align: 'center',
             customRender: function(t, r, index) {
               return parseInt(index) + 1
             }
           },
-          { title: '鏂囦欢鍚嶇О', dataIndex: 'docName', align: 'center' },
-          { title: '浠g爜鐗堟湰', dataIndex: 'docAlias', align: 'center' },
-          { title: '鍑哄簱鐘舵��', dataIndex: 'pullStatus', align: 'center' },
-          { title: '鐘�  鎬�', dataIndex: 'docStatus', align: 'center' },
-          { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center' },
-          { title: '涓婁紶鏃堕棿', dataIndex: 'createTime', align: 'center' }
+          {
+            title: '鏂囦欢鍚嶇О',
+            dataIndex: 'docName',
+            key: 'docName',
+            align: 'center',
+            scopedSlots: { customRender: 'docName' },
+            width: 500,
+            sorter: true
+          },
+          {
+            title: '鍑哄簱鐘舵��',
+            dataIndex: 'pullStatus_dictText',
+            key: 'pullStatus',
+            align: 'center',
+            filters: [
+              { text: '鏈嚭搴�', value: 1 },
+              { text: '宸插嚭搴�', value: 2 }
+            ],
+            width: 100
+          },
+          {
+            title: '鐘舵��',
+            dataIndex: 'docDispatchStatus_dictText',
+            key: 'docDispatchStatus',
+            align: 'center',
+            filters: [
+              { text: '缂栧埗', value: 1 },
+              { text: '鏍″', value: 2 },
+              { text: '鎵瑰噯', value: 3 },
+              { text: '璇曞垏', value: 4 },
+              { text: '瀹氬瀷', value: 5 }
+            ],
+            width: 70
+          },
+          { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center', width: 120 },
+          {
+            title: '鍒涘缓鏃堕棿',
+            dataIndex: 'createTime',
+            align: 'center',
+            width: 150,
+            sorter: true
+          }
         ],
         dataSource: [],
+        currentRightClickedDocumentInfo: {},
+        currentClickedDocumentInfo: {},
         url: {
-          list: '/nc/doc/find/page'
+          list: '/nc/doc/find/page',
+          submitProccess:'/dncFlow/dispatchFile/submitProccess'
         }
+      }
+    },
+    watch: {
+      currentNCDocumentAttributionInfo: {
+        handler(value) {
+          this.currentClickedDocumentInfo = this.currentRightClickedDocumentInfo = {}
+        },
+        immediate: true
       }
     },
     created() {
@@ -65,21 +118,26 @@
           this.$message.error('璇疯缃畊rl.list灞炴��!')
           return
         }
+        const { attributionId, attributionType, docClassCode, autoClickedLevelInfo } = this.currentNCDocumentAttributionInfo
         //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
         if (arg === 1) this.ipagination.current = 1
         var params = this.getQueryParams()//鏌ヨ鏉′欢
-        console.log('currentTreeNodeInfo', this.currentTreeNodeInfo)
-        params.attributionId = this.currentTreeNodeInfo.id
-        params.attributionType = this.currentTreeNodeInfo.type
-        params.docClassCode = 'NC'
+        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.page.records
-            if (res.page.total) {
-              this.ipagination.total = res.page.total
+            this.dataSource = res.result.records
+            if (autoClickedLevelInfo) {
+              const tableRowRecord = this.dataSource.find(item => item.docId === autoClickedLevelInfo.docId)
+              this.handleTableRowClick(tableRowRecord)
+              this.$bus.$emit('searchNcFinished')
+            }
+            if (res.result.total) {
+              this.ipagination.total = res.result.total
             } else {
               this.ipagination.total = 0
             }
@@ -91,32 +149,159 @@
         })
       },
 
+      /**
+       * 鑷畾涔夎〃鏍艰鍔熻兘
+       * @param record 琛ㄦ牸琛岃褰�
+       */
       customRow(record) {
         return {
+          style: {
+            backgroundColor: this.currentClickedDocumentInfo.docId === record.docId ? '#BAE7FF' : 'transparent'
+          },
           on: {
             contextmenu: event => {
               event.preventDefault()
-              this.$emit('handleTableContextMenuOpen', { ...record, param: 'document' })
+              this.currentRightClickedDocumentInfo = Object.assign({ param: 'NC' }, record)
+              this.$emit('handleTableContextMenuOpen', this.currentRightClickedDocumentInfo)
             },
             click: () => {
-              this.$bus.$emit('sendCurrentLevelInfo', record)
+              this.handleTableRowClick(record)
             }
           }
         }
       },
 
+      /**
+       * 琛ㄦ牸琛岀偣鍑讳簨浠�
+       * @param record 琛ㄦ牸琛岃褰�
+       */
+      handleTableRowClick(record) {
+        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
       },
 
+      handleAppoint(record){
+        const that = this
+        console.log("sssss",record)
+        that.$confirm({
+          title: '鎻愮ず',
+          content: `纭瀹氬瀷鍚楋紵`,
+          okText: '纭',
+          cancelText: '鍙栨秷',
+          onOk: () => {
+            let dispatchFile = {
+              'docId':record.docId,
+              'attributionId':record.attributionId,
+              'attributionType':record.attributionType,
+              'fileId':record.publishFileId
+            }
+            postAction(this.url.submitProccess,dispatchFile)
+              .then(res => {
+                if (res.success) {
+                  this.$message.success('娴佺▼鍙戣捣鎴愬姛')
+                } else {
+                  that.$notification.error({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                }
+              })
+              .catch(err => {
+                that.$notification.error({
+                  message: '娑堟伅',
+                  description: err.message
+                })
+              })
+              .finally(() => {
+                that.$destroyAll()
+              })
+          },
+          onCancel: () => {
+            that.$destroyAll()
+          }
+        })
+      },
+
+      handleDocumentExtract(record) {
+        const that = this
+        const { docId, attributionId, attributionType } = record
+        that.$confirm({
+          title: '鎻愮ず',
+          content: `纭鎻愬彇鍒�鍏峰悧锛焋,
+          okText: '纭',
+          cancelText: '鍙栨秷',
+          onOk: () => {
+            dncApi.extractToolsApi({ docId, attributionId, attributionType })
+              .then(res => {
+                if (res.success) {
+                  that.$notification.success({
+                    message: '娑堟伅',
+                    description: `鎻愬彇鎴愬姛`,
+                  })
+                  that.$bus.$emit('reloadCutterList')
+                } else {
+                  that.$notification.error({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                }
+              })
+              .catch(err => {
+                that.$notification.error({
+                  message: '娑堟伅',
+                  description: err.message
+                })
+              })
+              .finally(() => {
+                that.$destroyAll()
+              })
+          },
+          onCancel: () => {
+            that.$destroyAll()
+          }
+        })
+      },
+
+      handleDelete() {
+        // 姝ゅ鍑芥暟涓哄睆钄絤ixins涓殑鍚屽悕鍑芥暟锛岄�氱敤鍑芥暟鍐欏湪鐖剁骇涓�
+      },
+
       triggerCorrespondingMethod({ methodName, level, modalTitle, tableRowInfo }) {
-        if (this[methodName] && tableRowInfo.attributionType === 5) this[methodName](tableRowInfo, modalTitle)
+        if (this[methodName] && tableRowInfo.param === 'NC') this[methodName](tableRowInfo, modalTitle)
       }
     }
   }

--
Gitblit v1.9.3