Merge branch 'hotfix' of http://carsafe.uicp.cn/Front_Team/SPDM into hotfix

This commit is contained in:
魏保林
2026-04-13 16:20:30 +08:00
10 changed files with 196 additions and 86 deletions

View File

@@ -75,3 +75,12 @@ export const queryFlowTemplateDetailApi = (params: any) => {
export const updateFlowTemplateUseStatusApi = (params: any) => {
return get(`${PREFIX}flow/setFlowTemplateStatus`, params);
};
/**
* 流程节点继续执行(完成人工节点/或者等待用户输入后继续手动执行的节点)
* @param params runId nodeId
* @returns
*/
export const continueServiceTaskApi = (params: any) => {
return get(`${PREFIX}flow/continueServiceTask`, params);
};

View File

@@ -65,7 +65,7 @@ export const webSubmitApi = (params: any) => {
/**
* hpc提交 -批量
* @param params uuid 前端约定的文件上传唯一id type 提交类型 single单独 batch批量 softwareId 软件id software 软件名称 jobName 作业名称 coreNum 计算核数 jobDesc 作业描述 hpcGroup 计算节点类型
* @param params uuid 前端约定的文件上传唯一id type 提交类型 single单独 batch批量 softwareId 软件id software 软件名称 jobName 作业名称 coreNum 计算核数 jobDesc 作业描述 hpcGroup 计算节点类型 selectDirName 选择文件夹名称
* @returns
*/
export const batchWebSubmitApi = (params: any) => {

View File

@@ -243,48 +243,49 @@ const barChart = (
option.color = color;
}
// 配置series
const len = series?.length ?? 0;
option.series =
series?.map((item: any) => {
// 设置type
if (!Reflect.has(item, 'type')) {
item.type = 'bar';
}
// 设置柱子宽度
item.barMaxWidth = '24px';
// if (!Reflect.has(item, 'barMaxWidth')) {
// item.barMaxWidth = '30px';
// }
// 1、柱子之间的距离
item.barGap = '0';
// 2、堆叠柱子宽度
// if (item.stack === 'total') {
// item.barMaxWidth = '30px';
// }
// 3、多个并列柱子 增加背景颜色
if (len > 1 && item.stack !== 'total') {
item.showBackground = true;
item.backgroundStyle = {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: 'rgba(160, 207, 255, 0.18)',
},
{
offset: 1,
color: 'rgba(160, 207, 255, 0.05)',
},
]),
};
} else {
item.showBackground = false;
}
return item;
}) ?? [];
const filteredSeries = (series || []).filter(Boolean);
const len = filteredSeries.length;
option.series = filteredSeries.map((item: any) => {
// 设置type
if (!Reflect.has(item, 'type')) {
item.type = 'bar';
}
// 设置柱子宽度
item.barMaxWidth = '24px';
// if (!Reflect.has(item, 'barMaxWidth')) {
// item.barMaxWidth = '30px';
// }
// 1、柱子之间的距离
item.barGap = '0';
// 2、堆叠柱子宽度
// if (item.stack === 'total') {
// item.barMaxWidth = '30px';
// }
// 3、多个并列柱子 增加背景颜色
if (len > 1 && item.stack !== 'total') {
item.showBackground = true;
item.backgroundStyle = {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: 'rgba(160, 207, 255, 0.18)',
},
{
offset: 1,
color: 'rgba(160, 207, 255, 0.05)',
},
]),
};
} else {
item.showBackground = false;
}
return item;
});
if (option) {
myChart[id].setOption(option);
}
};
const pieChart = (
id: string,
{ series, color, title, tooltip, legend, grid }: any,
@@ -367,44 +368,44 @@ const pieChart = (
}
}
option.series =
series.map((item: any) => {
const seriesObj = {
name: item.name,
type: 'pie',
radius: item.radius || ['40%', '70%'],
center: item.center ? item.center : ['50%', '60%'],
avoidLabelOverlap: false,
itemStyle: item.itemStyle || {
borderRadius: 5,
borderColor: commonEchartColor[isDark ? 'dark' : 'light'].tooltipBgColor,
borderWidth: 2,
option.series = (series || []).filter(Boolean).map((item: any) => {
const seriesObj = {
name: item.name || '',
type: 'pie',
radius: item.radius || ['40%', '70%'],
center: item.center ? item.center : ['50%', '60%'],
avoidLabelOverlap: false,
itemStyle: item.itemStyle || {
borderRadius: 5,
borderColor: commonEchartColor[isDark ? 'dark' : 'light'].tooltipBgColor,
borderWidth: 2,
},
label: item.label || {
show: false,
position: 'center',
},
emphasis: item.emphasis || {
label: {
show: true,
fontSize: 40,
fontWeight: 'bold',
},
label: item.label || {
show: false,
position: 'center',
},
emphasis: item.emphasis || {
label: {
show: true,
fontSize: 40,
fontWeight: 'bold',
},
},
labelLine: item.labelLine || {
show: false,
},
data: item.data,
};
if (!Reflect.has(item, 'type')) {
seriesObj.type = 'pie';
}
return seriesObj;
}) ?? [];
},
labelLine: item.labelLine || {
show: false,
},
data: item.data || [],
};
if (!Reflect.has(item, 'type')) {
seriesObj.type = 'pie';
}
return seriesObj;
});
if (option) {
myChart[id].setOption(option);
}
};
const lineChart = (
id: string,
{ title, tooltip, legend, grid, xAxis, yAxis, series, color, dataZoom, zoomShowNum = 5 }: any,
@@ -490,13 +491,12 @@ const lineChart = (
if (color) {
option.color = color;
}
option.series =
series.map((item: any) => {
if (!Reflect.has(item, 'type')) {
item.type = 'line';
}
return item;
}) ?? [];
option.series = (series || []).filter(Boolean).map((item: any) => {
if (!Reflect.has(item, 'type')) {
item.type = 'line';
}
return item;
});
if (option) {
myChart[id].setOption(option);
}

View File

@@ -140,6 +140,29 @@ export default [
},
],
},
{
title: '作业管理',
path: '/job',
name: 'Job',
icon: Icons['Monitor'],
children: [
{
title: '作业提交',
path: '/job/submit',
name: 'JobSubmit',
},
// {
// title: '作业列表',
// path: '/job/list',
// name: 'JobList',
// },
// {
// title: '计算资源',
// path: '/job/resources',
// name: 'JobResources',
// },
],
},
{
title: '数据管理',
path: '/data',

View File

@@ -87,6 +87,31 @@ export default [
},
],
},
{
title: '作业管理',
path: '/job',
name: 'Job',
children: [
{
title: '作业提交',
path: '/job/submit',
name: 'JobSubmit',
component: () => import('@/views/job/jobSubmit/index.vue'),
},
// {
// title: '作业列表',
// path: '/job/list',
// name: 'JobList',
// component: () => import('@/views/job/JobList/index.vue'),
// },
// {
// title: '计算资源',
// path: '/job/resources',
// name: 'JobResources',
// component: () => import('@/views/job/JobResources/index.vue'),
// },
],
},
{
title: '任务管理',
path: '/task',

View File

@@ -145,6 +145,29 @@ export default [
},
],
},
{
title: '作业管理',
path: '/job',
name: 'Job',
icon: Icons['Monitor'],
children: [
{
title: '作业提交',
path: '/job/submit',
name: 'JobSubmit',
},
// {
// title: '作业列表',
// path: '/job/list',
// name: 'JobList',
// },
// {
// title: '计算资源',
// path: '/job/resources',
// name: 'JobResources',
// },
],
},
{
title: '数据管理',
path: '/data',

View File

@@ -87,6 +87,31 @@ export default [
},
],
},
{
title: '作业管理',
path: '/job',
name: 'Job',
children: [
{
title: '作业提交',
path: '/job/submit',
name: 'JobSubmit',
component: () => import('@/views/job/jobSubmit/index.vue'),
},
// {
// title: '作业列表',
// path: '/job/list',
// name: 'JobList',
// component: () => import('@/views/job/JobList/index.vue'),
// },
// {
// title: '计算资源',
// path: '/job/resources',
// name: 'JobResources',
// component: () => import('@/views/job/JobResources/index.vue'),
// },
],
},
{
title: '任务管理',
path: '/task',
@@ -328,8 +353,7 @@ export default [
title: '异常案例库',
path: '/competenceCenter/exceptionCase',
name: 'CompetenceCenterExceptionCase',
component: () =>
import('@/tenants/lyric/views/competenceCenter/exceptionCase/index.vue'),
component: () => import('@/tenants/lyric/views/competenceCenter/exceptionCase/index.vue'),
},
// {
// title: '仿真流程创建',

View File

@@ -330,9 +330,9 @@ export const submitUploadBigFile = (params: any, files: any) => {
files.forEach((item: any, index: any) => {
const sourceFileName = item.raw?.name;
const webkitRelativePath = item.raw?.webkitRelativePath || '';
const selectDirName = webkitRelativePath ? webkitRelativePath.split(',')[0] : null;
const selectDirName = webkitRelativePath ? webkitRelativePath.split('/')[0] : null;
const selectFilePath = webkitRelativePath
? webkitRelativePath.replace(sourceFileName, '').replace(selectDirName, '')
? webkitRelativePath.replace(sourceFileName, '')
: null;
emitter.emit('ADD_UPLOAD_FILE', {
file: item.raw,

View File

@@ -160,6 +160,7 @@ const formData = reactive<any>({
hpcGroup: '',
coreNum: 4,
type: 'single',
selectDirName: '',
jobName: '计算作业' + new Date().getTime(),
masterFile: [],
attachFileType: 0,
@@ -181,6 +182,7 @@ const resetFormFun = () => {
software: '',
hpcGroup: '',
coreNum: 4,
selectDirName: '',
type: 'single',
jobName: '计算作业' + new Date().getTime(),
masterFile: [],
@@ -202,12 +204,12 @@ const submitFun = async () => {
delete params.masterFile;
delete params.attachFile;
const files = formData.masterFile.concat(formData.attachFile);
const webkitRelativePath = files[0]?.raw?.webkitRelativePath;
params.selectDirName = webkitRelativePath ? webkitRelativePath.split('/')[0] : '';
localStorage.setItem('SUBMIT_JOB_INFO', JSON.stringify(params));
submitUploadBigFile(params, files);
console.log(formData, 'formData');
console.log(params, 'params');
submitUploadBigFile(params, files);
// resetFormFun();
};

View File

@@ -63,6 +63,10 @@ const getStyleFun = (flag: any) => {
color: '#67c23a',
title: '已完成',
},
success: {
color: '#67c23a',
title: '已完成',
},
file_uploading: {
color: '#67c23a',
title: '文件上行',