From 9f6ec705aca4f181e2bf4d0335f93dad1a412300 Mon Sep 17 00:00:00 2001
From: dongzhihuan
Date: Fri, 6 Mar 2026 16:04:00 +0800
Subject: [PATCH 01/15] =?UTF-8?q?update=20=E6=95=B0=E6=8D=AE=E7=BB=9F?=
=?UTF-8?q?=E8=AE=A1=E7=9C=8B=E6=9D=BF=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6?=
=?UTF-8?q?=E6=93=8D=E4=BD=9C=E7=BB=9F=E8=AE=A1=E5=9B=BE=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/api/system/systemLog.ts | 5 +
src/utils/i18n/en.ts | 1 +
src/utils/i18n/zh.ts | 1 +
.../dashboard/components/dataStatistics.vue | 6 +
.../dataStatistics/fileOperateChart.vue | 114 ++++++++++++++++++
.../components/dataStatistics/settingDia.vue | 1 +
6 files changed, 128 insertions(+)
create mode 100644 src/views/task/dashboard/components/dataStatistics/fileOperateChart.vue
diff --git a/src/api/system/systemLog.ts b/src/api/system/systemLog.ts
index 4d0f7a1d..b3a5ca32 100644
--- a/src/api/system/systemLog.ts
+++ b/src/api/system/systemLog.ts
@@ -16,3 +16,8 @@ export const getHourlyOnlineStatisticsApi = (params: any) => {
export const getUserLoginStatisticsApi = (params: any) => {
return post(`${PREFIX}systemLog/getUserLoginStatistics`, params);
};
+
+// 统计某时间段(天)的文件下载数
+export const getDailyOperateStatisticsApi = (params: any) => {
+ return post(`${PREFIX}systemLog/getDailyOperateStatistics`, params);
+};
diff --git a/src/utils/i18n/en.ts b/src/utils/i18n/en.ts
index f608387d..28865bc7 100644
--- a/src/utils/i18n/en.ts
+++ b/src/utils/i18n/en.ts
@@ -329,6 +329,7 @@ const lang = {
'指标完成统计(学科)': 'Performance Completion Statistics (Discipline)',
工位评审通过统计: 'Workspace Review Statistics',
项目任务完成情况统计: 'Project Task Completion Statistics',
+ 文件操作统计: 'File Operate Statistics',
},
工位时间维护: {
阶段: 'Phase',
diff --git a/src/utils/i18n/zh.ts b/src/utils/i18n/zh.ts
index f60b4902..99042eb6 100644
--- a/src/utils/i18n/zh.ts
+++ b/src/utils/i18n/zh.ts
@@ -324,6 +324,7 @@ const lang = {
'指标完成统计(学科)': '指标完成统计(学科)',
工位评审通过统计: '工位评审通过统计',
项目任务完成情况统计: '项目任务完成情况统计',
+ 文件操作统计: '文件操作统计',
},
工位时间维护: {
阶段: '阶段',
diff --git a/src/views/task/dashboard/components/dataStatistics.vue b/src/views/task/dashboard/components/dataStatistics.vue
index b0eb5e6d..e79a1d37 100644
--- a/src/views/task/dashboard/components/dataStatistics.vue
+++ b/src/views/task/dashboard/components/dataStatistics.vue
@@ -28,6 +28,7 @@
import { onMounted, ref, provide } from 'vue';
import { getThemeColor } from '@/utils/theme';
// 引入子组件
+import fileOperateChart from './dataStatistics/fileOperateChart.vue';
import userGroupProjectChart from './dataStatistics/userGroupProjectChart.vue';
import userTaskCompleteChart from './dataStatistics/userTaskCompleteChart.vue';
import userDifficultyCoefficientChart from './dataStatistics/userDifficultyCoefficientChart.vue';
@@ -145,6 +146,11 @@ const baseList = ref([
processNodeColorList,
},
},
+ {
+ id: 'fileOperate',
+ component: fileOperateChart,
+ props: {},
+ },
]);
// 当前展示的图表
const currentList = ref();
diff --git a/src/views/task/dashboard/components/dataStatistics/fileOperateChart.vue b/src/views/task/dashboard/components/dataStatistics/fileOperateChart.vue
new file mode 100644
index 00000000..1839cde5
--- /dev/null
+++ b/src/views/task/dashboard/components/dataStatistics/fileOperateChart.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/task/dashboard/components/dataStatistics/settingDia.vue b/src/views/task/dashboard/components/dataStatistics/settingDia.vue
index 067a1e07..ae6e2213 100644
--- a/src/views/task/dashboard/components/dataStatistics/settingDia.vue
+++ b/src/views/task/dashboard/components/dataStatistics/settingDia.vue
@@ -86,6 +86,7 @@ const baseTable = [
{ key: 'performanceCompletionMechine', title: '指标完成统计(机台)', inBoard: true },
{ key: 'performanceCompletionDiscipline', title: '指标完成统计(学科)', inBoard: true },
{ key: 'reviewPassed', title: '工位评审通过统计', inBoard: true },
+ { key: 'fileOperate', title: '文件下载统计', inBoard: true },
];
const vxeTableRef = ref();
From dba52cdfeac3cd44728d7092ff27d70c68622a5b Mon Sep 17 00:00:00 2001
From: dongzhihuan
Date: Fri, 6 Mar 2026 16:13:58 +0800
Subject: [PATCH 02/15] =?UTF-8?q?update=20=E6=BC=94=E7=A4=BA=E7=89=88?=
=?UTF-8?q?=E6=9C=AC=E6=81=A2=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/analysisDataDialog.vue | 19 +------------------
.../components/calculationFileResult.vue | 3 +--
.../analysis/components/modelFileResult.vue | 3 +--
src/views/data/analysis/index.vue | 3 +--
4 files changed, 4 insertions(+), 24 deletions(-)
diff --git a/src/views/data/analysis/components/analysisDataDialog.vue b/src/views/data/analysis/components/analysisDataDialog.vue
index 3af6c56d..265a3eb1 100644
--- a/src/views/data/analysis/components/analysisDataDialog.vue
+++ b/src/views/data/analysis/components/analysisDataDialog.vue
@@ -162,34 +162,17 @@ const { RESULT_ACHIEVE_STATUS, TASK_ACHIEVE_STATUS, PERFORMANCE_TYPE, PERFORMANC
'PERFORMANCE_TYPE'
);
const props = defineProps({
- // 演示使用 增加了modelValue
- modelValue: {
- type: Boolean,
- default: false,
- },
analysisData: {
type: Object,
default: () => {},
},
});
-// 演示使用 增加了watch
-watch(
- () => props.modelValue,
- (val: boolean) => {
- if (val) {
- diaVisible.value = true;
- } else {
- diaVisible.value = false;
- }
- }
-);
const cloumnWidth = ref('200');
const checkTableRef = ref();
-// 演示使用 true改为了false
-const diaVisible = ref(false);
+const diaVisible = ref(true);
const checkAnalysisList = ref([]);
const checktableData = ref([]);
diff --git a/src/views/data/analysis/components/calculationFileResult.vue b/src/views/data/analysis/components/calculationFileResult.vue
index 6c8531bd..3cb09d50 100644
--- a/src/views/data/analysis/components/calculationFileResult.vue
+++ b/src/views/data/analysis/components/calculationFileResult.vue
@@ -27,8 +27,7 @@
-
-
+
diff --git a/src/views/data/analysis/components/modelFileResult.vue b/src/views/data/analysis/components/modelFileResult.vue
index 46164705..b09dab81 100644
--- a/src/views/data/analysis/components/modelFileResult.vue
+++ b/src/views/data/analysis/components/modelFileResult.vue
@@ -27,8 +27,7 @@
-
-
+
diff --git a/src/views/data/analysis/index.vue b/src/views/data/analysis/index.vue
index 684b36b9..d60d309f 100644
--- a/src/views/data/analysis/index.vue
+++ b/src/views/data/analysis/index.vue
@@ -266,9 +266,8 @@
:run-info="currentRunInfo"
@close="showRunDetailDialog = false"
/>
-
From 9d593a7fb0c349bcb50ed08539f1e15d0e32d1c4 Mon Sep 17 00:00:00 2001
From: dongzhihuan
Date: Fri, 6 Mar 2026 16:14:30 +0800
Subject: [PATCH 03/15] =?UTF-8?q?update=20=E6=96=87=E4=BB=B6=E7=BB=9F?=
=?UTF-8?q?=E8=AE=A1=E5=9B=BE=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dashboard/components/dataStatistics/fileOperateChart.vue | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/views/task/dashboard/components/dataStatistics/fileOperateChart.vue b/src/views/task/dashboard/components/dataStatistics/fileOperateChart.vue
index 1839cde5..3acd97d0 100644
--- a/src/views/task/dashboard/components/dataStatistics/fileOperateChart.vue
+++ b/src/views/task/dashboard/components/dataStatistics/fileOperateChart.vue
@@ -83,6 +83,7 @@ const initUserProjectStatistics = async (data: any) => {
data: xData,
},
yAxis: {
+ name: '次数',
minInterval: 1,
},
dataZoom: xData.length > 4,
From 9c584fde02c117e1a9393cefc2388f02ad29cf83 Mon Sep 17 00:00:00 2001
From: dongzhihuan
Date: Fri, 6 Mar 2026 16:16:25 +0800
Subject: [PATCH 04/15] =?UTF-8?q?update=20=E6=BC=94=E7=A4=BA=E7=89=88?=
=?UTF-8?q?=E6=9C=AC=E6=81=A2=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/analysisDataDialog.vue | 19 +------------------
.../components/calculationFileResult.vue | 3 +--
.../analysis/components/modelFileResult.vue | 3 +--
src/views/data/analysis/index.vue | 3 +--
4 files changed, 4 insertions(+), 24 deletions(-)
diff --git a/src/views/data/analysis/components/analysisDataDialog.vue b/src/views/data/analysis/components/analysisDataDialog.vue
index 3af6c56d..265a3eb1 100644
--- a/src/views/data/analysis/components/analysisDataDialog.vue
+++ b/src/views/data/analysis/components/analysisDataDialog.vue
@@ -162,34 +162,17 @@ const { RESULT_ACHIEVE_STATUS, TASK_ACHIEVE_STATUS, PERFORMANCE_TYPE, PERFORMANC
'PERFORMANCE_TYPE'
);
const props = defineProps({
- // 演示使用 增加了modelValue
- modelValue: {
- type: Boolean,
- default: false,
- },
analysisData: {
type: Object,
default: () => {},
},
});
-// 演示使用 增加了watch
-watch(
- () => props.modelValue,
- (val: boolean) => {
- if (val) {
- diaVisible.value = true;
- } else {
- diaVisible.value = false;
- }
- }
-);
const cloumnWidth = ref('200');
const checkTableRef = ref();
-// 演示使用 true改为了false
-const diaVisible = ref(false);
+const diaVisible = ref(true);
const checkAnalysisList = ref([]);
const checktableData = ref([]);
diff --git a/src/views/data/analysis/components/calculationFileResult.vue b/src/views/data/analysis/components/calculationFileResult.vue
index 6c8531bd..3cb09d50 100644
--- a/src/views/data/analysis/components/calculationFileResult.vue
+++ b/src/views/data/analysis/components/calculationFileResult.vue
@@ -27,8 +27,7 @@
-
-
+
diff --git a/src/views/data/analysis/components/modelFileResult.vue b/src/views/data/analysis/components/modelFileResult.vue
index 46164705..b09dab81 100644
--- a/src/views/data/analysis/components/modelFileResult.vue
+++ b/src/views/data/analysis/components/modelFileResult.vue
@@ -27,8 +27,7 @@
-
-
+
diff --git a/src/views/data/analysis/index.vue b/src/views/data/analysis/index.vue
index 684b36b9..d60d309f 100644
--- a/src/views/data/analysis/index.vue
+++ b/src/views/data/analysis/index.vue
@@ -266,9 +266,8 @@
:run-info="currentRunInfo"
@close="showRunDetailDialog = false"
/>
-
From 342b493bee8a7207f19dad6c1e816d7cc32fa6f0 Mon Sep 17 00:00:00 2001
From: zhouyang
Date: Fri, 6 Mar 2026 16:24:30 +0800
Subject: [PATCH 05/15] =?UTF-8?q?update:=E6=BC=94=E7=A4=BA=E7=89=88?=
=?UTF-8?q?=E6=9C=AC=E6=81=A2=E5=A4=8D=EF=BC=8C=E6=A0=B7=E5=BC=8F=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../data/analysis/components/calculationFileResult.vue | 6 +++---
src/views/data/analysis/components/modelFileResult.vue | 6 +++---
src/views/task/execution/components/leftTaskTree/index.vue | 4 ++--
src/views/task/projectDetail/components/taskDetail.vue | 6 +++---
4 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/views/data/analysis/components/calculationFileResult.vue b/src/views/data/analysis/components/calculationFileResult.vue
index 3cb09d50..68e0e272 100644
--- a/src/views/data/analysis/components/calculationFileResult.vue
+++ b/src/views/data/analysis/components/calculationFileResult.vue
@@ -21,13 +21,13 @@
预览
下载
- 对比
+
-
+
@@ -37,7 +37,7 @@ import BaseTable from '@/components/common/table/baseTable.vue';
import { objectTypeArrayRemovesDuplicates } from '@/utils/common';
import FilePreview from '@/components/common/filePreview/index.vue';
import { downloadFileByStream, fileUploadAllocationIconFun } from '@/utils/file';
-import compareTextFile from './compareTextFile.vue';
+// import compareTextFile from './compareTextFile.vue';
const props = defineProps({
checkTaskInfo: {
diff --git a/src/views/data/analysis/components/modelFileResult.vue b/src/views/data/analysis/components/modelFileResult.vue
index b09dab81..bfcb36e0 100644
--- a/src/views/data/analysis/components/modelFileResult.vue
+++ b/src/views/data/analysis/components/modelFileResult.vue
@@ -21,13 +21,13 @@
预览
下载
- 对比
+
-
+
@@ -37,7 +37,7 @@ import BaseTable from '@/components/common/table/baseTable.vue';
import { objectTypeArrayRemovesDuplicates } from '@/utils/common';
import FilePreview from '@/components/common/filePreview/index.vue';
import { downloadFileByStream, fileUploadAllocationIconFun } from '@/utils/file';
-import compareTextFile from './compareTextFile.vue';
+// import compareTextFile from './compareTextFile.vue';
const props = defineProps({
checkTaskInfo: {
diff --git a/src/views/task/execution/components/leftTaskTree/index.vue b/src/views/task/execution/components/leftTaskTree/index.vue
index 486922f7..a01ade28 100644
--- a/src/views/task/execution/components/leftTaskTree/index.vue
+++ b/src/views/task/execution/components/leftTaskTree/index.vue
@@ -113,13 +113,13 @@
>
新建算例
-
+ -->
-
+
@@ -350,7 +350,7 @@ const reportInpDiaShow = ref(false);
const dialogVisible = ref(true);
// const activeTab = ref(props.showTaskInfo ? 'info' : 'model-3d');
const activeTab = ref('info');
-const activeRadio = ref('report');
+const activeRadio = ref('detail');
const keyResultType = ref('performance');
const taskPerformanceRef = ref();
const taskInfoRef = ref();
From 5b102c1d6a999acf561225070e8102e58a45e778 Mon Sep 17 00:00:00 2001
From: zhouyang
Date: Fri, 6 Mar 2026 16:29:25 +0800
Subject: [PATCH 06/15] =?UTF-8?q?update:=E6=BC=94=E7=A4=BA=E7=89=88?=
=?UTF-8?q?=E6=9C=AC=E6=81=A2=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../data/analysis/components/calculationFileResult.vue | 6 +++---
src/views/data/analysis/components/modelFileResult.vue | 6 +++---
src/views/task/execution/components/leftTaskTree/index.vue | 4 ++--
3 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/views/data/analysis/components/calculationFileResult.vue b/src/views/data/analysis/components/calculationFileResult.vue
index 3cb09d50..68e0e272 100644
--- a/src/views/data/analysis/components/calculationFileResult.vue
+++ b/src/views/data/analysis/components/calculationFileResult.vue
@@ -21,13 +21,13 @@
预览
下载
- 对比
+
-
+
@@ -37,7 +37,7 @@ import BaseTable from '@/components/common/table/baseTable.vue';
import { objectTypeArrayRemovesDuplicates } from '@/utils/common';
import FilePreview from '@/components/common/filePreview/index.vue';
import { downloadFileByStream, fileUploadAllocationIconFun } from '@/utils/file';
-import compareTextFile from './compareTextFile.vue';
+// import compareTextFile from './compareTextFile.vue';
const props = defineProps({
checkTaskInfo: {
diff --git a/src/views/data/analysis/components/modelFileResult.vue b/src/views/data/analysis/components/modelFileResult.vue
index b09dab81..bfcb36e0 100644
--- a/src/views/data/analysis/components/modelFileResult.vue
+++ b/src/views/data/analysis/components/modelFileResult.vue
@@ -21,13 +21,13 @@
预览
下载
- 对比
+
-
+
@@ -37,7 +37,7 @@ import BaseTable from '@/components/common/table/baseTable.vue';
import { objectTypeArrayRemovesDuplicates } from '@/utils/common';
import FilePreview from '@/components/common/filePreview/index.vue';
import { downloadFileByStream, fileUploadAllocationIconFun } from '@/utils/file';
-import compareTextFile from './compareTextFile.vue';
+// import compareTextFile from './compareTextFile.vue';
const props = defineProps({
checkTaskInfo: {
diff --git a/src/views/task/execution/components/leftTaskTree/index.vue b/src/views/task/execution/components/leftTaskTree/index.vue
index 486922f7..a01ade28 100644
--- a/src/views/task/execution/components/leftTaskTree/index.vue
+++ b/src/views/task/execution/components/leftTaskTree/index.vue
@@ -113,13 +113,13 @@
>
新建算例
-
+ -->
+
+
+
+
+
+
+
+
([]);
const taskStore = useTaskStore();
+const reportStore = useReportStore();
const treeDataFormatFun = (data: any, build: any, pId: any) => {
data.forEach((item: any) => {
@@ -721,6 +739,7 @@ const seeApproveDetailFun = async (row: any) => {
onMounted(() => {
initProjectDicts();
taskStore.fetchTemplates();
+ reportStore.fetchTemplates();
});
defineExpose({
diff --git a/src/stores/reportTemplate.ts b/src/stores/reportTemplate.ts
new file mode 100644
index 00000000..3bfeeec2
--- /dev/null
+++ b/src/stores/reportTemplate.ts
@@ -0,0 +1,57 @@
+import { defineStore } from 'pinia';
+import { ref, computed } from 'vue';
+import { queryReportTemplateApi } from '@/api/capability/report';
+import { REPORT_TEMPLATE_PUBLIC_STATUS, FLOW_USE_STATUS } from '@/utils/enum/report';
+
+interface ReportTemplate {
+ templateName?: string;
+ templateCode?: string;
+ [k: string]: any;
+}
+
+export const useReportStore = defineStore('reportTemplate', () => {
+ const templates = ref([]);
+ const loaded = ref(false);
+ let pendingPromise: Promise | null = null;
+
+ const options = computed(() =>
+ templates.value.map((item) => ({
+ label: item.templateName || '',
+ value: item.templateCode || '',
+ }))
+ );
+
+ const fetchTemplates = async (force = false) => {
+ if (!force && loaded.value && templates.value.length) return templates.value;
+ if (pendingPromise) return pendingPromise;
+
+ pendingPromise = (async () => {
+ try {
+ const req = {
+ current: 1,
+ size: 99999,
+ type: REPORT_TEMPLATE_PUBLIC_STATUS.PUBLIC,
+ templateStatus: FLOW_USE_STATUS.USED,
+ };
+ const res: any = await queryReportTemplateApi(req);
+ if (res && res.code === 200) {
+ const list = res.data?.data || res.data || [];
+ templates.value = Array.isArray(list) ? list : [];
+ } else {
+ templates.value = [];
+ }
+ loaded.value = true;
+ } catch {
+ templates.value = [];
+ loaded.value = true;
+ } finally {
+ pendingPromise = null;
+ }
+ return templates.value;
+ })();
+
+ return pendingPromise;
+ };
+
+ return { templates, options, fetchTemplates, loaded };
+});
diff --git a/src/utils/enum/node.ts b/src/utils/enum/node.ts
index 9ae06daa..627564ad 100644
--- a/src/utils/enum/node.ts
+++ b/src/utils/enum/node.ts
@@ -108,6 +108,7 @@ export const poolNodePropPickMap = {
'days',
'flowTemplate',
'standard',
+ 'reportTemplate',
'analyseTarget',
'confidence',
'analyseSoftware',
diff --git a/src/utils/i18n/en.ts b/src/utils/i18n/en.ts
index 28865bc7..fb2dc654 100644
--- a/src/utils/i18n/en.ts
+++ b/src/utils/i18n/en.ts
@@ -87,6 +87,9 @@ const lang = {
项目详情: 'Project Detail',
任务创建: 'Task Creation',
仿真执行: 'Task Execution',
+ 报工列表: 'Work Report List',
+ 我确认的: 'I Confirmed',
+ 我负责的: 'I Responsible',
应用中心: 'Application Center',
数据管理: 'Data Management',
数据总览: 'Data Overview',
@@ -201,6 +204,7 @@ const lang = {
没有修改的数据需要提交审批: 'No modified data to submit for approval',
指标库列表: 'Performance Pool List',
关联N个流程模版: 'Associated {count} Flow Templates',
+ 关联N个报告模版: 'Associated {count} Report Templates',
关联N个执行规范: 'Associated {count} Standards',
关联N个工况: 'Associated {count} Tasks',
请选择工况库: 'Please select task pool',
diff --git a/src/utils/i18n/zh.ts b/src/utils/i18n/zh.ts
index 99042eb6..b8fd02f2 100644
--- a/src/utils/i18n/zh.ts
+++ b/src/utils/i18n/zh.ts
@@ -86,6 +86,9 @@ const lang = {
项目详情: '项目详情',
任务创建: '任务创建',
仿真执行: '仿真执行',
+ 报工列表: '报工列表',
+ 我确认的: '我确认的',
+ 我负责的: '我负责的',
应用中心: '应用中心',
数据管理: '数据管理',
数据总览: '数据总览',
@@ -197,6 +200,7 @@ const lang = {
没有修改的数据需要提交审批: '没有修改的数据需要提交审批',
指标库列表: '指标库列表',
关联N个流程模版: '关联{count}个流程模版',
+ 关联N个报告模版: '关联{count}个报告模版',
关联N个执行规范: '关联{count}个执行规范',
关联N个工况: '关联{count}个工况',
请选择工况库: '请选择工况库',
diff --git a/src/views/simulation/reportLib/components/addDialog.vue b/src/views/simulation/reportLib/components/addDialog.vue
index 96e127c6..a9a8124c 100644
--- a/src/views/simulation/reportLib/components/addDialog.vue
+++ b/src/views/simulation/reportLib/components/addDialog.vue
@@ -45,7 +45,7 @@
取消
确定 {
if (await tableFormRef.value.validateFun()) {
loadingInterface.value = true;
const flowForm = tableFormRef.value.getFormDataFun();
+ flowForm.simulationPoolInfoList = simulationPoolInfoList.value;
if (
props.dialogType === REPORT_OPERATION_TYPE.CREATE ||
props.dialogType === REPORT_OPERATION_TYPE.COPY
) {
const formData = new FormData();
formData.append('templateVersion', 'V1.0');
+ formData.append('simulationPoolInfoListStr', JSON.stringify(simulationPoolInfoList.value));
for (const key in flowForm) {
if (key === 'file') {
// 就算复制模板,如果上传了新的文件就不复制文件了
@@ -122,7 +124,8 @@ const confirmFun = async (type: string) => {
key !== 'templateStatus' &&
key !== 'creatorName' &&
key !== 'createTime' &&
- key !== 'approveType'
+ key !== 'approveType' &&
+ key !== 'simulationPoolInfoList'
) {
formData.append(key, flowForm[key] ? flowForm[key] : '');
}
@@ -130,17 +133,27 @@ const confirmFun = async (type: string) => {
}
const flowUuid = await createFlow(formData);
emits('confirm', { type, uuid: flowUuid });
- } else if (props.dialogType === REPORT_OPERATION_TYPE.UPGRADE) {
- emits('confirm', {
- type,
- uuid: flowForm.uuid,
- comment: flowForm.comment,
- file: flowForm.file,
- fileId: flowForm.file[0].id,
- });
} else {
- await editReport(flowForm);
- emits('confirm', { type, uuid: flowForm.uuid });
+ if (type === 'ok') {
+ await editReport(flowForm);
+ emits('confirm', { type, uuid: flowForm.uuid, tVersion: props.templateVersion });
+ }
+ if (type === 'next') {
+ if (oldComment.value !== flowForm.comment) {
+ // 升版时只更新描述,不更新工况,工况在提交审批时传递给接口
+ await editReport({ ...flowForm, simulationPoolInfoList: oldSimulationPoolInfoList.value });
+ }
+ emits('confirm', {
+ type,
+ uuid: flowForm.uuid,
+ comment: flowForm.comment,
+ file: flowForm.file,
+ fileId: flowForm.file[0].id,
+ tVersion: props.templateVersion,
+ // 不更新工况,工况在提交审批时传递给升版接口
+ simulationPoolInfoList: hasChangeLoadcase.value ? simulationPoolInfoList.value : null,
+ });
+ }
}
loadingInterface.value = false;
}
@@ -188,6 +201,7 @@ const editReport = async (params: any) => {
formData.append('extras', params.extras);
formData.append('fileId', oldFormData.value.fileId);
formData.append('templateContent', oldFormData.value.templateContent);
+ formData.append('simulationPoolInfoListStr', JSON.stringify(params.simulationPoolInfoList));
if (params.file && params.file.length > 0) {
if (params.file[0].raw) {
formData.append('file', params.file[0].raw);
@@ -217,12 +231,17 @@ const closeFun = () => {
const oldFormData = ref({});
-const editRowInfo = ref({});
+const editRowInfo = ref({});
+
+const oldSimulationPoolInfoList = ref([]);
+const oldComment = ref('');
const setEditForm = (val: any) => {
oldFormData.value = val;
// nextTick(() => {
simulationPoolInfoList.value = val.simulationPoolInfoList || [];
+ oldSimulationPoolInfoList.value = val.simulationPoolInfoList || [];
+ oldComment.value = val.comment;
// tableFormRef.value.setFormDataFun({ ...val });
editRowInfo.value = { ...val };
// });
@@ -245,6 +264,29 @@ const setOptionsFun = (key: string, options: any[]) => {
tableFormRef.value.setOptionsFun(key, options);
};
+const hasChangeLoadcase = ref(false);
+
+watch(
+ () => simulationPoolInfoList.value,
+ () => {
+ const oldIds: any[] = [];
+ oldSimulationPoolInfoList.value.forEach((item) => {
+ oldIds.push(...item.simulationPoolTaskIds);
+ });
+ const newIds: any[] = [];
+ simulationPoolInfoList.value.forEach((item) => {
+ newIds.push(...item.simulationPoolTaskIds);
+ });
+ oldIds.sort();
+ newIds.sort();
+ if (JSON.stringify(oldIds) !== JSON.stringify(newIds)) {
+ hasChangeLoadcase.value = true;
+ } else {
+ hasChangeLoadcase.value = false;
+ }
+ }
+);
+
watch(
() => props.showDialog,
async () => {
From fc33e874c6827ba84642d22e23900c46c8ff7568 Mon Sep 17 00:00:00 2001
From: dongzhihuan
Date: Mon, 9 Mar 2026 10:42:22 +0800
Subject: [PATCH 10/15] =?UTF-8?q?update=20bug1078=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../data/storage/components/storageSettings/index.vue | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/views/data/storage/components/storageSettings/index.vue b/src/views/data/storage/components/storageSettings/index.vue
index 099e8dbe..69333799 100644
--- a/src/views/data/storage/components/storageSettings/index.vue
+++ b/src/views/data/storage/components/storageSettings/index.vue
@@ -63,6 +63,7 @@
v-model="editform.quotaValue"
type="number"
:min="0"
+ :max="999999"
@keydown="handleKeydown"
>
@@ -106,6 +107,15 @@ const handleKeydown = (e: KeyboardEvent) => {
if (e.key === '.' || e.key === '-' || e.key === 'e' || e.key === 'E') {
e.preventDefault();
}
+ // 获取当前输入值
+ const currentValue = editform.value.quotaValue;
+ const nextValue = currentValue + e.key;
+
+ // 如果输入会导致数值超过999999,则阻止输入
+ if (nextValue && Number(nextValue) > 999999) {
+ e.preventDefault();
+ ElMessage.warning('输入值不能超过999999');
+ }
};
const baseTableRef = ref();
From bc44d81667d77b71a2662db703d565af9ec0da2d Mon Sep 17 00:00:00 2001
From: JiangSheng
Date: Mon, 9 Mar 2026 11:47:17 +0800
Subject: [PATCH 11/15] =?UTF-8?q?fix:=20=E5=88=B7=E6=96=B0=E4=BC=98?=
=?UTF-8?q?=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/tenants/lyric/views/project/workspaceTime.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/tenants/lyric/views/project/workspaceTime.vue b/src/tenants/lyric/views/project/workspaceTime.vue
index b7cdd8e7..86eccbf7 100644
--- a/src/tenants/lyric/views/project/workspaceTime.vue
+++ b/src/tenants/lyric/views/project/workspaceTime.vue
@@ -241,7 +241,7 @@ const updateSingleWorkspaceTimeFun = async (row: any, propertyName: string) => {
if (res && res.code === 200) {
ElMessage.success(t('通用.操作成功'));
- baseTableRef.value?.resetFun();
+ // baseTableRef.value?.resetFun();
}
} catch (error) {
console.error('更新失败', error);
From 2ec839def44fb58cd01fb393a75906e56c19d8ff Mon Sep 17 00:00:00 2001
From: dongzhihuan
Date: Mon, 9 Mar 2026 13:51:24 +0800
Subject: [PATCH 12/15] =?UTF-8?q?update=20bug1063=20=E4=BB=BF=E7=9C=9F?=
=?UTF-8?q?=E5=8F=82=E6=95=B0=E5=BA=93=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../parameter/components/addParamObject.vue | 18 +++++
src/views/simulation/parameter/index.vue | 76 +++++++++++--------
2 files changed, 64 insertions(+), 30 deletions(-)
diff --git a/src/views/simulation/parameter/components/addParamObject.vue b/src/views/simulation/parameter/components/addParamObject.vue
index c894ee49..f1d30cfe 100644
--- a/src/views/simulation/parameter/components/addParamObject.vue
+++ b/src/views/simulation/parameter/components/addParamObject.vue
@@ -7,13 +7,16 @@
v-model:data="formData"
showDisabled
:itemNum="6"
+ :hideKeys="hideKeys"
@change="changeFun"
+ @remove="removeFun"
:formAttrs="{
templateId: {
moduleCode: 'PARAM_APPROVAL',
},
files: {
accept: '.json',
+ multiple: false,
},
}"
/>
@@ -55,22 +58,37 @@ const closeFun = () => {
};
const onConfirmFun = async () => {
+ if (!formData.value.files.length) {
+ formData.value.templateId = '';
+ formData.value.templateName = '';
+ }
const valid = await tableFormRef.value?.validateFun();
if (valid) {
emits('createFun', formData.value);
}
};
+const hideKeys = ref(['templateId']);
+
const changeFun = (data: any) => {
const { key, val } = data;
if (key === 'files') {
formData.value.file = val.raw;
formData.value.fileName = val.name;
+ hideKeys.value = [];
}
if (key === 'templateId') {
formData.value.templateName = val.label;
}
};
+const removeFun = (data: any) => {
+ const { key } = data;
+ if (key === 'files') {
+ formData.value.file = '';
+ formData.value.fileName = '';
+ hideKeys.value = ['templateId'];
+ }
+};
onMounted(() => {
if (props.libTypeInfo) {
diff --git a/src/views/simulation/parameter/index.vue b/src/views/simulation/parameter/index.vue
index 24068ccc..cff845c5 100644
--- a/src/views/simulation/parameter/index.vue
+++ b/src/views/simulation/parameter/index.vue
@@ -434,6 +434,8 @@ const creatLibParamObjFun = async (data: any) => {
return item.name === data.parameterLibraryCategoryObjectName;
});
libTreeRef.value.append(node, currentNode.value.nodeKey);
+ } else {
+ ElMessage.warning(res.message);
}
showParamObjVisible.value = false;
};
@@ -454,15 +456,25 @@ const deleteConfirmFun = () => {
const deleteParamFun = async (flag: any, row?: any) => {
currentNode.value = { ...row };
- // 如果删除的是参数,要走审批流程
+ // 如果删除的是参数对象,
if (flag === 'param') {
- delParams.value = {
- // type: currentNode.value.type,
- // id: currentNode.value.id,
- type: row.type,
- id: row.id,
- };
- approveDelShow.value = true;
+ // 有参数 要走审批流程,没参数可以直接删
+ const res: any = await getSimulationParameterLibraryCategoryObjectApi({
+ ObjectId: row.id,
+ });
+ if (res && res.code === 200) {
+ if (res.data && res.data.parameterJsonValue && res.data.parameterJsonValue.length) {
+ delParams.value = {
+ type: row.type,
+ id: row.id,
+ };
+ approveDelShow.value = true;
+ } else {
+ // 直接删除
+ deleteAction(flag, row);
+ }
+ }
+
return;
} else {
// 0228需求 参数库、分类删除逻辑修改:下级有参数data=true,走审核流程;下级没有参数,直接删除
@@ -478,32 +490,36 @@ const deleteParamFun = async (flag: any, row?: any) => {
};
approveDelShow.value = true;
} else {
- // 走删除流程
- ElMessageBox.confirm(
- `确认要删除这个${flag === 'lib' ? '参数库' : flag === 'type' ? '参数库分类' : '参数对象'}吗?`,
- '警告',
- {
- confirmButtonText: '确认',
- cancelButtonText: '取消',
- type: 'warning',
- }
- ).then(async () => {
- const res: any = await deleteSimulationParameterApi({
- type: row.type,
- id: row.id,
- isApprove: false,
- });
- if (res && res.code === 200) {
- ElMessage.success('删除成功!');
- libTreeRef.value.remove(currentNode.value.nodeKey);
- currentNode.value = {};
- paramObjInfo.value = '';
- }
- });
+ deleteAction(flag, row);
}
}
};
+const deleteAction = (flag: any, row: any) => {
+ // 走删除流程
+ ElMessageBox.confirm(
+ `确认要删除这个${flag === 'lib' ? '参数库' : flag === 'type' ? '参数库分类' : '参数对象'}吗?`,
+ '警告',
+ {
+ confirmButtonText: '确认',
+ cancelButtonText: '取消',
+ type: 'warning',
+ }
+ ).then(async () => {
+ const res: any = await deleteSimulationParameterApi({
+ type: row.type,
+ id: row.id,
+ isApprove: false,
+ });
+ if (res && res.code === 200) {
+ ElMessage.success('删除成功!');
+ libTreeRef.value.remove(currentNode.value.nodeKey);
+ currentNode.value = {};
+ paramObjInfo.value = '';
+ }
+ });
+};
+
const updateParams = ref({});
const approveUpdateShow = ref(false);
const updateParamFun = () => {
From 19ef1180cab7946a6d1f31233752d336860e235a Mon Sep 17 00:00:00 2001
From: dongzhihuan
Date: Mon, 9 Mar 2026 14:25:02 +0800
Subject: [PATCH 13/15] =?UTF-8?q?update=20bug1063=20=E4=BB=BF=E7=9C=9F?=
=?UTF-8?q?=E5=8F=82=E6=95=B0=E5=BA=93=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/simulation/parameter/index.vue | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/views/simulation/parameter/index.vue b/src/views/simulation/parameter/index.vue
index cff845c5..64e9fbda 100644
--- a/src/views/simulation/parameter/index.vue
+++ b/src/views/simulation/parameter/index.vue
@@ -421,10 +421,12 @@ const creatLibParamObjFun = async (data: any) => {
parameterLibraryId: data.parameterLibraryId,
parameterLibraryCategoryId: data.parameterLibraryCategoryId,
parameterLibraryCategoryObjectName: data.parameterLibraryCategoryObjectName,
- fileName: data.fileName,
- file: data.file,
- templateId: data.templateId,
- templateName: data.templateName,
+ ...(data.file && {
+ fileName: data.fileName,
+ file: data.file,
+ templateId: data.templateId,
+ templateName: data.templateName,
+ }),
});
if (res && res.code === 200) {
From 1893f840c7c7cee476d7ea475b0966bc6d3fa1c0 Mon Sep 17 00:00:00 2001
From: dongzhihuan
Date: Mon, 9 Mar 2026 15:02:49 +0800
Subject: [PATCH 14/15] =?UTF-8?q?update=20=E4=BB=BB=E5=8A=A1=E8=AF=A6?=
=?UTF-8?q?=E6=83=85=E5=BC=B9=E7=AA=97=E5=A2=9E=E5=8A=A0=E6=93=8D=E4=BD=9C?=
=?UTF-8?q?=E6=97=A5=E5=BF=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/taskDetail/taskInfo.vue | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/components/taskDetail/taskInfo.vue b/src/components/taskDetail/taskInfo.vue
index 03db009d..c2c325c1 100644
--- a/src/components/taskDetail/taskInfo.vue
+++ b/src/components/taskDetail/taskInfo.vue
@@ -15,13 +15,14 @@
-
-
+
+
@@ -68,6 +69,9 @@ const formAttrs = ref({
step: 0.01,
},
});
+const searchParams = ref({
+ businessId: props.taskInfo.uuid,
+});
const localDetail = ref({});
@@ -186,7 +190,8 @@ onMounted(() => {});
}
}
.oprate-log {
- flex: 1;
+ // flex: 1;
+ height: calc(100% - 210px);
}
}
From d09a498332a0d243b289a33e1b61d7c56fdc9e23 Mon Sep 17 00:00:00 2001
From: dongzhihuan
Date: Mon, 9 Mar 2026 15:05:44 +0800
Subject: [PATCH 15/15] =?UTF-8?q?update=20=E6=93=8D=E4=BD=9C=E6=97=A5?=
=?UTF-8?q?=E5=BF=97=E6=9A=82=E4=B8=8D=E6=9B=B4=E6=96=B0=E5=88=B0=E7=8E=B0?=
=?UTF-8?q?=E5=9C=BA=EF=BC=8C=E5=85=88=E9=9A=90=E8=97=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/taskDetail/taskInfo.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/taskDetail/taskInfo.vue b/src/components/taskDetail/taskInfo.vue
index c2c325c1..e047f959 100644
--- a/src/components/taskDetail/taskInfo.vue
+++ b/src/components/taskDetail/taskInfo.vue
@@ -16,7 +16,7 @@
-