update code
parent
23167ecc5d
commit
624b6b1575
|
@ -62,4 +62,7 @@ const fontColor = computed(() => {
|
||||||
.lf-ai-node,.lf-element-text{
|
.lf-ai-node,.lf-element-text{
|
||||||
cursor:pointer !important;
|
cursor:pointer !important;
|
||||||
}
|
}
|
||||||
|
.card-footer{
|
||||||
|
z-index: 99;
|
||||||
|
}
|
||||||
</style>
|
</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-form-item label="任务类型" prop="taskType">
|
||||||
<el-select v-model="upForm.taskType" placeholder="请选择" style="width: 48%">
|
<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-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
@ -22,12 +22,16 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import constApi from '@/api/const'
|
||||||
const myForm = ref(ElForm)
|
const myForm = ref(ElForm)
|
||||||
let upForm = reactive({
|
let upForm = reactive({
|
||||||
taskName: '',
|
taskName: '',
|
||||||
taskDesc: "",
|
taskDesc: "",
|
||||||
taskType: ""
|
taskType: ""
|
||||||
})
|
})
|
||||||
|
let info=reactive({
|
||||||
|
taskTypes:[]
|
||||||
|
})
|
||||||
const formRules = computed(() => {
|
const formRules = computed(() => {
|
||||||
return {
|
return {
|
||||||
taskName: [
|
taskName: [
|
||||||
|
@ -57,7 +61,16 @@ const checkForm = () => {
|
||||||
const getFormData=()=>{
|
const getFormData=()=>{
|
||||||
return upForm;
|
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({
|
defineExpose({
|
||||||
checkForm,
|
checkForm,
|
||||||
|
|
|
@ -2,21 +2,21 @@
|
||||||
<el-card style="margin-top:12px" class="simulation-add-add-step2">
|
<el-card style="margin-top:12px" class="simulation-add-add-step2">
|
||||||
<template #header>模型列表</template>
|
<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="选择">
|
<el-table-column align="center" width="55" label="选择">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-radio v-model="modelSelection" :label="scope.row.id + ''"
|
<el-radio v-model="modelSelection" :label="scope.row.id + ''"
|
||||||
@change="handleChange(scope.row)"> </el-radio>
|
@change="handleChange(scope.row)"> </el-radio>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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="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="connection_version" />
|
||||||
<el-table-column label="互联名称" align="left" prop="netName" width="120" />
|
<el-table-column label="互联名称" align="left" prop="connection_name" width="120" />
|
||||||
<el-table-column label="互联说明" align="left" prop="desc" />
|
<el-table-column label="互联说明" align="left" prop="connection_desc" />
|
||||||
<el-table-column label="互联创建时间" width="120" align="left" prop="upTime" />
|
<el-table-column label="互联创建时间" width="120" align="left" prop="create_time" />
|
||||||
|
|
||||||
</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"
|
||||||
|
@ -25,13 +25,18 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import connApi from '@/api/connection'
|
||||||
|
const loading = ref(false);
|
||||||
const modelSelection = ref("")//单选id
|
const modelSelection = ref("")//单选id
|
||||||
|
const info=reactive({
|
||||||
|
data:[]
|
||||||
|
})
|
||||||
const queryParams = reactive({
|
const queryParams = reactive({
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
connection_name:''
|
||||||
});
|
});
|
||||||
const total=ref(100)
|
const total = ref(100); // 数据总数
|
||||||
|
|
||||||
const handleChange = (row) => {
|
const handleChange = (row) => {
|
||||||
modelSelection.value = row.id + "";
|
modelSelection.value = row.id + "";
|
||||||
|
@ -41,75 +46,36 @@ const doRowClick=(row)=>{
|
||||||
}
|
}
|
||||||
/** 查询 */
|
/** 查询 */
|
||||||
function handleQuery(a) {
|
function handleQuery(a) {
|
||||||
queryParams.pageSize=a.limit;
|
if(a){
|
||||||
ElMessage.success("查询成功");
|
queryParams.pageSize=a.limit;
|
||||||
loading.value = false;
|
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=()=>{
|
const checkForm=()=>{
|
||||||
if(modelSelection.value){
|
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 tmps.length>0?tmps[0]:null;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
onMounted(()=>{
|
||||||
|
handleQuery();
|
||||||
|
});
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
checkForm
|
checkForm
|
||||||
})
|
})
|
||||||
|
|
|
@ -4,88 +4,70 @@
|
||||||
<el-row class="model-info">
|
<el-row class="model-info">
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<span>模型名称:</span>
|
<span>模型名称:</span>
|
||||||
<span>{{ modelInfo.name }}</span>
|
<span>{{ modelInfo.model_name }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<span>模型类型:</span>
|
<span>模型类型:</span>
|
||||||
<span>{{ modelInfo.modelType }}</span>
|
<span>{{ modelInfo.modl_main_type_name+"/"+modelInfo.modl_sub_type_name }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<span>互联名称:</span>
|
<span>互联名称:</span>
|
||||||
<span>{{ modelInfo.netName }}</span>
|
<span>{{ modelInfo.connection_name }}</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card style="margin-top:12px;position: relative;" class="simulation-add-add-step32">
|
<el-card style="margin-top:12px;position: relative;" class="simulation-add-add-step32">
|
||||||
<template #header>
|
<template #header>
|
||||||
<span>设备选择</span>
|
<span>设备选择</span>
|
||||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true"
|
<el-form ref="queryFormRef" :inline="true"
|
||||||
style="flex-grow: 1;text-align: right;position: absolute;top:4px;right:0px;">
|
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-item>
|
<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-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</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 type="selection" width="55" />
|
||||||
<el-table-column label="设备名称" align="left" prop="devName" />
|
<el-table-column label="设备名称" align="left" prop="device_name" />
|
||||||
<el-table-column label="AI芯片信息" align="left" prop="aiChip" />
|
<el-table-column label="AI芯片信息" align="left" prop="hardware_chip" />
|
||||||
<el-table-column label="部模型名称" align="left" prop="modelName" width="120" />
|
<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="deployed_model_net_type" />
|
||||||
<el-table-column label="互联名称" align="left" prop="netName" width="120" />
|
<el-table-column label="互联名称" align="left" prop="connection_name" width="120" />
|
||||||
<el-table-column label="部署时间" align="left" prop="pubTime" width="160" />
|
<el-table-column label="部署时间" align="left" prop="deployed_time" width="160" />
|
||||||
<el-table-column label="量化和编译参数" align="left" prop="pubTime" width="160">
|
<el-table-column label="量化和编译参数" align="left" prop="tool_params_name" width="160">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span
|
<span class="args-state state-2">{{ scope.row.tool_params_name ? scope.row.tool_params_name : '请选择'
|
||||||
:class="'args-state state-' + scope.row.args">{{ scope.row.args == 0 ? '' : scope.row.args == 1 ? '无' : '量化和编译参数'
|
|
||||||
}}</span>
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="设备状态" align="center" width="100">
|
<el-table-column label="设备状态" align="center" width="100">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span :class="'device-state state-' + scope.row.state">{{
|
<span :class="'device-state state-'">{{
|
||||||
scope.row.state == 0 ? '空闲' : scope.row.state == 2 ? '完成' : '推理中' }}</span>
|
scope.row.available? '可用' : '不可用' }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</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>
|
</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>
|
</el-card>
|
||||||
|
|
||||||
<div style="margin-top:12px;font-size:12px;font-weight: bold;margin-left:8px;">编译结果</div>
|
<div style="margin-top:12px;font-size:12px;font-weight: bold;margin-left:8px;">编译结果</div>
|
||||||
<el-card style="" class="simulation-add-add-step33">
|
<el-card style="" class="simulation-add-add-step33">
|
||||||
<el-input v-model="result" type="textarea" style="width:100%;" :rows="4" placeholder="请输入" />
|
|
||||||
</el-card>
|
</el-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
import taskApi from '@/api/task'
|
||||||
let dataTb = ref()
|
let dataTb = ref()
|
||||||
|
|
||||||
const handleChange = (row) => {
|
const loading = ref(false); // 加载状态
|
||||||
devSelection.value = row.id + "";
|
|
||||||
}
|
|
||||||
const doRowClick = (row) => {
|
const doRowClick = (row) => {
|
||||||
dataTb.value.toggleRowSelection(row)
|
dataTb.value.toggleRowSelection(row)
|
||||||
}
|
}
|
||||||
const queryFormRef = ref()
|
const info=reactive({
|
||||||
const queryParams = reactive({
|
tableData:[]
|
||||||
pageNum: 1,
|
})
|
||||||
pageSize: 10,
|
|
||||||
keywords: ''
|
|
||||||
});
|
|
||||||
const total = ref(100)
|
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
modelInfo: {
|
modelInfo: {
|
||||||
|
@ -95,23 +77,29 @@ const props = defineProps({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
/** 查询 */
|
/** 查询 */
|
||||||
function handleQuery(a) {
|
function handleQuery() {
|
||||||
queryParams.pageSize = a.limit;
|
loading.value = true;
|
||||||
ElMessage.success("查询成功");
|
let m=props.modelInfo;
|
||||||
loading.value = false;
|
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 = () => {
|
const checkForm = () => {
|
||||||
let rows = dataTb.value.getSelectionRows();
|
let rows = info.dataTb.getSelectionRows();
|
||||||
return rows.length == 0 ? null : rows;
|
return rows.length == 0 ? null : rows;
|
||||||
};
|
};
|
||||||
|
onMounted(()=>{
|
||||||
|
handleQuery();
|
||||||
|
});
|
||||||
defineExpose({
|
defineExpose({
|
||||||
checkForm
|
checkForm
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue