From 8c4288a5e5bcf8d09e5baef4df38504a8507d802 Mon Sep 17 00:00:00 2001 From: wsm <8454518+new-twice@user.noreply.gitee.com> Date: Tue, 7 Jul 2026 00:57:38 +0000 Subject: [PATCH] =?UTF-8?q?!85=20feat(xispeak):=20=E7=94=A8=E4=B8=9A?= =?UTF-8?q?=E5=8A=A1=E7=8A=B6=E6=80=81=E5=88=97=E6=9B=BF=E6=8D=A2=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E7=8A=B6=E6=80=81=E5=88=97=EF=BC=8C=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?dataIndex=E5=AF=B9=E9=BD=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(xispeak): 用业务状态列替换完成状态列,修正dataIndex对齐接口 * fix(xispeak): 修复业务状态字段取值与列dataIndex不匹配 * feat(xispeak): 台账列表新增业务状态字段 --- src/api/common/api.ts | 7 +++++ src/views/bg/xispeak/BgXiSpeak.data.ts | 9 ++++-- src/views/bg/xispeak/BgXiSpeakList.vue | 40 ++++++++++++++++++++++++-- 3 files changed, 52 insertions(+), 4 deletions(-) diff --git a/src/api/common/api.ts b/src/api/common/api.ts index 197d0b7..aabce4b 100644 --- a/src/api/common/api.ts +++ b/src/api/common/api.ts @@ -21,6 +21,7 @@ enum Api { deletePendingTask = '/tasktask/taskTask/deletePendingTask', updateTitleAndDeadline = '/tasktask/taskTask/updateTitleAndDeadline', currentNodeInfo = '/act/task/currentNodeInfo', + getBusinessStatus = '/tasktask/taskTask/getBusinessStatus', } /** @@ -209,6 +210,12 @@ export const updateTitleAndDeadline = (params) => { */ export const queryCurrentNodeInfo = (params) => defHttp.get({ url: Api.currentNodeInfo, params }); +/** + * 查询业务状态(单条) + * @param params { businessId: string } + */ +export const getBusinessStatus = (params) => defHttp.get({ url: Api.getBusinessStatus, params }); + /** * 【用于评论功能】自定义文件上传-方法 */ diff --git a/src/views/bg/xispeak/BgXiSpeak.data.ts b/src/views/bg/xispeak/BgXiSpeak.data.ts index 4cd689a..71175e4 100644 --- a/src/views/bg/xispeak/BgXiSpeak.data.ts +++ b/src/views/bg/xispeak/BgXiSpeak.data.ts @@ -90,10 +90,15 @@ export const columns: BasicColumn[] = [ // align: 'center', // dataIndex: 'delayRiskMitigation', // }, + // { + // title: '完成状态', + // align: 'center', + // dataIndex: 'completionStatus_dictText', + // }, { - title: '完成状态', + title: '业务状态', align: 'center', - dataIndex: 'completionStatus_dictText', + dataIndex: 'status_dictText', }, { title: '截止日期', diff --git a/src/views/bg/xispeak/BgXiSpeakList.vue b/src/views/bg/xispeak/BgXiSpeakList.vue index d28c142..ae7f112 100644 --- a/src/views/bg/xispeak/BgXiSpeakList.vue +++ b/src/views/bg/xispeak/BgXiSpeakList.vue @@ -115,7 +115,7 @@ import { defHttp } from '/@/utils/http/axios'; import { useMessage } from '/@/hooks/web/useMessage'; import { showImportValidationErrors } from '/@/utils/helper/importError'; - import { startProcessSchedules } from '/@/api/common/api'; + import { startProcessSchedules, getBusinessStatus } from '/@/api/common/api'; import { dateUtil } from '/@/utils/dateUtil'; import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; @@ -334,6 +334,7 @@ import { defHttp } from '/@/utils/http/axios'; if (result && result.length > 0) { record.children = getDataByResult(result); await refreshFeedbackCounts(record.children); + await refreshBusinessStatus(record.children); // 触发表格重新渲染 updateTableDataRecord(record.id, { ...record }); } else { @@ -416,6 +417,40 @@ import { defHttp } from '/@/utils/http/axios'; } } + /** + * 批量查询业务状态并更新到 records 中 + */ + async function refreshBusinessStatus(records) { + const ids = collectAllIds(records); + if (ids.length === 0) return; + try { + const results = await Promise.all( + ids.map((id) => + getBusinessStatus({ businessId: id }).catch(() => null) + ) + ); + const statusMap: Record = {}; + for (const item of results) { + if (item?.businessId) { + statusMap[item.businessId] = item.status_dictText || ''; + } + } + const updateFn = (list) => { + if (!list) return; + for (const item of list) { + const status = statusMap[item.id]; + if (status !== undefined) { + item.status_dictText = status; + } + if (item.children) updateFn(item.children); + } + }; + updateFn(records); + } catch (e) { + // 静默处理查询异常 + } + } + /** * 接口请求成功后回调 */ @@ -423,7 +458,8 @@ import { defHttp } from '/@/utils/http/axios'; getDataByResult(result.items) && loadDataByExpandedRows(); if (result.items && result.items.length > 0) { await refreshFeedbackCounts(result.items); - // 触发表格重新渲染以显示更新后的 implCount / closedCount + await refreshBusinessStatus(result.items); + // 触发表格重新渲染以显示更新后的 implCount / closedCount / businessStatus setTableData([...getDataSource()]); } }