update code
parent
0b63423b3b
commit
df47cc4124
|
@ -16,7 +16,16 @@ const doDeploy=(data)=>{
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const startInference=(data)=>{
|
||||||
|
return request({
|
||||||
|
url:'/inference/start',
|
||||||
|
method:'post',
|
||||||
|
data:data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default{
|
export default{
|
||||||
doCompile,
|
doCompile,
|
||||||
doDeploy
|
doDeploy,
|
||||||
|
startInference
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,28 +1,36 @@
|
||||||
import request from "@/utils/request";
|
import request from "@/utils/request";
|
||||||
|
//获取任务列表
|
||||||
const tasks=()=>{
|
const tasks=()=>{
|
||||||
return request({
|
return request({
|
||||||
url:'/tasks',
|
url:'/tasks',
|
||||||
method:'get'
|
method:'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
//获取可用的设备状态
|
||||||
const availableDevices=()=>{
|
const availableDevices=()=>{
|
||||||
return request({
|
return request({
|
||||||
url:'/tasks/available_devices',
|
url:'/tasks/available_devices',
|
||||||
method:'get'
|
method:'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
//获取正在执行的任务
|
||||||
const running=()=>{
|
const running=()=>{
|
||||||
return request({
|
return request({
|
||||||
url:'/tasks/running',
|
url:'/tasks/running',
|
||||||
method:'get'
|
method:'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
//创建推理任务
|
||||||
|
const addTask=(data)=>{
|
||||||
|
return request({
|
||||||
|
url:'/tasks',
|
||||||
|
method: 'post',
|
||||||
|
data:data
|
||||||
|
})
|
||||||
|
}
|
||||||
export default{
|
export default{
|
||||||
tasks,
|
tasks,
|
||||||
availableDevices,
|
availableDevices,
|
||||||
running
|
running,
|
||||||
|
addTask
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,81 +1,89 @@
|
||||||
<template>
|
<template>
|
||||||
<el-card style="margin-top:12px;position: relative;" class="simulation-add-add-step4">
|
<el-card style="margin-top:12px;position: relative;" class="simulation-add-add-step4">
|
||||||
<template #header>
|
<template #header>
|
||||||
<span>数据集列表</span>
|
<span>数据集列表</span>
|
||||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true" style="flex-grow: 1;text-align: right;position: absolute;top:4px;right:0px;">
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true"
|
||||||
<el-form-item label="" prop="keywords">
|
style="flex-grow: 1;text-align: right;position: absolute;top:4px;right:0px;">
|
||||||
<el-input v-model="queryParams.keywords" placeholder="请输入数据集名称" clearable style="width: 250px" />
|
<el-form-item label="" prop="dataset_name">
|
||||||
</el-form-item>
|
<el-input v-model="queryParams.dataset_name" placeholder="请输入数据集名称" clearable style="width: 250px" />
|
||||||
<el-form-item>
|
</el-form-item>
|
||||||
<el-button type="primary" @click="handleQuery"><i-ep-search />搜索</el-button>
|
<el-form-item>
|
||||||
</el-form-item>
|
<el-button type="primary" @click="handleQuery"><i-ep-search />搜索</el-button>
|
||||||
</el-form>
|
</el-form-item>
|
||||||
</template>
|
</el-form>
|
||||||
<el-table v-loading="loading" :data="tableData" stripe @row-click="doRowClick">
|
</template>
|
||||||
<el-table-column align="center" width="55" label="选择">
|
<el-table v-loading="loading" :data="info.tableData" stripe @row-click="doRowClick">
|
||||||
<template #default="scope">
|
<el-table-column align="center" width="55" label="选择">
|
||||||
<el-radio v-model="datasSelection" :label="scope.row.id + ''"
|
<template #default="scope">
|
||||||
@change="handleChange(scope.row)"> </el-radio>
|
<el-radio v-model="datasSelection" :label="scope.row.dataset_id + ''"
|
||||||
</template>
|
@change="handleChange(scope.row)"> </el-radio>
|
||||||
</el-table-column>
|
</template>
|
||||||
<el-table-column label="数据集名称" align="left" prop="datasName" />
|
</el-table-column>
|
||||||
<el-table-column label="版本" align="left" prop="ver" width="80"/>
|
<el-table-column label="数据集名称" align="left" prop="dataset_name" />
|
||||||
<el-table-column label="数据集说明" align="left" prop="desc" />
|
<el-table-column label="版本" align="left" prop="dataset_version" width="80" />
|
||||||
|
<el-table-column label="数据集说明" align="left" prop="dataset_desc" show-overflow-tooltip />
|
||||||
|
|
||||||
<el-table-column label="适用任务类型" align="left" prop="planType" />
|
<el-table-column label="适用任务类型" align="left" prop="modl_sub_type" />
|
||||||
<el-table-column label="图片数量" align="left" prop="imgCount" width="120" />
|
<el-table-column label="图片数量" align="left" prop="frame_count" width="120" />
|
||||||
<el-table-column label="图片格式" width="120" align="left" prop="imgFmt" />
|
<el-table-column label="数据集格式" width="120" align="left" prop="dats_dataset_format" />
|
||||||
<el-table-column label="创建时间" align="left" prop="createTime" />
|
<el-table-column label="创建时间" align="left" prop="createTime" />
|
||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
<pagination v-if="total > 0" v-model:total="total" v-model:page="queryParams.pageNum"
|
<pagination v-if="total > 0" v-model:total="total" v-model:page="queryParams.pageNum"
|
||||||
v-model:limit="queryParams.pageSize" @pagination="handleQuery" />
|
v-model:limit="queryParams.pageSize" @pagination="handleQuery" />
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import dataSetApi from '@/api/dataSet'
|
||||||
const datasSelection = ref("")//单选id
|
const datasSelection = ref("")//单选id
|
||||||
const loading=ref(false)
|
const loading = ref(false)
|
||||||
const queryFormRef=ref()
|
const queryFormRef = ref()
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
keywords:''
|
dataset_name: ''
|
||||||
});
|
});
|
||||||
|
const info = reactive({
|
||||||
|
tableData: []
|
||||||
const total=ref(100)
|
})
|
||||||
|
let total = ref(100)
|
||||||
/** 查询 */
|
/** 查询 */
|
||||||
function handleQuery(a) {
|
function handleQuery(a) {
|
||||||
queryParams.pageSize=a.limit;
|
if (a) {
|
||||||
ElMessage.success("查询成功");
|
queryParams.pageSize = a.limit;
|
||||||
|
queryParams.pageNum = a.page;
|
||||||
|
}
|
||||||
|
loading.value = true;
|
||||||
|
dataSetApi.list(queryParams).then(d => {
|
||||||
|
loading.value = false;
|
||||||
|
total.value = d.data?.data?.total || 0;
|
||||||
|
info.tableData = d.data?.data?.raw_dataset_list || [];
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const handleChange = (row) => {
|
const handleChange = (row) => {
|
||||||
datasSelection.value = row.id + "";
|
datasSelection.value = row.dataset_id + "";
|
||||||
}
|
}
|
||||||
const doRowClick=(row,col,sel)=>{
|
const doRowClick = (row, col, sel) => {
|
||||||
datasSelection.value=row.id+"";
|
datasSelection.value = row.dataset_id + "";
|
||||||
}
|
}
|
||||||
let tableData=reactive([
|
|
||||||
{id:"1",datasName:"人员检测数据集1",ver:'V1',desc:'一些数据集说明',planType:'图像检测',imgCount:435566,imgFmt:'RGB24',createTime:'2024-06-09 18:32:13'},
|
|
||||||
{id:"2",datasName:"人员检测数据集2",ver:'V1',desc:'一些数据集说明',planType:'图像检测',imgCount:435566,imgFmt:'RGB24',createTime:'2024-06-09 18:32:13'},
|
|
||||||
{id:"3",datasName:"人员检测数据集3",ver:'V1',desc:'一些数据集说明',planType:'图像检测',imgCount:435566,imgFmt:'RGB24',createTime:'2024-06-09 18:32:13'},
|
|
||||||
{id:"4",datasName:"人员检测数据集4",ver:'V1',desc:'一些数据集说明',planType:'图像检测',imgCount:435566,imgFmt:'RGB24',createTime:'2024-06-09 18:32:13'},
|
|
||||||
{id:"5",datasName:"人员检测数据集5",ver:'V1',desc:'一些数据集说明',planType:'图像检测',imgCount:435566,imgFmt:'RGB24',createTime:'2024-06-09 18:32:13'},
|
|
||||||
])
|
|
||||||
|
|
||||||
const checkForm=()=>{
|
|
||||||
if(datasSelection.value){
|
const checkForm = () => {
|
||||||
let tmps=tableData.filter(d=>d.id==datasSelection.value);
|
if (datasSelection.value) {
|
||||||
return tmps.length>0?tmps[0]:null;
|
let tmps = info.tableData.filter(d => d.dataset_id == datasSelection.value);
|
||||||
}
|
return tmps.length > 0 ? tmps[0] : null;
|
||||||
return null;
|
}
|
||||||
|
return null;
|
||||||
};
|
};
|
||||||
|
onMounted(() => {
|
||||||
|
handleQuery();
|
||||||
|
});
|
||||||
defineExpose({
|
defineExpose({
|
||||||
checkForm
|
checkForm
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang='scss'>
|
<style lang='scss'></style>
|
||||||
</style>
|
|
|
@ -18,9 +18,11 @@
|
||||||
<el-button type="primary" v-if="active == 3 && state == 0" @click="doCompile">编译部署</el-button>
|
<el-button type="primary" v-if="active == 3 && state == 0" @click="doCompile">编译部署</el-button>
|
||||||
<el-button type="primary" v-if="active == 3 && state == 1" loading disabled>编译中...</el-button>
|
<el-button type="primary" v-if="active == 3 && state == 1" loading disabled>编译中...</el-button>
|
||||||
<el-button type="primary" v-if="active == 3 && state == 2" loading disabled>部署中...</el-button>
|
<el-button type="primary" v-if="active == 3 && state == 2" loading disabled>部署中...</el-button>
|
||||||
<el-button type="primary" v-if="active == 4" @click="doStart">开始</el-button>
|
<el-button type="primary" v-if="active == 4" @click="doStart" :loading="state > 0" :disabled="state > 0">{{ state
|
||||||
<el-button type="primary" v-if="active > 0 && active <= 4 && active != 3" @click="doPrev">上一步</el-button>
|
==
|
||||||
<template v-if="active == 3 && (state == 0 || state == 3)">
|
0 ? "开始推理" : "推理中..." }}</el-button>
|
||||||
|
<el-button type="primary" v-if="active > 0 && active < 3 && active != 3" @click="doPrev">上一步</el-button>
|
||||||
|
<template v-if="(active == 3 && (state == 0 || state == 3)) || (active == 4 && state == 0)">
|
||||||
<el-button type="primary" @click="doPrev">上一步</el-button>
|
<el-button type="primary" @click="doPrev">上一步</el-button>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="active == 3 && state == 3">
|
<template v-if="active == 3 && state == 3">
|
||||||
|
@ -34,6 +36,7 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import inferenceApi from '@/api/inference'
|
import inferenceApi from '@/api/inference'
|
||||||
import logsApi from '@/api/log'
|
import logsApi from '@/api/log'
|
||||||
|
import taskApi from '@/api/task'
|
||||||
import request from 'axios'
|
import request from 'axios'
|
||||||
import addStep1 from './addStep1.vue'
|
import addStep1 from './addStep1.vue'
|
||||||
import addStep2 from './addStep2.vue'
|
import addStep2 from './addStep2.vue'
|
||||||
|
@ -53,19 +56,59 @@ let info = reactive({
|
||||||
taskInfo: null,
|
taskInfo: null,
|
||||||
optIds: [],
|
optIds: [],
|
||||||
logs: [],
|
logs: [],
|
||||||
|
datas: null,
|
||||||
|
taskId: 0,
|
||||||
|
inferenceId: 0,
|
||||||
})
|
})
|
||||||
|
//开始推理
|
||||||
const doStart = () => {
|
const doStart = () => {
|
||||||
let tmp = step4.value.checkForm();
|
let tmp = step4.value.checkForm();
|
||||||
if (tmp) {
|
if (tmp) {
|
||||||
datas = tmp;
|
info.datas = tmp;
|
||||||
ElMessage.success("开始执行!");
|
state.value = 1;
|
||||||
setTimeout(() => {
|
//startInference();
|
||||||
router.push({ path: "/simulationEvaluation/execution" });
|
doAddTask();
|
||||||
}, 1000);
|
|
||||||
} else {
|
} else {
|
||||||
ElMessage.error("请选择数据集!");
|
ElMessage.error("请选择数据集!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const doAddTask = () => {
|
||||||
|
let postData = {
|
||||||
|
task_name: info.taskInfo.taskName,
|
||||||
|
task_desc: info.taskInfo.taskDesc,
|
||||||
|
infr_task_type: info.taskInfo.taskType,
|
||||||
|
model_id: modelInfo.model_id,
|
||||||
|
connection_id: modelInfo.connection_id,
|
||||||
|
data_set_id: info.datas.dataset_id,
|
||||||
|
task_params: {},
|
||||||
|
device_list: info.devices.map(it => {
|
||||||
|
return {
|
||||||
|
device_id: it.device_id,
|
||||||
|
tool_params_id: it.tool_params_id,
|
||||||
|
tool_id: it.tool_id
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
taskApi.addTask(postData).then(d => {
|
||||||
|
info.taskId = d.data?.data?.task_id || 0;
|
||||||
|
startInference()
|
||||||
|
});
|
||||||
|
};
|
||||||
|
//开始推理
|
||||||
|
const startInference = () => {
|
||||||
|
//创建推理任务
|
||||||
|
let postData = {}
|
||||||
|
inferenceApi.startInference(postData).then(d => {
|
||||||
|
info.inferenceId = d.data?.data?.operation_id || 0;
|
||||||
|
if (info.inferenceId > 0) {
|
||||||
|
ElMessage.success("创建推理任务成功!");
|
||||||
|
setTimeout(() => {
|
||||||
|
router.push({ path: "/simulationEvaluation/execution" });
|
||||||
|
}, 1000);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
const doCompile = () => {
|
const doCompile = () => {
|
||||||
let tmp = step3.value.checkForm();
|
let tmp = step3.value.checkForm();
|
||||||
if (tmp) {
|
if (tmp) {
|
||||||
|
@ -208,6 +251,7 @@ const doNext = () => {
|
||||||
}
|
}
|
||||||
} else if (active.value == 3) {
|
} else if (active.value == 3) {
|
||||||
active.value++;
|
active.value++;
|
||||||
|
state.value = 0;
|
||||||
} else if (active.value == 4) {
|
} else if (active.value == 4) {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue