update:更新工作负载界面,api调整

This commit is contained in:
2025-11-21 17:34:35 +08:00
parent da6a9597cd
commit 78251f857a
11 changed files with 159 additions and 121 deletions

85
src/api/project/run.ts Normal file
View File

@@ -0,0 +1,85 @@
import { post, upload } from '@/api/request';
const env = import.meta.env;
const PREFIX = env.VITE_API_PREFIX_PROJECT;
/**
* 获取项目任务下的算例信息
* @param params
* @returns
*/
export const getTaskRunTreeApi = (params: any) => {
return post(`${PREFIX}run/getTaskRunTree`, params);
};
/**
* 新建算例
* @param params
* @returns
*/
export const addTaskRunApi = (params: any) => {
return post(`${PREFIX}run/addTaskRun`, params);
};
/**
* 查询算例信息
* @param params
* @returns
*/
export const queryTaskRunApi = (params: any) => {
return post(`${PREFIX}run/queryTaskRun`, params);
};
/**
* 创建算例下的结果文件夹
* @param params dirName文件夹名称 dirType文件夹类型默认2 uuId算例的uuid
* @returns
*/
export const createRunDirApi = (params: any) => {
return post(`${PREFIX}run/createRunDir`, params);
};
/**
* 查询算例结果文件夹及文件
* @param params uuId算例的uuid size 10 current 1
* @returns
*/
export const queryRunDirApi = (params: any) => {
return post(`${PREFIX}run/queryRunDir`, params);
};
/**
* 上传算例结果文件
* @param params file文件 dirId文件夹id fileName文件名称 fileType 1模型文件 2仿真报告 3计算文件 4曲线文件 5云图文件
* @returns
*/
export const uploadRunFilesApi = (params: any) => {
return upload(`${PREFIX}run/uploadRunFiles`, params);
};
/**
* 删除算例
* @param params runId 算例的id
* @returns
*/
export const deleteTaskRunApi = (params: any) => {
return post(`${PREFIX}run/deleteTaskRun`, params);
};
/**
* 查询任务下的算例版本树
* @param params taskId算例uuid
* @returns
*/
export const getTaskRunVersionApi = (params: any) => {
return post(`${PREFIX}run/getTaskRunVersion`, params);
};
/**
* 查询算例版本树
* @param params runId算例的uuid
* @returns
*/
export const getRunVersionApi = (params: any) => {
return post(`${PREFIX}run/getRunVersion`, params);
};

View File

@@ -29,15 +29,6 @@ export const getTaskCountApi = (params: any) => {
return post(`${PREFIX}task/count`, params); return post(`${PREFIX}task/count`, params);
}; };
/**
* 获取项目任务下的算例信息
* @param params
* @returns
*/
export const getTaskRunTreeApi = (params: any) => {
return post(`${PREFIX}run/getTaskRunTree`, params);
};
/** /**
* 获取用户工作负载信息 * 获取用户工作负载信息
* @param params * @param params
@@ -47,57 +38,3 @@ export const getListUserWorkloadsApi = (params: any) => {
return post(`${PREFIX}task/listUserWorkloads`, params); return post(`${PREFIX}task/listUserWorkloads`, params);
}; };
/**
* 新建算例
* @param params
* @returns
*/
export const addTaskRunApi = (params: any) => {
return post(`${PREFIX}run/addTaskRun`, params);
};
/**
* 查询算例信息
* @param params
* @returns
*/
export const queryTaskRunApi = (params: any) => {
return post(`${PREFIX}run/queryTaskRun`, params);
};
/**
* 创建算例下的结果文件夹
* @param params dirName文件夹名称 dirType文件夹类型默认2 uuId算例的uuid
* @returns
*/
export const createRunDirApi = (params: any) => {
return post(`${PREFIX}run/createRunDir`, params);
};
/**
* 查询算例结果文件夹及文件
* @param params uuId算例的uuid size 10 current 1
* @returns
*/
export const queryRunDirApi = (params: any) => {
return post(`${PREFIX}run/queryRunDir`, params);
};
/**
* 上传算例结果文件
* @param params file文件 dirId文件夹id fileName文件名称 fileType 1模型文件 2仿真报告 3计算文件 4曲线文件 5云图文件
* @returns
*/
export const uploadRunFilesApi = (params: any) => {
return upload(`${PREFIX}run/uploadRunFiles`, params);
};
/**
* 删除算例
* @param params runId 算例的id
* @returns
*/
export const deleteTaskRunApi = (params: any) => {
return post(`${PREFIX}run/deleteTaskRun`, params);
};

View File

