update code
parent
74d7f0b760
commit
1b6cba1a1c
|
@ -3,9 +3,9 @@ VITE_APP_PORT = 3000
|
||||||
|
|
||||||
# 代理前缀
|
# 代理前缀
|
||||||
VITE_APP_BASE_API = '/api'
|
VITE_APP_BASE_API = '/api'
|
||||||
VITE_APP_API_URL = http://62.234.3.186/mk/ai/api
|
#VITE_APP_API_URL = http://62.234.3.186/mk/ai/api
|
||||||
# 线上接口地址
|
# 线上接口地址
|
||||||
#VITE_APP_API_URL = http://10.5.1.137:8800
|
VITE_APP_API_URL = http://10.5.1.137:8800
|
||||||
# 开发接口地址
|
# 开发接口地址
|
||||||
# VITE_APP_API_URL = http://localhost:8989
|
# VITE_APP_API_URL = http://localhost:8989
|
||||||
|
|
||||||
|
|
|
@ -47,12 +47,28 @@ const download=(id)=>{
|
||||||
method: "get"
|
method: "get"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
//上传数据文件
|
||||||
|
const upload = (file) => {
|
||||||
|
debugger
|
||||||
|
const formData = new FormData();
|
||||||
|
formData.append("file_name", file.name);
|
||||||
|
formData.append("file_content",file)
|
||||||
|
formData.append("file",file)
|
||||||
|
return request({
|
||||||
|
url: `/models/upload`,
|
||||||
|
method: "post",
|
||||||
|
data: formData,
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "multipart/form-data",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
export default {
|
export default {
|
||||||
list,
|
list,
|
||||||
add,
|
add,
|
||||||
deleteModel,
|
deleteModel,
|
||||||
findOne,
|
findOne,
|
||||||
adaptOperators,
|
adaptOperators,
|
||||||
download
|
download,
|
||||||
|
upload
|
||||||
}
|
}
|
|
@ -1,131 +1,145 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container upload-model">
|
<div class="app-container upload-model">
|
||||||
<div class="search-container" style="padding-top:4px;padding-right:20px;">
|
<div class="search-container" style="padding-top:4px;padding-right:20px;">
|
||||||
<h4>模型基本信息</h4>
|
<h4>模型基本信息</h4>
|
||||||
<el-form ref="uploadForm" :rules="upRules" :model="upForm" label-width="120">
|
<el-form ref="uploadForm" :rules="upRules" :model="upForm" label-width="120">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="模型名称" prop="model_name">
|
<el-form-item label="模型名称" prop="model_name">
|
||||||
<el-input v-model="upForm.model_name" placeholder="请输入模型名称" />
|
<el-input v-model="upForm.model_name" placeholder="请输入模型名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" class="div-mode-type">
|
<el-col :span="12" class="div-mode-type">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-form-item label="模型类型" prop="modl_main_type">
|
<el-form-item label="模型类型" prop="modl_main_type">
|
||||||
<el-select v-model="upForm.modl_main_type" placeholder="请选择"
|
<el-select v-model="upForm.modl_main_type" placeholder="请选择" @change="doMainTypeChange">
|
||||||
@change="doMainTypeChange">
|
<el-option v-for="(it, idx) in listOpt.modelType" :key="idx" :label="it.modl_main_type_name"
|
||||||
<el-option v-for="(it, idx) in listOpt.modelType" :key="idx"
|
:value="it.modl_main_type" />
|
||||||
:label="it.modl_main_type_name" :value="it.modl_main_type" />
|
</el-select>
|
||||||
</el-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
<el-col :span="10">
|
||||||
<el-col :span="10">
|
<el-form-item label="" prop="modl_sub_type" class="form-item-sub-type">
|
||||||
<el-form-item label="" prop="modl_sub_type" class="form-item-sub-type">
|
<el-select v-model="upForm.modl_sub_type" placeholder="请选择">
|
||||||
<el-select v-model="upForm.modl_sub_type" placeholder="请选择">
|
<el-option v-for="(it, idx) in listOpt.modelSubType" :key="idx" :label="it.modl_sub_type_name"
|
||||||
<el-option v-for="(it, idx) in listOpt.modelSubType" :key="idx"
|
:value="it.modl_sub_type" />
|
||||||
:label="it.modl_sub_type_name" :value="it.modl_sub_type" />
|
</el-select>
|
||||||
</el-select>
|
</el-form-item>
|
||||||
</el-form-item>
|
</el-col>
|
||||||
</el-col>
|
</el-row>
|
||||||
</el-row>
|
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="模型版本" prop="model_version">
|
<el-form-item label="模型版本" prop="model_version">
|
||||||
<el-input v-model="upForm.model_version" placeholder="请输入模型版本" />
|
<el-input v-model="upForm.model_version" placeholder="请输入模型版本" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="版本描述">
|
<el-form-item label="模型描述">
|
||||||
<el-input v-model="upForm.desc" type="textarea" style="width:100%;" :rows="4"
|
<el-input v-model="upForm.model_desc" type="textarea" style="width:100%;" :rows="4"
|
||||||
placeholder="请输入版本描述" />
|
placeholder="请输入模型描述" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="算法框架" prop="modl_framework">
|
<el-form-item label="算法框架" prop="modl_framework">
|
||||||
<el-select v-model="upForm.modl_framework" placeholder="请选择"
|
<el-select v-model="upForm.modl_framework" placeholder="请选择" style="width: 48%;margin-left:2%;">
|
||||||
style="width: 48%;margin-left:2%;">
|
<el-option v-for="(it, idx) in listOpt.modelFramework" :label="it" :value="it" :key="idx" />
|
||||||
<el-option v-for="(it, idx) in listOpt.modelFramework" :label="it" :value="it"
|
</el-select>
|
||||||
:key="idx" />
|
</el-form-item>
|
||||||
</el-select>
|
</el-col>
|
||||||
</el-form-item>
|
<el-col :span="12" class="div-mode-type">
|
||||||
</el-col>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="14">
|
||||||
<el-form-item label="模型网络" prop="modl_net_type">
|
<el-form-item label="模型网络" prop="modl_net_main_type">
|
||||||
<el-select v-model="upForm.modl_net_type" placeholder="请选择" style="width: 48%;margin-left:2%;">
|
<el-select v-model="upForm.modl_net_main_type" placeholder="请选择" @change="doNetMainTypeChange">
|
||||||
<el-option v-for="(it,idx) in listOpt.modelNetType" :label="it" :value="it" :key="idx" />
|
<el-option v-for="(it, idx) in listOpt.modelNetType" :label="it.model_net_serial"
|
||||||
|
:value="it.model_net_serial" :key="idx" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="10">
|
||||||
|
<el-form-item label="" prop="modl_net_type" class="form-item-sub-type">
|
||||||
|
<el-select v-model="upForm.modl_net_type" placeholder="请选择">
|
||||||
|
<el-option v-for="(it, idx) in listOpt.modelNetSubType" :label="it" :value="it" :key="idx" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
</el-select>
|
</el-col>
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="文件格式" prop="modl_file_type">
|
<el-form-item label="文件格式" prop="modl_file_type">
|
||||||
<el-select v-model="upForm.modl_file_type" placeholder="请选择" style="width: 48%;margin-left:2%;">
|
<el-select v-model="upForm.modl_file_type" placeholder="请选择" style="width: 48%;margin-left:2%;">
|
||||||
<el-option v-for="(it,idx) in listOpt.modelFileType" :label="it" :value="it" :key="idx" />
|
<el-option v-for="(it, idx) in listOpt.modelFileType" :label="it" :value="it" :key="idx" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="网络参数">
|
<el-form-item label="网络参数" prop="model_file_list">
|
||||||
<el-upload v-model:file-list="fileList" class="upload-demo"
|
<el-upload ref="uploadRef1" class="uploadFile1" :http-request="handleFileChange"
|
||||||
action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" :limit="1">
|
:on-remove="handleFileRemove" :on-exceed="handleFileExceed" :auto-upload-demo="false" :limit="1"
|
||||||
<el-button type="primary">请选择文件</el-button>
|
accept=".onnx,.ts">
|
||||||
<template #tip>
|
<el-button type="primary"><el-icon class="el-icon--upload"> <i-ep-upload-filled />
|
||||||
<div class="el-upload__tip">
|
</el-icon>选择文件</el-button>
|
||||||
请上传大小不超过<span style="color:coral">10M</span>,格式为<span
|
<template #tip>
|
||||||
style="color:coral">onnx/ts</span>的文件
|
<div class="el-upload__tip">
|
||||||
</div>
|
请上传大小不超过<span style="color:coral">10M</span>,格式为<span style="color:coral">onnx/ts</span>的文件
|
||||||
</template>
|
</div>
|
||||||
</el-upload>
|
</template>
|
||||||
</el-form-item>
|
</el-upload>
|
||||||
</el-col>
|
</el-form-item>
|
||||||
<el-col :span="12">
|
</el-col>
|
||||||
<el-form-item label="网络配置">
|
<el-col :span="12" style="position: relative;">
|
||||||
<el-upload v-model:file-list="fileList" class="upload-demo"
|
<el-button v-if="upForm.model_parameters" style="position: absolute;left:240px;z-index:999">
|
||||||
action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" :limit="1">
|
<i-ep-view />
|
||||||
<el-button type="primary">请选择文件</el-button>
|
查看配置</el-button>
|
||||||
<template #tip>
|
<el-form-item label="网络配置" prop="model_parameters">
|
||||||
<div class="el-upload__tip">
|
<el-upload class="upload-demo" ref="uploadRef2" :on-remove="handleFileRemoveCfg"
|
||||||
请上传大小不超过<span style="color:coral">10M</span>,格式为<span
|
:on-exceed="handleFileExceed" :auto-upload-demo="false" :http-request="handleUploadCfg" :limit="1"
|
||||||
style="color:coral">json</span>的文件
|
accept=".json">
|
||||||
</div>
|
<el-button type="primary"><el-icon class="el-icon--upload"> <i-ep-upload-filled />
|
||||||
</template>
|
</el-icon>选择文件</el-button>
|
||||||
</el-upload>
|
<template #tip>
|
||||||
</el-form-item>
|
<div class="el-upload__tip">
|
||||||
</el-col>
|
请上传大小不超过<span style="color:coral">10M</span>,格式为<span style="color:coral">json</span>的文件
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
|
||||||
<div class="div-log">
|
|
||||||
<div style="font-weight: bold;font-size:14px;padding:10px 10px">分割日志</div>
|
|
||||||
<el-card class="split-log">
|
|
||||||
<div v-for="(it, idx) in logList" :key="idx" class="log-item">
|
|
||||||
<span>{{ it.date }}</span>
|
|
||||||
<span>{{ it.log }}</span>
|
|
||||||
</div>
|
|
||||||
</el-card>
|
|
||||||
</div>
|
|
||||||
<el-card class="card-footer">
|
|
||||||
<el-button type="primary" @click="doSave">分割</el-button>
|
|
||||||
<el-button @click="doBack">取消</el-button>
|
|
||||||
</el-card>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="div-log">
|
||||||
|
<div style="font-weight: bold;font-size:14px;padding:10px 10px">分割日志</div>
|
||||||
|
<el-card class="split-log">
|
||||||
|
<div v-for="(it, idx) in logList" :key="idx" class="log-item">
|
||||||
|
<span>{{ it.date }}</span>
|
||||||
|
<span>{{ it.log }}</span>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
<el-card class="card-footer">
|
||||||
|
<el-button type="primary" @click="doSave">分割</el-button>
|
||||||
|
<el-button @click="doBack">取消</el-button>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -135,107 +149,219 @@ import ModelApi from '@/api/models'
|
||||||
import request from "axios";
|
import request from "axios";
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
let listOpt = reactive({
|
let listOpt = reactive({
|
||||||
modelType: [],
|
modelType: [],
|
||||||
modelFramework: [],
|
modelFramework: [],
|
||||||
modelNetType: [],
|
modelNetType: [],
|
||||||
modelFileType: [],
|
modelFileType: [],
|
||||||
modelSubType: [],
|
modelSubType: [],
|
||||||
|
modelNetSubType: [],
|
||||||
|
upFiles: [],
|
||||||
})
|
})
|
||||||
let fileList=ref([])
|
let fileList = ref([])
|
||||||
|
const uploadRef1 = ref()
|
||||||
|
|
||||||
const doSave = () => {
|
const doSave = () => {
|
||||||
uploadForm.value?.validate((valid) => {
|
uploadForm.value?.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
ModelApi.add(upForm).then(d=>{
|
ModelApi.add(upForm).then(d => {
|
||||||
if(d.data.code==0){
|
if (d.data.code == 0) {
|
||||||
ElMessage.success("增加模型成功!");
|
ElMessage.success("增加模型成功!");
|
||||||
router.push({ path: "/modelMgr/index" })
|
router.push({ path: "/modelMgr/index" })
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
const doBack = () => {
|
const doBack = () => {
|
||||||
router.push({ path: "/modelMgr/index" })
|
router.push({ path: "/modelMgr/index" })
|
||||||
}
|
}
|
||||||
const uploadForm = ref(ElForm)
|
const uploadForm = ref(ElForm)
|
||||||
let upForm = reactive({
|
let upForm = reactive({
|
||||||
model_name: '',
|
model_name: '',
|
||||||
model_version: '',
|
model_version: '',
|
||||||
model_desc: '',
|
model_desc: '',
|
||||||
modl_main_type: '',
|
modl_main_type: '',
|
||||||
modl_sub_type: '',
|
modl_sub_type: '',
|
||||||
modl_net_type: '',
|
modl_net_main_type: '',
|
||||||
modl_framework: '',
|
modl_net_type: '',
|
||||||
modl_file_type: '',
|
modl_framework: '',
|
||||||
model_parameters: {},
|
modl_file_type: '',
|
||||||
model_file_list: []
|
model_parameters: null,
|
||||||
|
model_file_list: [
|
||||||
|
|
||||||
|
]
|
||||||
})
|
})
|
||||||
const logList = reactive([{
|
const logList = reactive([{
|
||||||
date: '2024-05-06 18:34:36', log: '系统已启动编译'
|
date: '2024-05-06 18:34:36', log: '系统已启动编译'
|
||||||
}, { date: '2024-05-06 18:34:36', log: '系统正在分割目标文件' },
|
}, { date: '2024-05-06 18:34:36', log: '系统正在分割目标文件' },
|
||||||
{ date: '2024-05-06 18:34:36', log: '运行时异常,系统编译已终止' }])
|
{ date: '2024-05-06 18:34:36', log: '运行时异常,系统编译已终止' }])
|
||||||
|
|
||||||
const upRules = computed(() => {
|
const upRules = computed(() => {
|
||||||
return {
|
return {
|
||||||
model_name: [{required: true,trigger: "blur",message: "请输入模型名称",},],
|
model_name: [{ required: true, trigger: "blur", message: "请输入模型名称", },],
|
||||||
modl_main_type: [{required: true,trigger: "blur",message: "请选择主类型",}],
|
modl_main_type: [{ required: true, trigger: "blur", message: "请选择主类型", }],
|
||||||
modl_sub_type: [{required: true,trigger: "blur",message: "请选择子类型",}],
|
modl_sub_type: [{ required: true, trigger: "blur", message: "请选择子类型", }],
|
||||||
model_version: [{required: true,trigger: "blur",message: "请输入模型版本",}],
|
model_version: [{ required: true, trigger: "blur", message: "请输入模型版本", }],
|
||||||
modl_framework: [{required: true,trigger: "blur",message: "请选择算法框架",}],
|
modl_framework: [{ required: true, trigger: "blur", message: "请选择算法框架", }],
|
||||||
modl_net_type: [{required: true,trigger: "blur",message: "请选择模型网络",}],
|
modl_net_main_type: [{ required: true, trigger: "blur", message: "请选择主模型网络", }],
|
||||||
modl_file_type: [{required: true,trigger: "blur",message: "请选择文件类型",}],
|
modl_net_type: [{ required: true, trigger: "blur", message: "请选择模型网络", }],
|
||||||
}
|
modl_file_type: [{ required: true, trigger: "blur", message: "请选择文件类型", }],
|
||||||
|
model_file_list: [{ required: true, trigger: "blur", message: "请上传网络参数", }],
|
||||||
|
model_parameters: [{ required: true, trigger: "blur", message: "请上传网络配置", }],
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const handleFileRemoveCfg = (a, b) => {
|
||||||
|
upForm.model_parameters = null;
|
||||||
|
}
|
||||||
|
const handleUploadCfg = (file) => {
|
||||||
|
if (file.file.size > 10 * 1024 * 1024) {
|
||||||
|
ElMessage.warning("文件大小不能超10M");
|
||||||
|
file.onError("文件大小不能超10M")
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let ext = file.file.name.split(".").pop().toLowerCase();
|
||||||
|
if (["json"].indexOf(ext) == -1) {
|
||||||
|
ElMessage.warning("请上传json格式文件");
|
||||||
|
file.onError("请上传json格式文件")
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//先创建一个读文件的对象 FileReader
|
||||||
|
let reader = new FileReader();
|
||||||
|
//判断浏览器是否支持 FileReader
|
||||||
|
if (typeof FileReader === "undefined") {
|
||||||
|
ElMessage.warning("您的浏览器不支持文件读取。");
|
||||||
|
file.onError("您的浏览器不支持文件读取。")
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
uploadFile(file).then((res) => {
|
||||||
|
if (isJSON(res)) {
|
||||||
|
upForm.model_parameters = JSON.parse(res);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 解析json */
|
||||||
|
function isJSON(str) {
|
||||||
|
try {
|
||||||
|
// 尝试解析输入的字符串
|
||||||
|
JSON.parse(str);
|
||||||
|
return true;
|
||||||
|
} catch (error) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 文件读取
|
||||||
|
function uploadFile(file) {
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
let reader = new FileReader();
|
||||||
|
reader.readAsArrayBuffer(file.file);
|
||||||
|
reader.onload = function (e) {
|
||||||
|
var ints = new Uint8Array(e.target.result); //要使用读取的内容,所以将读取内容转化成Uint8Array
|
||||||
|
let snippets = new TextDecoder("UTF-8").decode(ints); //二进制缓存区内容转化成中文(即也就是读取到的内容)
|
||||||
|
resolve(snippets);
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 文件上传
|
||||||
|
function handleFileChange(file, b) {
|
||||||
|
if (file.file.size > 10 * 1024 * 1024) {
|
||||||
|
ElMessage.warning("文件大小不能超10M");
|
||||||
|
file.onError("文件大小不能超10M")
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let ext = file.file.name.split(".").pop().toLowerCase();
|
||||||
|
if (["onnx", "ts"].indexOf(ext) == -1) {
|
||||||
|
ElMessage.warning("请上传onnx/ts格式文件");
|
||||||
|
file.onError("请上传onnx/ts格式文件")
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ModelApi.upload(file.file).then((res) => {
|
||||||
|
listOpt.upFiles.push({
|
||||||
|
name: file.file.name,
|
||||||
|
serverName: res.data.data.file_name
|
||||||
|
})
|
||||||
|
debugger
|
||||||
|
upForm.model_file_list = listOpt.upFiles.map(it => it.serverName);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleFileExceed() {
|
||||||
|
ElMessage.warning("超过上传上限!");
|
||||||
|
}
|
||||||
|
|
||||||
|
function handleFileRemove(a, b, c) {
|
||||||
|
let tmps = listOpt.upFiles.filter(d => d.name == a.name);
|
||||||
|
if (tmps.length > 0) {
|
||||||
|
let idx = listOpt.upFiles.indexOf(tmps[0]);
|
||||||
|
listOpt.upFiles.splice(idx, 1);
|
||||||
|
}
|
||||||
|
upForm.model_file_list = listOpt.upFiles.map(it => it.serverName);
|
||||||
|
}
|
||||||
|
|
||||||
const initData = () => {
|
const initData = () => {
|
||||||
let ajaxs = [];
|
let ajaxs = [];
|
||||||
ajaxs.push(ConstApi.modlMainType());
|
ajaxs.push(ConstApi.modlMainType());
|
||||||
ajaxs.push(ConstApi.modlFramework());
|
ajaxs.push(ConstApi.modlFramework());
|
||||||
ajaxs.push(ConstApi.modlNetType());
|
ajaxs.push(ConstApi.modlNetType());
|
||||||
ajaxs.push(ConstApi.modlFileType());
|
ajaxs.push(ConstApi.modlFileType());
|
||||||
request.all(ajaxs).then(res => {
|
request.all(ajaxs).then(res => {
|
||||||
listOpt.modelType = res[0].data?.data?.modl_main_type_list || [];
|
listOpt.modelType = res[0].data?.data?.modl_main_type_list || [];
|
||||||
listOpt.modelFramework = res[1].data?.data?.modl_framework_list || [];
|
listOpt.modelFramework = res[1].data?.data?.modl_framework_list || [];
|
||||||
listOpt.modelNetType = res[2].data?.data?.model_net_type_list || [];
|
listOpt.modelNetType = (res[2].data?.data?.modl_net_type_list || []).map(it => {
|
||||||
listOpt.modelFileType = res[3].data?.data?.modl_file_type_list || [];
|
it.selected = false;
|
||||||
|
it.subSelect = "";
|
||||||
|
return it;
|
||||||
});
|
});
|
||||||
|
listOpt.modelFileType = res[3].data?.data?.modl_file_type_list || [];
|
||||||
|
});
|
||||||
}
|
}
|
||||||
const doMainTypeChange = () => {
|
const doMainTypeChange = () => {
|
||||||
let mainType = upForm.modl_main_type;
|
let mainType = upForm.modl_main_type;
|
||||||
let subList = listOpt.modelType.filter(d => d.modl_main_type == mainType);
|
let subList = listOpt.modelType.filter(d => d.modl_main_type == mainType);
|
||||||
listOpt.modelSubType = subList.length > 0 ? subList[0].modl_sub_type_list || [] : [];
|
listOpt.modelSubType = subList.length > 0 ? subList[0].modl_sub_type_list || [] : [];
|
||||||
|
if (listOpt.modelSubType.filter(d => d.modl_sub_type == upForm.modl_sub_type).length == 0) {
|
||||||
|
upForm.modl_sub_type = '';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const doNetMainTypeChange = () => {
|
||||||
|
let tmps = listOpt.modelNetType.filter(d => d.model_net_serial == upForm.modl_net_main_type);
|
||||||
|
listOpt.modelNetSubType = tmps.length > 0 ? tmps[0].model_net_type_list : [];
|
||||||
|
upForm.modl_net_type = '';
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
initData();
|
initData();
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang='scss'>
|
<style scoped lang='scss'>
|
||||||
.card-footer {
|
.card-footer {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: calc(100% - 215px);
|
width: calc(100% - 215px);
|
||||||
bottom: 0px;
|
bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.div-log {
|
.div-log {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
|
||||||
:deep(.el-card__body) {
|
:deep(.el-card__body) {
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.upload-model{
|
.upload-model {
|
||||||
.div-mode-type{
|
.div-mode-type {
|
||||||
.form-item-sub-type{
|
.form-item-sub-type {
|
||||||
.el-form-item__content{
|
.el-form-item__content {
|
||||||
margin-left:10px !important;
|
margin-left: 10px !important;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
Loading…
Reference in New Issue