From d57817d30107e15f870799953831f63d2f9087ce Mon Sep 17 00:00:00 2001 From: 潘志宝 <979469083@qq.com> Date: 星期二, 24 九月 2024 15:17:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/model/pre/predict/MmPredictItemForm.vue | 324 ++++++++++++++++++++++++++++++++--------------------- 1 files changed, 194 insertions(+), 130 deletions(-) diff --git a/src/views/model/pre/predict/MmPredictItemForm.vue b/src/views/model/pre/predict/MmPredictItemForm.vue index 7e1b8b9..fbc3506 100644 --- a/src/views/model/pre/predict/MmPredictItemForm.vue +++ b/src/views/model/pre/predict/MmPredictItemForm.vue @@ -10,24 +10,20 @@ <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 label="预测项名" prop="itemname"> + <el-input v-model="dataForm.mmPredictItem.itemname" placeholder="预测项名"/> </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 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="类型" prop="mmPredictItem.itemtypeid"> - <el-select v-model="dataForm.mmPredictItem.itemtypeid" - @change="changeItemtype" + <el-form-item label="类型" prop="itemtypeid"> + <el-select v-model="dataForm.mmPredictItem.itemtypeid" @change="changeItemtype" placeholder="请选择"> <el-option v-for="item in itemTypeList" @@ -38,15 +34,15 @@ </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 label="粒度" prop="granularity"> + <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="mmPredictItem.workchecked"> + <el-form-item label="是否检查" prop="workchecked"> <el-select v-model="dataForm.mmPredictItem.workchecked" placeholder="请选择"> <el-option v-for="item in isList" @@ -57,7 +53,7 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="是否启用" prop="dmModuleItem.status"> + <el-form-item label="是否启用" prop="status"> <el-select v-model="dataForm.dmModuleItem.status" placeholder="请选择"> <el-option v-for="item in isList" @@ -70,7 +66,7 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="管网" prop="dmModuleItem.moduleid"> + <el-form-item label="管网" prop="moduleid"> <el-select v-model="dataForm.dmModuleItem.moduleid" placeholder="请选择"> <el-option v-for="item in moduleList" @@ -81,21 +77,19 @@ </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 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="dmModuleItem.itemorder"> - <el-input v-model="dataForm.dmModuleItem.itemorder" placeholder="排序" maxlength="36" - clearable/> + <el-form-item label="排序" prop="itemorder"> + <el-input v-model="dataForm.dmModuleItem.itemorder" placeholder="排序" maxlength="36"/> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="数据点" prop="mmItemOutput.pointid"> + <el-form-item label="数据点" prop="pointid"> <el-select v-model="dataForm.mmItemOutput.pointid" filterable @@ -112,7 +106,7 @@ </el-row> <el-row> <el-col :span="12"> - <el-form-item label="保存点位" prop="mmPredictItem.saveindex"> + <el-form-item label="保存点位" prop="saveindex"> <el-select v-model="dataForm.mmPredictItem.saveindex" placeholder="请选择"> <el-option v-for="item in saveIndexList" @@ -125,10 +119,9 @@ </el-row> <el-row v-if="dataForm.itemtypename === 'MergeItem'"> <el-col :span="12"> - <el-form-item label="预测长度" prop="mmPredictItem.predictlength"> + <el-form-item label="预测长度" prop="predictlength"> <el-input v-model="dataForm.mmPredictItem.predictlength" placeholder="预测长度" - maxlength="5" - clearable/> + maxlength="5"/> </el-form-item> </el-col> </el-row> @@ -136,16 +129,14 @@ </el-divider> <el-row v-if="dataForm.itemtypename === 'NormalItem'"> <el-col :span="24"> - <el-form-item label="模型名称" prop="mmPredictModel.modelname"> + <el-form-item label="模型名称" prop="modelname"> <el-input v-model="dataForm.mmPredictModel.modelname" placeholder="模型名称" - maxlength="50" - clearable/> + maxlength="50"/> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="编号" prop="mmPredictModel.modelno" v-if="!!dataForm.id"> + <el-form-item label="编号" prop="modelno" v-if="!!dataForm.id"> <el-input v-model="dataForm.mmPredictModel.modelno" placeholder="编号" maxlength="32" - clearable disabled/> </el-form-item> </el-col> @@ -170,7 +161,7 @@ </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="结果" prop="mmPredictModel.resultstrid"> + <el-form-item label="结果" prop="resultstrid"> <el-select v-model="dataForm.mmPredictModel.resultstrid" placeholder="请选择"> <el-option v-for="item in resultstridList" @@ -183,35 +174,31 @@ </el-row> <el-row v-if="dataForm.itemtypename === 'NormalItem'"> <el-col :span="24"> - <el-form-item label="路径" prop="mmPredictModel.modelpath"> + <el-form-item label="路径" prop="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-form-item label="类名" prop="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-form-item label="方法名" prop="methodname"> <el-input v-model="dataForm.mmPredictModel.methodname" placeholder="方法名" - maxlength="32" clearable - disabled/> + maxlength="32" disabled/> </el-form-item> </el-col> <el-col :span="12"> - <el-form-item label="参数" prop="mmPredictModel.modelparamstructure"> + <el-form-item label="参数" prop="modelparamstructure"> <el-input v-model="dataForm.mmPredictModel.modelparamstructure" placeholder="参数" - maxlength="32" clearable - disabled/> + maxlength="32" disabled/> </el-form-item> </el-col> </el-row> @@ -226,8 +213,7 @@ <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%"/> + <el-input v-model="scope.row.value" maxlength="256" style="width:100%;height:100%"/> </template> </el-table-column> </el-table> @@ -269,7 +255,7 @@ </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 + <el-input v-model="scope.row.datalength" maxlength="50" style="width:100%;hight:100%"/> </template> </el-table-column> @@ -365,7 +351,6 @@ 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'}) @@ -497,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 { - dataForm.value = await MmPredictItem.getMmPredictItem(id) + getInfo(id) } finally { formLoading.value = false } @@ -534,10 +526,40 @@ formLoading.value = false } } -const setReplaceModelOnly = (value) => { + +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 } -const beforeUpload = (file) => { + +function beforeUpload(file) { let fileName = file.name let first = fileName.lastIndexOf('.') let nameLength = fileName.length @@ -547,7 +569,8 @@ return } } -const uploadModelSuccess = (response, file, fileList) => { + +function uploadModelSuccess(response, file, fileList) { if (response.code === 0) { message.success(t('上传成功')) dataForm.value.mmModelArithSettingsList = [] @@ -557,7 +580,7 @@ dataForm.value.mmPredictModel.modelpath = '' dataForm.value.mmPredictModel.modelparamstructure = '' if (response.data.loadFieldSetList && response.data.loadFieldSetList[0].propertyList) { - response.data.loadFieldSetList[0].propertyList.forEach((value) => { + response.data.loadFieldSetList[0].propertyList.forEach(function (value) { if (value.key !== 'data1') { dataForm.value.mmModelArithSettingsList.push({ key: value.key, @@ -597,28 +620,36 @@ } fileList = [] } -const uploadModelError = (file, err, fileList) => { + +function uploadModelError(file, err, fileList) { } -const changeModelparam = (row) => { + +function changeModelparam(row) { row.modelparamname = modelparamMap[row.modelparamid] } -const changeItemtype = (value) => { + +function changeItemtype(value) { dataForm.value.itemtypename = itemTypeMap[value] } -const changeModelparamtype = (value, row) => { + +function changeModelparamtype(value, row) { row.modelparamid = '' } -const changeOutputPoint = (value) => { + +function changeOutputPoint(value) { dataForm.value.mmItemOutput.tagname = pointMap[value] } -const deleteExpressionRow = (index, rows) => { + +function deleteExpressionRow(index, rows) { rows.splice(index, 1) } -const addExpressionRow = (index, rows) => { + +function addExpressionRow(index, rows) { let row = JSON.parse(JSON.stringify(rows[index])) rows.splice(index, 0, row) } -const deleteRow = (index: string, rows) => { + +function deleteRow(index: string, rows) { if (!rows || rows.length === 1) { message.error('不能全部删除!') return @@ -626,13 +657,14 @@ rows.splice(index, 1) orderRow(rows) } -const addRow = (index: string, rows) => { + +function addRow(index: string, rows) { let row = JSON.parse(JSON.stringify(rows[index])) rows.splice(index, 0, row) orderRow(rows) } -const orderRow = (rows) => { +function orderRow(rows) { let modelparamorder = 0 let modelparamportorder = 0 rows.forEach(function (value) { @@ -644,108 +676,145 @@ modelparamorder++ }) } + // 获取预测项类型列表 -const getItemTypeList = async () => { +function getItemTypeList() { itemTypeList.value = [] - itemTypeList.value = await MmItemType.getItemTypeList() - itemTypeList.value.forEach((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 } } + // 获取管网列表 -const getModuleList = async () => { +function getModuleList() { moduleList.value = [] - moduleList.value = await DmModule.getModuleList() + moduleList.value = DmModule.getModuleList() } -const getResulttableList = async () => { +function getResulttableList() { resulttableList.value = [] - resulttableList.value = await MmResultTable.getResulttableList() + resulttableList.value = MmResultTable.getResulttableList() } -const getResultstridList = async () => { + +function getResultstridList() { resultstridList.value = [] - resultstridList.value = await MmResultTable.getResultstridList() + resultstridList.value = MmResultTable.getResultstridList() } -const getPointList = async () => { + +function getPointList() { pointLoading.value = true - pointList.value = await DaPoint.getPointList(queryParams) - pointList.value.forEach((value) => { - pointList.value.push(value) - pointMap[value.id] = value.pointname - }) + pointList.value = DaPoint.getPointList(queryParams) + if (pointList.value.length > 0) { + pointList.value.forEach(function (value) { + pointList.value.push(value) + pointMap[value.id] = value.pointname + }) + } } -const getModelparamList = async () => { + +function getModelparamList() { modelparamListMap.value = [] modelparamList.value = [] predictItemList.value = [] - let pointRes = await DaPoint.getPointList(queryParams) + pointList.value = DaPoint.getPointList(queryParams) let paramList = [] - pointRes.forEach((value) => { - paramList.push({ - id: value.id, - code: value.pointno, - name: value.pointname, - type: 'DATAPOINT' + 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 }) - modelparamMap[value.id] = value.pointname - }) - modelparamListMap['DATAPOINT'] = paramList; + modelparamListMap['DATAPOINT'] = paramList; + } - let predictRes = await MmPredictItem.getMmPredictItemList + let predictRes = 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({ + if (predictRes.value.length > 0) { + predictRes.forEach(function (value) { + paramList.push({ id: value.id, code: value.itemno, - name: value.itemname + name: value.itemname, + type: 'PREDICTITEM' }) - } - modelparamMap[value.id] = value.itemname - }) - modelparamListMap['PREDICTITEM'] = paramList; + 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) + let dayScheduleRes = ScheduleModelApi.getScheduleWorkPrecessList(dayParams) paramList = [] - dayScheduleRes.forEach((value) => { - paramList.push({ - id: value.id, - code: value.code, - name: value.aliasName, - type: 'DAYWORKPROCESSPLAN' + 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 }) - modelparamMap[value.id] = value.aliasName - }) - modelparamListMap['DAYWORKPROCESSPLAN'] = paramList; + modelparamListMap['DAYWORKPROCESSPLAN'] = paramList; + } const monthParams = { 'processType': '月计划' } - let monthScheduleRes = await ScheduleModelApi.getScheduleWorkPrecessList(monthParams) + let monthScheduleRes = ScheduleModelApi.getScheduleWorkPrecessList(monthParams) paramList = [] - monthScheduleRes.forEach((value) => { - paramList.push({ - id: value.id, - code: value.code, - name: value.aliasName, - type: 'MONTHWORKPROCESSPLAN' + 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 }) - modelparamMap[value.id] = value.aliasName - }) - modelparamListMap['MONTHWORKPROCESSPLAN'] = paramList; + 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 = () => { dataForm.value = { @@ -819,12 +888,7 @@ init() }) -const init = async () => { - getItemTypeList() - getModuleList() - getPointList() - getModelparamList() - getResulttableList() - getResultstridList() +function init() { + } </script> -- Gitblit v1.9.3