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/common/DocumentBatchDeleteModal.vue | 242 ++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 233 insertions(+), 9 deletions(-) diff --git a/src/views/dnc/common/DocumentBatchDeleteModal.vue b/src/views/dnc/common/DocumentBatchDeleteModal.vue index 6d307fe..36180b6 100644 --- a/src/views/dnc/common/DocumentBatchDeleteModal.vue +++ b/src/views/dnc/common/DocumentBatchDeleteModal.vue @@ -1,20 +1,244 @@ <template> - <div> + <a-modal width="65%" :title="title" :visible="visible" @cancel="visible=false" :maskClosable="false" centered + @ok="confirmBatchDeleteDocument"> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :md="6" :sm="6"> + <a-form-item label="鏂囦欢鍚嶇О"> + <a-input placeholder="璇疯緭鍏ユ枃浠跺悕绉�" v-model="queryParam.docName" allow-clear></a-input> + </a-form-item> + </a-col> + <a-col :md="8" :sm="8"> + <a-form-item label="鍒涘缓鏃堕棿"> + <a-range-picker v-model="date" value-format="YYYY-MM-DD" @change="handleDateChange" + allow-clear></a-range-picker> + </a-form-item> + </a-col> + + <a-col :md="4" :sm="4"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + </a-col> + </a-row> + </a-form> </div> + + <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> + </a-table> + </a-modal> </template> <script> + import { getAction } from '@/api/manage' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import dncApi from '@/api/dnc' + export default { name: 'DocumentBatchDeleteModal', components: {}, - data() { - return {} + mixins: [JeecgListMixin], + props: { + currentDocumentInfo: { + type: Object + }, + size: { + type: String + } }, - methods: {} + 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 + } + ], + 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 } } = that + + if (selectedRowKeys.length === 0) { + $notification.warning({ + message: '娑堟伅', + description: '璇烽�夋嫨鏂囨。' + }) + return + } + + $confirm({ + title: '鎻愮ず', + content: `鍒犻櫎鍚庝笉鍙彇娑堬紝纭鍒犻櫎鍚楋紵`, + okText: '纭', + cancelText: '鍙栨秷', + onOk: () => { + let hasRequestedSuccessCount = 0 + let hasRequestedCount = 0 + selectedRowKeys.forEach(key => { + dncApi.deleteDocumentApi(key) + .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 = [] + } + } } -</script> - -<style scoped> - -</style> \ No newline at end of file +</script> \ No newline at end of file -- Gitblit v1.9.3