From 36730eac964e814a4fc9a0879c499e326fc00ac8 Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期六, 14 九月 2024 11:41:07 +0800
Subject: [PATCH] 预测项配置

---
 src/views/model/mcs/sche/scheme/ScheduleSchemeForm.vue |  266 ++++++++++++----------------------------------------
 1 files changed, 62 insertions(+), 204 deletions(-)

diff --git a/src/views/model/mcs/sche/scheme/ScheduleSchemeForm.vue b/src/views/model/mcs/sche/scheme/ScheduleSchemeForm.vue
index 3cb219b..f7c0b44 100644
--- a/src/views/model/mcs/sche/scheme/ScheduleSchemeForm.vue
+++ b/src/views/model/mcs/sche/scheme/ScheduleSchemeForm.vue
@@ -9,216 +9,75 @@
     >
       <el-row>
         <el-col :span="12">
-          <el-form-item label="模型编号" prop="modelCode">
-            <el-input v-model="formData.modelCode" placeholder="请输入模型编号" />
+          <el-form-item label="方案编号" prop="code">
+            <el-input v-model="formData.code" placeholder="请输入方案编号" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="模型名称" prop="modelName">
-            <el-input v-model="formData.modelName" placeholder="请输入模型名称" />
+          <el-form-item label="方案名称" prop="name">
+            <el-input v-model="formData.name" placeholder="请输入方案名称" />
           </el-form-item>
         </el-col>
       </el-row>
       <el-row>
         <el-col :span="12">
-          <el-form-item label="模型类型" prop="modelType">
-            <el-input v-model="formData.modelType" placeholder="请输入模型类型" />
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="调用方式" prop="invocation">
-            <el-input v-model="formData.invocation" placeholder="调用方式" />
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col :span="24">
-          <el-form-item label="类名" prop="className">
-            <el-input v-model="formData.className" placeholder="请输入类名 " />
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col :span="12">
-          <el-form-item label="方法名" prop="methodName">
-            <el-input v-model="formData.methodName" placeholder="请输入方法名 " />
-          </el-form-item>
-        </el-col>
-        <el-col :span="12">
-          <el-form-item label="参数数量" prop="portLength">
-            <el-input v-model="formData.portLength" placeholder="请输入参数数量 " />
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col :span="24">
-          <el-form-item label="参数构造" prop="paramStructure">
-            <el-input v-model="formData.paramStructure" placeholder="请输入参数构造 " />
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-row>
-        <el-col :span="24">
-          <el-form-item label="模型路径" prop="modelPath">
-            <el-input v-model="formData.modelPath" placeholder="模型路径 " />
-          </el-form-item>
-        </el-col>
-      </el-row>
-      <el-divider content-position="left">输入参数</el-divider>
-      <el-table
-        :data="formData.paramList"
-        border
-        style="width: 100%; margin-top: 5px;">
-        <el-table-column
-          prop=""
-          label="端口"
-          width="100"
-          align="center">
-          <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.modelparamportorder" maxlength="5" clearable
-                      style="width:100%;hight:100%"></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop=""
-          label="序号"
-          width="100"
-          align="center">
-          <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.modelparamorder" maxlength="5" clearable
-                      style="width:100%;hight:100%"></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop=""
-          label="类型"
-          width="150"
-          align="center">
-          <template slot-scope="scope">
-            <el-select v-model="scope.row.modelparamtype" placeholder="请选择">
+          <el-form-item label="触发方式" prop="triggerMethod">
+            <el-select v-model="formData.triggerMethod" placeholder="请选择">
               <el-option
-                v-for="dict in getIntDictOptions(DICT_TYPE.MODEL_PARAM_TYPE)"
+                v-for="dict in getIntDictOptions(DICT_TYPE.SCHE_TRIGGER_METHOD)"
                 :key="dict.value"
                 :label="dict.label"
                 :value="dict.value"
               />
             </el-select>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop=""
-          label="参数名称"
-          align="center">
-          <template slot-scope="scope">
-            <el-select
-              size="mini"
-              v-model="scope.row.modelparamid"
-              filterable
-              placeholder="请选择">
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="触发条件" prop="triggerCondition">
+            <el-input v-model="formData.triggerCondition" placeholder="请输入触发条件" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="调整对象" prop="scheduleObj">
+            <el-input v-model="formData.scheduleObj" placeholder="请输入调整对象" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="调整类型" prop="scheduleType">
+            <el-input v-model="formData.scheduleType" placeholder="请输入调整类型" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="12">
+          <el-form-item label="调整策略" prop="scheduleStrategy">
+            <el-input v-model="formData.scheduleStrategy" placeholder="请输入调整策略 " />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="调度模型" prop="modelId">
+            <el-select v-model="formData.modelId" clearable placeholder="请选择调度模型">
               <el-option
-                v-for="(item, index) in modelparamListMap[scope.row.modelparamtype]"
-                :key="index"
-                :label="item.name"
+                v-for="item in scheduleModelList"
+                :key="item.id"
+                :label="item.modelName"
                 :value="item.id"
-                :disabled="!(item.type === scope.row.modelparamtype)">
-              </el-option>
+              />
             </el-select>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop=""
