update code
parent
e77b7c344a
commit
ca6becb79e
|
@ -49,6 +49,6 @@ export default {
|
|||
add,
|
||||
deleteConnect,
|
||||
detail,
|
||||
updatAll,
|
||||
updatAll,
|
||||
updateInfo
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
import request from "@/utils/request";
|
||||
//获取硬件类型列表
|
||||
const cmptHardwareType=()=>{
|
||||
return request({
|
||||
url: `/const/cmpt_hardware_type`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
//获取推理任务类型
|
||||
const infrTaskType=()=>{
|
||||
return request({
|
||||
url: `/const/infr_task_type`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
|
||||
//获取模型文件类型列表
|
||||
const modlFileType=()=>{
|
||||
return request({
|
||||
url: `/const/modl_file_type`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
//获取模型框架名称列表
|
||||
const modlFramework=()=>{
|
||||
return request({
|
||||
url: `/const/modl_framework`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
//获取模型主类型和子类型列表
|
||||
const modlMainType=()=>{
|
||||
return request({
|
||||
url: `/const/modl_main_type`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
|
||||
//获取模型网络类型列表
|
||||
const modlNetType=()=>{
|
||||
return request({
|
||||
url: `/const/modl_net_type`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
//获取算子主类型列表
|
||||
const operMainType=()=>{
|
||||
return request({
|
||||
url: `/const/oper_main_type`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
//获取用户权限类型
|
||||
const userRole=()=>{
|
||||
return request({
|
||||
url: `/const/user_role`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
|
||||
export default {
|
||||
cmptHardwareType,
|
||||
infrTaskType,
|
||||
modlFileType,
|
||||
modlFramework,
|
||||
modlMainType,
|
||||
modlNetType,
|
||||
operMainType,
|
||||
userRole
|
||||
}
|
|
@ -5,7 +5,14 @@ const serverState=()=>{
|
|||
method: "get"
|
||||
});
|
||||
}
|
||||
|
||||
//获取用户操作状态通知
|
||||
const userOperationNotice=()=>{
|
||||
return request({
|
||||
url: "/logs/user_operation/notice",
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
export default {
|
||||
serverState
|
||||
serverState,
|
||||
userOperationNotice
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
import request from "@/utils/request";
|
||||
|
||||
//获取模型列表
|
||||
const list=(data)=>{
|
||||
return request({
|
||||
url: `/models`,
|
||||
method: "get",
|
||||
params:data
|
||||
});
|
||||
}
|
||||
|
||||
//创建模型
|
||||
const add=(data)=>{
|
||||
return request({
|
||||
url: `/models`,
|
||||
method: "post",
|
||||
data:data
|
||||
});
|
||||
}
|
||||
|
||||
//创建模型
|
||||
const deleteModel=(id)=>{
|
||||
return request({
|
||||
url: `/models/${id}`,
|
||||
method: "delete"
|
||||
});
|
||||
}
|
||||
|
||||
//获取模型详细信息
|
||||
const findOne=(id)=>{
|
||||
return request({
|
||||
url: `/models/${id}`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
//获取模型适配的算子信息
|
||||
const adaptOperators=(id)=>{
|
||||
return request({
|
||||
url: `/models/${id}/adapt_operators`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
//请求下载模型文件
|
||||
const download=(id)=>{
|
||||
return request({
|
||||
url: `/models/${id}/download`,
|
||||
method: "get"
|
||||
});
|
||||
}
|
||||
|
||||
export default {
|
||||
list,
|
||||
add,
|
||||
deleteModel,
|
||||
findOne,
|
||||
adaptOperators,
|
||||
download
|
||||
}
|
|
@ -1,33 +1,32 @@
|
|||
<template>
|
||||
<div class="index-notice">
|
||||
<div class="index-notice" v-if="loadNotice!=null">
|
||||
<div v-for="(it,idx) in noticeList" :key="idx" class="notice-item">
|
||||
<div style="font-size: 12px;color: #333;">
|
||||
<div style="font-size: 12px;color: #333;" v-if="1==2">
|
||||
<svg-icon class="icon-info" icon-class="info" v-if="it.type=='info'" color="orange"></svg-icon>
|
||||
<svg-icon class="icon-warn" icon-class="warn" v-if="it.type=='warn'" color="red"></svg-icon>
|
||||
{{ it.type=="info"?"系统信息":"告警信息" }}
|
||||
</div>
|
||||
<div style="color: #666;padding: 0px 12px;">
|
||||
{{ it.msg }}
|
||||
{{ it.operation_result }}
|
||||
</div>
|
||||
<div style="text-align: right;color: #666;padding:0px 12px;border-bottom: solid 1px #eee;">
|
||||
{{ it.date }}
|
||||
{{ it.update_time }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang='ts' setup>
|
||||
import {reactive} from 'vue'
|
||||
let noticeList=reactive([
|
||||
{ type:'info',msg:'用户王大山修改了密码',date:'2024-05-12'},
|
||||
{ type:'info',msg:'用户王大山修改了密码',date:'2024-05-12'},
|
||||
{ type:'warn',msg:'设备abc服务器异常中断',date:'2024-05-12'},
|
||||
{ type:'warn',msg:'设备abc服务器异常中断',date:'2024-05-12'},
|
||||
{ type:'info',msg:'用户王大山修改了密码',date:'2024-05-12'},
|
||||
{ type:'warn',msg:'设备abc服务器异常中断',date:'2024-05-12'},
|
||||
{ type:'warn',msg:'设备abc服务器异常中断',date:'2024-05-12'},
|
||||
{ type:'info',msg:'用户王大山修改了密码',date:'2024-05-12'},
|
||||
])
|
||||
import LogApi from '@/api/log'
|
||||
let noticeList=ref<any>(null);
|
||||
const loadNotice=()=>{
|
||||
LogApi.userOperationNotice().then(d=>{
|
||||
noticeList.value=d.data?.data?.operation_notice_list||[]
|
||||
})
|
||||
}
|
||||
onMounted(()=>{
|
||||
loadNotice();
|
||||
});
|
||||
</script>
|
||||
<style lang='scss'>
|
||||
.index-notice{
|
||||
|
|
|
@ -9,23 +9,23 @@
|
|||
<div class="chart-bar">
|
||||
<div class="bar-title">内存</div>
|
||||
<div class="chart-line">
|
||||
<div class="chart-line-inner" :style="'width:'+serverInfo.memory_usage*100.0/16.0/1024.0+'%'"></div>
|
||||
<div class="chart-line-inner" :style="'width:'+serverInfo.memory_usage*100.0/serverInfo.memory_total+'%'"></div>
|
||||
</div>
|
||||
<div class="bar-title">75%</div>
|
||||
<div class="bar-title">{{serverInfo.memory_usage*100.0/serverInfo.memory_total}}%</div>
|
||||
</div>
|
||||
<div class="chart-bar">
|
||||
<div class="bar-title">CPU</div>
|
||||
<div class="chart-line">
|
||||
<div class="chart-line-inner" :style="'width:'+serverInfo.cpu_usage+'%'"></div>
|
||||
</div>
|
||||
<div class="bar-title">45%</div>
|
||||
<div class="bar-title"> {{serverInfo.cpu_usage}}% </div>
|
||||
</div>
|
||||
<div class="chart-bar">
|
||||
<div class="bar-title">硬盘</div>
|
||||
<div class="chart-line">
|
||||
<div class="chart-line-inner" :style="'width:'+serverInfo.storage_usage+'%'"></div>
|
||||
</div>
|
||||
<div class="bar-title">65%</div>
|
||||
<div class="bar-title">{{serverInfo.storage_usage}}%</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -120,6 +120,7 @@ import ServiceStatus from './components/ServiceStatus.vue'
|
|||
import DeviceAPI from "@/api/device";
|
||||
import InfoApi from '@/api/info'
|
||||
|
||||
|
||||
let svTemp = ref(55.5)
|
||||
let rd = () => { return +("" + Math.random()).substring(3, 5) };
|
||||
let rd2 = () => { return +("" + Math.random()).substring(3, 4) };
|
||||
|
@ -173,6 +174,7 @@ const loadInfo=()=>{
|
|||
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
winWidth.value = window.outerWidth;
|
||||
window.onresize = () => {
|
||||
|
@ -182,7 +184,7 @@ onMounted(() => {
|
|||
}
|
||||
loadDevice();
|
||||
loadInfo();
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<el-button type="primary" @click="doUploadModel" ><i-ep-plus />上传模型</el-button>
|
||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true" style="flex-grow: 1;text-align: right;">
|
||||
<el-form-item label="" prop="keywords">
|
||||
<el-input v-model="queryParams.keywords" placeholder="请输入模型名称" clearable style="width: 200px"
|
||||
<el-input v-model="queryParams.model_name" placeholder="请输入模型名称" clearable style="width: 200px"
|
||||
@keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
|
@ -20,13 +20,13 @@
|
|||
<el-card shadow="never" class="table-container">
|
||||
|
||||
<el-table v-loading="loading" :data="tableData" stripe @selection-change="handleSelectionChange">
|
||||
<el-table-column label="模型名称" align="left" prop="name" width="300"/>
|
||||
<el-table-column label="网络名称" align="left" prop="netName" />
|
||||
<el-table-column label="模型类型" align="left" prop="modelType" />
|
||||
<el-table-column label="版本" align="left" prop="ver" />
|
||||
<el-table-column label="说明" width="300" align="left" prop="desc" />
|
||||
<el-table-column label="上传时间" width="120" align="left" prop="upTime" />
|
||||
<el-table-column label="上传用户" width="100" align="left" prop="upUser" />
|
||||
<el-table-column label="模型名称" align="left" prop="model_name" width="300"/>
|
||||
<el-table-column label="网络名称" align="left" prop="model_network" />
|
||||
<el-table-column label="模型类型" align="left" prop="modl_sub_type_name" />
|
||||
<el-table-column label="版本" align="left" prop="model_version" />
|
||||
<el-table-column label="说明" width="300" align="left" prop="model_desc" />
|
||||
<el-table-column label="上传时间" width="120" align="left" prop="create_time" />
|
||||
<el-table-column label="上传用户" width="100" align="left" prop="user_name" />
|
||||
<el-table-column label="操作" fixed="right" width="250">
|
||||
<template #default="scope">
|
||||
<el-button text type="primary" size="small"
|
||||
|
@ -50,6 +50,7 @@ defineOptions({
|
|||
name: "calculateIndex",
|
||||
inheritAttrs: false,
|
||||
});
|
||||
import ModelApi from '@/api/models'
|
||||
|
||||
import { UserQuery } from "@/api/user/model";
|
||||
|
||||
|
@ -58,12 +59,13 @@ const router = useRouter();
|
|||
|
||||
const loading = ref(false); // 加载状态
|
||||
const removeIds = ref([]); // 删除用户ID集合 用于批量删除
|
||||
const queryParams = reactive<UserQuery>({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
let queryParams = reactive<any>({
|
||||
page_num: 1,
|
||||
page_size: 10,
|
||||
model_name:''
|
||||
});
|
||||
const dateTimeRange = ref("");
|
||||
const total = ref(100); // 数据总数
|
||||
let total = ref(100); // 数据总数
|
||||
|
||||
watch(dateTimeRange, (newVal) => {
|
||||
if (newVal) {
|
||||
|
@ -72,61 +74,13 @@ watch(dateTimeRange, (newVal) => {
|
|||
}
|
||||
});
|
||||
|
||||
const tableData = [
|
||||
{
|
||||
id:"1",
|
||||
name: "模型名称模型名称模型名称查看",
|
||||
netName: "VIT",
|
||||
modelType: "图像分类",
|
||||
desc:'进行10种类型 的目标分类模型查看',
|
||||
ver: "1.0",
|
||||
upTime: "2024-02-02",
|
||||
upUser:'USER'
|
||||
},
|
||||
{
|
||||
id:"2",
|
||||
name: "模型名称模型名称模型名称查看",
|
||||
netName: "Mobile-VIT",
|
||||
modelType: "图像分类",
|
||||
ver: "1.0",
|
||||
desc:'进行10种类型 的目标分类模型查看',
|
||||
upTime: "2024-02-02",
|
||||
upUser:'USER'
|
||||
},
|
||||
{
|
||||
id:"3",
|
||||
name: "模型名称模型名称模型名称查看",
|
||||
netName: "VIT",
|
||||
modelType: "图像分类",
|
||||
ver: "1.0",
|
||||
desc:'进行人员检测的模型',
|
||||
upTime: "2024-02-02",
|
||||
upUser:'USER'
|
||||
},
|
||||
{
|
||||
id:"4",
|
||||
name: "模型名称模型名称模型名称查看",
|
||||
netName: "Mobile-VIT",
|
||||
modelType: "图像分类",
|
||||
ver: "1.0",
|
||||
desc:'进行10种类型 的目标分类模型查看',
|
||||
upTime: "2024-02-02",
|
||||
upUser:'USER'
|
||||
},
|
||||
{
|
||||
id:"5",
|
||||
name: "模型名称模型名称模型名称查看",
|
||||
netName: "VIT",
|
||||
modelType: "图像分类",
|
||||
ver: "1.0",
|
||||
desc:'进行人员检测的模型',
|
||||
upTime: "2024-02-02",
|
||||
upUser:'USER'
|
||||
}
|
||||
];
|
||||
|
||||
let tableData = ref([])
|
||||
/** 查询 */
|
||||
function handleQuery() {
|
||||
ModelApi.list(queryParams).then(d=>{
|
||||
total.value=d.data.data.total||0;
|
||||
tableData.value=d.data.data.model_list||[];
|
||||
});
|
||||
loading.value = true;
|
||||
ElMessage.success("查询成功");
|
||||
loading.value = false;
|
||||
|
@ -141,16 +95,14 @@ function doUploadModel(){
|
|||
function resetQuery() {
|
||||
queryFormRef.value.resetFields();
|
||||
dateTimeRange.value = "";
|
||||
queryParams.pageNum = 1;
|
||||
queryParams.deptId = undefined;
|
||||
queryParams.startTime = undefined;
|
||||
queryParams.endTime = undefined;
|
||||
queryParams.page_num = 1;
|
||||
queryParams.model_name='';
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
/** 行选中 */
|
||||
function handleSelectionChange(selection: any) {
|
||||
removeIds.value = selection.map((item: any) => item.id);
|
||||
removeIds.value = selection.map((item: any) => item.model_id);
|
||||
}
|
||||
|
||||
/** 删除数据 */
|
||||
|
@ -165,7 +117,7 @@ function handleDelete(row: { [key: string]: any }) {
|
|||
}
|
||||
|
||||
const doShowModelDetail=(row:any)=>{
|
||||
router.replace({path:"/modelMgr/modelDetail",query:{id:row.id,from:'model'}})
|
||||
router.replace({path:"/modelMgr/modelDetail",query:{id:row.model_id,from:'model'}})
|
||||
}
|
||||
/**
|
||||
* 打开弹窗
|
||||
|
@ -188,7 +140,7 @@ function handleExport() {
|
|||
}
|
||||
|
||||
onMounted(() => {
|
||||
//handleQuery();
|
||||
handleQuery();
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue