提交代码
parent
0a574c34df
commit
ca8f3a3479
|
@ -297,9 +297,9 @@ class MenuAPI {
|
|||
},
|
||||
},
|
||||
{
|
||||
path: "calculateParamView",
|
||||
path: "calculateParamDetail",
|
||||
component: "manage/calculateParam/view",
|
||||
name: "calculateParamView",
|
||||
name: "calculateParamDetail",
|
||||
meta: {
|
||||
title: "算子程序查看",
|
||||
hidden: true,
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<template>
|
||||
<div class="app-container model-detail">
|
||||
<!-- 用户新增/编辑表单 -->
|
||||
<el-card>
|
||||
<el-card v-loading="loading">
|
||||
<template #header
|
||||
><svg-icon icon-class="pause" style="width: 20px; height: 20px" /> 算子基本信息
|
||||
</template>
|
||||
|
@ -12,7 +12,6 @@
|
|||
ref="formRef"
|
||||
:model="formData"
|
||||
:rules="rules"
|
||||
v-loading="loading"
|
||||
label-width="80px"
|
||||
>
|
||||
<el-form-item label="算子名称" prop="operator_name">
|
||||
|
@ -86,26 +85,20 @@
|
|||
</template>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="文件预览" v-if="fileStatus">
|
||||
<code id="codeHtml" v-html="codeHtml"></code>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-col>
|
||||
<el-col :lg="12" :xs="24">
|
||||
<!-- <div style="padding-left: 35px">
|
||||
<el-divider content-position="left"
|
||||
><strong style="color: #409eff">算子参数</strong></el-divider
|
||||
<div style="padding-left: 35px" v-if="fileStatus">
|
||||
<el-form
|
||||
label-width="100px"
|
||||
size="small"
|
||||
>
|
||||
<el-table :data="list" style="width: 100%" stripe>
|
||||
<el-table-column prop="csmc" label="参数名称" align="left"/>
|
||||
<el-table-column prop="csmc" label="参数描述" align="left"/>
|
||||
<el-table-column label="操作" fixed="right" width="120">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" plain size="small"><i-ep-view />查看参数</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div> -->
|
||||
<el-divider content-position="left"
|
||||
><strong style="color: #409eff">算子文件预览</strong></el-divider
|
||||
>
|
||||
<code id="codeHtml" v-html="codeHtml"></code>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
|
@ -121,19 +114,17 @@ import ConstApi from "@/api/const";
|
|||
import { useUserStore } from "@/store";
|
||||
import OperatorApi from "@/api/operator";
|
||||
const router = useRouter();
|
||||
const formRef = ref(ElForm); // 用户表单
|
||||
const formRef = ref(ElForm); // 表单
|
||||
const loading = ref(false); // 加载状态
|
||||
const fileStatus = ref(false); // 文件状态
|
||||
const codeHtml = ref(""); // 文件信息
|
||||
|
||||
// 上传组件
|
||||
const uploadRef = ref<UploadInstance>();
|
||||
|
||||
// 用户表单数据
|
||||
const formData = reactive({
|
||||
status: 1,
|
||||
});
|
||||
|
||||
const userStore = useUserStore();
|
||||
|
||||
// 基础数据列表
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<template #header>
|
||||
<div class="flex justify-between">
|
||||
<div>
|
||||
<el-button type="primary" @click="handleAdd()"
|
||||
<el-button type="primary" @click="handleAdd"
|
||||
><i-ep-plus />添加算子</el-button
|
||||
>
|
||||
</div>
|
||||
|
@ -74,9 +74,13 @@
|
|||
|
||||
<script setup lang="ts">
|
||||
import OperatorApi from '@/api/operator'
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
const loading = ref(false); // 加载状态
|
||||
const total = ref(0); // 数据总数
|
||||
const pageData = ref([]); // 分页数据
|
||||
const removeIds = ref([]); // 删除ID集合 用于批量删除
|
||||
const queryFormRef = ref(ElForm); // 查询表单
|
||||
const queryParams = reactive({
|
||||
page_num: 1,
|
||||
|
@ -87,11 +91,6 @@ const queryParams = reactive({
|
|||
oper_main_type:null
|
||||
});
|
||||
|
||||
const total = ref(0); // 数据总数
|
||||
const pageData = ref([]); // 用户分页数据
|
||||
|
||||
const removeIds = ref([]); // 删除用户ID集合 用于批量删除
|
||||
|
||||
/** 查询 */
|
||||
function handleQuery() {
|
||||
loading.value = true;
|
||||
|
|
|
@ -2,114 +2,136 @@
|
|||
<template>
|
||||
<div class="app-container model-detail">
|
||||
<!-- 用户新增/编辑表单 -->
|
||||
<el-card>
|
||||
<el-card v-loading="loading">
|
||||
<template #header
|
||||
><svg-icon icon-class="pause" style="width: 20px; height: 20px" />
|
||||
算子参数基本信息
|
||||
算子程序基本信息
|
||||
</template>
|
||||
<el-row>
|
||||
<el-col :lg="12" :xs="24">
|
||||
<el-form
|
||||
ref="userFormRef"
|
||||
:model="formData"
|
||||
:rules="rules"
|
||||
v-loading="loading"
|
||||
label-width="80px"
|
||||
>
|
||||
<el-form-item label="算子类型" prop="roleIds">
|
||||
<el-row style="width: 100%">
|
||||
<el-col :span="12">
|
||||
<el-select
|
||||
v-model="formData.roleIds"
|
||||
placeholder="请选择算子类型"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option label="前置处理" value="1" />
|
||||
</el-select>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-select
|
||||
v-model="formData.roleIds2"
|
||||
placeholder="请选择算子类型"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option label="缩放算子" value="0" />
|
||||
<el-option label="图像分类" value="1" />
|
||||
<el-option label="目标检测" value="2" />
|
||||
</el-select>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form-item>
|
||||
<el-form-item label="适配硬件" prop="mobile">
|
||||
<el-form ref="formRef" :model="formData" :rules="rules" label-width="80px">
|
||||
<el-form-item label="算子类型" prop="oper_main_type">
|
||||
<el-select
|
||||
v-model="formData.roleIds"
|
||||
placeholder="请选择适配硬件"
|
||||
v-model="formData.oper_main_type"
|
||||
placeholder="请选择算子主类型"
|
||||
style="width: 100%"
|
||||
@change="handleChange"
|
||||
>
|
||||
<el-option label="RGB24格式转换算子参数" value="1" />
|
||||
<el-option label="图像缩放算子参数" value="2" />
|
||||
<el-option label="人脸识别算子" value="2" />
|
||||
<el-option
|
||||
v-for="item in listOpt.operTypeList"
|
||||
:key="item.oper_main_type"
|
||||
:label="item.oper_main_type_name"
|
||||
:value="item.oper_main_type"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="算子名称" prop="roleIdsd">
|
||||
<el-form-item label="算子名称" prop="operator_id">
|
||||
<el-select
|
||||
v-model="formData.roleIdsd"
|
||||
v-model="formData.operator_id"
|
||||
placeholder="请选择算子名称"
|
||||
style="width: 100%"
|
||||
@change="handleChangeOperator"
|
||||
>
|
||||
<el-option label="算子名称算子名称" value="1" />
|
||||
<el-option
|
||||
v-for="item in listOpt.operatorList"
|
||||
:key="item.operator_id"
|
||||
:label="item.operator_name"
|
||||
:value="item.operator_id"
|
||||
>
|
||||
<span style="float: left">{{ item.operator_name }}</span>
|
||||
<span
|
||||
style="
|
||||
float: right;
|
||||
color: var(--el-text-color-secondary);
|
||||
font-size: 13px;
|
||||
"
|
||||
>
|
||||
{{ item.oper_sub_type_name }}
|
||||
</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
<!-- <el-select
|
||||
v-model="formData.operator_id"
|
||||
multiple
|
||||
filterable
|
||||
remote
|
||||
reserve-keyword
|
||||
placeholder="请搜索选择算子名称"
|
||||
remote-show-suffix
|
||||
:remote-method="remoteMethod"
|
||||
:loading="selLoading"
|
||||
style="width: 100%"
|
||||
@change="handleChangeOperator"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in listOpt.operatorList"
|
||||
:key="item.operator_id"
|
||||
:label="item.operator_name"
|
||||
:value="item.operator_id"
|
||||
>
|
||||
<span style="float: left">{{ item.operator_name }}</span>
|
||||
<span
|
||||
style="
|
||||
float: right;
|
||||
color: var(--el-text-color-secondary);
|
||||
font-size: 13px;
|
||||
"
|
||||
>
|
||||
{{ item.oper_sub_type_name }}
|
||||
</span>
|
||||
</el-option>
|
||||
</el-select> -->
|
||||
</el-form-item>
|
||||
<el-form-item label="适配硬件" prop="cmpt_hardware_type">
|
||||
<el-select
|
||||
v-model="formData.cmpt_hardware_type"
|
||||
placeholder="请选择适配硬件类型"
|
||||
style="width: 100%"
|
||||
@change="handleChangeCmpt"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in listOpt.cmptHardwareTypeList"
|
||||
:key="item"
|
||||
:label="item"
|
||||
:value="item"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="程序版本" prop="mobile">
|
||||
<el-input
|
||||
v-model="formData.mobile"
|
||||
placeholder="请输入参数说明"
|
||||
maxlength="11"
|
||||
/>
|
||||
<el-form-item label="程序版本" prop="program_version">
|
||||
<el-input v-model="formData.program_version" type="number" placeholder="请输入程序版本" />
|
||||
</el-form-item>
|
||||
<el-form-item label="参数文件" prop="email">
|
||||
<el-form-item label="程序文件" prop="program_file_name">
|
||||
<el-upload
|
||||
v-model:file-list="fileList"
|
||||
class="upload-demo"
|
||||
action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
|
||||
multiple
|
||||
:on-preview="handlePreview"
|
||||
:on-remove="handleRemove"
|
||||
:before-remove="beforeRemove"
|
||||
:limit="3"
|
||||
:on-exceed="handleExceed"
|
||||
ref="uploadRef"
|
||||
class="upload-demo"
|
||||
:on-exceed="handleFileExceed"
|
||||
:auto-upload="false"
|
||||
:limit="1"
|
||||
accept="application/x-tar"
|
||||
>
|
||||
<el-button type="primary"
|
||||
><el-icon class="el-icon--upload"> <i-ep-upload-filled /> </el-icon
|
||||
>选择文件</el-button
|
||||
>
|
||||
<template #tip>
|
||||
<div class="el-upload__tip">请上传大小不超过 <strong style="color: red">10M</strong>,格式为
|
||||
<strong style="color: red">tar</strong> 的文件</div>
|
||||
<div class="el-upload__tip">
|
||||
请上传大小不超过 <strong style="color: red">10M</strong>,格式为
|
||||
<strong style="color: red">tar</strong> 的文件
|
||||
</div>
|
||||
</template>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-col>
|
||||
<el-col :lg="12" :xs="24">
|
||||
<div style="padding-left: 35px" v-if="formData.roleIdsd!=null">
|
||||
<el-form
|
||||
ref="userFormRef"
|
||||
:model="formData"
|
||||
v-loading="loading"
|
||||
label-width="100px"
|
||||
size="small"
|
||||
>
|
||||
<div style="padding-left: 35px" v-if="fileStatus">
|
||||
<el-form label-width="100px" size="small">
|
||||
<el-divider content-position="left"
|
||||
><strong style="color: #409eff">算子参数信息</strong></el-divider
|
||||
><strong style="color: #409eff">算子文件预览</strong></el-divider
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.usernamedd2"
|
||||
:disabled="true"
|
||||
placeholder="请输入数据集名称"
|
||||
:rows="12"
|
||||
type="textarea"
|
||||
/>
|
||||
<el-input v-model="codeJson" :disabled="true" type="textarea" :rows="20" />
|
||||
</el-form>
|
||||
</div>
|
||||
</el-col>
|
||||
|
@ -123,91 +145,134 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
defineOptions({
|
||||
name: "User",
|
||||
inheritAttrs: false,
|
||||
});
|
||||
|
||||
import UserAPI from "@/api/user";
|
||||
import { UserForm } from "@/api/user/model";
|
||||
import ConstApi from "@/api/const";
|
||||
import { useUserStore } from "@/store";
|
||||
import OperatorApi from "@/api/operator";
|
||||
|
||||
const router = useRouter();
|
||||
const formRef = ref(ElForm); // 表单
|
||||
const loading = ref(false); // 加载状态
|
||||
const selLoading = ref(false); // 加载状态
|
||||
const fileStatus = ref(false); // 文件状态
|
||||
const codeJson = ref(""); // 文件信息
|
||||
|
||||
const calTypeList = ref<OptionType[]>(); // 角色下拉数据源
|
||||
|
||||
// 上传组件
|
||||
const uploadRef = ref<UploadInstance>();
|
||||
// 用户表单数据
|
||||
const formData = reactive<UserForm>({
|
||||
const formData = reactive({
|
||||
status: 1,
|
||||
roleIdsd:null,
|
||||
usernamedd2: `{
|
||||
"name" : "图像缩放算子",
|
||||
"uni_id" : "OPER_1234567890",
|
||||
"version" : 100,
|
||||
"main_type" : "pre_process",
|
||||
"sub_type" : "clip",
|
||||
"cmpt_hardware_type" : "atlas200i",
|
||||
"parameters" : {}
|
||||
}
|
||||
{
|
||||
"name" : "图像缩放算子",
|
||||
"uni_id" : "OPER_1234567890",
|
||||
"version" : 100,
|
||||
"main_type" : "pre_process",
|
||||
"sub_type" : "clip",
|
||||
"cmpt_hardware_type" : "atlas200i",
|
||||
"parameters" : {}
|
||||
}
|
||||
{
|
||||
"name" : "图像缩放算子",
|
||||
"uni_id" : "OPER_1234567890",
|
||||
"version" : 100,
|
||||
"main_type" : "pre_process",
|
||||
"sub_type" : "clip",
|
||||
"cmpt_hardware_type" : "atlas200i",
|
||||
"parameters" : {}
|
||||
}`,
|
||||
});
|
||||
const userStore = useUserStore();
|
||||
|
||||
// 基础数据列表
|
||||
let listOpt = reactive({
|
||||
operTypeList: [],
|
||||
operatorList: [],
|
||||
cmptHardwareTypeList: [],
|
||||
});
|
||||
|
||||
// 校验规则
|
||||
const rules = reactive({
|
||||
username: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
nickname: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
deptId: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
roleIds: [{ required: true, message: "不能为空", trigger: "blur" }],
|
||||
email: [
|
||||
{
|
||||
pattern: /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/,
|
||||
message: "请输入正确的邮箱地址",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
mobile: [
|
||||
{
|
||||
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
oper_main_type: [{ required: true, message: "算子类型不能为空", trigger: "blur" }],
|
||||
operator_id: [{ required: true, message: "算子名称不能为空", trigger: "blur" }],
|
||||
cmpt_hardware_type: [{ required: true, message: "适配硬件不能为空", trigger: "blur" }],
|
||||
program_version: [{ required: true, message: "程序版本不能为空", trigger: "blur" }],
|
||||
program_file_name: [{ required: true, message: "程序文件不能为空", trigger: "blur" }],
|
||||
});
|
||||
|
||||
/** 表单提交 */
|
||||
const handleSubmit = useThrottleFn(() => {
|
||||
loading.value = true;
|
||||
setTimeout(() => {
|
||||
ElMessage.success("保存成功");
|
||||
loading.value = false;
|
||||
closeBack();
|
||||
}, 1000);
|
||||
formRef.value.validate((valid: any) => {
|
||||
if (valid) {
|
||||
loading.value = true;
|
||||
formData.user_id = userStore.user?.id;
|
||||
formData.create_time = new Date();
|
||||
OperatorApi.addPrograms(formData).then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
ElMessage.success("保存成功");
|
||||
loading.value = false;
|
||||
closeBack();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}, 3000);
|
||||
|
||||
// 超出限制,清空文件列表
|
||||
function handleFileExceed() {
|
||||
uploadRef.value.clearFiles();
|
||||
ElMessage.warning("已清空文件列表,请重新上传!");
|
||||
}
|
||||
|
||||
/** 返回默认页面 */
|
||||
function closeBack() {
|
||||
router.replace({ path: "/operatorLibrary/calculateParam" });
|
||||
}
|
||||
|
||||
/** 搜索算子 */
|
||||
const remoteMethod = (query: string) => {
|
||||
if (query) {
|
||||
selLoading.value = true;
|
||||
setTimeout(() => {
|
||||
let param = {
|
||||
page_num: 1,
|
||||
page_size: 999,
|
||||
operator_name: query,
|
||||
oper_main_type: formData.oper_main_type,
|
||||
};
|
||||
OperatorApi.list(param)
|
||||
.then((res) => {
|
||||
operatorList = res.data.data.operator_list;
|
||||
})
|
||||
.finally(() => {
|
||||
selLoading.value = false;
|
||||
});
|
||||
}, 200);
|
||||
} else {
|
||||
operatorList = [];
|
||||
}
|
||||
};
|
||||
|
||||
/** 算子主类型改变 */
|
||||
function handleChange() {
|
||||
formRef.value.validateField('oper_main_type');
|
||||
let param = {
|
||||
page_num: 1,
|
||||
page_size: 999,
|
||||
oper_main_type: formData.oper_main_type,
|
||||
};
|
||||
OperatorApi.list(param).then((res) => {
|
||||
listOpt.operatorList = res.data.data.operator_list;
|
||||
});
|
||||
}
|
||||
|
||||
/** 选择算子名称 */
|
||||
function handleChangeOperator() {
|
||||
formRef.value.validateField('operator_id');
|
||||
OperatorApi.findOne(formData.operator_id).then((res) => {
|
||||
//JSON转换
|
||||
codeJson.value = JSON.stringify(res.data.data.parameters);
|
||||
fileStatus.value = true;
|
||||
});
|
||||
}
|
||||
|
||||
/** 选择适配硬件 */
|
||||
function handleChangeCmpt(){
|
||||
formRef.value.validateField('cmpt_hardware_type');
|
||||
}
|
||||
|
||||
// 初始化选项列表
|
||||
const initData = () => {
|
||||
ConstApi.operMainType().then((res) => {
|
||||
listOpt.operTypeList = res.data.data.oper_main_type_list || [];
|
||||
});
|
||||
ConstApi.cmptHardwareType().then((res) => {
|
||||
listOpt.cmptHardwareTypeList = res.data.data.cmpt_hardware_type_list || [];
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
//handleQuery();
|
||||
initData();
|
||||
});
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<template #header>
|
||||
<div class="flex justify-between">
|
||||
<div>
|
||||
<el-button type="primary" @click="openDialog('user-form')"
|
||||
<el-button type="primary" @click="handleAdd"
|
||||
><i-ep-plus />添加算子程序</el-button
|
||||
>
|
||||
<el-button
|
||||
|
@ -17,9 +17,9 @@
|
|||
</div>
|
||||
<div>
|
||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||
<el-form-item label="算子名称" prop="keywords">
|
||||
<el-form-item label="算子名称" prop="operator_name">
|
||||
<el-input
|
||||
v-model="queryParams.keywords"
|
||||
v-model="queryParams.operator_name"
|
||||
placeholder="请输入算子参数名称"
|
||||
clearable
|
||||
style="width: 200px"
|
||||
|
@ -41,25 +41,25 @@
|
|||
</template>
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="tableData"
|
||||
:data="pageData"
|
||||
stripe
|
||||
@selection-change="handleSelectionChange"
|
||||
>
|
||||
<el-table-column label="算子名称" align="left" prop="szmc" width="300" />
|
||||
<el-table-column label="算子主类型" align="left" prop="szlx" />
|
||||
<el-table-column label="算子子类型" align="left" prop="szzlx" />
|
||||
<el-table-column label="程序版本" width="180" align="left" prop="bb1" />
|
||||
<el-table-column label="程序适应硬件" width="180" align="left" prop="bb2" />
|
||||
<el-table-column label="参数描述" width="180" align="left" prop="bb" />
|
||||
<el-table-column label="互联时间" width="180" align="left" prop="hlcjsj" />
|
||||
<el-table-column label="算子名称" align="left" prop="operator_name" width="300" />
|
||||
<el-table-column label="算子主类型" align="left" prop="oper_main_type_name" />
|
||||
<el-table-column label="算子子类型" align="left" prop="oper_sub_type_name" />
|
||||
<el-table-column label="程序版本" width="180" align="left" prop="program_version" />
|
||||
<el-table-column label="程序适应硬件" width="180" align="left" prop="cmpt_hardware_type" />
|
||||
<el-table-column label="算子文件" width="180" align="left" prop="program_file_name" />
|
||||
<el-table-column label="创建时间" width="180" align="left" prop="create_time" />
|
||||
<el-table-column label="操作" fixed="right" width="220">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
text type="primary" size="small"
|
||||
@click="openDialogView('user-form', scope.row.id)"
|
||||
@click="handleDetail(scope.row.program_id)"
|
||||
><i-ep-view />查看参数</el-button
|
||||
>
|
||||
<el-button text type="primary" size="small" @click="handleDelete(scope.row)"
|
||||
<el-button text type="primary" size="small" @click="handleDelete(scope.row.program_id)"
|
||||
><i-ep-delete />删除</el-button
|
||||
>
|
||||
</template>
|
||||
|
@ -69,8 +69,8 @@
|
|||
<pagination
|
||||
v-if="total > 0"
|
||||
v-model:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
v-model:page="queryParams.page_num"
|
||||
v-model:limit="queryParams.page_size"
|
||||
@pagination="handleQuery"
|
||||
/>
|
||||
</el-card>
|
||||
|
@ -78,130 +78,80 @@
|
|||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
defineOptions({
|
||||
name: "calculateIndex",
|
||||
inheritAttrs: false,
|
||||
});
|
||||
import OperatorApi from '@/api/operator'
|
||||
|
||||
import { UserQuery } from "@/api/user/model";
|
||||
|
||||
const queryFormRef = ref(ElForm); // 查询表单
|
||||
const router = useRouter();
|
||||
|
||||
const loading = ref(false); // 加载状态
|
||||
const removeIds = ref([]); // 删除用户ID集合 用于批量删除
|
||||
const queryParams = reactive<UserQuery>({
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
});
|
||||
const dateTimeRange = ref("");
|
||||
const total = ref(0); // 数据总数
|
||||
|
||||
watch(dateTimeRange, (newVal) => {
|
||||
if (newVal) {
|
||||
queryParams.startTime = newVal[0];
|
||||
queryParams.endTime = newVal[1];
|
||||
}
|
||||
const pageData = ref([]); // 分页数据
|
||||
const removeIds = ref([]); // 删除ID集合 用于批量删除
|
||||
const queryFormRef = ref(ElForm); // 查询表单
|
||||
const queryParams = reactive({
|
||||
page_num: 1,
|
||||
page_size: 10,
|
||||
operation_id: null,
|
||||
oper_main_type: null,
|
||||
oper_sub_type: null,
|
||||
cmpt_hardware_type: null,
|
||||
operator_name: null,
|
||||
});
|
||||
|
||||
const tableData = [
|
||||
{
|
||||
szmc: "RGB24格式转换算子参数",
|
||||
szlx: "前处理",
|
||||
szzlx: "格式转换",
|
||||
bb: "",
|
||||
bb1: "1.0.0",
|
||||
bb2: "人脸识别",
|
||||
hlcjsj: "2024-05-03",
|
||||
},
|
||||
{
|
||||
szmc: "图像缩放算子参数",
|
||||
szlx: "前处理",
|
||||
szzlx: "图像缩放",
|
||||
bb: "专业的图像缩放",
|
||||
bb1: "1.0.0",
|
||||
bb2: "人脸识别",
|
||||
hlcjsj: "2024-06-07",
|
||||
},
|
||||
{
|
||||
szmc: "人脸识别算子",
|
||||
szlx: "后处理",
|
||||
szzlx: "人脸识别",
|
||||
bb: "好高大上的人脸识别算子模型",
|
||||
bb1: "1.0.0",
|
||||
bb2: "人脸识别",
|
||||
hlcjsj: "2024-06-08",
|
||||
},
|
||||
];
|
||||
|
||||
/** 查询 */
|
||||
function handleQuery() {
|
||||
loading.value = true;
|
||||
ElMessage.success("查询成功");
|
||||
loading.value = false;
|
||||
// UserAPI.getPage(queryParams)
|
||||
// .then((data) => {
|
||||
// console.log("handleQuery", data);
|
||||
// pageData.value = data.list;
|
||||
// total.value = data.total;
|
||||
// })
|
||||
// .finally(() => {
|
||||
// loading.value = false;
|
||||
// });
|
||||
OperatorApi.getPrograms(queryParams)
|
||||
.then((res) => {
|
||||
pageData.value = res.data.data.program_list;
|
||||
total.value = res.data.data.total;
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
/** 重置查询 */
|
||||
function resetQuery() {
|
||||
queryFormRef.value.resetFields();
|
||||
dateTimeRange.value = "";
|
||||
queryParams.pageNum = 1;
|
||||
queryParams.deptId = undefined;
|
||||
queryParams.startTime = undefined;
|
||||
queryParams.endTime = undefined;
|
||||
queryParams.page_num = 1;
|
||||
queryParams.operation_id = null;
|
||||
queryParams.oper_main_type = null;
|
||||
queryParams.oper_sub_type = null;
|
||||
queryParams.cmpt_hardware_type = null;
|
||||
queryParams.operator_name = null;
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
/** 行选中 */
|
||||
function handleSelectionChange(selection: any) {
|
||||
removeIds.value = selection.map((item: any) => item.id);
|
||||
removeIds.value = selection.map((item: any) => item.program_id);
|
||||
}
|
||||
|
||||
/** 删除数据 */
|
||||
function handleDelete(row: { [key: string]: any }) {
|
||||
ElMessageBox.confirm("确认删除算子参数?", "警告", {
|
||||
function handleDelete(id?: number) {
|
||||
ElMessageBox.confirm("确认删除算子程序?", "警告", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
}).then(function () {
|
||||
ElMessage.success("删除成功");
|
||||
OperatorApi.deletePrograms(id).then((res) => {
|
||||
ElMessage.success("删除成功");
|
||||
resetQuery();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 打开弹窗
|
||||
*
|
||||
* @param type 弹窗类型 用户表单:user-form | 用户导入:user-import
|
||||
* @param id 用户ID
|
||||
*/
|
||||
async function openDialog(type: string, id?: number) {
|
||||
/** 查看算子程序 */
|
||||
function handleDetail(program_id?: number) {
|
||||
router.replace({path:"/operatorLibrary/calculateParamDetail",query:{id:program_id}})
|
||||
}
|
||||
|
||||
/** 新增算子程序 */
|
||||
function handleAdd() {
|
||||
router.replace({ path: "/operatorLibrary/calculateParamEdit" });
|
||||
}
|
||||
|
||||
async function openDialogView(type: string, id?: number) {
|
||||
router.replace({ path: "/operatorLibrary/calculateParamView" });
|
||||
}
|
||||
|
||||
/** 下载导入模板 */
|
||||
function downloadTemplate() {
|
||||
ElMessage.success("下载模板成功");
|
||||
}
|
||||
|
||||
/** 导出用户 */
|
||||
function handleExport() {
|
||||
ElMessage.success("导出成功");
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
//handleQuery();
|
||||
handleQuery();
|
||||
});
|
||||
</script>
|
||||
|
|
Loading…
Reference in New Issue