From 7b1ce6433c5a0617ddb73e18bda610f925b709fd Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期二, 12 十一月 2024 14:12:04 +0800
Subject: [PATCH] 预测项详情

---
 src/views/model/pre/item/MmPredictItemForm.vue |   79 +++++++++++++++++++++++++--------------
 1 files changed, 51 insertions(+), 28 deletions(-)

diff --git a/src/views/model/pre/item/MmPredictItemForm.vue b/src/views/model/pre/item/MmPredictItemForm.vue
index 11d9120..2e72784 100644
--- a/src/views/model/pre/item/MmPredictItemForm.vue
+++ b/src/views/model/pre/item/MmPredictItemForm.vue
@@ -5,7 +5,7 @@
       v-loading="formLoading"
       :model="dataForm"
       :rules="formRules"
-      label-width="120px"
+      label-width="100px"
     >
       <el-divider content-position="left">基本信息</el-divider>
       <el-row>
@@ -39,7 +39,7 @@
           <el-form-item label="粒度" prop="mmPredictItem.granularity">
             <el-select v-model="dataForm.mmPredictItem.granularity" placeholder="请选择">
               <el-option
-                v-for="dict in getIntDictOptions(DICT_TYPE.TIME_GRANULARITY)"
+                v-for="dict in getIntDictOptions(DICT_TYPE.PRED_GRANULARITY)"
                 :key="dict.value"
                 :label="dict.label"
                 :value="dict.value"
@@ -143,6 +143,7 @@
             :on-success="uploadModelSuccess"
             :on-error="uploadModelError"
             :action="uploadUrl"
+            :show-file-list="false"
             :http-request="httpRequest">
             <el-button type="primary" @click="setReplaceModelOnly(false)">
               <Icon icon="ep:upload"/>
@@ -157,8 +158,8 @@
           </el-upload>
         </el-col>
       </el-row>
-      <el-row :gutter="8" v-if="dataForm.itemtypename === 'NormalItem'">
-        <el-col :span="12">
+      <el-row v-if="dataForm.itemtypename === 'NormalItem'">
+        <el-col :span="8">
           <el-form-item label="结果">
             <el-select v-model="dataForm.mmPredictModel.resultstrid" placeholder="请选择">
               <el-option
@@ -169,7 +170,18 @@
             </el-select>
           </el-form-item>
         </el-col>
-        <el-col :span="12">
+        <el-col :span="8">
+          <el-form-item label="关联项目">
+            <el-select v-model="dataForm.mmPredictModel.mpkprojectid" placeholder="请选择">
+              <el-option
+                v-for="item in mpkProjectList"
+                :key="item.id"
+                :label="item.projectName"
+                :value="item.id"/>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
           <el-form-item label="编号">
             <el-input
               v-model="dataForm.mmPredictModel.modelno" placeholder="编号" maxlength="30" readonly
@@ -216,9 +228,9 @@
         :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="key" label="键" align="center" min-width="150"/>
+        <el-table-column prop="name" label="名称" align="center" min-width="150"/>
+        <el-table-column prop="valuetype" label="类型" align="center" min-width="150"/>
         <el-table-column prop="" label="值" align="center" min-width="150">
           <template #default="scope">
             <el-input size="mini" v-model="scope.row.value" maxlength="256"
@@ -269,18 +281,18 @@
                              style="width:100%;hight:100%"/>
           </template>
         </el-table-column>
-        <el-table-column prop="" label="操作" width="140" align="center">
+        <el-table-column prop="" label="操作" width="120" align="center">
           <template #default="scope">
             <el-button
               @click="addRow(scope.$index, dataForm.mmModelParamList)"
               type="text"
-              size="small">
+              size="mini">
               添加
             </el-button>
             <el-button
               @click="deleteRow(scope.$index, dataForm.mmModelParamList)"
               type="text"
-              size="small">
+              size="mini">
               删除
             </el-button>
           </template>
@@ -305,8 +317,8 @@
               <el-option
                 v-for="(item, index) in predictItemList"
                 :key="index"
