|
@@ -1,23 +1,27 @@
|
|
|
<template>
|
|
|
<div class="createTask-bigBox">
|
|
|
- <dv-border-box1 ref="borderRef" style="width: 80%; height: calc(100% - 50px); margin: 0 auto">
|
|
|
+ <dv-border-box1 ref="borderRef" style="width: 80%; height: calc(100% - 20px); margin: 0 auto">
|
|
|
<div class="createTask-container">
|
|
|
<h3 class="title" style="margin-top: 0">{{ title }}</h3>
|
|
|
<!-- <h4 class="title2" v-if="pageIndex === 4">训练算法</h4> -->
|
|
|
<div v-for="(item, index) in formItems" :key="index" class="createTask-main">
|
|
|
- <ProForm :items-options="item.items" :form-options="_options" :model="item.model" class="proform">
|
|
|
- <template #selectTask="{}">
|
|
|
+ <ProForm ref="proFormRef" :items-options="item.items" :form-options="_options" :model="item.model" class="proform">
|
|
|
+ <template #selectTask>
|
|
|
<el-tree
|
|
|
style="max-width: 600px"
|
|
|
+ ref="selectTaskTreeRef"
|
|
|
:default-checked-keys="formItem.selectTask"
|
|
|
:default-expanded-keys="formItem.selectTask"
|
|
|
:props="defaultProps"
|
|
|
- check-strictly
|
|
|
:check-on-click-node="true"
|
|
|
:data="data1"
|
|
|
node-key="id"
|
|
|
show-checkbox
|
|
|
- @check="changeTree"
|
|
|
+ @check="
|
|
|
+ (click, checked) => {
|
|
|
+ changeTree(click, checked)
|
|
|
+ }
|
|
|
+ "
|
|
|
/>
|
|
|
</template>
|
|
|
<template #proTable="{}">
|
|
@@ -25,31 +29,33 @@
|
|
|
<el-tab-pane label="数据一">
|
|
|
<div class="table-box">
|
|
|
<ProTable
|
|
|
- ref="proTable"
|
|
|
+ ref="proTable1"
|
|
|
row-key="id"
|
|
|
:columns="dataColumns"
|
|
|
:request-api="listDataApi"
|
|
|
:init-param="initParam"
|
|
|
:tool-button="false"
|
|
|
- height="280"
|
|
|
- :request-auto="false"
|
|
|
+ height="45vh"
|
|
|
>
|
|
|
</ProTable>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="数据二">
|
|
|
<div class="table-box">
|
|
|
- <ProTable ref="proTable" row-key="id" :columns="dataColumns" :tool-button="false" height="250" :request-auto="false"> </ProTable>
|
|
|
+ <ProTable ref="proTable1" row-key="id" :columns="dataColumns" :request-api="listDataApi" :tool-button="false" height="45vh">
|
|
|
+ </ProTable>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="数据三">
|
|
|
<div class="table-box">
|
|
|
- <ProTable ref="proTable" row-key="id" :columns="dataColumns" :tool-button="false" height="250" :request-auto="false"> </ProTable>
|
|
|
+ <ProTable ref="proTable1" row-key="id" :columns="dataColumns" :request-api="listDataApi" :tool-button="false" height="45vh">
|
|
|
+ </ProTable>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="数据四">
|
|
|
<div class="table-box">
|
|
|
- <ProTable ref="proTable" row-key="id" :columns="dataColumns" :tool-button="false" height="250" :request-auto="false"> </ProTable>
|
|
|
+ <ProTable ref="proTable1" row-key="id" :columns="dataColumns" :request-api="listDataApi" :tool-button="false" height="45vh">
|
|
|
+ </ProTable>
|
|
|
</div>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
@@ -58,10 +64,15 @@
|
|
|
<div class="footBtn">
|
|
|
<el-button class="btn back" v-if="pageIndex === 1" @click="onReturn()"> 返回 </el-button>
|
|
|
<el-button class="btn back" v-else @click="onBack()"> 上一步 </el-button>
|
|
|
- <el-button class="btn add" style="margin-left: -15px" v-if="pageIndex === 5 || pageIndex === 9" @click="onAdd()">
|
|
|
+ <el-button
|
|
|
+ class="btn add"
|
|
|
+ style="margin-left: -15px"
|
|
|
+ v-if="pageIndex === 5 || pageIndex === 9 || pageIndex === 13"
|
|
|
+ @click="onAdd(pageIndex)"
|
|
|
+ >
|
|
|
增加算法
|
|
|
</el-button>
|
|
|
- <el-button class="btn next" type="success" @click="pageIndex === 13 ? onSubmit(formModel) : onNext()">
|
|
|
+ <el-button class="btn next" type="success" @click="nextBtnText === '提交' ? onSubmit(formModel) : onNext()">
|
|
|
{{ nextBtnText }}
|
|
|
</el-button>
|
|
|
</div>
|
|
@@ -76,36 +87,42 @@
|
|
|
import { ref, ComputedRef, computed, watch, reactive } from 'vue'
|
|
|
import ProForm from '@/components/ProForm/index.vue'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
-// import { getImageApi } from '@/api/modules/taais/task'
|
|
|
+import { getModelApi } from '@/api/modules/taais/task'
|
|
|
import ProTable from '@/components/ProTable/index.vue'
|
|
|
-import { ColumnProps } from '@/components/ProTable/interface'
|
|
|
+import { ColumnProps, ProTableInstance } from '@/components/ProTable/interface'
|
|
|
import { listDataApi } from '@/api/modules/demo/data'
|
|
|
-import { ElMessage } from 'element-plus'
|
|
|
+import { ElMessage, ElTree } from 'element-plus'
|
|
|
+import { getDictsApi } from '@/api/modules/system/dictData'
|
|
|
// :request-api="getImageApi(1)" getImageApi,
|
|
|
-const initParam = reactive({ type: 1 })
|
|
|
+const initParam = reactive({
|
|
|
+ type: 1
|
|
|
+})
|
|
|
let model = ref({
|
|
|
taskType: '1',
|
|
|
enhanceModel: '',
|
|
|
pretreatmentModel: ''
|
|
|
})
|
|
|
-let formItem = ref({
|
|
|
+let formItem = reactive({
|
|
|
taskName: '',
|
|
|
- selectTask: [3],
|
|
|
- trainDataSelect: [],
|
|
|
+ selectTask: [2, 5],
|
|
|
+ trainDataSelect: [] as any[],
|
|
|
trainDataEnhancement: {},
|
|
|
trainDataExpansion: {},
|
|
|
train: [{}],
|
|
|
testDataSelect: [],
|
|
|
testDataEnhancement: {},
|
|
|
testDataExpansion: {},
|
|
|
- test: [],
|
|
|
+ test: [{}],
|
|
|
reasoningDataSelect: [],
|
|
|
reasoningDataEnhancement: {},
|
|
|
reasoningDataExpansion: {},
|
|
|
- reasoning: []
|
|
|
+ reasoning: [{}]
|
|
|
})
|
|
|
+let prevTreeData = ref([3])
|
|
|
const router = useRouter()
|
|
|
let pageIndex = ref<number>(1)
|
|
|
+const selectTaskTreeRef = ref<InstanceType<typeof ElTree>>()
|
|
|
+const proTable1 = ref<ProTableInstance>()
|
|
|
let title = ref('目标精准捕获任务选择')
|
|
|
let nextBtnText = ref('下一步')
|
|
|
const enumData = [
|
|
@@ -124,6 +141,7 @@ const enumData = [
|
|
|
]
|
|
|
const data1 = [
|
|
|
{
|
|
|
+ id: 98,
|
|
|
label: '训练',
|
|
|
disabled: true,
|
|
|
children: [
|
|
@@ -150,6 +168,7 @@ const data1 = [
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
+ id: 99,
|
|
|
label: '测试',
|
|
|
disabled: true,
|
|
|
children: [
|
|
@@ -176,6 +195,7 @@ const data1 = [
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
+ id: 100,
|
|
|
label: '推理',
|
|
|
disabled: true,
|
|
|
children: [
|
|
@@ -279,9 +299,24 @@ const dataColumns = reactive<ColumnProps<any>[]>([
|
|
|
width: 120
|
|
|
}
|
|
|
])
|
|
|
-// const dataOne = getImageApi(1)
|
|
|
-// console.log('dataOne', dataOne)
|
|
|
+// const dataOne = getModelApi(1)
|
|
|
+// const dataOne = listDataApi({
|
|
|
+// type: 1,
|
|
|
+// pageNum: 1,
|
|
|
+// pageSize: 10
|
|
|
+// })
|
|
|
+// const dataOne = getModelApi({
|
|
|
+// algorithmId: 1
|
|
|
+// })
|
|
|
+let subsystemData = []
|
|
|
+getDictsApi('biz_algorithm_config').then((res: any) => {
|
|
|
+ console.log('res', res)
|
|
|
+
|
|
|
+ // subsystemData = res.data
|
|
|
+})
|
|
|
+console.log('subsystemData.value', subsystemData)
|
|
|
|
|
|
+// console.log('dataOne', dataOne)
|
|
|
const defaultProps = {
|
|
|
children: 'children',
|
|
|
label: 'label'
|
|
@@ -301,10 +336,10 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
label: '任务名称',
|
|
|
prop: 'taskName',
|
|
|
span: 12,
|
|
|
+ rules: [{ required: true, message: '请输入任务名称' }],
|
|
|
show: () => {
|
|
|
return pageIndex.value === 1 ? true : false
|
|
|
},
|
|
|
-
|
|
|
compOptions: {
|
|
|
elTagName: 'input',
|
|
|
clearable: true,
|
|
@@ -359,8 +394,8 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
{ name: 'aaa', value: 'bbb', defaultValue: 'xxx', required: true, index: 1 },
|
|
|
{ name: 'aaa1', value: 'bbb2', defaultValue: 'xxx3', required: false, index: 4 }
|
|
|
]
|
|
|
- formItem.value.trainDataEnhancement['algorithmId'] = val
|
|
|
- formItem.value.trainDataEnhancement['params'] = {}
|
|
|
+ formItem.trainDataEnhancement['algorithmId'] = val
|
|
|
+ formItem.trainDataEnhancement['params'] = {}
|
|
|
// (参数信息,第几页,数组名称)
|
|
|
addForm(params, 3, 'trainDataEnhancement')
|
|
|
}
|
|
@@ -381,17 +416,18 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
{ name: 'bbb', value: 'bbb', defaultValue: 'xxx', required: true, index: 1 },
|
|
|
{ name: 'bbb1', value: 'bbb2', defaultValue: 'xxx3', required: false, index: 4 }
|
|
|
]
|
|
|
- formItem.value.trainDataExpansion['algorithmId'] = val
|
|
|
- formItem.value.trainDataExpansion['params'] = {}
|
|
|
+ formItem.trainDataExpansion['algorithmId'] = val
|
|
|
+ formItem.trainDataExpansion['params'] = {}
|
|
|
// (参数信息,第几页,数组名称)
|
|
|
addForm(params, 4, 'trainDataExpansion')
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
- label: '选择训练算法1',
|
|
|
+ label: '选择训练算法',
|
|
|
prop: 'trainAlgo',
|
|
|
span: 14,
|
|
|
+ rules: [{ required: true, message: '请选择训练算法' }],
|
|
|
show: () => {
|
|
|
return pageIndex.value === 5 ? true : false
|
|
|
},
|
|
@@ -400,7 +436,7 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
enum: enumData,
|
|
|
onChange: val => {
|
|
|
// console.log("val5",val);
|
|
|
- formItem.value.train[0]['algorithmId'] = val
|
|
|
+ formItem.train[0]['algorithmId'] = val
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -408,19 +444,20 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
label: '选择训练模型',
|
|
|
prop: 'trainModel',
|
|
|
span: 14,
|
|
|
+ rules: [{ required: true, message: '请选择训练模型' }],
|
|
|
show: () => {
|
|
|
return pageIndex.value === 5 ? true : false
|
|
|
},
|
|
|
compOptions: {
|
|
|
elTagName: 'select',
|
|
|
- enum: enumData,
|
|
|
+ enum: subsystemData,
|
|
|
onChange: val => {
|
|
|
const params = [
|
|
|
{ name: 'ccc', value: 'bbb', defaultValue: 'xxx', required: true, index: 1 },
|
|
|
{ name: 'ccc1', value: 'bbb2', defaultValue: 'xxx3', required: false, index: 4 }
|
|
|
]
|
|
|
- formItem.value.train[0]['modelId'] = val
|
|
|
- formItem.value.train[0]['params'] = {}
|
|
|
+ formItem.train[0]['modelId'] = val
|
|
|
+ formItem.train[0]['params'] = {}
|
|
|
// (参数信息,第几页,数组名称)
|
|
|
addForm(params, 5, 'train[0]')
|
|
|
}
|
|
@@ -437,7 +474,7 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
elTagName: 'select',
|
|
|
enum: enumData,
|
|
|
onChange: val => {
|
|
|
- formItem.value.testDataEnhancement['algorithmId'] = val
|
|
|
+ formItem.testDataEnhancement['algorithmId'] = val
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -453,8 +490,8 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
enum: enumData,
|
|
|
onChange: val => {
|
|
|
const params = [{ name: 'ccc', value: 'bbb', defaultValue: 'xxx', required: true, index: 1 }]
|
|
|
- formItem.value.testDataEnhancement['modelId'] = val
|
|
|
- formItem.value.testDataEnhancement['params'] = {}
|
|
|
+ formItem.testDataEnhancement['modelId'] = val
|
|
|
+ formItem.testDataEnhancement['params'] = {}
|
|
|
// (参数信息,第几页,数组名称)
|
|
|
addForm(params, 7, 'testDataEnhancement')
|
|
|
}
|
|
@@ -471,7 +508,7 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
elTagName: 'select',
|
|
|
enum: enumData,
|
|
|
onChange: val => {
|
|
|
- formItem.value.testDataExpansion['algorithmId'] = val
|
|
|
+ formItem.testDataExpansion['algorithmId'] = val
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -487,13 +524,53 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
enum: enumData,
|
|
|
onChange: val => {
|
|
|
const params = [{ name: 'ccc111', value: 'bbb', defaultValue: 'xxx', required: true, index: 1 }]
|
|
|
- formItem.value.testDataExpansion['modelId'] = val
|
|
|
- formItem.value.testDataExpansion['params'] = {}
|
|
|
+ formItem.testDataExpansion['modelId'] = val
|
|
|
+ formItem.testDataExpansion['params'] = {}
|
|
|
// (参数信息,第几页,数组名称)
|
|
|
addForm(params, 8, 'testDataExpansion')
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ {
|
|
|
+ label: '选择测试算法',
|
|
|
+ prop: 'testAlgo',
|
|
|
+ span: 14,
|
|
|
+ rules: [{ required: true, message: '请选择测试算法' }],
|
|
|
+ show: () => {
|
|
|
+ return pageIndex.value === 9 ? true : false
|
|
|
+ },
|
|
|
+ compOptions: {
|
|
|
+ elTagName: 'select',
|
|
|
+ enum: enumData,
|
|
|
+ onChange: val => {
|
|
|
+ // console.log("val5",val);
|
|
|
+ formItem.test[0]['algorithmId'] = val
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '选择测试模型',
|
|
|
+ prop: 'testModel',
|
|
|
+ span: 14,
|
|
|
+ rules: [{ required: true, message: '请选择测试模型' }],
|
|
|
+ show: () => {
|
|
|
+ return pageIndex.value === 9 ? true : false
|
|
|
+ },
|
|
|
+ compOptions: {
|
|
|
+ elTagName: 'select',
|
|
|
+ enum: enumData,
|
|
|
+ onChange: val => {
|
|
|
+ const params = [
|
|
|
+ { name: 'ccc', value: 'bbb', defaultValue: 'xxx', required: true, index: 1 },
|
|
|
+ { name: 'ccc1', value: 'bbb2', defaultValue: 'xxx3', required: false, index: 4 }
|
|
|
+ ]
|
|
|
+ formItem.test[0]['modelId'] = val
|
|
|
+ formItem.test[0]['params'] = {}
|
|
|
+ // (参数信息,第几页,数组名称)
|
|
|
+ addForm(params, 9, 'test[0]')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
{
|
|
|
label: '选择增强算法',
|
|
|
prop: 'reasoningEnhanceAlgo',
|
|
@@ -505,7 +582,7 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
elTagName: 'select',
|
|
|
enum: enumData,
|
|
|
onChange: val => {
|
|
|
- formItem.value.reasoningDataEnhancement['algorithmId'] = val
|
|
|
+ formItem.reasoningDataEnhancement['algorithmId'] = val
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -521,8 +598,8 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
enum: enumData,
|
|
|
onChange: val => {
|
|
|
const params = [{ name: 'ccc', value: 'bbb', defaultValue: 'xxx', required: true, index: 1 }]
|
|
|
- formItem.value.reasoningDataEnhancement['modelId'] = val
|
|
|
- formItem.value.reasoningDataEnhancement['params'] = {}
|
|
|
+ formItem.reasoningDataEnhancement['modelId'] = val
|
|
|
+ formItem.reasoningDataEnhancement['params'] = {}
|
|
|
// (参数信息,第几页,数组名称)
|
|
|
addForm(params, 11, 'reasoningDataEnhancement')
|
|
|
}
|
|
@@ -539,7 +616,7 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
elTagName: 'select',
|
|
|
enum: enumData,
|
|
|
onChange: val => {
|
|
|
- formItem.value.reasoningDataExpansion['algorithmId'] = val
|
|
|
+ formItem.reasoningDataExpansion['algorithmId'] = val
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -555,12 +632,52 @@ let items: ProForm.ItemsOptions[] = [
|
|
|
enum: enumData,
|
|
|
onChange: val => {
|
|
|
const params = [{ name: 'ccc111', value: 'bbb', defaultValue: 'xxx', required: true, index: 1 }]
|
|
|
- formItem.value.reasoningDataExpansion['modelId'] = val
|
|
|
- formItem.value.reasoningDataExpansion['params'] = {}
|
|
|
+ formItem.reasoningDataExpansion['modelId'] = val
|
|
|
+ formItem.reasoningDataExpansion['params'] = {}
|
|
|
// (参数信息,第几页,数组名称)
|
|
|
addForm(params, 12, 'reasoningDataExpansion')
|
|
|
}
|
|
|
}
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '选择测试算法',
|
|
|
+ prop: 'reasoningAlgo',
|
|
|
+ span: 14,
|
|
|
+ rules: [{ required: true, message: '请选择测试算法' }],
|
|
|
+ show: () => {
|
|
|
+ return pageIndex.value === 13 ? true : false
|
|
|
+ },
|
|
|
+ compOptions: {
|
|
|
+ elTagName: 'select',
|
|
|
+ enum: enumData,
|
|
|
+ onChange: val => {
|
|
|
+ // console.log("val5",val);
|
|
|
+ formItem.reasoning[0]['algorithmId'] = val
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: '选择测试模型',
|
|
|
+ prop: 'reasoningModel',
|
|
|
+ span: 14,
|
|
|
+ rules: [{ required: true, message: '请选择测试模型' }],
|
|
|
+ show: () => {
|
|
|
+ return pageIndex.value === 13 ? true : false
|
|
|
+ },
|
|
|
+ compOptions: {
|
|
|
+ elTagName: 'select',
|
|
|
+ enum: enumData,
|
|
|
+ onChange: val => {
|
|
|
+ const params = [
|
|
|
+ { name: 'ccc', value: 'bbb', defaultValue: 'xxx', required: true, index: 1 },
|
|
|
+ { name: 'ccc1', value: 'bbb2', defaultValue: 'xxx3', required: false, index: 4 }
|
|
|
+ ]
|
|
|
+ formItem.reasoning[0]['modelId'] = val
|
|
|
+ formItem.reasoning[0]['params'] = {}
|
|
|
+ // (参数信息,第几页,数组名称)
|
|
|
+ addForm(params, 13, 'reasoning[0]')
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
]
|
|
|
// let formItemsTemp4 = ref([
|
|
@@ -581,9 +698,72 @@ let formItems = ref([
|
|
|
model: model.value
|
|
|
}
|
|
|
])
|
|
|
+let addTrainAgloIndex = 0
|
|
|
+let addTestAgloIndex = 0
|
|
|
+let addReasoningAgloIndex = 0
|
|
|
+const proFormRef = ref<InstanceType<typeof ProForm> | null>(null)
|
|
|
// 增加训练算法
|
|
|
-const onAdd = () => {
|
|
|
- // formItems.value[0].items.push()
|
|
|
+const onAdd = pageNum => {
|
|
|
+ let arrayName = ''
|
|
|
+ let agloIndex
|
|
|
+ if (pageNum === 5) {
|
|
|
+ arrayName = 'train'
|
|
|
+ agloIndex = addTrainAgloIndex
|
|
|
+ } else if (pageNum === 9) {
|
|
|
+ arrayName = 'test'
|
|
|
+ agloIndex = addTestAgloIndex
|
|
|
+ } else if (pageNum === 13) {
|
|
|
+ arrayName = 'reasoning'
|
|
|
+ agloIndex = addReasoningAgloIndex
|
|
|
+ }
|
|
|
+ const formEl = proFormRef.value![0].proFormRef
|
|
|
+ if (!formEl) return
|
|
|
+ formEl.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ // const params = [
|
|
|
+ // { label: '选择训练算法', vmodel: `${arrayName}AgloIndex${agloIndex}` },
|
|
|
+ // { label: '选择训练模型', vmodel: `${arrayName}ModelIndex${agloIndex}` }
|
|
|
+ // ]
|
|
|
+ getModelApi(1).then((res: any) => {
|
|
|
+ const params = res.data
|
|
|
+ params.forEach((item, index) => {
|
|
|
+ formItems.value[0].items.push({
|
|
|
+ label: item.label,
|
|
|
+ prop: item.vmodel,
|
|
|
+ span: 14,
|
|
|
+ rules: [{ required: true, message: '请选择训练算法' }],
|
|
|
+ show: () => {
|
|
|
+ return pageIndex.value === pageNum ? true : false
|
|
|
+ },
|
|
|
+ compOptions: {
|
|
|
+ elTagName: 'select',
|
|
|
+ enum: index === 0 ? enumData : enumData,
|
|
|
+ onChange: val => {
|
|
|
+ if (index === 0) {
|
|
|
+ formItem[`${arrayName}`].push({})
|
|
|
+ console.log(`formItem[${arrayName}][${agloIndex}] ['algorithmId']`)
|
|
|
+
|
|
|
+ formItem[`${arrayName}`][`${agloIndex}`]['algorithmId'] = val
|
|
|
+ } else {
|
|
|
+ const params = [
|
|
|
+ { name: 'greg', value: 'bbb', defaultValue: 'xxx', required: true, index: 1 },
|
|
|
+ { name: 'greg1', value: 'bbb2', defaultValue: 'xxx3', required: false, index: 4 }
|
|
|
+ ]
|
|
|
+ formItem[`${arrayName}`][`${agloIndex}`]['modelId'] = val
|
|
|
+ formItem[`${arrayName}`][`${agloIndex}`]['params'] = {}
|
|
|
+ // (参数信息,第几页,数组名称)
|
|
|
+ addForm(params, pageNum, `${arrayName}[${agloIndex}] `)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ console.log('formItems.value', formItems.value)
|
|
|
+ })
|
|
|
+ agloIndex++
|
|
|
+ })
|
|
|
+ // const params = getModelApi(1)
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
// 增加表单事件
|
|
|
const addForm = (params, index, arrayName) => {
|
|
@@ -601,51 +781,126 @@ const addForm = (params, index, arrayName) => {
|
|
|
clearable: true,
|
|
|
placeholder: '请输入...',
|
|
|
onChange: val1 => {
|
|
|
- let sss = item.name
|
|
|
+ let label = item.name
|
|
|
if (arrayName.includes(']')) {
|
|
|
// 截取数组和下标
|
|
|
let array = arrayName.slice(0, -3)
|
|
|
let index = arrayName.slice(-2, -1)
|
|
|
- formItem.value[`${array}`][`${index}`]['params'][`${sss}`] = val1
|
|
|
+ console.log(`formItem[${array}][${index}]['params'][${label}]`)
|
|
|
+ formItem[`${array}`][`${index}`]['params'][`${label}`] = val1
|
|
|
} else {
|
|
|
- formItem.value[`${arrayName}`]['params'][`${sss}`] = val1
|
|
|
+ formItem[`${arrayName}`]['params'][`${label}`] = val1
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
+// 返回按钮
|
|
|
const onReturn = () => {
|
|
|
router.push(`/index`)
|
|
|
}
|
|
|
let flag = ref<number>(0) //跳转到日志页面的flag,0为训练日志、1为推理日志
|
|
|
+// 下一步
|
|
|
const onNext = () => {
|
|
|
- if (pageIndex.value === 1) {
|
|
|
- if (formItem.value.selectTask.length === 0) {
|
|
|
- ElMessage.warning('请选择任务')
|
|
|
- return
|
|
|
+ const formEl = proFormRef.value![0].proFormRef
|
|
|
+ if (!formEl) return
|
|
|
+ formEl.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ if (formItem.selectTask.length === 0 && pageIndex.value === 1) {
|
|
|
+ ElMessage.warning('请选择任务')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (pageIndex.value === 2) {
|
|
|
+ for (let i = 0; i <= 3; i++) {
|
|
|
+ if (Object.keys(proTable1.value![i].searchParam).length !== 0) {
|
|
|
+ formItem.trainDataSelect.push({
|
|
|
+ conditionSelected: true,
|
|
|
+ condition: proTable1.value![i].searchParam
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log('formItem.trainDataSelect', formItem.trainDataSelect)
|
|
|
+ }
|
|
|
+ if (pageIndex.value === formItem.selectTask[formItem.selectTask.length - 2]) {
|
|
|
+ nextBtnText.value = '提交'
|
|
|
+ }
|
|
|
+ if (pageIndex.value === formItem.selectTask[formItem.selectTask.length - 1]) {
|
|
|
+ console.log('flag.value', flag.value)
|
|
|
+ return
|
|
|
+ // router.push({ path: `/logPage/${flag.value}`, query: { type: 1 } })
|
|
|
+ }
|
|
|
+ pageIndex.value = formItem.selectTask[formItem.selectTask.findIndex(page => page === pageIndex.value) + 1]
|
|
|
}
|
|
|
+ })
|
|
|
+}
|
|
|
+// 上一步
|
|
|
+const onBack = () => {
|
|
|
+ nextBtnText.value = '下一步'
|
|
|
+ if (pageIndex.value === 2) {
|
|
|
+ pageIndex.value = 1
|
|
|
+ return
|
|
|
}
|
|
|
- if (pageIndex.value === 13) {
|
|
|
- console.log('flag.value', flag.value)
|
|
|
+ pageIndex.value = formItem.selectTask[formItem.selectTask.findIndex(page => page === pageIndex.value) - 1]
|
|
|
+}
|
|
|
+const changeTree = (newVal, allVal) => {
|
|
|
+ const newId = newVal.id
|
|
|
+ const dependencyMap = new Map([
|
|
|
+ [
|
|
|
+ [3, 4, 2, 5],
|
|
|
+ [2, 5]
|
|
|
+ ], // 如果包含3或4,则添加2和5
|
|
|
+ [
|
|
|
+ [7, 8, 6, 9],
|
|
|
+ [6, 9]
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ [11, 12, 10, 13],
|
|
|
+ [10, 13]
|
|
|
+ ]
|
|
|
+ ])
|
|
|
|
|
|
- // router.push({ path: `/logPage/${flag.value}`, query: { type: 1 } })
|
|
|
+ if (prevTreeData.value.includes(newId)) {
|
|
|
+ if (newId === 2 || newId === 5) {
|
|
|
+ const data = delNumber(2, 5, allVal.checkedKeys)
|
|
|
+ prevTreeData.value = Array.from(data)
|
|
|
+ // formItem.selectTask = Array.from(data)
|
|
|
+ selectTaskTreeRef.value![0].setCheckedKeys(Array.from(data), false)
|
|
|
+ } else if (newId === 6 || newId === 9) {
|
|
|
+ const data = delNumber(6, 9, allVal.checkedKeys)
|
|
|
+ prevTreeData.value = Array.from(data)
|
|
|
+ selectTaskTreeRef.value![0].setCheckedKeys(Array.from(data), false)
|
|
|
+ } else if (newId === 10 || newId === 13) {
|
|
|
+ const data = delNumber(10, 13, allVal.checkedKeys)
|
|
|
+ prevTreeData.value = Array.from(data)
|
|
|
+ selectTaskTreeRef.value![0].setCheckedKeys(Array.from(data), false)
|
|
|
+ }
|
|
|
} else {
|
|
|
- pageIndex.value++
|
|
|
+ for (const [keysToCheck, keysToAdd] of dependencyMap.entries()) {
|
|
|
+ if (keysToCheck.some(key => allVal.checkedKeys.includes(key))) {
|
|
|
+ const data = new Set<number>([...allVal.checkedKeys, ...keysToAdd].sort())
|
|
|
+ prevTreeData.value = Array.from(data)
|
|
|
+ // formItem.selectTask = Array.from(data)
|
|
|
+ selectTaskTreeRef.value![0].setCheckedKeys(Array.from(data), false)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ formItem.selectTask = selectTaskTreeRef.value![0].getCheckedKeys().filter(item => item < 90)
|
|
|
}
|
|
|
-const onBack = () => {
|
|
|
- if (pageIndex.value === 1) return
|
|
|
- pageIndex.value--
|
|
|
-}
|
|
|
-const changeTree = (newVal, allVal) => {
|
|
|
- // console.log('val1', newVal)
|
|
|
- console.log('val2', allVal)
|
|
|
- formItem.value.selectTask = allVal.checkedKeys
|
|
|
+// 树组件去除节点函数
|
|
|
+const delNumber = (start, end, dataList) => {
|
|
|
+ for (let i = 0; i < dataList.length; i++) {
|
|
|
+ const number = dataList[i]
|
|
|
+ if (number >= start && number <= end) {
|
|
|
+ dataList.splice(i, 1)
|
|
|
+ i--
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return dataList.sort
|
|
|
}
|
|
|
const onSubmit = val => {
|
|
|
- const data = Object.assign(val, formItem.value)
|
|
|
- console.log('formItem.value', formItem.value)
|
|
|
+ const data = Object.assign(val, formItem)
|
|
|
+ console.log('formItem', formItem)
|
|
|
|
|
|
console.log('ssssss', data)
|
|
|
}
|
|
@@ -683,6 +938,7 @@ watch(
|
|
|
break
|
|
|
case 6:
|
|
|
title.value = '测试数据选择'
|
|
|
+ break
|
|
|
case 7:
|
|
|
title.value = '测试数据增强'
|
|
|
break
|
|
@@ -704,7 +960,6 @@ watch(
|
|
|
break
|
|
|
case 13:
|
|
|
title.value = '推理算法选择'
|
|
|
- nextBtnText.value = '提交'
|
|
|
break
|
|
|
default:
|
|
|
break
|