From 08e52db54ce1e7563f1efe402a3f6c3931188013 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期五, 14 二月 2025 10:47:53 +0800
Subject: [PATCH] 产品结构树: 1、实现文档批量删除功能 2、实现文档列表的排序以及筛选功能 设备结构树: 1、新增权限配置弹窗,提交后由后端测试

---
 src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue |  254 ++++++++++++++++++++++----------------------------
 1 files changed, 114 insertions(+), 140 deletions(-)

diff --git a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
index f8364fe..5381b00 100644
--- a/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
+++ b/src/views/dnc/base/modules/ProductStructure/Document/NcDocumentTableList.vue
@@ -1,19 +1,21 @@
 <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 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 DocumentModal from '../../../../common/DocumentModal'
   import NcDocumentAssignModal from './NcDocumentAssignModal'
 
   export default {
@@ -21,12 +23,16 @@
     components: { NcDocumentAssignModal, DocumentModal },
     mixins: [JeecgListMixin],
     props: {
+      currentTreeNodeInfo: {
+        type: Object
+      },
       size: {
         type: String
       }
     },
     data() {
       return {
+        disableMixinCreated: true,
         columns: [
           {
             title: '搴忓彿',
@@ -38,168 +44,131 @@
               return parseInt(index) + 1
             }
           },
-          { title: '鏂囦欢鍚嶇О', dataIndex: 'docName', align: 'center' },
+          {
+            title: '鏂囦欢鍚嶇О',
+            dataIndex: 'docName',
+            key: 'docName',
+            align: 'center',
+            width: 300,
+            sorter: true
+          },
           { 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' }
-        ],
-        dataSource: [
           {
-            'docId': '1876099281127645185',
-            'docName': 'avatar2.jpg',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'jpg',
-            'docStatus': 1,
-            'publishFileId': '1876099281458995202',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2025-01-06 10:51:40',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1868504592315248641',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
+            title: '鍑哄簱鐘舵��',
+            dataIndex: 'pullStatus_dictText',
+            key: 'pullStatus',
+            align: 'center',
+            filters: [
+              { text: '鏈嚭搴�', value: 1 },
+              { text: '宸插嚭搴�', value: 2 }
+            ]
           },
           {
-            'docId': '1876114720452943873',
-            'docName': 'color.less',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'less',
-            'docStatus': 1,
-            'publishFileId': '1876114720582967297',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2025-01-06 11:53:01',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1868504592315248641',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
+            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 },
           {
-            'docId': '1876114736512933889',
-            'docName': 'index.html',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'html',
-            'docStatus': 1,
-            'publishFileId': '1876114736705871874',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2025-01-06 11:53:05',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1868504592315248641',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1876114746621206529',
-            'docName': 'logo.png',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'png',
-            'docStatus': 1,
-            'publishFileId': '1876114746818338818',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2025-01-06 11:53:07',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1868504592315248641',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1876114758923100161',
-            'docName': 'lxzn.png',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'png',
-            'docStatus': 1,
-            'publishFileId': '1876114759111843842',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2025-01-06 11:53:10',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1868504592315248641',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
-          },
-          {
-            'docId': '1876114776241381377',
-            'docName': 'v2.js',
-            'docAlias': null,
-            'docCode': null,
-            'docSuffix': 'js',
-            'docStatus': 1,
-            'publishFileId': '1876114776438513666',
-            'publishVersion': 'a.1',
-            'description': null,
-            'createTime': '2025-01-06 11:53:14',
-            'updateTime': null,
-            'createUser': '1254966905669160962',
-            'updateUser': null,
-            'docClassCode': null,
-            'pullStatus': 1,
-            'pullUser': null,
-            'attributionType': 5,
-            'attributionId': '1868504592315248641',
-            'classificationId': '1257965381181095938',
-            'syncStatus': null
+            title: '鍒涘缓鏃堕棿',
+            dataIndex: 'createTime',
+            align: 'center',
+            width: 200,
+            sorter: true
           }
         ],
+        dataSource: [],
+        currentRightClickedDocumentInfo: {},
+        currentClickedDocumentInfo: {},
         url: {
-          list: ''
+          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
+        }
+        //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�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.$emit('handleTableContextMenuOpen', { ...record, param: 'document' })
+              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)
             }
           }
         }
+      },
+
+      /**
+       * 琛ㄦ牸鍒嗛〉銆佹帓搴忔敼鍙樸�佺瓫閫夋椂瑙﹀彂
+       * @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) {
@@ -208,12 +177,17 @@
       },
 
       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.attributionType === 5) this[methodName](tableRowInfo, modalTitle)
+        if (this[methodName] && tableRowInfo.param === 'NC') this[methodName](tableRowInfo, modalTitle)
       }
     }
   }

--
Gitblit v1.9.3