<template>
|
<Dialog v-model="dialogVisible" :title="dialogTitle" width="50%">
|
<el-form
|
ref="formRef"
|
v-loading="formLoading"
|
:model="dataForm"
|
:rules="formRules"
|
label-width="120px"
|
>
|
<el-divider content-position="left">基本信息</el-divider>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="预测项名" prop="mmPredictItem.itemname">
|
<el-input v-model="dataForm.mmPredictItem.itemname" placeholder="预测项名"
|
maxlength="50"
|
clearable/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="编号" prop="mmPredictItem.itemno">
|
<el-input v-model="dataForm.mmPredictItem.itemno" placeholder="编号" maxlength="50"
|
clearable/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="类型" prop="mmPredictItem.itemtypeid">
|
<el-select v-model="dataForm.mmPredictItem.itemtypeid"
|
@change="changeItemtype"
|
placeholder="请选择">
|
<el-option
|
v-for="item in itemTypeList"
|
:key="item.id"
|
:label="item.itemtypename"
|
:value="item.id"/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="粒度" prop="mmPredictItem.granularity">
|
<el-input v-model="dataForm.mmPredictItem.granularity" placeholder="粒度" maxlength="5"
|
clearable/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="是否检查" prop="mmPredictItem.workchecked">
|
<el-select v-model="dataForm.mmPredictItem.workchecked" placeholder="请选择">
|
<el-option
|
v-for="item in isList"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code"/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="是否启用" prop="dmModuleItem.status">
|
<el-select v-model="dataForm.dmModuleItem.status" placeholder="请选择">
|
<el-option
|
v-for="item in isList"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code"/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="管网" prop="dmModuleItem.moduleid">
|
<el-select v-model="dataForm.dmModuleItem.moduleid" placeholder="请选择">
|
<el-option
|
v-for="item in moduleList"
|
:key="item.id"
|
:label="item.modulename"
|
:value="item.id"/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="类别" prop="dmModuleItem.categoryid">
|
<el-input v-model="dataForm.dmModuleItem.categoryid" placeholder="类别" maxlength="64"
|
clearable/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="排序" prop="dmModuleItem.itemorder">
|
<el-input v-model="dataForm.dmModuleItem.itemorder" placeholder="排序" maxlength="36"
|
clearable/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="数据点" prop="mmItemOutput.pointid">
|
<el-select
|
v-model="dataForm.mmItemOutput.pointid"
|
filterable
|
@change="changeOutputPoint"
|
placeholder="请选择">
|
<el-option
|
v-for="item in pointList"
|
:key="item.id"
|
:label="item.pointname"
|
:value="item.id"/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="保存点位" prop="mmPredictItem.saveindex">
|
<el-select v-model="dataForm.mmPredictItem.saveindex" placeholder="请选择">
|
<el-option
|
v-for="item in saveIndexList"
|
:key="item.code"
|
:label="item.name"
|
:value="item.code"/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row v-if="dataForm.itemtypename === 'MergeItem'">
|
<el-col :span="12">
|
<el-form-item label="预测长度" prop="mmPredictItem.predictlength">
|
<el-input v-model="dataForm.mmPredictItem.predictlength" placeholder="预测长度"
|
maxlength="5"
|
clearable/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-divider content-position="left" v-if="dataForm.itemtypename === 'NormalItem'">模型信息
|
</el-divider>
|
<el-row v-if="dataForm.itemtypename === 'NormalItem'">
|
<el-col :span="24">
|
<el-form-item label="模型名称" prop="mmPredictModel.modelname">
|
<el-input v-model="dataForm.mmPredictModel.modelname" placeholder="模型名称"
|
maxlength="50"
|
clearable/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="编号" prop="mmPredictModel.modelno" v-if="!!dataForm.id">
|
<el-input v-model="dataForm.mmPredictModel.modelno" placeholder="编号" maxlength="32"
|
clearable
|
disabled/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row v-if="dataForm.itemtypename === 'NormalItem'">
|
<el-col :span="12">
|
<el-form-item label="上传模型" prop="itemorder">
|
<el-upload
|
class="upload-demo"
|
:limit="1"
|
:file-list="fileList"
|
:before-upload="beforeUpload"
|
:on-success="uploadModelSuccess"
|
:on-error="uploadModelError"
|
:action="uploadModelUrl">
|
<el-button size="small" type="primary" @click="setReplaceModelOnly(0)">点击上传
|
</el-button>
|
<el-button size="small" type="primary" @click="setReplaceModelOnly(1)"
|
v-if="!!dataForm.id">只替换模型
|
</el-button>
|
</el-upload>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="结果" prop="mmPredictModel.resultstrid">
|
<el-select v-model="dataForm.mmPredictModel.resultstrid" placeholder="请选择">
|
<el-option
|
v-for="item in resultstridList"
|
:key="item.id"
|
:label="item.resultstr"
|
:value="item.id"/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row v-if="dataForm.itemtypename === 'NormalItem'">
|
<el-col :span="24">
|
<el-form-item label="路径" prop="mmPredictModel.modelpath">
|
<el-input v-model="dataForm.mmPredictModel.modelpath" placeholder="路径" maxlength="32"
|
clearable
|
disabled/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row v-if="dataForm.itemtypename === 'NormalItem'">
|
<el-col :span="24">
|
<el-form-item label="类名" prop="mmPredictModel.classname">
|
<el-input v-model="dataForm.mmPredictModel.classname" placeholder="类名" maxlength="32"
|
clearable
|
disabled/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
<el-row v-if="dataForm.itemtypename === 'NormalItem'">
|
<el-col :span="12">
|
<el-form-item label="方法名" prop="mmPredictModel.methodname">
|
<el-input v-model="dataForm.mmPredictModel.methodname" placeholder="方法名"
|
maxlength="32" clearable
|
disabled/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="参数" prop="mmPredictModel.modelparamstructure">
|
<el-input v-model="dataForm.mmPredictModel.modelparamstructure" placeholder="参数"
|
maxlength="32" clearable
|
disabled/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-table
|
v-if="dataForm.itemtypename === 'NormalItem'"
|
:data="dataForm.mmModelArithSettingsList"
|
border
|
style="width: 100%; margin-top: 5px;">
|
<el-table-column prop="key" label="键" align="center"/>
|
<el-table-column prop="name" label="名称" align="center"/>
|
<el-table-column prop="valuetype" label="类型" align="center"/>
|
<el-table-column prop="" label="值" align="center">
|
<template #default="scope">
|
<el-input v-model="scope.row.value" maxlength="256" clearable
|
style="width:100%;hight:100%"/>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<el-divider content-position="left" v-if="dataForm.itemtypename === 'NormalItem'">输入参数
|
</el-divider>
|
<el-table
|
:data="dataForm.mmModelParamList"
|
border
|
style="width: 100%; margin-top: 5px;">
|
<el-table-column prop="modelparamportorder" label="端口" width="60" align="center"/>
|
<el-table-column prop="modelparamorder" label="序号" width="60" align="center"/>
|
<el-table-column prop="" label="类型" width="200" align="center">
|
<template #default="scope">
|
<el-select v-model="scope.row.modelparamtype"
|
@change="changeModelparamtype(value, scope.row)" placeholder="请选择">
|
<el-option
|
v-for="item in dataForm.modelparamtypeList"
|
:key="item"
|
:label="item"
|
:value="item"/>
|
</el-select>
|
</template>
|
</el-table-column>
|
<el-table-column prop="" label="参数名称" align="center">
|
<template #default="scope">
|
<el-select
|
v-model="scope.row.modelparamid"
|
filterable
|
@change="changeModelparam(scope.row)"
|
placeholder="请选择">
|
<el-option
|
v-for="(item, index) in modelparamListMap[scope.row.modelparamtype]"
|
:key="index"
|
:label="item.name"
|
:value="item.id"/>
|
</el-select>
|
</template>
|
</el-table-column>
|
<el-table-column prop="" label="参数长度" width="120" align="center">
|
<template #default="scope">
|
<el-input v-model="scope.row.datalength" maxlength="50" clearable
|
style="width:100%;hight:100%"/>
|
</template>
|
</el-table-column>
|
<el-table-column prop="" label="操作" width="100" align="center">
|
<template #default="scope">
|
<el-button
|
@click="addRow(scope.$index, dataForm.mmModelParamList)"
|
type="text"
|
size="small">
|
添加
|
</el-button>
|
<el-button
|
@click="deleteRow(scope.$index, dataForm.mmModelParamList)"
|
type="text"
|
size="small">
|
删除
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<el-divider content-position="left" v-if="dataForm.itemtypename === 'MergeItem'">表达式
|
</el-divider>
|
<el-table
|
:data="expressionList"
|
border
|
style="width: 100%; margin-top: 5px;">
|
<el-table-column
|
prop=""
|
label="预测项"
|
align="center">
|
<template #default="scope">
|
<el-select
|
v-model="scope.row.point"
|
filterable
|
placeholder="请选择">
|
<el-option
|
v-for="(item, index) in predictItemList"
|
:key="index"
|
:label="item.name"
|
:value="item.code"/>
|
</el-select>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop="point"
|
label="编号"
|
align="center"/>
|
<el-table-column
|
prop=""
|
label="运算符"
|
align="center">
|
<template #default="scope">
|
<el-select v-model="scope.row.operator" placeholder="请选择">
|
<el-option
|
v-for="item in operatorList"
|
:key="item"
|
:label="item"
|
:value="item"/>
|
</el-select>
|
</template>
|
</el-table-column>
|
<el-table-column
|
prop=""
|
label="操作"
|
width="100"
|
align="center">
|
<template #default="scope">
|
<el-button
|
@click="addExpressionRow(scope.$index, expressionList)"
|
type="text"
|
size="small">
|
添加
|
</el-button>
|
<el-button
|
@click="deleteExpressionRow(scope.$index, expressionList)"
|
type="text"
|
size="small">
|
删除
|
</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
</el-form>
|
<template #footer>
|
<el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
</template>
|
</Dialog>
|
</template>
|
<script lang="ts" setup>
|
import * as MmPredictItem from '@/api/model/pre/predict'
|
import * as MmItemType from '@/api/model/pre/item'
|
import * as DmModule from '@/api/model/pre/dm'
|
import * as MmResultTable from '@/api/model/pre/result'
|
import * as DaPoint from '@/api/data/da/point'
|
import request from "@/config/axios";
|
import * as ScheduleModelApi from '@/api/model/sche/model'
|
|
defineOptions({name: 'DataMmPredictItemForm'})
|
|
const {t} = useI18n() // 国际化
|
const message = useMessage() // 消息弹窗
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
const pointLoading = ref(false) // 弹窗的是否展示
|
const dialogTitle = ref('') // 弹窗的标题
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
const uploadModelUrl = ''
|
const itemTypeList = ref([])
|
const itemTypeMap = ref({})
|
const moduleList = ref([])
|
const resulttableList = ref([])
|
const resultstridList = ref([])
|
const pointList = ref([])
|
const pointMap = ref({})
|
const predictItemList = ref([])
|
const modelparamList = ref([])
|
const modelparamListMap = ref([])
|
const modelparamMap = ref({})
|
const expressionList = ref([])
|
const fileList = ref([])
|
const operatorList = ['+', '-']
|
const replaceModelOnly = ref(0)
|
const queryParams = reactive({
|
pageNo: 1,
|
pageSize: 10,
|
pointNo: undefined,
|
pointName: undefined,
|
})
|
const isList = ref([
|
{
|
code: 0,
|
name: '否'
|
},
|
{
|
code: 1,
|
name: '是'
|
}])
|
const saveIndexList = ref([
|
{
|
code: '2',
|
name: 'T+2'
|
},
|
{
|
code: '30',
|
name: 'T+30'
|
},
|
{
|
code: 'n',
|
name: 'T+n'
|
}])
|
const dataForm = ref({
|
id: '',
|
itemtypename: '',
|
mmPredictItem: {
|
id: '',
|
itemno: '',
|
itemname: '',
|
caltypeid: '',
|
itemtypeid: '',
|
predictlength: '',
|
granularity: '',
|
status: '',
|
isfuse: '',
|
predictphase: '',
|
workchecked: 0,
|
unittransfactor: '',
|
saveindex: ''
|
},
|
dmModuleItem: {
|
id: '',
|
moduleid: '',
|
itemid: '',
|
itemorder: '',
|
status: 1,
|
categoryid: ''
|
},
|
mmItemOutput: {
|
id: '',
|
itemid: '',
|
pointid: '',
|
resulttableid: '3cc2b483-3a01-40f7-a419-0c260210d8eb',
|
tagname: '',
|
outputorder: 1
|
},
|
mmPredictModel: {
|
id: '',
|
modelno: '',
|
modelname: '',
|
itemid: '',
|
arithid: '',
|
trainsamplength: '',
|
predictsamplength: '',
|
isonlinetrain: '',
|
modelpath: '',
|
isnormal: '',
|
normalmax: '',
|
normalmin: '',
|
status: 1,
|
classname: '',
|
methodname: '',
|
modelparamstructure: '',
|
resultstrid: '',
|
settingmap: ''
|
},
|
mmPredictMergeItem: {
|
id: '',
|
itemid: '',
|
expression: '',
|
num: ''
|
},
|
modelparamtypeList: ['DATAPOINT', 'PREDICTITEM', 'DAYWORKPROCESSPLAN', 'MONTHWORKPROCESSPLAN', 'ST_PLAN_NQ', 'ST_PLAN_BQ', 'ST_PLAN_NQ_HI', 'ST_PLAN_BQ_HI'],
|
mmModelArithSettingsList: [],
|
mmModelParamList: []
|
})
|
const formRules = reactive({
|
// itemno: [{required: true, message: '编号不能为空', trigger: 'blur'}],
|
// itemname: [{required: true, message: '预测项名不能为空', trigger: 'blur'}],
|
})
|
const formRef = ref() // 表单 Ref
|
|
/** 打开弹窗 */
|
const open = async (type: string, id?: number) => {
|
dialogVisible.value = true
|
dialogTitle.value = t('action.' + type)
|
formType.value = type
|
resetForm()
|
// 修改时,设置数据
|
if (id) {
|
formLoading.value = true
|
try {
|
dataForm.value = await MmPredictItem.getMmPredictItem(id)
|
} finally {
|
formLoading.value = false
|
}
|
}
|
}
|
defineExpose({open}) // 提供 open 方法,用于打开弹窗
|
|
/** 提交表单 */
|
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
const submitForm = async () => {
|
// 校验表单
|
if (!formRef) return
|
const valid = await formRef.value.validate()
|
if (!valid) return
|
// 提交请求
|
formLoading.value = true
|
try {
|
const data = dataForm.value as unknown as MmPredictItem.MmPredictItemVO
|
if (formType.value === 'create') {
|
await MmPredictItem.createMmPredictItem(data)
|
message.success(t('common.createSuccess'))
|
} else {
|
await MmPredictItem.updateMmPredictItem(data)
|
message.success(t('common.updateSuccess'))
|
}
|
dialogVisible.value = false
|
// 发送操作成功的事件
|
emit('success')
|
} finally {
|
formLoading.value = false
|
}
|
}
|
const setReplaceModelOnly = (value) => {
|
replaceModelOnly.value = value
|
}
|
const beforeUpload = (file) => {
|
let fileName = file.name
|
let first = fileName.lastIndexOf('.')
|
let nameLength = fileName.length
|
let fileSuffix = fileName.substring(first + 1, nameLength)
|
if (fileSuffix !== 'miail') {
|
message.error('只能上传miail类型文件')
|
return
|
}
|
}
|
const uploadModelSuccess = (response, file, fileList) => {
|
if (response.code === 0) {
|
message.success(t('上传成功'))
|
dataForm.value.mmModelArithSettingsList = []
|
if (!replaceModelOnly) {
|
dataForm.value.mmModelParamList = []
|
}
|
dataForm.value.mmPredictModel.modelpath = ''
|
dataForm.value.mmPredictModel.modelparamstructure = ''
|
if (response.data.loadFieldSetList && response.data.loadFieldSetList[0].propertyList) {
|
response.data.loadFieldSetList[0].propertyList.forEach((value) => {
|
if (value.key !== 'data1') {
|
dataForm.value.mmModelArithSettingsList.push({
|
key: value.key,
|
name: value.name,
|
valuetype: value.valueType,
|
value: value.value
|
})
|
}
|
}, this)
|
}
|
dataForm.value.mmPredictModel.classname = response.data.className
|
dataForm.value.mmPredictModel.methodname = response.data.methodName
|
if (response.data.paramPathList) {
|
dataForm.value.mmPredictModel.modelpath = response.data.paramPathList[0]
|
}
|
if (response.data.paramsArray) {
|
dataForm.value.mmPredictModel.modelparamstructure = response.data.paramsArray.join(',')
|
}
|
if (response.data.paramsCount && !replaceModelOnly) {
|
for (let i = 0; i < response.data.paramsCount; i++) {
|
dataForm.value.mmModelParamList.push({
|
modelparamportorder: (i + 1),
|
modelparamorder: (i + 1),
|
modelparamtype: '',
|
modelparamid: '',
|
modelparamname: '',
|
datalength: 0
|
})
|
}
|
}
|
if (response.data.settingConfigMap && response.data.settingConfigMap.settingMap) {
|
dataForm.value.mmPredictModel.settingmap = JSON.stringify(response.data.settingConfigMap.settingMap)
|
}
|
} else {
|
message.error('上传失败!' + response.msg)
|
return
|
}
|
fileList = []
|
}
|
const uploadModelError = (file, err, fileList) => {
|
}
|
const changeModelparam = (row) => {
|
row.modelparamname = modelparamMap[row.modelparamid]
|
}
|
const changeItemtype = (value) => {
|
dataForm.value.itemtypename = itemTypeMap[value]
|
}
|
const changeModelparamtype = (value, row) => {
|
row.modelparamid = ''
|
}
|
const changeOutputPoint = (value) => {
|
dataForm.value.mmItemOutput.tagname = pointMap[value]
|
}
|
const deleteExpressionRow = (index, rows) => {
|
rows.splice(index, 1)
|
}
|
const addExpressionRow = (index, rows) => {
|
let row = JSON.parse(JSON.stringify(rows[index]))
|
rows.splice(index, 0, row)
|
}
|
const deleteRow = (index: string, rows) => {
|
if (!rows || rows.length === 1) {
|
message.error('不能全部删除!')
|
return
|
}
|
rows.splice(index, 1)
|
orderRow(rows)
|
}
|
const addRow = (index: string, rows) => {
|
let row = JSON.parse(JSON.stringify(rows[index]))
|
rows.splice(index, 0, row)
|
orderRow(rows)
|
}
|
|
const orderRow = (rows) => {
|
let modelparamorder = 0
|
let modelparamportorder = 0
|
rows.forEach(function (value) {
|
if (value.modelparamportorder !== modelparamportorder) {
|
modelparamportorder = value.modelparamportorder
|
modelparamorder = 1
|
}
|
value.modelparamorder = modelparamorder
|
modelparamorder++
|
})
|
}
|
// 获取预测项类型列表
|
const getItemTypeList = async () => {
|
itemTypeList.value = []
|
itemTypeList.value = await MmItemType.getItemTypeList()
|
itemTypeList.value.forEach((value) => {
|
itemTypeMap[value.id] = value.itemtypename
|
})
|
if (!dataForm.value.id) {
|
// dataForm.value.mmPredictItem.itemtypeid = itemTypeList[0].id
|
}
|
}
|
// 获取管网列表
|
const getModuleList = async () => {
|
moduleList.value = []
|
moduleList.value = await DmModule.getModuleList()
|
}
|
|
const getResulttableList = async () => {
|
resulttableList.value = []
|
resulttableList.value = await MmResultTable.getResulttableList()
|
}
|
const getResultstridList = async () => {
|
resultstridList.value = []
|
resultstridList.value = await MmResultTable.getResultstridList()
|
}
|
const getPointList = async () => {
|
pointLoading.value = true
|
pointList.value = await DaPoint.getPointList(queryParams)
|
pointList.value.forEach((value) => {
|
pointList.value.push(value)
|
pointMap[value.id] = value.pointname
|
})
|
}
|
const getModelparamList = async () => {
|
modelparamListMap.value = []
|
modelparamList.value = []
|
predictItemList.value = []
|
let pointRes = await DaPoint.getPointList(queryParams)
|
let paramList = []
|
pointRes.forEach((value) => {
|
paramList.push({
|
id: value.id,
|
code: value.pointno,
|
name: value.pointname,
|
type: 'DATAPOINT'
|
})
|
modelparamMap[value.id] = value.pointname
|
})
|
modelparamListMap['DATAPOINT'] = paramList;
|
|
let predictRes = await MmPredictItem.getMmPredictItemList
|
paramList = []
|
predictRes.forEach((value) => {
|
paramList.push({
|
id: value.id,
|
code: value.itemno,
|
name: value.itemname,
|
type: 'PREDICTITEM'
|
})
|
if (value.id !== dataForm.value.id) {
|
predictItemList.push({
|
id: value.id,
|
code: value.itemno,
|
name: value.itemname
|
})
|
}
|
modelparamMap[value.id] = value.itemname
|
})
|
modelparamListMap['PREDICTITEM'] = paramList;
|
|
const dayParams = {
|
'processType': '日计划'
|
}
|
let dayScheduleRes = await ScheduleModelApi.getScheduleWorkPrecessList(dayParams)
|
paramList = []
|
dayScheduleRes.forEach((value) => {
|
paramList.push({
|
id: value.id,
|
code: value.code,
|
name: value.aliasName,
|
type: 'DAYWORKPROCESSPLAN'
|
})
|
modelparamMap[value.id] = value.aliasName
|
})
|
modelparamListMap['DAYWORKPROCESSPLAN'] = paramList;
|
|
const monthParams = {
|
'processType': '月计划'
|
}
|
let monthScheduleRes = await ScheduleModelApi.getScheduleWorkPrecessList(monthParams)
|
paramList = []
|
monthScheduleRes.forEach((value) => {
|
paramList.push({
|
id: value.id,
|
code: value.code,
|
name: value.aliasName,
|
type: 'MONTHWORKPROCESSPLAN'
|
})
|
modelparamMap[value.id] = value.aliasName
|
})
|
modelparamListMap['MONTHWORKPROCESSPLAN'] = paramList;
|
}
|
/** 重置表单 */
|
const resetForm = () => {
|
dataForm.value = {
|
mmModelArithSettingsList: [],
|
mmModelParamList: [],
|
modelparamtypeList: [],
|
id: '',
|
itemtypename: '',
|
mmPredictItem: {
|
id: '',
|
itemno: '',
|
itemname: '',
|
caltypeid: '',
|
itemtypeid: '',
|
predictlength: '',
|
granularity: '',
|
status: '',
|
isfuse: '',
|
predictphase: '',
|
workchecked: 0,
|
unittransfactor: '',
|
saveindex: ''
|
},
|
dmModuleItem: {
|
id: '',
|
moduleid: '',
|
itemid: '',
|
itemorder: '',
|
status: 1,
|
categoryid: ''
|
},
|
mmItemOutput: {
|
id: '',
|
itemid: '',
|
pointid: '',
|
resulttableid: '3cc2b483-3a01-40f7-a419-0c260210d8eb',
|
tagname: '',
|
outputorder: 1
|
},
|
mmPredictModel: {
|
id: '',
|
modelno: '',
|
modelname: '',
|
itemid: '',
|
arithid: '',
|
trainsamplength: '',
|
predictsamplength: '',
|
isonlinetrain: '',
|
modelpath: '',
|
isnormal: '',
|
normalmax: '',
|
normalmin: '',
|
status: 1,
|
classname: '',
|
methodname: '',
|
modelparamstructure: '',
|
resultstrid: '',
|
settingmap: ''
|
},
|
mmPredictMergeItem: {
|
id: '',
|
itemid: '',
|
expression: '',
|
num: ''
|
}
|
}
|
formRef.value?.resetFields()
|
}
|
|
onMounted(() => {
|
init()
|
})
|
|
const init = async () => {
|
getItemTypeList()
|
getModuleList()
|
getPointList()
|
getModelparamList()
|
getResulttableList()
|
getResultstridList()
|
}
|
</script>
|