From 15e22fc7a5b6ee006ff88e0eb0d1bd36f14d683f Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期二, 01 四月 2025 15:21:28 +0800
Subject: [PATCH] 修改审签工作流

---
 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue |  289 ++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 184 insertions(+), 105 deletions(-)

diff --git a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
index f2f401a..d79b070 100644
--- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
@@ -1,125 +1,204 @@
 <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">
 
     </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 { JeecgListMixin } from '@/mixins/JeecgListMixin'
-  import DocumentModal from './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', align: 'center' },
-          { title: '浠g爜鐗堟湰', dataIndex: 'docAlias', align: 'center' },
-          { title: '鍑哄簱鐘舵��', dataIndex: 'pullStatus_dictText', align: 'center' },
-          { title: '鐘�  鎬�', dataIndex: 'docStatus_dictText', align: 'center' },
-          { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center' },
-          { title: '涓婁紶鏃堕棿', dataIndex: 'createTime', align: 'center' }
-        ],
-        dataSource: [],
-        url: {
-          list: '/nc/doc/find/page'
-        }
-      }
-    },
-    created() {
-      this.$bus.$on('tableMenuItemMethodTrigger', this.triggerCorrespondingMethod)
-    },
-    methods: {
-      loadData(arg) {
-        if (!this.url.list) {
-          this.$message.error('璇疯缃畊rl.list灞炴��!')
-          return
-        }
-        //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�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'
-        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)
+    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
           }
-        }).finally(() => {
-          this.loading = false
-        })
-      },
-
-      customRow(record) {
-        return {
-          on: {
-            contextmenu: event => {
-              event.preventDefault()
-              this.$emit('handleTableContextMenuOpen', { ...record, param: 'NC' })
-            },
-            click: () => {
-              this.$bus.$emit('sendCurrentLevelInfo', record)
-            }
-          }
+        },
+        {
+          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: 'docDispatchStatus_dictText',
+          key: 'docDispatchStatus',
+          align: 'center',
+          filters: [
+            { text: '缂栧埗', value: 1 },
+            { text: '鏍″', value: 2 },
+            { text: '鎵瑰噯', value: 3 },
+            { text: '璇曞垏', value: 4 },
+            { text: '瀹氬瀷', value: 5 }
+          ]
+        },
+        { title: '绯荤粺鎸囧畾鐗堟湰', dataIndex: 'publishVersion', align: 'center', width: 200 },
+        {
+          title: '鍒涘缓鏃堕棿',
+          dataIndex: 'createTime',
+          align: 'center',
+          width: 200,
+          sorter: true
         }
-      },
-
-      handleDocumentEdit(record, modalTitle) {
-        this.$refs.modalForm.edit(record)
-        this.$refs.modalForm.title = modalTitle
-      },
-
-      handleDocumentAssign(record, modalTitle) {
-        this.$refs.documentAssignModalRef.title = modalTitle
-        this.$refs.documentAssignModalRef.visible = true
-      },
-
-      triggerCorrespondingMethod({ methodName, level, modalTitle, tableRowInfo }) {
-        if (this[methodName] && tableRowInfo.attributionType === 5) this[methodName](tableRowInfo, modalTitle)
+      ],
+      dataSource: [],
+      currentRightClickedDocumentInfo: {},
+      currentClickedDocumentInfo: {},
+      url: {
+        list: '/nc/doc/find/page'
       }
     }
+  },
+  watch: {
+    currentNCDocumentAttributionInfo: {
+      handler(value) {
+        this.currentClickedDocumentInfo = this.currentRightClickedDocumentInfo = {}
+      },
+      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>

--
Gitblit v1.9.3