update code
parent
23167ecc5d
commit
624b6b1575
|
@ -62,4 +62,7 @@ const fontColor = computed(() => {
|
|||
.lf-ai-node,.lf-element-text{
|
||||
cursor:pointer !important;
|
||||
}
|
||||
.card-footer{
|
||||
z-index: 99;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,28 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
const tasks=()=>{
|
||||
return request({
|
||||
url:'/tasks',
|
||||
method:'get'
|
||||
})
|
||||
}
|
||||
|
||||
const availableDevices=()=>{
|
||||
return request({
|
||||
url:'/tasks/available_devices',
|
||||
method:'get'
|
||||
})
|
||||
}
|
||||
|
||||
const running=()=>{
|
||||
return request({
|
||||
url:'/tasks/running',
|
||||
method:'get'
|
||||
})
|
||||
}
|
||||
|
||||
export default{
|
||||
tasks,
|
||||
availableDevices,
|
||||
running
|
||||
}
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
<el-form-item label="任务类型" prop="taskType">
|
||||
<el-select v-model="upForm.taskType" placeholder="请选择" style="width: 48%">
|
||||
<el-option v-for="(it, idx) in taskTypes" :label="it.text" :value="it.id" :key="idx" />
|
||||
<el-option v-for="(it, idx) in info.taskTypes" :label="it.infr_task_type_name" :value="it.infr_task_type" :key="idx" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
@ -22,12 +22,16 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import constApi from '@/api/const'
|
||||
const myForm = ref(ElForm)
|
||||
let upForm = reactive({
|
||||
taskName: '',
|
||||
taskDesc: "",
|
||||
taskType: ""
|
||||
})
|
||||
let info=reactive({
|
||||
taskTypes:[]
|
||||
})
|
||||
const formRules = computed(() => {
|
||||
return {
|
||||
taskName: [
|
||||
|
@ -57,7 +61,16 @@ const checkForm = () => {
|
|||
const getFormData=()=>{
|
||||
return upForm;
|
||||
}
|
||||
const taskTypes = reactive([{ id: 1, text: '推理任务类型' }, { id: 2, text: '推理任务类型2' }, { id: 3, text: '推理任务类型3' },])
|
||||
|
||||
const initData=()=>{
|
||||
constApi.infrTaskType().then(d=>{
|
||||
info.taskTypes=d.data.data.infr_task_type_list
|
||||
});
|
||||
}
|
||||
onMounted(() => {
|
||||
initData();
|
||||
});
|
||||
|
||||
|
||||
defineExpose({
|
||||
checkForm,
|
||||
|
|
|
@ -2,21 +2,21 @@
|
|||
<el-card style="margin-top:12px" class="simulation-add-add-step2">
|
||||
<template #header>模型列表</template>
|
||||
|
||||
<el-table v-loading="loading" :data="tableData" stripe @row-click="doRowClick">
|
||||
<el-table v-loading="loading" :data="info.data" stripe @row-click="doRowClick">
|
||||
<el-table-column align="center" width="55" label="选择">
|
||||
<template #default="scope">
|
||||
<el-radio v-model="modelSelection" :label="scope.row.id + ''"
|
||||
@change="handleChange(scope.row)"> </el-radio>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="模型名称" align="left" prop="name" />
|
||||
<el-table-column label="模型名称" align="left" prop="model_name" />
|
||||
<el-table-column label="模型类型" align="left" prop="modelType" />
|
||||
<el-table-column label="模型说明" align="left" prop="netName" width="120" />
|
||||
<el-table-column label="模型说明" align="left" prop="model_desc" width="120" />
|
||||
|
||||
<el-table-column label="版本" align="left" prop="ver" />
|
||||
<el-table-column label="互联名称" align="left" prop="netName" width="120" />
|
||||
<el-table-column label="互联说明" align="left" prop="desc" />
|
||||
<el-table-column label="互联创建时间" width="120" align="left" prop="upTime" />
|
||||
<el-table-column label="版本" align="left" prop="connection_version" />
|
||||
<el-table-column label="互联名称" align="left" prop="connection_name" width="120" />
|
||||
<el-table-column label="互联说明" align="left" prop="connection_desc" />
|
||||
<el-table-column label="互联创建时间" width="120" align="left" prop="create_time" />
|
||||
|
||||
</el-table>
|
||||
<pagination v-if="total > 0" v-model:total="total" v-model:page="queryParams.pageNum"
|
||||
|
@ -25,13 +25,18 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
|
||||
import connApi from '@/api/connection'
|
||||
const loading = ref(false);
|
||||
const modelSelection = ref("")//单选id
|
||||
const info=reactive({
|
||||
data:[]
|
||||
})
|
||||
const queryParams = reactive({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
connection_name:''
|
||||
});
|
||||
const total=ref(100)
|
||||
const total = ref(100); // 数据总数
|
||||
|
||||
const handleChange = (row) => {
|
||||
modelSelection.value = row.id + "";
|
||||
|
@ -41,75 +46,36 @@ const doRowClick=(row)=>{
|
|||
}
|
||||
/** 查询 */
|
||||
function handleQuery(a) {
|
||||
queryParams.pageSize=a.limit;
|
||||
ElMessage.success("查询成功");
|
||||
loading.value = false;
|
||||
if(a){
|
||||
queryParams.pageSize=a.limit;
|
||||
queryParams.pageNum=a.page;
|
||||
}
|
||||
//ElMessage.success("查询成功");
|
||||
loading.value = true;
|
||||
connApi.list(queryParams).then(d=>{
|
||||
loading.value=false;
|
||||
info.data=(d.data?.data||[]).map(it=>{
|
||||
it.id=it.connection_id;
|
||||
it.modelType=it.modl_main_type_name+"/"+it.modl_sub_type_name;
|
||||
return it;
|
||||
});
|
||||
total.value=d.data?.total||0;
|
||||
});
|
||||
|
||||
}
|
||||
const tableData = [
|
||||
{
|
||||
id: "1",
|
||||
name: "模型名称模型名称模型名称查看1",
|
||||
modelType: "图像分类",
|
||||
ver: "1.0",
|
||||
netName: '我的互联名称',
|
||||
desc: '进行10种类型 的目标分类模型查看',
|
||||
upTime: "2024-02-02",
|
||||
upUser: 'USER',
|
||||
state: '1'
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
name: "模型名称模型名称模型名称查看2",
|
||||
modelType: "图像分类",
|
||||
ver: "1.0",
|
||||
netName: '我的互联名称',
|
||||
desc: '进行10种类型 的目标分类模型查看',
|
||||
upTime: "2024-02-02",
|
||||
upUser: 'USER',
|
||||
state: '1'
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
name: "模型名称模型名称模型名称查看3",
|
||||
modelType: "图像分类",
|
||||
ver: "1.0",
|
||||
netName: '我的互联名称',
|
||||
desc: '进行人员检测的模型',
|
||||
upTime: "2024-02-02",
|
||||
upUser: 'USER',
|
||||
state: '1'
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
name: "模型名称模型名称模型名称查看4",
|
||||
modelType: "图像分类",
|
||||
ver: "1.0",
|
||||
netName: '我的互联名称',
|
||||
desc: '进行10种类型 的目标分类模型查看',
|
||||
upTime: "2024-02-02",
|
||||
upUser: 'USER',
|
||||
state: '0'
|
||||
},
|
||||
{
|
||||
id: "5",
|
||||
name: "模型名称模型名称模型名称查看5",
|
||||
modelType: "图像分类",
|
||||
ver: "1.0",
|
||||
netName: '我的互联名称',
|
||||
desc: '进行人员检测的模型',
|
||||
upTime: "2024-02-02",
|
||||
upUser: 'USER',
|
||||
state: '0'
|
||||
}
|
||||
];
|
||||
const checkForm=()=>{
|
||||
if(modelSelection.value){
|
||||
let tmps=tableData.filter(d=>d.id==modelSelection.value);
|
||||
let tmps=info.data.filter(d=>d.id==modelSelection.value);
|
||||
return tmps.length>0?tmps[0]:null;
|
||||
}
|
||||
return null;
|
||||
};
|
||||
|
||||
|
||||
onMounted(()=>{
|
||||
handleQuery();
|
||||
});
|
||||
|
||||
defineExpose({
|
||||
checkForm
|
||||
})
|
||||
|
|
|
@ -4,88 +4,70 @@
|
|||
<el-row class="model-info">
|
||||
<el-col :span="8">
|
||||
<span>模型名称:</span>
|
||||
<span>{{ modelInfo.name }}</span>
|
||||
<span>{{ modelInfo.model_name }}</span>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<span>模型类型:</span>
|
||||
<span>{{ modelInfo.modelType }}</span>
|
||||
<span>{{ modelInfo.modl_main_type_name+"/"+modelInfo.modl_sub_type_name }}</span>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<span>互联名称:</span>
|
||||
<span>{{ modelInfo.netName }}</span>
|
||||
<span>{{ modelInfo.connection_name }}</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<el-card style="margin-top:12px;position: relative;" class="simulation-add-add-step32">
|
||||
<template #header>
|
||||
<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-item label="" prop="keywords">
|
||||
<el-input v-model="queryParams.keywords" placeholder="请输入设备名称" clearable style="width: 250px" />
|
||||
</el-form-item>
|
||||
<el-form ref="queryFormRef" :inline="true"
|
||||
style="flex-grow: 1;text-align: right;position: absolute;top:4px;right:0px;">
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="handleQuery"><i-ep-search />搜索</el-button>
|
||||
<el-button type="primary" @click="handleQuery"><i-ep-refresh />刷新</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
|
||||
<el-table v-loading="loading" ref="dataTb" :data="tableData" stripe @row-click="doRowClick">
|
||||
<el-table v-loading="loading" ref="dataTb" :data="info.tableData" stripe @row-click="doRowClick">
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="设备名称" align="left" prop="devName" />
|
||||
<el-table-column label="AI芯片信息" align="left" prop="aiChip" />
|
||||
<el-table-column label="部模型名称" align="left" prop="modelName" width="120" />
|
||||
<el-table-column label="设备名称" align="left" prop="device_name" />
|
||||
<el-table-column label="AI芯片信息" align="left" prop="hardware_chip" />
|
||||
<el-table-column label="已部署模型名称" align="left" prop="deployed_model_name" width="120" />
|
||||
|
||||
<el-table-column label="横型类型" align="left" prop="ver" />
|
||||
<el-table-column label="互联名称" align="left" prop="netName" width="120" />
|
||||
<el-table-column label="部署时间" align="left" prop="pubTime" width="160" />
|
||||
<el-table-column label="量化和编译参数" align="left" prop="pubTime" width="160">
|
||||
<el-table-column label="已部署模型网络类型" align="left" prop="deployed_model_net_type" />
|
||||
<el-table-column label="互联名称" align="left" prop="connection_name" width="120" />
|
||||
<el-table-column label="部署时间" align="left" prop="deployed_time" width="160" />
|
||||
<el-table-column label="量化和编译参数" align="left" prop="tool_params_name" width="160">
|
||||
<template #default="scope">
|
||||
<span
|
||||
:class="'args-state state-' + scope.row.args">{{ scope.row.args == 0 ? '' : scope.row.args == 1 ? '无' : '量化和编译参数'
|
||||
<span class="args-state state-2">{{ scope.row.tool_params_name ? scope.row.tool_params_name : '请选择'
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="设备状态" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<span :class="'device-state state-' + scope.row.state">{{
|
||||
scope.row.state == 0 ? '空闲' : scope.row.state == 2 ? '完成' : '推理中' }}</span>
|
||||
<span :class="'device-state state-'">{{
|
||||
scope.row.available? '可用' : '不可用' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="设备状态" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<span class="result-state" v-if="scope.row.result">{{scope.row.result }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<pagination v-if="total > 0" v-model:total="total" v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize" @pagination="handleQuery" />
|
||||
</el-card>
|
||||
|
||||
<div style="margin-top:12px;font-size:12px;font-weight: bold;margin-left:8px;">编译结果</div>
|
||||
<el-card style="" class="simulation-add-add-step33">
|
||||
<el-input v-model="result" type="textarea" style="width:100%;" :rows="4" placeholder="请输入" />
|
||||
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import taskApi from '@/api/task'
|
||||
let dataTb = ref()
|
||||
|
||||
const handleChange = (row) => {
|
||||
devSelection.value = row.id + "";
|
||||
}
|
||||
const loading = ref(false); // 加载状态
|
||||
const doRowClick = (row) => {
|
||||
dataTb.value.toggleRowSelection(row)
|
||||
}
|
||||
const queryFormRef = ref()
|
||||
const queryParams = reactive({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
keywords: ''
|
||||
});
|
||||
const total = ref(100)
|
||||
const info=reactive({
|
||||
tableData:[]
|
||||
})
|
||||
|
||||
const props = defineProps({
|
||||
modelInfo: {
|
||||
|
@ -95,23 +77,29 @@ const props = defineProps({
|
|||
}
|
||||
})
|
||||
/** 查询 */
|
||||
function handleQuery(a) {
|
||||
queryParams.pageSize = a.limit;
|
||||
ElMessage.success("查询成功");
|
||||
loading.value = false;
|
||||
|
||||
function handleQuery() {
|
||||
loading.value = true;
|
||||
let m=props.modelInfo;
|
||||
taskApi.availableDevices({
|
||||
connection_id:m.connection_id,
|
||||
model_id:m.model_id
|
||||
}).then(d=>{
|
||||
loading.value=false;
|
||||
info.tableData=(d.data.data.available_device_list||[]).map(it=>{
|
||||
it.id=it.device_id;
|
||||
return it;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
let tableData = reactive([
|
||||
{ id: "1", devName: "Atlas200智能模组", aiChip: '进行人员检订的模型', modelName: '模型各称模型各称模型各称', modelType: 'VIT', netName: '我的互联各称', pubTime: '2024-06-09 18:32:13', args: 2, state: 0, result: '' },
|
||||
{ id: "2", devName: "FPGA报卡", aiChip: '进行人员检订的模型', modelName: '模型各称模型各称模型各称', modelType: 'VIT', netName: '我的互联各称', pubTime: '2024-06-09 18:32:13', state: 1, args: 1, result: '' },
|
||||
{ id: "3", devName: "RTX4090显卡", aiChip: '进行人员检订的模型', modelName: '模型各称模型各称模型各称', modelType: 'VIT', netName: '我的互联各称', pubTime: '2024-06-09 18:32:13', state: 2, args: 0, result: '无对应算子' }
|
||||
])
|
||||
|
||||
const checkForm = () => {
|
||||
let rows = dataTb.value.getSelectionRows();
|
||||
let rows = info.dataTb.getSelectionRows();
|
||||
return rows.length == 0 ? null : rows;
|
||||
};
|
||||
onMounted(()=>{
|
||||
handleQuery();
|
||||
});
|
||||
defineExpose({
|
||||
checkForm
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue