This commit is contained in:
liang.chao 2025-11-27 17:23:01 +08:00
parent 1a936db5cc
commit d4aebdcf5b
2 changed files with 84 additions and 1 deletions

28
src/api/select.js Normal file
View File

@ -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
});
}

View File

@ -24,6 +24,9 @@
getStatusText(row.transferStatus)
}}
</template>
<template #deptId="{ row }">
{{ row.deptName }}
</template>
</avue-crud>
</basic-container>
</template>
@ -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,