@@ -15,20 +15,23 @@
import { ref, nextTick, watchEffect, onBeforeUnmount } from 'vue'; import { ref, nextTick, watchEffect, onBeforeUnmount } from 'vue';
import G6 from '@antv/g6'; import G6 from '@antv/g6';
import { random } from 'lodash'; import { random } from 'lodash';
import UserIcon from '@/assets/imgs/versionTree/user.svg';
import NavigationIcon from '@/assets/imgs/versionTree/skip.png'; interface versionNodeItem {
label: string;
isOmit?: boolean;
}
const props = withDefaults( const props = withDefaults(
defineProps<{ defineProps<{
versionNode:any; versionNode:versionNodeItem[];
treeData: any; treeData: any;
versionIndex: any; versionIndex: any;
graphLoading: any; graphLoading: boolean;
currentVersion: any; currentVersion: string;
showVisionSelect: any; showVisionSelect: boolean;
showElementList: any; showElementList: any;
showImg: any; showImg: boolean;
currentNodeIndex: any; currentNodeIndex: number;
}>(), }>(),
{ {
versionIndex: 0, versionIndex: 0,
@@ -159,7 +162,7 @@ const registerNode = () => {
y: 130 + 100 * index + 22, y: 130 + 100 * index + 22,
width: 50, width: 50,
height: 50, height: 50,
img: UserIcon, img: '',
}, },
// 在 G6 3.3 及之后的版本中,必须指定 name可以是任意字符串但需要在同一个自定义元素类型中保持唯一性 // 在 G6 3.3 及之后的版本中,必须指定 name可以是任意字符串但需要在同一个自定义元素类型中保持唯一性
name: 'image-shape' + index, name: 'image-shape' + index,
@@ -174,7 +177,7 @@ const registerNode = () => {
y: 130 + 100 * index + 22, y: 130 + 100 * index + 22,
width: 50, width: 50,
height: 50, height: 50,
img: UserIcon, img: '',
}, },
// 在 G6 3.3 及之后的版本中,必须指定 name可以是任意字符串但需要在同一个自定义元素类型中保持唯一性 // 在 G6 3.3 及之后的版本中,必须指定 name可以是任意字符串但需要在同一个自定义元素类型中保持唯一性
name: 'image-shape' + index, name: 'image-shape' + index,
@@ -237,7 +240,7 @@ const registerNode = () => {
y: 40, y: 40,
width: 60, width: 60,
height: 60, height: 60,
img: NavigationIcon, img: '',
cursor: 'pointer', cursor: 'pointer',
}, },
// 在 G6 3.3 及之后的版本中,必须指定 name可以是任意字符串但需要在同一个自定义元素类型中保持唯一性 // 在 G6 3.3 及之后的版本中,必须指定 name可以是任意字符串但需要在同一个自定义元素类型中保持唯一性

View File

@@ -93,6 +93,12 @@ export default [
// component: () => import('@/views/task/execution/index.vue'), // component: () => import('@/views/task/execution/index.vue'),
component: () => import('@/views/task/execution/index.vue'), component: () => import('@/views/task/execution/index.vue'),
}, },
{
title: '工作负载',
path: '/task/workLoad',
name: 'TaskWorkLoad',
component: () => import('@/views/task/workLoad/idnex.vue'),
},
], ],
}, },

View File

