From a484d883e1265f683dbf742b30799ca1324f5bd0 Mon Sep 17 00:00:00 2001
From: liriming <1343021927@qq.com>
Date: 星期二, 04 三月 2025 10:05:50 +0800
Subject: [PATCH] 模拟调整

---
 src/views/model/sche/adjust/index.vue            |    2 
 src/utils/dict.ts                                |    3 +
 src/views/model/sche/adjust/AdjustConfigForm.vue |   65 +++++++++++++-------------------
 3 files changed, 30 insertions(+), 40 deletions(-)

diff --git a/src/utils/dict.ts b/src/utils/dict.ts
index 053411e..34cacf7 100644
--- a/src/utils/dict.ts
+++ b/src/utils/dict.ts
@@ -192,5 +192,6 @@
   DATA_QUALITY = 'data_quality',
   ARC_TYPE = 'arc_type',
   ARC_CALCULATE_TYPE = 'arc_calculate_type',
-  SOLIDIFY_FLAG = 'ind_solidify_flag'
+  SOLIDIFY_FLAG = 'ind_solidify_flag',
+  MODEL_STATUS = 'model_status'
 }
diff --git a/src/views/model/sche/adjust/AdjustConfigForm.vue b/src/views/model/sche/adjust/AdjustConfigForm.vue
index 981383b..5b9d897 100644
--- a/src/views/model/sche/adjust/AdjustConfigForm.vue
+++ b/src/views/model/sche/adjust/AdjustConfigForm.vue
@@ -28,7 +28,7 @@
               clearable
               style="width: 100%">
               <el-option
-                v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
+                v-for="dict in getIntDictOptions(DICT_TYPE.MODEL_STATUS)"
                 :key="dict.value"
                 :label="dict.label"
                 :value="dict.value"
@@ -58,44 +58,25 @@
         <el-table-column prop="sort" label="执行顺序" align="center" width="90px"/>
         <el-table-column label="预测项类型" align="center" width="220px">
           <template #default="scope">
-            <el-select v-model="scope.row.itemTypeId" placeholder="请选择" @change="changeitemTypeId(scope.row)">
+            <el-select v-model="scope.row.itemTypeId" placeholder="请选择" clearable @change="changeitemTypeId(scope.row)">
               <el-option
-                v-for="dict in getStrDictOptions(DICT_TYPE.MODEL_PARAM_TYPE)"
-                :key="dict.value"
-                :label="dict.label"
-                :value="dict.value"
-              />
+                v-for="item in itemTypeList"
+                :key="item.id"
+                :label="item.itemtypename"
+                :value="item.id"/>
             </el-select>
           </template>
         </el-table-column>
         <el-table-column label="预测项名" align="center" width="300px">
           <template #default="scope">
-            <el-select v-if="scope.row.itemTypeId === 'NormalItem'"
-                       v-model="scope.row.predictItemId"
-                       placeholder="请选择"
-                       filterable
-                       style="width: 100%">
-              <el-option-group
-                v-for="group in modelparamListMap['NormalItem']"
-                :key="group.value"
-                :label="group.label"
-              >
-                <el-option
-                  v-for="item in group.children"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                />
-              </el-option-group>
-            </el-select>
-            <el-select v-else
-                       v-model="scope.row.predictItemId"
-                       filterable
-                       placeholder="请选择">
+            <el-select
+              v-model="scope.row.predictItemId"
+              placeholder="请选择"
+              clearable>
               <el-option
-                v-for="(item, index) in modelparamListMap[scope.row.itemTypeId]"
-                :key="index"
-                :label="item.name"
+                v-for="item in predictItemList"
+                :key="item.id"
+                :label="item.itemname"
                 :value="item.id"/>
             </el-select>
           </template>
@@ -141,8 +122,9 @@
 <script lang="ts" setup>
 import * as AdjustConfigApi from '@/api/model/sche/adjust'
 import * as MmItemType from "@/api/model/pre/type";
+import * as MmPredictItem from "@/api/model/pre/item";
 import * as ScheduleModelApi from "@/api/model/sche/model";
-import {DICT_TYPE, getIntDictOptions, getStrDictOptions} from "@/utils/dict";
+import {DICT_TYPE, getIntDictOptions} from "@/utils/dict";
 
 defineOptions({name: 'AdjustConfigForm'})
 
@@ -153,7 +135,7 @@
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
 const formType = ref('') // 表单的类型:create - 新增;update - 修改
 const itemTypeList = ref([])
-const itemTypeMap = ref({})
+const predictItemList = ref([])
 const scheduleModelList = ref([] as ScheduleModelApi.ScheduleModelVO[])
 const modelparamListMap = ref({})
 const dataForm = ref({
@@ -166,6 +148,9 @@
 const formRules = reactive({
   scheduleModelId: [{required: true, message: '调度模型不能为空', trigger: 'blur'}],
   status: [{required: true, message: '状态不能为空', trigger: 'blur'}],
+})
+const queryParams = reactive({
+  itemtypeid: undefined,
 })
 const formRef = ref() // 表单 Ref
 
@@ -188,12 +173,10 @@
   scheduleModelList.value = await ScheduleModelApi.getScheduleModelList()
   // 加载参数列表
   modelparamListMap.value = await ScheduleModelApi.getModelParamList()
-
   // 获取预测项类型列表
   itemTypeList.value = await MmItemType.getItemTypeList()
-  itemTypeList.value.forEach(function (value) {
-    itemTypeMap[value.id] = value.itemtypename
-  })
+
+  predictItemList.value = await MmPredictItem.getMmPredictItemList(queryParams)
 }
 
 defineExpose({open}) // 提供 open 方法,用于打开弹窗
@@ -226,6 +209,12 @@
 
 function changeitemTypeId(row) {
   row.predictItemId = ''
+  getInfo(row.itemTypeId)
+}
+
+const getInfo = async (itemTypeId) => {
+  queryParams.itemtypeid = itemTypeId
+  predictItemList.value = await MmPredictItem.getMmPredictItemList(queryParams)
 }
 
 function addAdjustConfigDet() {
diff --git a/src/views/model/sche/adjust/index.vue b/src/views/model/sche/adjust/index.vue
index fb6ceb8..b39b597 100644
--- a/src/views/model/sche/adjust/index.vue
+++ b/src/views/model/sche/adjust/index.vue
@@ -56,7 +56,7 @@
       <el-table-column label="模型名称" header-align="center" align="left" prop="modelName" min-width="100"/>
       <el-table-column label="状态" align="center" prop="status">
         <template #default="scope">
-          <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
+          <dict-tag :type="DICT_TYPE.MODEL_STATUS" :value="scope.row.status" />
         </template>
       </el-table-column>
       <el-table-column label="备注" header-align="center" align="left" prop="remark" min-width="160" />

--
Gitblit v1.9.3