From 83f63aed9767c3a5a9999e71f70680c0079349e6 Mon Sep 17 00:00:00 2001 From: liriming <1343021927@qq.com> Date: 星期二, 24 九月 2024 10:13:14 +0800 Subject: [PATCH] 预测模型页面修改 --- src/views/model/pre/predict/MmPredictItemForm.vue | 853 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 769 insertions(+), 84 deletions(-) diff --git a/src/views/model/pre/predict/MmPredictItemForm.vue b/src/views/model/pre/predict/MmPredictItemForm.vue index 9117ab0..fbc3506 100644 --- a/src/views/model/pre/predict/MmPredictItemForm.vue +++ b/src/views/model/pre/predict/MmPredictItemForm.vue @@ -3,101 +3,341 @@ <el-form ref="formRef" v-loading="formLoading" - :model="formData" + :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="itemno"> - <el-input v-model="formData.itemno" placeholder="请输入编号"/> - </el-form-item> - </el-col> <el-col :span="12"> <el-form-item label="预测项名" prop="itemname"> - <el-input v-model="formData.itemname" placeholder="请输入预测项名"/> + <el-input v-model="dataForm.mmPredictItem.itemname" placeholder="预测项名"/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="编号" prop="itemno"> + <el-input v-model="dataForm.mmPredictItem.itemno" placeholder="编号" maxlength="50"/> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> - <el-form-item label="类型ID" prop="itemtypeid"> - <el-input v-model="formData.itemtypeid" placeholder="请输入类型ID"/> + <el-form-item label="类型" prop="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="itemtypename"> - <el-input v-model="formData.itemtypename" placeholder="请输入类型名称"/> - </el-form-item> - </el-col> - </el-row> - <el-row> <el-col :span="12"> <el-form-item label="粒度" prop="granularity"> - <el-input v-model="formData.granularity" placeholder="请输入粒度"/> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="是否融合" prop="isfuse"> - <el-input v-model="formData.isfuse" placeholder="请输入是否融合"/> + <el-input v-model="dataForm.mmPredictItem.granularity" placeholder="粒度" + maxlength="5"/> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="是否检查" prop="workchecked"> - <el-input v-model="formData.workchecked" placeholder="请输入是否检查"/> + <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="模块ID" prop="moduleid"> - <el-input v-model="formData.moduleid" placeholder="请输入模块ID"/> + <el-form-item label="是否启用" prop="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="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="categoryid"> + <el-input v-model="dataForm.dmModuleItem.categoryid" placeholder="类别" maxlength="64"/> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="排序" prop="itemorder"> - <el-input v-model="formData.itemorder" placeholder="请输入排序"/> + <el-input v-model="dataForm.dmModuleItem.itemorder" placeholder="排序" maxlength="36"/> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="是否启用" prop="status"> - <el-input v-model="formData.status" placeholder="请输入是否启用"/> + <el-form-item label="数据点" prop="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="类别ID" prop="categoryid"> - <el-input v-model="formData.categoryid" placeholder="请输入类别ID"/> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="数据点ID" prop="pointid"> - <el-input v-model="formData.pointid" placeholder="请输入数据点ID"/> + <el-form-item label="保存点位" prop="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> + <el-row v-if="dataForm.itemtypename === 'MergeItem'"> <el-col :span="12"> - <el-form-item label="数据点名称" prop="tagname"> - <el-input v-model="formData.tagname" placeholder="请输入数据点名称"/> - </el-form-item> - </el-col> - <el-col :span="12"> - <el-form-item label="存放表ID" prop="resulttableid"> - <el-input v-model="formData.resulttableid" placeholder="请输入存放表ID"/> + <el-form-item label="预测长度" prop="predictlength"> + <el-input v-model="dataForm.mmPredictItem.predictlength" placeholder="预测长度" + maxlength="5"/> </el-form-item> </el-col> </el-row> - <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="modelname"> + <el-input v-model="dataForm.mmPredictModel.modelname" placeholder="模型名称" + maxlength="50"/> + </el-form-item> + </el-col> <el-col :span="12"> - <el-form-item label="存放表" prop="tablename"> - <el-input v-model="formData.tablename" placeholder="请输入存放表"/> + <el-form-item label="编号" prop="modelno" v-if="!!dataForm.id"> + <el-input v-model="dataForm.mmPredictModel.modelno" placeholder="编号" maxlength="32" + 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="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="modelpath"> + <el-input v-model="dataForm.mmPredictModel.modelpath" placeholder="路径" maxlength="32" + disabled/> + </el-form-item> + </el-col> + </el-row> + <el-row v-if="dataForm.itemtypename === 'NormalItem'"> + <el-col :span="24"> + <el-form-item label="类名" prop="classname"> + <el-input v-model="dataForm.mmPredictModel.classname" placeholder="类名" maxlength="32" + disabled/> + </el-form-item> + </el-col> + </el-row> + <el-row v-if="dataForm.itemtypename === 'NormalItem'"> + <el-col :span="12"> + <el-form-item label="方法名" prop="methodname"> + <el-input v-model="dataForm.mmPredictModel.methodname" placeholder="方法名" + maxlength="32" disabled/> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="参数" prop="modelparamstructure"> + <el-input v-model="dataForm.mmPredictModel.modelparamstructure" placeholder="参数" + maxlength="32" 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" style="width:100%;height: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" + 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> @@ -107,36 +347,132 @@ </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 * 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 formData = ref({ - id: undefined, - itemno: undefined, - itemname: undefined, - itemtypeid: undefined, - itemtypename: undefined, - granularity: undefined, - isfuse: undefined, - workchecked: undefined, - moduleid: undefined, - itemorder: undefined, - status: undefined, - categoryid: undefined, - pointid: undefined, - tagname: undefined, - resulttableid: undefined, - tablename: undefined, +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'}], + // itemno: [{required: true, message: '编号不能为空', trigger: 'blur'}], + // itemname: [{required: true, message: '预测项名不能为空', trigger: 'blur'}], }) const formRef = ref() // 表单 Ref @@ -146,11 +482,18 @@ dialogTitle.value = t('action.' + type) formType.value = type resetForm() + setDefaultFields() + // getItemTypeList() + // getModuleList() + getPointList() + // getModelparamList() + // getResulttableList() + // getResultstridList() // 修改时,设置数据 if (id) { formLoading.value = true try { - formData.value = await MmPredictItem.getMmPredictItem(id) + getInfo(id) } finally { formLoading.value = false } @@ -168,7 +511,7 @@ // 提交请求 formLoading.value = true try { - const data = formData.value as unknown as MmPredictItem.MmPredictItemVO + const data = dataForm.value as unknown as MmPredictItem.MmPredictItemVO if (formType.value === 'create') { await MmPredictItem.createMmPredictItem(data) message.success(t('common.createSuccess')) @@ -184,26 +527,368 @@ } } +function getInfo(id) { + debugger + const res = MmPredictItem.getMmPredictItem(id) + console.info(res) + expressionList.value = [] + if (res.mmPredictMergeItem && res.mmPredictMergeItem.expression) { + let expression = res.mmPredictMergeItem.expression + do { + let indexPlus = expression.indexOf('+') + let indexSub = expression.indexOf('-') + if (indexPlus !== -1 || indexSub !== -1) { + let endIndex = (indexSub == -1 || (indexPlus < indexSub && indexPlus !== -1)) ? indexPlus : indexSub + expressionList.value.push({ + point: expression.substring(0, endIndex), + operator: expression.substr(endIndex, 1) + }) + expression = expression.substring(endIndex + 1) + } else { + expressionList.value.push({ + point: expression, + operator: '' + }) + expression = '' + } + } while (expression && expression.length > 0) + } +} + +function setReplaceModelOnly(value) { + replaceModelOnly.value = value +} + +function 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 + } +} + +function 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(function (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 = [] +} + +function uploadModelError(file, err, fileList) { +} + +function changeModelparam(row) { + row.modelparamname = modelparamMap[row.modelparamid] +} + +function changeItemtype(value) { + dataForm.value.itemtypename = itemTypeMap[value] +} + +function changeModelparamtype(value, row) { + row.modelparamid = '' +} + +function changeOutputPoint(value) { + dataForm.value.mmItemOutput.tagname = pointMap[value] +} + +function deleteExpressionRow(index, rows) { + rows.splice(index, 1) +} + +function addExpressionRow(index, rows) { + let row = JSON.parse(JSON.stringify(rows[index])) + rows.splice(index, 0, row) +} + +function deleteRow(index: string, rows) { + if (!rows || rows.length === 1) { + message.error('不能全部删除!') + return + } + rows.splice(index, 1) + orderRow(rows) +} + +function addRow(index: string, rows) { + let row = JSON.parse(JSON.stringify(rows[index])) + rows.splice(index, 0, row) + orderRow(rows) +} + +function 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++ + }) +} + +// 获取预测项类型列表 +function getItemTypeList() { + itemTypeList.value = [] + itemTypeList.value = MmItemType.getItemTypeList() + itemTypeList.value.forEach(function (value) { + itemTypeMap[value.id] = value.itemtypename + }) + if (!dataForm.value.id) { + // dataForm.value.mmPredictItem.itemtypeid = itemTypeList[0].id + } +} + +// 获取管网列表 +function getModuleList() { + moduleList.value = [] + moduleList.value = DmModule.getModuleList() +} + +function getResulttableList() { + resulttableList.value = [] + resulttableList.value = MmResultTable.getResulttableList() +} + +function getResultstridList() { + resultstridList.value = [] + resultstridList.value = MmResultTable.getResultstridList() +} + +function getPointList() { + pointLoading.value = true + pointList.value = DaPoint.getPointList(queryParams) + if (pointList.value.length > 0) { + pointList.value.forEach(function (value) { + pointList.value.push(value) + pointMap[value.id] = value.pointname + }) + } +} + +function getModelparamList() { + modelparamListMap.value = [] + modelparamList.value = [] + predictItemList.value = [] + pointList.value = DaPoint.getPointList(queryParams) + let paramList = [] + if (pointList.value.length > 0) { + pointList.value.forEach(function (value) { + paramList.push({ + id: value.id, + code: value.pointno, + name: value.pointname, + type: 'DATAPOINT' + }) + modelparamMap[value.id] = value.pointname + }) + modelparamListMap['DATAPOINT'] = paramList; + } + + let predictRes = MmPredictItem.getMmPredictItemList + paramList = [] + if (predictRes.value.length > 0) { + predictRes.forEach(function (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 = ScheduleModelApi.getScheduleWorkPrecessList(dayParams) + paramList = [] + if (dayScheduleRes !== null) { + dayScheduleRes.forEach(function (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 = ScheduleModelApi.getScheduleWorkPrecessList(monthParams) + paramList = [] + if (monthScheduleRes !== null) { + monthScheduleRes.forEach(function (value) { + paramList.push({ + id: value.id, + code: value.code, + name: value.aliasName, + type: 'MONTHWORKPROCESSPLAN' + }) + modelparamMap[value.id] = value.aliasName + }) + modelparamListMap['MONTHWORKPROCESSPLAN'] = paramList; + } +} + +function setDefaultFields() { + dataForm.value.mmPredictItem.workchecked = 0 + dataForm.value.mmPredictItem.predictlength = 60 + dataForm.value.mmPredictItem.status = 1 + dataForm.value.mmPredictItem.isfuse = 0 + dataForm.value.mmPredictItem.predictphase = 0 + dataForm.value.mmPredictItem.unittransfactor = 1 + dataForm.value.mmPredictItem.saveindex = '2' + dataForm.value.dmModuleItem.status = 1 + dataForm.value.mmPredictModel.trainsamplength = 60 + dataForm.value.mmPredictModel.isonlinetrain = 0 + dataForm.value.mmPredictModel.status = 1 + dataForm.value.mmItemOutput.outputorder = 1 + dataForm.value.mmItemOutput.resulttableid = '3cc2b483-3a01-40f7-a419-0c260210d8eb' + expressionList.value = [{ + point: '', + operator: '' + }] + fileList.value = [] +} + /** 重置表单 */ const resetForm = () => { - formData.value = { - id: undefined, - itemno: undefined, - itemname: undefined, - itemtypeid: undefined, - itemtypename: undefined, - granularity: undefined, - isfuse: undefined, - workchecked: undefined, - moduleid: undefined, - itemorder: undefined, - status: undefined, - categoryid: undefined, - pointid: undefined, - tagname: undefined, - resulttableid: undefined, - tablename: undefined, + 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() +}) + +function init() { + +} </script> -- Gitblit v1.9.3