@@ -65,6 +65,7 @@ const lang = {
'用户组管理': 'User Group Management', '用户组管理': 'User Group Management',
'应用管理': 'Application Management', '应用管理': 'Application Management',
'动态表格': 'Dynamic Table', '动态表格': 'Dynamic Table',
'工作负载': 'Work Load',
}, },
'表格': { '表格': {
'查询': 'Search', '查询': 'Search',

View File

@@ -65,6 +65,7 @@ const lang = {
'用户组管理': '用户组管理', '用户组管理': '用户组管理',
'应用管理': '应用管理', '应用管理': '应用管理',
'动态表格': '动态表格', '动态表格': '动态表格',
'工作负载': '工作负载',
}, },
'表格': { '表格': {
'查询': '查询', '查询': '查询',

View File

@@ -157,7 +157,7 @@ import filterProject from '../filterProject/index.vue';
import { NODE_TYPE } from '@/utils/enum/node'; import { NODE_TYPE } from '@/utils/enum/node';
import { Folder, Document, ScaleToOriginal } from '@element-plus/icons-vue'; import { Folder, Document, ScaleToOriginal } from '@element-plus/icons-vue';
import createRunDiv from './operateComponent/createRunDiv.vue'; import createRunDiv from './operateComponent/createRunDiv.vue';
import { addTaskRunApi, createRunDirApi, deleteTaskRunApi, getTaskRunTreeApi, queryTaskRunApi } from '@/api/project/task'; import { addTaskRunApi, createRunDirApi, deleteTaskRunApi, getTaskRunTreeApi, queryTaskRunApi } from '@/api/project/run';
const emits = defineEmits(['nodeClickFn']); const emits = defineEmits(['nodeClickFn']);
const tableId = ref(new Date().getTime()); const tableId = ref(new Date().getTime());

View File

@@ -160,7 +160,6 @@ watch(() => props.runInfo, (newVal) => {
if (newVal) { if (newVal) {
currentRunNodeInfo.value = newVal; currentRunNodeInfo.value = newVal;
console.log(newVal, 'newVal');
} }
}, { }, {

View File

@@ -28,7 +28,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { queryRunDirApi, uploadRunFilesApi } from '@/api/project/task'; import { queryRunDirApi, uploadRunFilesApi } from '@/api/project/run';
import { ref, defineProps, watch, nextTick, onMounted } from 'vue'; import { ref, defineProps, watch, nextTick, onMounted } from 'vue';
import BaseTable from '@/components/common/table/baseTable.vue'; import BaseTable from '@/components/common/table/baseTable.vue';
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';

View File

@@ -2,15 +2,10 @@
<div class="tree-page"> <div class="tree-page">
<versionPreview <versionPreview
@skip-run="skipRun" @skip-run="skipRun"
:current-node-index="1" :treeData="versionObjJson"
:current-version="currentVersion" :versionNode="versionNode"
:graph-loading="graphLoading" :graphLoading="graphLoading"
:show-element-list="{}" :currentVersion="currentVersion"
:show-img="true"
:show-vision-select="false"
:tree-data="versionObjJson"
:version-index="0"
:version-node="versionNode"
> >
</versionPreview> </versionPreview>
@@ -20,8 +15,8 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, defineProps, defineEmits, watch } from 'vue'; import { ref, defineProps, defineEmits, watch } from 'vue';
import versionPreview from '@/components/common/versionPreview/index.vue'; import versionPreview from '@/components/common/versionPreview/index.vue';
import { ElMessage } from 'element-plus';
import { TasksStatusClass, TasksStatusColor } from '@/utils/enum/task'; import { TasksStatusClass, TasksStatusColor } from '@/utils/enum/task';
import { getRunVersionApi, getTaskRunVersionApi } from '@/api/project/run';
const props = defineProps({ const props = defineProps({
currentTaskInfo: { currentTaskInfo: {
@@ -62,47 +57,47 @@ const versionObjJson = ref<any>({});
const visionTreeData = ref<any>([]); const visionTreeData = ref<any>([]);
const getTreeData = async (taskIdentity: any) => { const getTreeData = async (task: any) => {
graphLoading.value = true; graphLoading.value = true;
const param = {
taskIdentity,
};
try {
// const res = await appManagerServices.getTaskVersionTree(param);
const res:any = { success: true };
if (res.success) {
currentVersion.value = '';
visionTreeData.value = [res.data.root];
formatVersionData(visionTreeData.value);
versionObjJson.value.children = visionTreeData.value; let res:any;
versionObjJson.value.description = ''; if (task.nodeType === 'run') {
versionObjJson.value.name = 'root'; res = await getRunVersionApi({
versionObjJson.value.status = null; runId: task.uuid,
versionObjJson.value.createTime = ''; });
versionObjJson.value.id = 'root';
console.log(versionObjJson.value, 'versionObjJson.value');
graphLoading.value = false;
} else {
ElMessage.error(res.reason);
}
} catch (error) {
console.log(error);
} else {
res = await getTaskRunVersionApi({
taskId: task.uuid,
});
} }
if (res && res.code === 200) {
currentVersion.value = '';
visionTreeData.value = [res.data];
formatVersionData(visionTreeData.value);
versionObjJson.value.children = visionTreeData.value;
versionObjJson.value.description = '';
versionObjJson.value.name = 'root';
versionObjJson.value.status = null;
versionObjJson.value.createTime = '';
versionObjJson.value.id = 'root';
graphLoading.value = false;
}
}; };
const formatVersionData = (arr: any, isCreate: boolean = false) => { const formatVersionData = (arr: any, isCreate: boolean = false) => {
arr.forEach((item: any) => { arr.forEach((item: any) => {
item.id = item.task_identity + ''; item.id = item.uuid + '';
item.name = item.task_name; item.name = item.runName;
item.createTime = item.create_time; item.createTime = item.createTime;
item.description = item.task_comment; item.description = item.description;
item.taskStatus = getVersionStatusMap(item.task_status); item.taskStatus = getVersionStatusMap(item.status);
item.creator = item.creator; item.creator = item.creatorName;
item.resultLoadcaseId = item.app_identity; // item.resultLoadcaseId = item.taskId;
if (item.children?.length > 0) { if (item.children?.length > 0) {
formatVersionData(item.children, isCreate); formatVersionData(item.children, isCreate);
} }
@@ -163,7 +158,7 @@ const skipRun = (info:any) => {
watch(() => props.currentTaskInfo, async (newVal) => { watch(() => props.currentTaskInfo, async (newVal) => {
if (newVal) { if (newVal) {
await getTreeData(newVal.id); await getTreeData(newVal);
} }
}, { }, {

View File

@@ -0,0 +1,11 @@
<template>
<div class="gl-page-content">工作负载</div>
</template>
<script setup lang="ts">
import { ref, defineProps, defineEmits } from 'vue';
</script>
<style lang="scss" scoped>
</style>