From 51ca35a2cf1c8cd83ddde68a11e65407285fa7a7 Mon Sep 17 00:00:00 2001
From: "liang.chao" <1360241448@qq.com>
Date: Fri, 28 Nov 2025 13:15:52 +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/filesTransfer/issue.js | 5 +-
src/views/fileTransfer/issue.vue | 106 +++++++++++++++++++++++++++--
src/views/fileTransfer/setting.vue | 2 +-
3 files changed, 105 insertions(+), 8 deletions(-)
diff --git a/src/api/filesTransfer/issue.js b/src/api/filesTransfer/issue.js
index 9d17e2d3..af63162a 100644
--- a/src/api/filesTransfer/issue.js
+++ b/src/api/filesTransfer/issue.js
@@ -28,7 +28,10 @@ export function editTransferProblemApi(data) {
}
// 删除移交问题
-export function delTransferProblemApi(data) {
+export function delTransferProblemApi(id) {
+ const data = {
+ id: id
+ };
return request({
url: '/blade-system/transferProblem/delTransferProblem',
method: 'POST',
diff --git a/src/views/fileTransfer/issue.vue b/src/views/fileTransfer/issue.vue
index 4098902a..3dbd6ce1 100644
--- a/src/views/fileTransfer/issue.vue
+++ b/src/views/fileTransfer/issue.vue
@@ -20,6 +20,9 @@
@refresh-change="refreshChange"
@on-load="onLoad"
>
+
+ {{ row.deptName }}
+
@@ -33,6 +36,7 @@ import {
} from '@/api/filesTransfer/issue';
import { mapGetters } from 'vuex';
import website from '@/config/website';
+import { getDeptSelectApi } from '@/api/select';
export default {
data() {
@@ -63,19 +67,67 @@ export default {
{
label: '项目名称',
prop: 'proName',
+ editDisplay: false,
+ addDisplay: false,
+ },
+ {
+ label: '项目',
+ prop: 'proId',
+ type: 'select',
+ search: false,
+ hide: true,
+ dicUrl: '/blade-system/transferApply/getProSelect',
+ dicMethod: 'post',
+ props: { label: 'proName', value: 'id' },
+ rules: [{ required: true, message: '请选择项目', trigger: 'change' }],
+ // 👇 新增 change 回调
+ change: ({ value, column, form }) => {
+ const selected = column.dicData?.find(item => item.id === value);
+ form.proName = selected ? selected.name : '';
+ }
},
{
label: '单项工程名称',
prop: 'singleProName',
search: true,
+ editDisplay: false,
+ addDisplay: false,
},
{
label: '移交时间',
prop: 'transferTime',
+ type: 'date',
+ format: 'YYYY-MM-DD',
+ valueFormat: 'YYYY-MM-DD',
+ rules: [{ required: true, message: '请选择移交时间', trigger: 'blur' }],
+ },
+ {
+ label: '接收单位',
+ prop: 'deptId',
+ type: 'tree',
+ search: true,
+ dicData: [],
+ props: { label: 'label', value: 'id', children: 'children' },
+ rules: [{ required: true, message: '请选择接收单位', trigger: 'change' }],
+ change: ({ value, column, form }) => {
+ const findLabel = (list, id) => {
+ for (let item of list || []) {
+ console.log( item.id + 'item ');
+ if (item.id === id) return item.label;
+ if (item.children) {
+ const found = findLabel(item.children, id);
+ if (found) return found;
+ }
+ }
+ return null;
+ };
+ form.deptName = findLabel(column.dicData, value) || '';
+ }
},
{
label: '接收单位',
prop: 'deptName',
+ addDisplay: false,
},
{
label: '移交问题',
@@ -159,9 +211,13 @@ export default {
rowSave(row, done, loading) {
// 只提取需要的字段
const submitData = {
- encryptName: row.encryptName,
- encryptParams: row.encryptParams,
- encryptType: row.encryptType,
+ proId: row.proId, // 项目ID
+ proName: row.proName, // 项目名称
+ singleProName: row.singleProName, // 单项工程名称
+ transferTime: row.transferTime, // 移交时间(YYYY-MM-DD)
+ deptId: row.deptId, // 接收单位ID
+ deptName: row.deptName, // 接收名称
+ transferIssue: row.transferIssue, // 移交问题
};
addTransferProblemApi(submitData).then(
() => {
@@ -178,13 +234,50 @@ 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
+ })
+ },
rowUpdate(row, index, done, loading) {
// 只保留需要的字段
const submitData = {
id: row.id,
- encryptName: row.encryptName,
- encryptParams: row.encryptParams,
- encryptType: row.encryptType,
+ proId: row.proId, // 项目ID
+ proName: row.proName, // 项目名称
+ singleProName: row.singleProName, // 单项工程名称
+ transferTime: row.transferTime, // 移交时间(YYYY-MM-DD)
+ deptId: row.deptId, // 接收单位ID
+ deptName: row.deptName, // 接收名称
+ transferIssue: row.transferIssue, // 移交问题
};
editTransferProblemApi(submitData).then(
@@ -272,6 +365,7 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
+ this.loadDeptOptions();
let data = {
...params,
pageNum:page.currentPage,
diff --git a/src/views/fileTransfer/setting.vue b/src/views/fileTransfer/setting.vue
index f37d79d3..550903bd 100644
--- a/src/views/fileTransfer/setting.vue
+++ b/src/views/fileTransfer/setting.vue
@@ -10,7 +10,7 @@
-
+