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