修改模型训练
This commit is contained in:
parent
a2c4e64648
commit
dec253c4e1
@ -1,14 +1,6 @@
|
|||||||
import request from '@/utils/request';
|
import request from '@/utils/request';
|
||||||
|
|
||||||
//获取所有项目列表
|
//获取所有项目列表
|
||||||
export function searchAlgorithmsPage(queryParams:any){
|
|
||||||
return request({
|
|
||||||
url: '/train/list' ,
|
|
||||||
method: 'get',
|
|
||||||
params:queryParams
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
export function trainAlgorithmsPage(queryParams:any){
|
export function trainAlgorithmsPage(queryParams:any){
|
||||||
return request({
|
return request({
|
||||||
url: '/train/list' ,
|
url: '/train/list' ,
|
||||||
@ -24,16 +16,16 @@ export function addAlgorithms(data:any){
|
|||||||
data: data
|
data: data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//更新项目信息
|
|
||||||
export function updateAlgorithms (queryParams:any){
|
export function trainPublish(data:any){
|
||||||
return request({
|
return request({
|
||||||
url:'/train' ,
|
url:'/train/publish' ,
|
||||||
method: 'PUT',
|
method: 'Post',
|
||||||
data: queryParams
|
data: data
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//单个删除项目
|
//单个删除项目
|
||||||
|
|
||||||
export function deleteAlgorithms (queryParams:any){
|
export function deleteAlgorithms (queryParams:any){
|
||||||
@ -43,13 +35,3 @@ export function deleteAlgorithms (queryParams:any){
|
|||||||
// params: queryParams
|
// params: queryParams
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//多选删除项目
|
|
||||||
export function deleteBatchAlgorithms (queryParams:any){
|
|
||||||
return request({
|
|
||||||
url:'/train',
|
|
||||||
method: 'delete',
|
|
||||||
data: queryParams
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@ -7,7 +7,7 @@ export default {
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { onMounted, ref, nextTick,reactive } from "vue";
|
import { onMounted, ref, nextTick,reactive } from "vue";
|
||||||
import { ElForm, ElMessage, ElMessageBox,FormRules } from "element-plus";
|
import { ElForm, ElMessage, ElMessageBox,FormRules } from "element-plus";
|
||||||
import { addAlgorithms,updateAlgorithms,deleteAlgorithms,deleteBatchAlgorithms,trainAlgorithmsPage} from "@/api/algorithml";
|
import { addAlgorithms,deleteAlgorithms,trainAlgorithmsPage,trainPublish} from "@/api/algorithml";
|
||||||
|
|
||||||
import { searchAlgorithmsPage } from "@/api/business/algorithm";
|
import { searchAlgorithmsPage } from "@/api/business/algorithm";
|
||||||
import { getDictItemById } from '@/api/dict';
|
import { getDictItemById } from '@/api/dict';
|
||||||
@ -162,11 +162,20 @@ function confirmClick(formEl: any) {
|
|||||||
isSwitch.value = true
|
isSwitch.value = true
|
||||||
|
|
||||||
const data = new FormData()
|
const data = new FormData()
|
||||||
info.value.trainParams = JSON.stringify(trainParamsData.value)
|
|
||||||
|
|
||||||
|
if(trainParamsData.value.length != 0){
|
||||||
|
let template:any = {}
|
||||||
|
trainParamsData.value.forEach((element:any) => {
|
||||||
|
template[element.key] = element.value
|
||||||
|
});
|
||||||
|
info.value.trainParams = JSON.stringify(template)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
data.append('task', JSON.stringify(info.value))
|
data.append('task', JSON.stringify(info.value))
|
||||||
// Add file if exists
|
|
||||||
if (fileList.value.length > 0) {
|
if (fileList.value.length > 0) {
|
||||||
data.append('file', fileList.value[0].raw)
|
data.append('file', fileList.value[0].raw)
|
||||||
}
|
}
|
||||||
@ -200,13 +209,25 @@ function handleClosed(){
|
|||||||
function viewClick(row: any) {
|
function viewClick(row: any) {
|
||||||
title.value = "查看详情";
|
title.value = "查看详情";
|
||||||
info.value = JSON.parse(JSON.stringify(row));
|
info.value = JSON.parse(JSON.stringify(row));
|
||||||
|
trainParamsData.value = []
|
||||||
|
if(row.trainParams != null && row.trainParams != ""){
|
||||||
|
let trainParams = JSON.parse(row.trainParams)
|
||||||
|
for (const key in trainParams) {
|
||||||
|
if (!Object.hasOwn(trainParams, key)) continue;
|
||||||
|
|
||||||
|
const element = trainParams[key];
|
||||||
|
|
||||||
|
trainParamsData.value.push({
|
||||||
|
key:key,
|
||||||
|
value:element
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
dialogViewVisible.value = true;
|
dialogViewVisible.value = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//删除训练任务
|
//删除训练任务
|
||||||
function delAloneClick(row: any) {
|
function delAloneClick(row: any) {
|
||||||
|
|
||||||
|
|
||||||
ElMessageBox.confirm("确定删除此训练任务吗?", "删除提示", {
|
ElMessageBox.confirm("确定删除此训练任务吗?", "删除提示", {
|
||||||
confirmButtonText: "确定",
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
@ -227,22 +248,6 @@ function delAloneClick(row: any) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 多选删除?
|
|
||||||
function delClick(row:any) {
|
|
||||||
ElMessageBox.confirm("确定删除已选择训练任务吗?", "删除提示", {
|
|
||||||
confirmButtonText: "确定",
|
|
||||||
cancelButtonText: "取消",
|
|
||||||
type: "warning",
|
|
||||||
}).then(() => {
|
|
||||||
deleteBatchAlgorithms(row.id).then(() => {
|
|
||||||
gettableData();
|
|
||||||
ElMessage({
|
|
||||||
message: "删除成功",
|
|
||||||
type: "success",
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
function dateFormat(row: any) {
|
function dateFormat(row: any) {
|
||||||
const daterc = row;
|
const daterc = row;
|
||||||
if (daterc != null) {
|
if (daterc != null) {
|
||||||
@ -283,6 +288,7 @@ function changeStatus(row: any) {
|
|||||||
|
|
||||||
function releaseClick(row: any) {
|
function releaseClick(row: any) {
|
||||||
title.value = "发布模型";
|
title.value = "发布模型";
|
||||||
|
textarea.value = ''
|
||||||
info.value = JSON.parse(JSON.stringify(row));
|
info.value = JSON.parse(JSON.stringify(row));
|
||||||
modelVisible.value = true;
|
modelVisible.value = true;
|
||||||
|
|
||||||
@ -319,8 +325,7 @@ const trainParamsData:any = ref([])
|
|||||||
function addTrainParams(){
|
function addTrainParams(){
|
||||||
trainParamsData.value.push({
|
trainParamsData.value.push({
|
||||||
key:"",
|
key:"",
|
||||||
value:" "
|
value:" "
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -340,6 +345,24 @@ function dellTrainParams(index:any){
|
|||||||
trainParamsData.value.splice(index,1)
|
trainParamsData.value.splice(index,1)
|
||||||
}
|
}
|
||||||
function confirmsClick(){
|
function confirmsClick(){
|
||||||
|
if(textarea.value == ''){
|
||||||
|
ElMessage({
|
||||||
|
type: "warning",
|
||||||
|
message: "请输入版本号",
|
||||||
|
});
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let data= {
|
||||||
|
taskId: info.value.taskId,
|
||||||
|
versionTag: textarea.value,
|
||||||
|
}
|
||||||
|
trainPublish(data).then((res) => {
|
||||||
|
gettableData();
|
||||||
|
ElMessage({
|
||||||
|
type: "success",
|
||||||
|
message: "发布成功",
|
||||||
|
});
|
||||||
|
})
|
||||||
modelVisible.value=false
|
modelVisible.value=false
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -372,10 +395,10 @@ function confirmsClick(){
|
|||||||
:header-cell-style="{ background: 'rgb(250 250 250)', color: '#383838', height: '50px' }">
|
:header-cell-style="{ background: 'rgb(250 250 250)', color: '#383838', height: '50px' }">
|
||||||
<el-table-column type="selection" width="50" align="center" prop="id"></el-table-column>
|
<el-table-column type="selection" width="50" align="center" prop="id"></el-table-column>
|
||||||
<el-table-column type="index" label="序号" width="70" align="center" prop="taskId"></el-table-column>
|
<el-table-column type="index" label="序号" width="70" align="center" prop="taskId"></el-table-column>
|
||||||
<el-table-column prop="taskName" label="任务名称" width="180" ></el-table-column>
|
<el-table-column prop="taskName" label="任务名称" min-width="180" ></el-table-column>
|
||||||
<el-table-column prop="algorithmType" label="算法类型" width="100" ></el-table-column>
|
<el-table-column prop="algorithmType" label="算法类型" width="160" ></el-table-column>
|
||||||
<el-table-column prop="deviceType" label="设备类型" min-width="100" ></el-table-column>
|
<el-table-column prop="deviceType" label="设备类型" width="160" ></el-table-column>
|
||||||
<el-table-column prop="status" label="任务状态" min-width="100">
|
<el-table-column prop="status" label="任务状态" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
{{statusName(scope.row.status)}}
|
{{statusName(scope.row.status)}}
|
||||||
</template>
|
</template>
|
||||||
@ -411,7 +434,8 @@ function confirmsClick(){
|
|||||||
append-to-body width="1145px" height="600px">
|
append-to-body width="1145px" height="600px">
|
||||||
<el-form ref="infoForm" :model="info" :rules="rules" label-width="100px"
|
<el-form ref="infoForm" :model="info" :rules="rules" label-width="100px"
|
||||||
style="margin-top: 20px;">
|
style="margin-top: 20px;">
|
||||||
<el-form-item label="任务名称" prop="taskName" style="width: 100%;" >
|
<div style="height: calc(100vh - 260px);overflow: auto;">
|
||||||
|
<el-form-item label="任务名称" prop="taskName" style="width: 100%;" >
|
||||||
<el-input v-model="info.taskName" style="width: 100%" placeholder="输入任务名称"></el-input>
|
<el-input v-model="info.taskName" style="width: 100%" placeholder="输入任务名称"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="设备类型" prop="deviceType" style="width: 100%;" >
|
<el-form-item label="设备类型" prop="deviceType" style="width: 100%;" >
|
||||||
@ -426,21 +450,23 @@ function confirmsClick(){
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="数据源类型" style="width: 100%;" >
|
<el-form-item label="数据源类型" style="width: 100%;" >
|
||||||
<el-upload accept=".xlsx" ref="upload" class="upload-demo" action="" :on-change="handlefilechange" :on-remove="handlefileremove" :auto-upload="false" :file-list="fileList" style="width: calc(100% - 70px);position:relative">
|
<el-upload accept=".xlsx" ref="upload" class="upload-demo" action="" :on-change="handlefilechange" :on-remove="handlefileremove" :auto-upload="false" :file-list="fileList" style="width: calc(100% - 70px);position:relative">
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<el-button type="primary">点击上传</el-button>
|
<el-button type="primary">点击上传</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="参数配置" style="width: 100%;" >
|
<el-form-item label="参数配置" style="width: 100%;" >
|
||||||
<div style="display: flex;justify-content:space-between;">
|
<div >
|
||||||
<el-button type="primary" @click="addTrainParams">添加</el-button>
|
<el-button type="primary" @click="addTrainParams" style="margin-bottom: 10px;">添加</el-button>
|
||||||
<div style="display: flex;" v-for="(item,index) in trainParamsData" :key="index">
|
<div style="display: flex;margin-bottom: 10px;" v-for="(item,index) in trainParamsData" :key="index">
|
||||||
<el-input v-model="item.key" style="width: 300px;margin-left: 10px;" placeholder="输入算法名称"></el-input>
|
<el-input v-model="item.key" style="width: 300px;margin-left: 10px;" placeholder=""></el-input>
|
||||||
<el-input v-model="item.value" style="width: 300px;margin: 0px 10px;" placeholder="输入算法名称"></el-input>
|
<el-input v-model="item.value" style="width: 300px;margin: 0px 10px;" placeholder=""></el-input>
|
||||||
<el-button type="primary" @click="dellTrainParams(index)" text="删除">删除</el-button>
|
<el-button type="primary" @click="dellTrainParams(index)" text="删除">删除</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
<span class="dialog-footer"
|
<span class="dialog-footer"
|
||||||
style="display: flex;display: -webkit-flex; justify-content: flex-end;-webkit-justify-content: flex-end;">
|
style="display: flex;display: -webkit-flex; justify-content: flex-end;-webkit-justify-content: flex-end;">
|
||||||
<el-button @click="handleClose">取 消</el-button>
|
<el-button @click="handleClose">取 消</el-button>
|
||||||
@ -474,7 +500,12 @@ function confirmsClick(){
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="训练参数" style="width: 100%;">
|
<el-form-item label="训练参数" style="width: 100%;">
|
||||||
<el-input v-model="info.trainParams" style="width: 100%" :disabled="true"></el-input>
|
<div v-for="item in trainParamsData" :key="item" style="margin-bottom: 10px;">
|
||||||
|
<el-input v-model="item.key" style="width: 300px" :disabled="true"></el-input>
|
||||||
|
:
|
||||||
|
<el-input v-model="item.value" style="width: 300px" :disabled="true"></el-input>
|
||||||
|
</div>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="创建时间" style="width: 100%;" >
|
<el-form-item label="创建时间" style="width: 100%;" >
|
||||||
<el-input v-model="info.createdAt" style="width: 100%" :disabled="true" ></el-input>
|
<el-input v-model="info.createdAt" style="width: 100%" :disabled="true" ></el-input>
|
||||||
@ -516,7 +547,7 @@ function confirmsClick(){
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="版本号" >
|
<el-form-item label="版本号" >
|
||||||
<el-input v-model="textarea" style="width: 100%" :rows="2" type="textarea" disabled />
|
<el-input v-model="textarea" style="width: 100%" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-button type="primary" style="margin-left: 60px;" @click="confirmsClick">确定</el-button>
|
<el-button type="primary" style="margin-left: 60px;" @click="confirmsClick">确定</el-button>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user