-          label="参数长度"
-          width="120"
-          align="center">
-          <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.datalength" maxlength="50" clearable
-                      style="width:100%;hight:100%"></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop=""
-          label="操作"
-          width="100"
-          align="center">
-          <template slot-scope="scope">
-            <el-button
-              @click.native.prevent="addRow(scope.$index, formData.paramList)"
-              type="text"
-              size="small">
-              添加
-            </el-button>
-            <el-button
-              @click.native.prevent="deleteRow(scope.$index, formData.paramList)"
-              type="text"
-              size="small">
-              删除
-            </el-button>
-          </template>
-        </el-table-column>
-      </el-table>
 
-      <el-divider content-position="left">设置参数</el-divider>
-      <el-table
-        :data="formData.paramList"
-        border
-        style="width: 100%; margin-top: 5px;">
-        <el-table-column
-          prop=""
-          label="键"
-          align="center">
-          <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.key" maxlength="256" clearable
-                      style="width:100%;hight:100%"></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop=""
-          label="名称"
-          align="center">
-          <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.name" maxlength="256" clearable
-                      style="width:100%;hight:100%"></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop=""
-          label="类型"
-          align="center">
-          <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.valuetype" maxlength="256" clearable
-                      style="width:100%;hight:100%"></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop=""
-          label="值"
-          align="center">
-          <template slot-scope="scope">
-            <el-input size="mini" v-model="scope.row.value" maxlength="256" clearable
-                      style="width:100%;hight:100%"></el-input>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop=""
-          label="操作"
-          width="100"
-          align="center">
-          <template slot-scope="scope">
-            <el-button
-              @click.native.prevent="addRow(scope.$index, formData.settingList)"
-              type="text"
-              size="small">
-              添加
-            </el-button>
-            <el-button
-              @click.native.prevent="deleteRow(scope.$index, formData.settingList)"
-              type="text"
-              size="small">
-              删除
-            </el-button>
-          </template>
-        </el-table-column>
-      </el-table>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="24">
+          <el-form-item label="备注" prop="remark">
+            <el-input v-model="formData.remark" placeholder="请输入备注"  type="textarea" maxlength="100"
+                      show-word-limit/>
+          </el-form-item>
+        </el-col>
+      </el-row>
     </el-form>
     <template #footer>
       <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
@@ -228,11 +87,11 @@
 </template>
 <script lang="ts" setup>
   import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
-  import * as ScheduleModelApi from '@/api/model/sche/model'
+  import * as ScheduleSchemeApi from '@/api/model/sche/scheme'
   import { CommonStatusEnum } from '@/utils/constants'
-  import * as DataSourceConfigApi from "@/api/infra/dataSourceConfig";
+  import * as ScheduleModelApi from "@/api/model/sche/model";
 
-  defineOptions({ name: 'ScheduleModelForm' })
+  defineOptions({ name: 'ScheduleSchemeForm' })
 
   const { t } = useI18n() // 国际化
   const message = useMessage() // 消息弹窗
@@ -259,7 +118,7 @@
     name: [{ required: true, message: '名称不能为空', trigger: 'blur' }]
   })
   const formRef = ref() // 表单 Ref
-  const modelparamListMap = ref([] as ScheduleModelApi.ModelParamVO[])
+  const scheduleModelList = ref([] as ScheduleModelApi.ScheduleModelVO[])
 
   const addRow = function (index, rows) {
     let row = JSON.parse(JSON.stringify(rows[index]))
@@ -299,14 +158,13 @@
     if (id) {
       formLoading.value = true
       try {
-        formData.value = await ScheduleModelApi.getScheduleModel(id)
+        formData.value = await ScheduleSchemeApi.getScheduleScheme(id)
       } finally {
         formLoading.value = false
       }
-
-      // 加载数据源列表
-      modelparamListMap.value = await ScheduleModelApi.getModelParamList()
     }
+    // 加载调度模型列表
+    scheduleModelList.value = await ScheduleModelApi.getScheduleModelList()
   }
   defineExpose({ open }) // 提供 open 方法,用于打开弹窗
 
@@ -320,12 +178,12 @@
     // 提交请求
     formLoading.value = true
     try {
-      const data = formData.value as unknown as ScheduleModelApi.ScheduleModelVO
+      const data = formData.value as unknown as ScheduleSchemeApi.ScheduleSchemeVO
       if (formType.value === 'create') {
-        await ScheduleModelApi.createScheduleModel(data)
+        await ScheduleSchemeApi.createScheduleScheme(data)
         message.success(t('common.createSuccess'))
       } else {
-        await ScheduleModelApi.updateScheduleModel(data)
+        await ScheduleSchemeApi.updateScheduleScheme(data)
         message.success(t('common.updateSuccess'))
       }
       dialogVisible.value = false
@@ -350,7 +208,7 @@
       modelId: undefined,
       scheduleTime: undefined,
       remark: undefined,
-      status: 0
+      status: CommonStatusEnum.ENABLE
     }
     formRef.value?.resetFields()
   }

--
Gitblit v1.9.3