From d4aebdcf5b7ca9e7718f804964bfdc11aeae55b5 Mon Sep 17 00:00:00 2001 From: "liang.chao" <1360241448@qq.com> Date: Thu, 27 Nov 2025 17:23:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/select.js | 28 +++++++++++++++ src/views/fileTransfer/record.vue | 57 ++++++++++++++++++++++++++++++- 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 src/api/select.js diff --git a/src/api/select.js b/src/api/select.js new file mode 100644 index 00000000..50e3261a --- /dev/null +++ b/src/api/select.js @@ -0,0 +1,28 @@ +import request from '@/axios'; + +// 文件分类标记-通用下拉选 +export async function getClassifyMarkSelApi(params) { + return await request({ + url: '/blade-system/archive/getFilesClassifyMarkSelect', + method: 'post', + data: params + }); +} + +// 部门下拉树 +export async function getDeptSelectApi(params) { + return await request({ + url: '/blade-system/transferApply/getDeptSelect', + method: 'post', + data: {} + }); +} + +// 角色下拉选 +export async function getRoleSelectApi(params) { + return await request({ + url: '/blade-system/system/role/select', + method: 'post', + data: params + }); +} diff --git a/src/views/fileTransfer/record.vue b/src/views/fileTransfer/record.vue index 64c9a127..45b6c170 100644 --- a/src/views/fileTransfer/record.vue +++ b/src/views/fileTransfer/record.vue @@ -24,6 +24,9 @@ getStatusText(row.transferStatus) }} + @@ -32,6 +35,7 @@ import { getTransferRecordListApi, } from '@/api/filesTransfer/record'; +import { getDeptSelectApi } from '@/api/select' import { mapGetters } from 'vuex'; import website from '@/config/website'; @@ -66,6 +70,7 @@ export default { { label: '项目名称', prop: 'proName', + search: true, }, { @@ -76,10 +81,25 @@ export default { { label: '移交时间', prop: 'transferTime', + search: true, + type: 'date', + format: 'YYYY-MM-DD', // 👈 大写!Element Plus 格式 + valueFormat: 'YYYY-MM-DD', // 👈 必须大写 + dataType: 'string' // 推荐加上,确保返回字符串 }, { label: '接收部门', - prop: 'deptName', + prop: 'deptId', + search: true, + type: 'tree', + dicData: [], // 初始空,后面动态赋值 + props: { + label: 'label', + value: 'id', + children: 'children' + }, + // 显示时用插槽展示 deptName(因为 row.deptName 是名称) + slot: true }, { label: '移交清单', @@ -94,6 +114,7 @@ export default { ], }, data: [], + treeDataList:[], }; }, computed: { @@ -171,8 +192,42 @@ export default { }); }); }, + loadDeptOptions() { + getDeptSelectApi().then(res => { + this.treeDataList = this.convertToVueTree(res.data.data); + // 找到 deptId 列并更新 dicData + const deptColumn = this.option.column.find(col => col.prop === 'deptId'); + if (deptColumn) { + deptColumn.dicData = this.treeDataList; // Vue 3 可直接赋值;Vue 2 建议用 this.$set + } + }).catch(err => { + console.error('加载部门列表失败', err); + }); + }, + // 树数据过滤 - 支持无限层级转换 + convertToVueTree(data, level = 1) { + if (!data || !Array.isArray(data)) { + return [] + } + + return data.map(item => { + const node = { + id: item.deptId, + label: item.deptName, + } + + if (item.children && Array.isArray(item.children) && item.children.length > 0) { + if (level < 3) { + const children = this.convertToVueTree(item.children, level + 1) + if (children.length > 0) node.children = children + } + } + return node + }) + }, onLoad(page, params = {}) { this.loading = true; + this.loadDeptOptions(); let data = { ...params, pageNum:page.currentPage,