update code

main
haha 2024-07-17 00:30:15 +08:00
parent 23167ecc5d
commit 624b6b1575
5 changed files with 122 additions and 124 deletions

View File

@ -62,4 +62,7 @@ const fontColor = computed(() => {
.lf-ai-node,.lf-element-text{
cursor:pointer !important;
}
.card-footer{
z-index: 99;
}
</style>

View File

@ -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
}

View File

@ -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,

View File

@ -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)">&nbsp;</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
})

View File

@ -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
})