-                :label="item.name"
-                :value="item.code"/>
+                :label="item.itemname"
+                :value="item.itemno"/>
             </el-select>
           </template>
         </el-table-column>
@@ -319,7 +331,7 @@
           label="运算符"
           align="center">
           <template #default="scope">
-            <el-select v-model="scope.row.operator" placeholder="请选择">
+            <el-select v-model="scope.row.operator" placeholder="请选择" clearable>
               <el-option
                 v-for="item in operatorList"
                 :key="item"
@@ -358,12 +370,13 @@
 </template>
 <script lang="ts" setup>
 import {DICT_TYPE, getIntDictOptions, getStrDictOptions} from '@/utils/dict'
-import * as MmPredictItem from '@/api/model/pre/predict'
-import * as MmItemType from '@/api/model/pre/item'
+import * as MmPredictItem from '@/api/model/pre/item'
+import * as MmItemType from '@/api/model/pre/type'
 import * as DmModule from '@/api/model/pre/dm'
 import * as MmResultTable from '@/api/model/pre/result'
+import * as ProjectApi from '@/api/model/mpk/project'
 import * as DaPoint from '@/api/data/da/point'
-import {useUpload} from '@/api/model/pre/predict'
+import {useUpload} from '@/api/model/pre/item'
 import * as ScheduleModelApi from '@/api/model/sche/model'
 
 const {uploadUrl, httpRequest} = useUpload()
@@ -380,6 +393,7 @@
 const itemTypeMap = ref({})
 const moduleList = ref([])
 const resultstridList = ref([])
+const mpkProjectList = ref([])
 const pointNoList = ref([])
 const pointList = ref([])
 const pointMap = ref({})
@@ -448,7 +462,8 @@
     methodname: undefined,
     modelparamstructure: undefined,
     resultstrid: undefined,
-    settingmap: undefined
+    settingmap: undefined,
+    mpkprojectid: undefined
   },
   mmPredictMergeItem: {
     id: undefined,
@@ -489,15 +504,6 @@
   resetForm()
   resetFields(dataForm.value)
   setDefaultFields()
-  // 修改时,设置数据
-  if (id) {
-    formLoading.value = true
-    try {
-      getInfo(id)
-    } finally {
-      /*formLoading.value = false*/
-    }
-  }
 
   // 加载参数列表
   modelparamListMap.value = await ScheduleModelApi.getModelParamList()
@@ -510,13 +516,20 @@
   if (!dataForm.value.id) {
     dataForm.value.mmPredictItem.itemtypeid = itemTypeList.value[0].id
   }
-  dataForm.value.itemtypename = itemTypeMap[dataForm.value.mmPredictItem.itemtypeid]
 
   // 获取管网列表
   moduleList.value = await DmModule.getModuleList()
 
   // 获取结果字符串列表
   resultstridList.value = await MmResultTable.getResultstridList()
+
+  // 获取mpk项目列表
+  mpkProjectList.value = await ProjectApi.list()
+
+  // 获取normal列表
+  predictItemList.value = await MmPredictItem.getMmPredictItemList({
+    itemtypename: 'NormalItem'
+  })
 
   // 获取数据点列表
   pointNoList.value = await DaPoint.getPointList(queryParams)
@@ -527,6 +540,15 @@
     })
   }
 
+  // 修改时,设置数据
+  if (id) {
+    formLoading.value = true
+    try {
+      getInfo(id)
+    } finally {
+      /*formLoading.value = false*/
+    }
+  }
   formLoading.value = false
 }
 defineExpose({open}) // 提供 open 方法,用于打开弹窗
@@ -591,6 +613,7 @@
 
 const getInfo = async (id) => {
   dataForm.value = await MmPredictItem.getMmPredictItem(id)
+  dataForm.value.itemtypename = itemTypeMap[dataForm.value.mmPredictItem.itemtypeid]
   expressionList.value = []
   if (dataForm.value.mmPredictMergeItem && dataForm.value.mmPredictMergeItem.expression) {
     let expression = dataForm.value.mmPredictMergeItem.expression

--
Gitblit v1.9.3