This commit is contained in:
JiangSheng
2025-11-21 17:53:28 +08:00
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);
};
/**
* 获取项目任务下的算例信息
* @param params
* @returns
*/
export const getTaskRunTreeApi = (params: any) => {
return post(`${PREFIX}run/getTaskRunTree`, params);
};
/**
* 获取用户工作负载信息
* @param params
@@ -47,57 +38,3 @@ export const getListUserWorkloadsApi = (params: any) => {
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 G6 from '@antv/g6';
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(
defineProps<{
versionNode:any;
versionNode:versionNodeItem[];
treeData: any;
versionIndex: any;
graphLoading: any;
currentVersion: any;
showVisionSelect: any;
graphLoading: boolean;
currentVersion: string;
showVisionSelect: boolean;
showElementList: any;
showImg: any;
currentNodeIndex: any;
showImg: boolean;
currentNodeIndex: number;
}>(),
{
versionIndex: 0,
@@ -159,7 +162,7 @@ const registerNode = () => {
y: 130 + 100 * index + 22,
width: 50,
height: 50,
img: UserIcon,
img: '',
},
// 在 G6 3.3 及之后的版本中,必须指定 name可以是任意字符串但需要在同一个自定义元素类型中保持唯一性
name: 'image-shape' + index,
@@ -174,7 +177,7 @@ const registerNode = () => {
y: 130 + 100 * index + 22,
width: 50,
height: 50,
img: UserIcon,
img: '',
},
// 在 G6 3.3 及之后的版本中,必须指定 name可以是任意字符串但需要在同一个自定义元素类型中保持唯一性
name: 'image-shape' + index,
@@ -237,7 +240,7 @@ const registerNode = () => {
y: 40,
width: 60,
height: 60,
img: NavigationIcon,
img: '',
cursor: 'pointer',
},
// 在 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'),
},
{
title: '工作负载',
path: '/task/workLoad',
name: 'TaskWorkLoad',
component: () => import('@/views/task/workLoad/idnex.vue'),
},
],
},

View File

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

View File

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

View File

@@ -157,7 +157,7 @@ import filterProject from '../filterProject/index.vue';
import { NODE_TYPE } from '@/utils/enum/node';
import { Folder, Document, ScaleToOriginal } from '@element-plus/icons-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 tableId = ref(new Date().getTime());

View File

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

View File

@@ -28,7 +28,7 @@
</template>
<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 BaseTable from '@/components/common/table/baseTable.vue';
import { ElMessage } from 'element-plus';

View File

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