Quellcode durchsuchen

页面修改回显功能

zy vor 2 Wochen
Ursprung
Commit
0b5242ab73

+ 18 - 0
xvji-ui/src/api/xvji/predict.js

@@ -0,0 +1,18 @@
+import request from '@/utils/request'
+
+// 新增训练任务
+export function addTask(data) {
+  return request({
+    url: '/task/predict/addTask',
+    method: 'post',
+    data: data
+  })
+}
+// 查询训练任务
+export function queryTasks(data) {
+  return request({
+    url: '/task/predict/queryTasks',
+    method: 'get',
+    params:data
+  })
+}

+ 9 - 1
xvji-ui/src/api/xvji/training.js

@@ -3,8 +3,16 @@ import request from '@/utils/request'
 // 新增训练任务
 export function addTask(data) {
   return request({
-    url: '/task/predict/addTask',
+    url: '/task/train/addTask',
     method: 'post',
     data: data
   })
 }
+// 查询训练任务
+export function queryTasks(data) {
+  return request({
+    url: '/task/train/queryTasks',
+    method: 'get',
+    params:data
+  })
+}

+ 18 - 18
xvji-ui/src/views/tasks/predict/dataCleanForm.vue

@@ -4,28 +4,28 @@
              label-width="130px">
       <el-form-item label="mongo库" prop="mongodb_database">
         <el-input v-model="form['mongodb_database']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="读取的mongo表" prop="mongodb_read_table">
         <el-input v-model="form['mongodb_read_table']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="写入的mongo表" prop="mongodb_write_table">
         <el-input v-model="form['mongodb_write_table']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="时间列名称" prop="col_time">
         <el-input v-model="form['col_time']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="是否配置生产" prop="forecast_file">
         <el-select v-model="form['forecast_file']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in forecastFileType" :disabled="!dataCleaning.enable"
+            v-for="item in forecastFileType" :disabled="!dataCleaning.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -35,7 +35,7 @@
       <el-form-item label="场站类型" prop="plant_type">
         <el-select v-model="form['plant_type']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in stationType" :disabled="!dataCleaning.enable"
+            v-for="item in stationType" :disabled="!dataCleaning.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -44,57 +44,57 @@
       </el-form-item>
       <el-form-item label="数据清洗流程">
         <el-input v-model="form['clean_param']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="特征衍生">
         <el-input v-model="form['features_gen']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="装机容量" prop="cap">
         <el-input v-model="form['cap']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="目标值" prop="target">
         <el-input v-model="form['target']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="nwp辐照列">
         <el-input v-model="form['col_radiation']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="nwp风速列">
         <el-input v-model="form['col_speed']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="容忍时间窗口">
         <el-input v-model="form['tol']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="清洗上限">
         <el-input v-model="form['upper_ratio']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="清洗下限">
         <el-input v-model="form['lower_ratio']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="风速列1">
         <el-input v-model="form['speed_1']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="风速列2">
         <el-input v-model="form['speed_2']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
@@ -120,7 +120,7 @@ export default {
       handler(newVal, oldVal) {
         console.log(newVal)
         this.dataCleaning = newVal
-        this.form = newVal.value
+        this.form = newVal.params
       },
       immediate: true
     }

+ 77 - 68
xvji-ui/src/views/tasks/predict/index.vue

@@ -17,12 +17,12 @@
         :data="tableData"
         border
         style="width: 100%">
-        <el-table-column align="center" prop="tTaskId" label="任务id"></el-table-column>
-        <el-table-column align="center" prop="tTaskName" label="名称"></el-table-column>
-        <el-table-column align="center" prop="tTaskStatus" label="状态"></el-table-column>
-        <el-table-column align="center" prop="tCreateTime" label="创建时间"></el-table-column>
-        <el-table-column align="center" prop="tCronExpression" label="定时任务"></el-table-column>
-        <el-table-column align="center" prop="tRunInfo" label="运行信息" width="100">
+        <el-table-column align="center" prop="ttaskId" label="任务id"></el-table-column>
+        <el-table-column align="center" prop="ttaskName" label="名称"></el-table-column>
+        <el-table-column align="center" prop="ttaskStatus" label="状态"></el-table-column>
+        <el-table-column align="center" prop="tcreateTime" label="创建时间"></el-table-column>
+        <el-table-column align="center" prop="tcronExpression" label="定时任务"></el-table-column>
+        <el-table-column align="center" prop="trunInfo" label="运行信息" width="100">
           <template slot-scope="{row}">
             <el-button @click="viewInfo(row)" type="text" size="small">查看</el-button>
           </template>
@@ -33,7 +33,7 @@
         >
           <template slot-scope="{row}">
             <el-button @click="handleClick(row)" type="primary" plain size="mini">编辑</el-button>
-            <el-button @click="handleClick(row)" type="danger" plain size="mini">删除</el-button>
+            <el-button type="danger" plain size="mini">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -77,34 +77,34 @@
           <div class="flex model-table-tr">
             <span class="pa-0 td td0">数据获取</span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.dataAcquisition.enable" size="mini">
+                 <el-radio-group v-model="formData.dataAcquisition.isEnable" size="mini">
                   <el-radio-button :label="true">开启</el-radio-button>
                   <el-radio-button :label="false">关闭</el-radio-button>
                 </el-radio-group>
               </span>
             <span class="pa-0 td2">
                 <div class="form-table-item">
-                   <el-form ref="ruleForm" :rules="dataAcquisitionRules" :model="formData.dataAcquisition.value"
+                   <el-form ref="ruleForm" :rules="dataAcquisitionRules" :model="formData.dataAcquisition.params"
                             class="demo-form-inline"
                             label-width="130px">
                       <el-form-item label="查询语句" prop="query_sql">
-                        <el-input v-model="formData.dataAcquisition.value['query_sql']" size="mini"
-                                  :disabled="!formData.dataAcquisition.enable" type="textarea"
+                        <el-input v-model="formData.dataAcquisition.params['query_sql']" size="mini"
+                                  :disabled="!formData.dataAcquisition.isEnable" type="textarea"
                                   :autosize="{ minRows: 1 }"></el-input>
                       </el-form-item>
                       <el-form-item label="mongo库" prop="mongodb_database">
-                        <el-input v-model="formData.dataAcquisition.value['mongodb_database']" size="mini"
-                                  :disabled="!formData.dataAcquisition.enable" type="textarea"
+                        <el-input v-model="formData.dataAcquisition.params['mongodb_database']" size="mini"
+                                  :disabled="!formData.dataAcquisition.isEnable" type="textarea"
                                   :autosize="{ minRows: 1 }"></el-input>
                       </el-form-item>
                      <el-form-item label="写入的mongo表" prop="mongodb_write_table">
-                        <el-input v-model="formData.dataAcquisition.value['mongodb_write_table']" size="mini"
-                                  :disabled="!formData.dataAcquisition.enable" type="textarea"
+                        <el-input v-model="formData.dataAcquisition.params['mongodb_write_table']" size="mini"
+                                  :disabled="!formData.dataAcquisition.isEnable" type="textarea"
                                   :autosize="{ minRows: 1 }"></el-input>
                       </el-form-item>
                      <el-form-item label="查询的mysql库" prop="mysql_database">
-                        <el-input v-model="formData.dataAcquisition.value['mysql_database']" size="mini"
-                                  :disabled="!formData.dataAcquisition.enable" type="textarea"
+                        <el-input v-model="formData.dataAcquisition.params['mysql_database']" size="mini"
+                                  :disabled="!formData.dataAcquisition.isEnable" type="textarea"
                                   :autosize="{ minRows: 1 }"></el-input>
                       </el-form-item>
                    </el-form>
@@ -115,7 +115,7 @@
           <div class="flex model-table-tr">
             <span class="pa-0 td td0">数据处理</span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.dataCleaning.enable" size="mini">
+                 <el-radio-group v-model="formData.dataCleaning.isEnable" size="mini">
                   <el-radio-button :label="true">开启</el-radio-button>
                   <el-radio-button :label="false">关闭</el-radio-button>
                 </el-radio-group>
@@ -131,7 +131,7 @@
           <!--    模型        -->
           <div class="flex model-table-tr">
             <span class="pa-0 td td0">
-              <el-select v-model="formData.model.name" placeholder="请选择" size="small"
+              <el-select v-model="formData.model.componentType" placeholder="请选择" size="small"
                          style="width: 100%">
                 <el-option
                   v-for="item in modelName"
@@ -142,7 +142,7 @@
               </el-select>
             </span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.model.enable" size="mini">
+                 <el-radio-group v-model="formData.model.isEnable" size="mini">
                   <el-radio-button :label="true">开启</el-radio-button>
                   <el-radio-button :label="false" disabled>关闭</el-radio-button>
                 </el-radio-group>
@@ -158,7 +158,7 @@
           <div class="flex model-table-tr">
             <span class="pa-0 td td0">后处理</span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.processing.enable" size="mini">
+                 <el-radio-group v-model="formData.processing.isEnable" size="mini">
                   <el-radio-button :label="true">开启</el-radio-button>
                   <el-radio-button :label="false">关闭</el-radio-button>
                 </el-radio-group>
@@ -197,6 +197,7 @@
 import dataCleanForm from './dataCleanForm.vue'
 import modelForm from './modelForm.vue'
 import processingForm from './processingForm.vue'
+import {addTask, queryTasks} from "@/api/xvji/training";
 
 export default {
   components: {modelForm, dataCleanForm, processingForm},
@@ -205,13 +206,13 @@ export default {
       loading: false,
       tableData: [],
       formData: {
-        dataAcquisition: {name: '数据获取', enable: true, value: {}},
-        dataCleaning: {name: '数据处理', enable: true, value: {}},
-        powerRationing: {name: '限电清洗', enable: true, value: {}},
-        model: {name: '模型', enable: true, value: {}},
-        modelTest: {name: '模型测试', enable: true, value: {}},
-        processing: {name: '后处理', enable: true, value: {}},
-        report: {name: '分析报告', enable: true, value: {}},
+        dataAcquisition: {componentType:  '数据获取', isEnable: true, params: {}},
+        dataCleaning: {componentType:  '数据处理', isEnable: true, params: {}},
+        powerRationing: {componentType:  '限电清洗', isEnable: true, params: {}},
+        model: {componentType:  '模型', isEnable: true, params: {}},
+        modelTest: {componentType:  '模型测试', isEnable: true, params: {}},
+        processing: {componentType:  '后处理', isEnable: true, params: {}},
+        report: {componentType:  '分析报告', isEnable: true, params: {}},
       },
       // 总条数
       total: 0,
@@ -219,7 +220,7 @@ export default {
       queryParams: {
         pageNum: 1,
         pageSize: 10,
-        name: '',
+        name:  '',
       },
       isEdit: false,
       dialogVisible: false,
@@ -229,7 +230,7 @@ export default {
         tTaskName: [
           {required: true, message: '请填写任务名称', trigger: 'blur'}
         ],
-        name: [
+        name:  [
           {required: true, message: '请填写任务名称', trigger: 'blur'}
         ],
 
@@ -267,28 +268,15 @@ export default {
   methods: {
     getList() {
       this.loading = true
-      this.tableData = [
-        {
-          tTaskId: '1',
-          tTaskName: 'T00001',
-          tTaskStatus: '0',
-          tCreateTime: '',
-          tCronExpression: '',
-          tAnalysisReport: '',
-          tRunInfo: '1111'
-        },
-        {
-          tTaskId: '2',
-          tTaskName: 'T00002',
-          tTaskStatus: '1',
-          tCreateTime: '',
-          tCronExpression: '',
-          tAnalysisReport: '',
-          tRunInfo: '1111'
-        }
-      ]
-      this.total = this.tableData.length
-      this.loading = false
+      this.loading = true
+      queryTasks(this.queryParams).then(res=>{
+        this.tableData = res.data.list
+        console.log(this.tableData[0])
+        this.total = res.data.total
+        this.loading = false
+      }).catch(err=>{
+        this.loading = false
+      })
     },
     // 新增
     addTask() {
@@ -299,10 +287,10 @@ export default {
         tTaskId: '',
         tTaskName: '',
         tCronExpression: '',
-        dataAcquisition: {name: '数据获取', enable: true, value: {}},
-        dataCleaning: {name: '数据处理', enable: true, value: {}},
-        model: {name: '光伏物理模型', enable: true, value: {}},
-        processing: {name: '后处理', enable: true, value: {}},
+        dataAcquisition: {componentType:  '数据获取', isEnable: true, params: {}},
+        dataCleaning: {componentType:  '数据处理', isEnable: true, params: {}},
+        model: {componentType:  '光伏物理模型', isEnable: true, params: {}},
+        processing: {componentType:  '后处理', isEnable: true, params: {}},
       }
       this.$nextTick(() => {
         this.$refs.ruleForm.clearValidate()
@@ -311,27 +299,48 @@ export default {
     // 编辑
     handleClick() {
       this.isEdit = true
+      this.formData = {
+        tTaskId:row.ttaskId,
+        tTaskName: row.ttaskName,
+        tTaskStatus: row.ttaskStatus,
+        tComponentIds:row.tcomponentIds,
+        tCreateTime:row.tcreateTime,
+        tCronExpression:row.tcronExpression,
+        tQuartzTask:row.tquartzTask,
+        tRunInfo:row.trunInfo,
+        dataAcquisition: row.components.find(w=>w.componentType.includes('数据获取'))|| {componentType: '数据获取', isEnable: true, params:{}},
+        dataCleaning: row.components.find(w=>w.componentType ==='数据处理')|| {componentType: '数据处理', isEnable: true, params:{}},
+        model: row.components.find(w=>this.modelOption.includes(w.componentType))|| {componentType: '光伏物理模型', isEnable: true, params:{}},
+        processing: row.components.find(w=>w.componentType ==='后处理') || {componentType: '后处理', isEnable: true, params:{}},
+      }
       this.dialogVisible = true
     },
     //保存
     saveTask() {
       this.$refs.ruleForm.validate(async (valid) => {
         if (valid) {
-          alert('submit!');
           await this.$refs.dataCleaning.saveTask()
-          if (JSON.stringify(this.formData.dataCleaning.value) === '{}') {
+          if (JSON.stringify(this.formData.dataCleaning.params) === '{}') {
             return false
           }
           await this.$refs.model.saveTask()
-          if (JSON.stringify(this.formData.model.value) === '{}') {
+          if (JSON.stringify(this.formData.model.params) === '{}') {
             return false
           }
           await this.$refs.processing.saveTask()
-          if (JSON.stringify(this.formData.processing.value) === '{}') {
+          if (JSON.stringify(this.formData.processing.params) === '{}') {
             return false
           }
+          if(!this.isEdit){
+            addTask(this.formData).then(res=>{
+              this.dialogVisible = false
+            })
+          }
         } else {
-          console.log('error submit!!');
+          this.$message({
+            message: '校验不通过',
+            type: 'warning'
+          })
           return false;
         }
       });
@@ -339,14 +348,14 @@ export default {
     },
     // 数据处理数据
     getDataCleaning(val) {
-      this.formData.dataCleaning.value = val
+      this.formData.dataCleaning.params = val
     },
     getModel(val) {
-      this.formData.model.value = val
+      this.formData.model.params = val
     },
 
     getProcessing(val) {
-      this.formData.processing.value = val
+      this.formData.processing.params = val
     },
 
     handleClose() {
@@ -355,10 +364,10 @@ export default {
         tTaskId: '',
         tTaskName: '',
         tCronExpression: '',
-        dataAcquisition: {name: '数据获取', enable: true, value: {}},
-        dataCleaning: {name: '数据处理', enable: true, value: {}},
-        model: {name: '光伏物理模型', enable: true, value: {}},
-        processing: {name: '后处理', enable: true, value: {}},
+        dataAcquisition: {componentType:  '数据获取', isEnable: true, params: {}},
+        dataCleaning: {componentType:  '数据处理', isEnable: true, params: {}},
+        model: {componentType:  '光伏物理模型', isEnable: true, params: {}},
+        processing: {componentType:  '后处理', isEnable: true, params: {}},
       }
       this.dialogVisible = false
     },

+ 29 - 29
xvji-ui/src/views/tasks/predict/modelForm.vue

@@ -4,67 +4,67 @@
              label-width="130px">
       <el-form-item label="mongo库" prop="mongodb_database">
         <el-input v-model="form['mongodb_database']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="读取的mongo表" prop="mongodb_read_table">
         <el-input v-model="form['mongodb_read_table']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="写入的mongo表" prop="mongodb_write_table">
         <el-input v-model="form['mongodb_write_table']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="mongodb_modelTest_table" prop="mongodb_modelTest_table" v-if="modelType ===4">
         <el-input v-model="form['mongodb_modelTest_table']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="时间列名" prop="col_time">
         <el-input v-model="form['col_time']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="站点编码" prop="farm_id">
         <el-input v-model="form['farm_id']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
 
       <el-form-item label="辐照度列" prop="col_radiance" v-if="modelType === 0">
         <el-input v-model="form['col_radiance']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="风速列" prop="col_speed" v-if="modelType === 1">
         <el-input v-model="form['col_speed']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="辐照度最大值" prop="radiance_max" v-if="modelType === 0">
         <el-input v-model="form['radiance_max']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="装机容量" prop="cap" v-if="modelType !== 2">
         <el-input v-model="form['cap']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
       <el-form-item label="归一化表" prop="scaler_table" v-if="modelType === 3">
         <el-input v-model="form['scaler_table']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
       <el-form-item label="是否配置生产" prop="forecast_file" v-if="modelType !== 3" @change="forecastFileChange">
         <el-select v-model="form['forecast_file']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in forecastFileType" :disabled="!model.enable"
+            v-for="item in forecastFileType" :disabled="!model.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -74,7 +74,7 @@
       <el-form-item label="测试or生产" prop="algorithm_test" v-if="modelType ===3">
         <el-select v-model="form['algorithm_test']" clearable placeholder="请选择" size="small" style="width: 100%" @change="columnChange">
           <el-option
-            v-for="item in algorithmTestType" :disabled="!model.enable"
+            v-for="item in algorithmTestType" :disabled="!model.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -83,18 +83,18 @@
       </el-form-item>
       <el-form-item label="数据开始时间">
         <el-input v-model="form['timeBegin']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="数据结束时间">
         <el-input v-model="form['timeEnd']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="平滑参数" v-if="modelType ===1">
         <el-select v-model="form['sigmoid_param']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in sigmoidParamType" :disabled="!model.enable"
+            v-for="item in sigmoidParamType" :disabled="!model.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -104,37 +104,37 @@
       <div v-if="modelType !== 3">
         <el-form-item label="测试第N天" >
           <el-input v-model="form['howLongAgo']" size="mini"
-                    :disabled="!model.enable || form['forecast_file'] !=='0' " type="textarea"
+                    :disabled="!model.isEnable || form['forecast_file'] !=='0' " type="textarea"
                     :autosize="{ minRows: 1 }"></el-input>
         </el-form-item>
         <el-form-item label="目标列" prop="target">
           <el-input v-model="form['target']" size="mini"
-                    :disabled="!model.enable ||form['forecast_file'] !=='0' " type="textarea"
+                    :disabled="!model.isEnable ||form['forecast_file'] !=='0' " type="textarea"
                     :autosize="{ minRows: 1 }"></el-input>
         </el-form-item>
       </div>
      <div v-else>
         <el-form-item label="测试第N天" >
           <el-input v-model="form['howLongAgo']" size="mini"
-                    :disabled="!model.enable || columnDisabled" type="textarea"
+                    :disabled="!model.isEnable || columnDisabled" type="textarea"
                     :autosize="{ minRows: 1 }"></el-input>
         </el-form-item>
         <el-form-item label="目标列" prop="target">
           <el-input v-model="form['target']" size="mini"
-                    :disabled="!model.enable || columnDisabled" type="textarea"
+                    :disabled="!model.isEnable || columnDisabled" type="textarea"
                     :autosize="{ minRows: 1 }"></el-input>
         </el-form-item>
       </div>
 
       <el-form-item label="预测长度" prop="pre_len" v-if="modelType === 2">
         <el-input v-model="form['pre_len']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="预测粒度" prop="freq" v-if="modelType ===2">
         <el-select v-model="form['freq']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in sigmoidParamType" :disabled="!model.enable"
+            v-for="item in sigmoidParamType" :disabled="!model.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -143,12 +143,12 @@
       </el-form-item>
       <el-form-item label="模型名称" prop="model_name">
         <el-input v-model="form['model_name']" size="mini"
-                  :disabled="!model.enable || (form['forecast_file'] !=='0'&& modelType===2) " type="textarea"
+                  :disabled="!model.isEnable || (form['forecast_file'] !=='0'&& modelType===2) " type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="模型保存表名" prop="model_table" v-if="modelType ===3">
         <el-input v-model="form['model_table']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
@@ -156,17 +156,17 @@
 
       <el-form-item label="周期" prop="seasonal_periods" v-if="modelType === 2">
         <el-input v-model="form['seasonal_periods']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="日出时间" v-if="modelType === 2">
         <el-input v-model="form['sunrise']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="日落时间" v-if="modelType === 2">
         <el-input v-model="form['sunset']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
@@ -195,7 +195,7 @@ export default {
           this.$refs.modelForm.clearValidate()
         });
         this.model = newVal
-        this.modelType = this.modelName.find(w => w.label === newVal.name).value
+        this.modelType = this.modelName.find(w => w.label === newVal.componentType).value
         this.rules = {}
         if(this.modelType === 0){
           this.rules = { ...this.commonRules, ...this.solarRules }
@@ -208,7 +208,7 @@ export default {
         }else if(this.modelType === 4){
           this.rules = { ...this.commonRules, ...this.machineRules }
         }
-        this.form = newVal.value
+        this.form = newVal.params
 
       },
       immediate: true,

+ 8 - 8
xvji-ui/src/views/tasks/predict/processingForm.vue

@@ -4,28 +4,28 @@
              label-width="130px">
       <el-form-item label="mongo库" prop="mongodb_database">
         <el-input v-model="form['mongodb_database']" size="mini"
-                  :disabled="!processing.enable" type="textarea"
+                  :disabled="!processing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="读取的mongo表" prop="mongodb_read_table">
         <el-input v-model="form['mongodb_read_table']" size="mini"
-                  :disabled="!processing.enable" type="textarea"
+                  :disabled="!processing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="写入的mongo表" prop="mongodb_write_table">
         <el-input v-model="form['mongodb_write_table']" size="mini"
-                  :disabled="!processing.enable" type="textarea"
+                  :disabled="!processing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="时间列名称" prop="col_time">
         <el-input v-model="form['col_time']" size="mini"
-                  :disabled="!processing.enable" type="textarea"
+                  :disabled="!processing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="类型" prop="plant_type">
         <el-select v-model="form['plant_type']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in plantType" :disabled="!processing.enable"
+            v-for="item in plantType" :disabled="!processing.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -34,12 +34,12 @@
       </el-form-item>
       <el-form-item label="数据清洗流程">
         <el-input v-model="form['mongodb_nwp_table']" size="mini"
-                  :disabled="!processing.enable || form['plant_type'] ==='wind'" type="textarea"
+                  :disabled="!processing.isEnable || form['plant_type'] ==='wind'" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="平滑参数" prop="process_param">
         <el-input v-model="form['process_param']" size="mini"
-                  :disabled="!processing.enable" type="textarea"
+                  :disabled="!processing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
@@ -64,7 +64,7 @@ export default {
       handler(newVal, oldVal) {
         console.log(newVal)
         this.processing = newVal
-        this.form = newVal.value
+        this.form = newVal.params
       },
       immediate: true
     }

+ 18 - 18
xvji-ui/src/views/tasks/training/dataCleanForm.vue

@@ -4,28 +4,28 @@
              label-width="130px">
       <el-form-item label="mongo库" prop="mongodb_database">
         <el-input v-model="form['mongodb_database']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="读取的mongo表" prop="mongodb_read_table">
         <el-input v-model="form['mongodb_read_table']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="写入的mongo表" prop="mongodb_write_table">
         <el-input v-model="form['mongodb_write_table']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="时间列名称" prop="col_time">
         <el-input v-model="form['col_time']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="是否配置生产" prop="forecast_file">
         <el-select v-model="form['forecast_file']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in forecastFileType" :disabled="!dataCleaning.enable"
+            v-for="item in forecastFileType" :disabled="!dataCleaning.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -35,7 +35,7 @@
       <el-form-item label="场站类型" prop="plant_type">
         <el-select v-model="form['plant_type']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in stationType" :disabled="!dataCleaning.enable"
+            v-for="item in stationType" :disabled="!dataCleaning.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -44,57 +44,57 @@
       </el-form-item>
       <el-form-item label="数据清洗流程">
         <el-input v-model="form['clean_param']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="特征衍生">
         <el-input v-model="form['features_gen']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="装机容量" prop="cap">
         <el-input v-model="form['cap']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="目标值" prop="target">
         <el-input v-model="form['target']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="nwp辐照列">
         <el-input v-model="form['col_radiation']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="nwp风速列">
         <el-input v-model="form['col_speed']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="容忍时间窗口">
         <el-input v-model="form['tol']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="清洗上限">
         <el-input v-model="form['upper_ratio']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="清洗下限">
         <el-input v-model="form['lower_ratio']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="风速列1">
         <el-input v-model="form['speed_1']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="风速列2">
         <el-input v-model="form['speed_2']" size="mini"
-                  :disabled="!dataCleaning.enable" type="textarea"
+                  :disabled="!dataCleaning.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
@@ -120,7 +120,7 @@ export default {
       handler(newVal, oldVal) {
         console.log(newVal)
         this.dataCleaning = newVal
-        this.form = newVal.value
+        this.form = newVal.params
       },
       immediate: true
     }

+ 130 - 119
xvji-ui/src/views/tasks/training/index.vue

@@ -17,17 +17,17 @@
         :data="tableData"
         border
         style="width: 100%">
-        <el-table-column align="center" prop="tTaskId" label="任务id"></el-table-column>
-        <el-table-column align="center" prop="tTaskName" label="名称"></el-table-column>
-        <el-table-column align="center" prop="tTaskStatus" label="状态"></el-table-column>
-        <el-table-column align="center" prop="tCreateTime" label="创建时间"></el-table-column>
-        <el-table-column align="center" prop="tCronExpression" label="定时任务"></el-table-column>
-        <el-table-column align="center" prop="tAnalysisReport" label="报告分析" width="100">
+        <el-table-column align="center" prop="ttaskId" label="任务id"></el-table-column>
+        <el-table-column align="center" prop="ttaskName" label="名称"></el-table-column>
+        <el-table-column align="center" prop="ttaskStatus" label="状态"></el-table-column>
+        <el-table-column align="center" prop="tcreateTime" label="创建时间"></el-table-column>
+        <el-table-column align="center" prop="tcronExpression" label="定时任务"></el-table-column>
+        <el-table-column align="center" prop="tanalysisReport" label="报告分析" width="100">
           <template slot-scope="{row}">
             <el-button @click="viewReport(row)" type="text" size="small">预览</el-button>
           </template>
         </el-table-column>
-        <el-table-column align="center" prop="tRunInfo" label="运行信息" width="100">
+        <el-table-column align="center" prop="trunInfo" label="运行信息" width="100">
           <template slot-scope="{row}">
             <el-button @click="viewInfo(row)" type="text" size="small">查看</el-button>
           </template>
@@ -38,7 +38,7 @@
         >
           <template slot-scope="{row}">
             <el-button @click="handleClick(row)" type="primary" plain size="mini">编辑</el-button>
-            <el-button @click="handleClick(row)" type="danger" plain size="mini">删除</el-button>
+            <el-button type="danger" plain size="mini">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -82,34 +82,34 @@
           <div class="flex model-table-tr">
             <span class="pa-0 td td0">数据获取</span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.dataAcquisition.enable" size="mini">
+                 <el-radio-group v-model="formData.dataAcquisition.isEnable" size="mini">
                   <el-radio-button :label="true">开启</el-radio-button>
                   <el-radio-button :label="false">关闭</el-radio-button>
                 </el-radio-group>
               </span>
             <span class="pa-0 td2">
                 <div class="form-table-item">
-                   <el-form ref="ruleForm" :rules="dataAcquisitionRules" :model="formData.dataAcquisition.value"
+                   <el-form ref="ruleForm" :rules="dataAcquisitionRules" :model="formData.dataAcquisition.params"
                             class="demo-form-inline"
                             label-width="130px">
                       <el-form-item label="查询语句" prop="query_sql">
-                        <el-input v-model="formData.dataAcquisition.value['query_sql']" size="mini"
-                                  :disabled="!formData.dataAcquisition.enable" type="textarea"
+                        <el-input v-model="formData.dataAcquisition.params['query_sql']" size="mini"
+                                  :disabled="!formData.dataAcquisition.isEnable" type="textarea"
                                   :autosize="{ minRows: 1 }"></el-input>
                       </el-form-item>
                       <el-form-item label="mongo库" prop="mongodb_database">
-                        <el-input v-model="formData.dataAcquisition.value['mongodb_database']" size="mini"
-                                  :disabled="!formData.dataAcquisition.enable" type="textarea"
+                        <el-input v-model="formData.dataAcquisition.params['mongodb_database']" size="mini"
+                                  :disabled="!formData.dataAcquisition.isEnable" type="textarea"
                                   :autosize="{ minRows: 1 }"></el-input>
                       </el-form-item>
                      <el-form-item label="写入的mongo表" prop="mongodb_write_table">
-                        <el-input v-model="formData.dataAcquisition.value['mongodb_write_table']" size="mini"
-                                  :disabled="!formData.dataAcquisition.enable" type="textarea"
+                        <el-input v-model="formData.dataAcquisition.params['mongodb_write_table']" size="mini"
+                                  :disabled="!formData.dataAcquisition.isEnable" type="textarea"
                                   :autosize="{ minRows: 1 }"></el-input>
                       </el-form-item>
                      <el-form-item label="查询的mysql库" prop="mysql_database">
-                        <el-input v-model="formData.dataAcquisition.value['mysql_database']" size="mini"
-                                  :disabled="!formData.dataAcquisition.enable" type="textarea"
+                        <el-input v-model="formData.dataAcquisition.params['mysql_database']" size="mini"
+                                  :disabled="!formData.dataAcquisition.isEnable" type="textarea"
                                   :autosize="{ minRows: 1 }"></el-input>
                       </el-form-item>
                    </el-form>
@@ -120,7 +120,7 @@
           <div class="flex model-table-tr">
             <span class="pa-0 td td0">数据处理</span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.dataCleaning.enable" size="mini">
+                 <el-radio-group v-model="formData.dataCleaning.isEnable" size="mini">
                   <el-radio-button :label="true">开启</el-radio-button>
                   <el-radio-button :label="false">关闭</el-radio-button>
                 </el-radio-group>
@@ -146,7 +146,7 @@
               </el-select>
             </span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.powerRationing.enable" size="mini">
+                 <el-radio-group v-model="formData.powerRationing.isEnable" size="mini">
                   <el-radio-button :label="true">开启</el-radio-button>
                   <el-radio-button :label="false">关闭</el-radio-button>
                 </el-radio-group>
@@ -161,7 +161,7 @@
           <!--    模型        -->
           <div class="flex model-table-tr">
             <span class="pa-0 td td0">
-              <el-select v-model="formData.model.name" @change="isDisableModeTest" placeholder="请选择" size="small"
+              <el-select v-model="formData.model.componentType" @change="isDisableModeTest" placeholder="请选择" size="small"
                          style="width: 100%">
                 <el-option
                   v-for="item in modelName"
@@ -172,7 +172,7 @@
               </el-select>
             </span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.model.enable" size="mini">
+                 <el-radio-group v-model="formData.model.isEnable" size="mini">
                   <el-radio-button :label="true">开启</el-radio-button>
                   <el-radio-button :label="false" disabled>关闭</el-radio-button>
                 </el-radio-group>
@@ -185,9 +185,9 @@
           </div>
           <!--    模型测试        -->
           <div class="flex model-table-tr" v-if="!modelTestDisable">
-            <span class="pa-0 td td0">{{ formData.modelTest.name }}</span>
+            <span class="pa-0 td td0">{{ formData.modelTest.componentType }}</span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.modelTest.enable" size="mini">
+                 <el-radio-group v-model="formData.modelTest.isEnable" size="mini">
                   <el-radio-button :label="true" :disabled="modelTestDisable">开启</el-radio-button>
                   <el-radio-button :label="false" disabled>关闭</el-radio-button>
                 </el-radio-group>
@@ -203,7 +203,7 @@
           <div class="flex model-table-tr">
             <span class="pa-0 td td0">后处理</span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.processing.enable" size="mini">
+                 <el-radio-group v-model="formData.processing.isEnable" size="mini">
                   <el-radio-button :label="true">开启</el-radio-button>
                   <el-radio-button :label="false">关闭</el-radio-button>
                 </el-radio-group>
@@ -219,7 +219,7 @@
           <div class="flex model-table-tr">
             <span class="pa-0 td td0">分析报告</span>
             <span class="pa-0 td td1">
-                 <el-radio-group v-model="formData.report.enable" size="mini">
+                 <el-radio-group v-model="formData.report.isEnable" size="mini">
                   <el-radio-button :label="true">开启</el-radio-button>
                   <el-radio-button :label="false">关闭</el-radio-button>
                 </el-radio-group>
@@ -261,7 +261,7 @@ import modelForm from './modelForm.vue'
 import modelTestForm from './modelTestForm.vue'
 import processingForm from './processingForm.vue'
 import reportForm from './reportForm.vue'
-import {addTask} from "@/api/xvji/training";
+import {addTask, queryTasks} from "@/api/xvji/training";
 
 export default {
   components: {modelForm, modelTestForm, dataCleanForm, powerRationingForm, processingForm, reportForm},
@@ -270,9 +270,9 @@ export default {
       loading: false,
       tableData: [],
       formData: {
-        dataAcquisition: {name: '数据获取', enable: true, value: {}},
-        dataCleaning: {name: '数据处理', enable: true, value: {}},
-        powerRationing: {name: '限电清洗', enable: true, value: {
+        dataAcquisition: {componentType: '数据获取', isEnable: true, params:{}},
+        dataCleaning: {componentType: '数据处理', isEnable: true, params:{}},
+        powerRationing: {componentType: '限电清洗', isEnable: true, value: {
             mongodb_database:'',
             mongodb_read_table:'',
             mongodb_write_table:'',
@@ -280,10 +280,10 @@ export default {
             col_radiance:'',
             sigma:'1'
           }},
-        model: {name: '模型', enable: true, value: {}},
-        modelTest: {name: '模型测试', enable: true, value: {}},
-        processing: {name: '后处理', enable: true, value: {}},
-        report: {name: '分析报告', enable: true, value: {}},
+        model: {componentType: '模型', isEnable: true, params:{}},
+        modelTest: {componentType: '模型测试', isEnable: true, params:{}},
+        processing: {componentType: '后处理', isEnable: true, params:{}},
+        report: {componentType: '分析报告', isEnable: true, params:{}},
       },
       modelTestDisable: true,
       // 总条数
@@ -331,7 +331,9 @@ export default {
         {label: 'Holtwinters模型', value: 'Holtwinters模型'},
         {label: 'LSTM', value: 'LSTM'},
         {label: '机器学习模型', value: '机器学习模型'}
-      ]
+      ],
+      modelOption:['光伏物理模型', '风电物理模型','Holtwinters模型','LSTM','机器学习模型',],
+      modelTestOption:['LSTM-测试','机器学习模型-测试',],
     }
   },
   mounted() {
@@ -340,28 +342,14 @@ export default {
   methods: {
     getList() {
       this.loading = true
-      this.tableData = [
-        {
-          tTaskId: '1',
-          tTaskName: 'T00001',
-          tTaskStatus: '0',
-          tCreateTime: '',
-          tCronExpression: '',
-          tAnalysisReport: '',
-          tRunInfo: '1111'
-        },
-        {
-          tTaskId: '2',
-          tTaskName: 'T00002',
-          tTaskStatus: '1',
-          tCreateTime: '',
-          tCronExpression: '',
-          tAnalysisReport: '',
-          tRunInfo: '1111'
-        }
-      ]
-      this.total = this.tableData.length
-      this.loading = false
+      queryTasks(this.queryParams).then(res=>{
+        this.tableData = res.data.list
+        console.log(this.tableData[0])
+        this.total = res.data.total
+        this.loading = false
+      }).catch(err=>{
+        this.loading = false
+      })
     },
     // 新增
     addTask() {
@@ -371,135 +359,158 @@ export default {
       this.formData = {
         tTaskName: '',
         tCronExpression: '',
-        dataAcquisition: {name: '数据获取', enable: true, value: {}},
-        dataCleaning: {name: '数据处理', enable: true, value: {}},
-        powerRationing: {name: '限电清洗-光伏', enable: true, value: {}},
-        model: {name: '光伏物理模型', enable: true, value: {}},
-        modelTest: {name: '模型测试', enable: true, value: {}},
-        processing: {name: '后处理', enable: true, value: {}},
-        report: {name: '分析报告', enable: true, value: {}},
+        dataAcquisition: {componentType: '数据获取', isEnable: true, params:{}},
+        dataCleaning: {componentType: '数据处理', isEnable: true, params:{}},
+        powerRationing: {componentType: '限电清洗-光伏', isEnable: true, params:{}},
+        model: {componentType: '光伏物理模型', isEnable: true, params:{}},
+        modelTest: {componentType: '模型测试', isEnable: true, params:{}},
+        processing: {componentType: '后处理', isEnable: true, params:{}},
+        report: {componentType: '分析报告', isEnable: true, params:{}},
       }
       this.$nextTick(()=>{
         this.$refs.ruleForm.clearValidate()
       })
     },
     // 编辑
-    handleClick() {
+    handleClick(row) {
       this.isEdit = true
+      this.formData = {
+        tTaskId:row.ttaskId,
+        tTaskName: row.ttaskName,
+        tTaskStatus: row.ttaskStatus,
+        tAnalysisReport:row.tanalysisReport,
+        tComponentIds:row.tcomponentIds,
+        tCreateTime:row.tcreateTime,
+        tCronExpression:row.tcronExpression,
+        tQuartzTask:row.tquartzTask,
+        tRunInfo:row.trunInfo,
+        dataAcquisition: row.components.find(w=>w.componentType.includes('数据获取'))|| {componentType: '数据获取', isEnable: true, params:{}},
+        dataCleaning: row.components.find(w=>w.componentType ==='数据处理')|| {componentType: '数据处理', isEnable: true, params:{}},
+        powerRationing: row.components.find(w=>w.componentType.includes('限电清洗'))|| {componentType: '限电清洗-光伏', isEnable: true, params:{}},
+        model: row.components.find(w=>this.modelOption.includes(w.componentType))|| {componentType: '光伏物理模型', isEnable: true, params:{}},
+        modelTest: row.components.find(w=>this.modelTestOption.includes(w.componentType))|| {componentType: '模型测试', isEnable: true, params:{}},
+        processing: row.components.find(w=>w.componentType ==='后处理') || {componentType: '后处理', isEnable: true, params:{}},
+        report: row.components.find(w=>w.componentType ==='分析报告')|| {componentType: '分析报告', isEnable: true, params:{}},
+      }
+      console.log(this.formData,row.components)
       this.dialogVisible = true
     },
     //保存
     saveTask() {
       this.$refs.ruleForm.validate(async (valid) => {
         if (valid) {
-          alert('submit!');
           await this.$refs.dataCleaning.saveTask()
-          if (JSON.stringify(this.formData.dataCleaning.value) === '{}') {
+          if (JSON.stringify(this.formData.dataCleaning.params) === '{}') {
             return false
           }
           await this.$refs.powerRationing.saveTask()
-          if (JSON.stringify(this.formData.powerRationing.value) === '{}') {
+          if (JSON.stringify(this.formData.powerRationing.params) === '{}') {
             return false
           }
           await this.$refs.model.saveTask()
-          if (JSON.stringify(this.formData.model.value) === '{}') {
+          if (JSON.stringify(this.formData.model.params) === '{}') {
             return false
           }
-          if (this.formData.model.name.includes('LSTM') || this.formData.model.name.includes('机器')) {
+          if (this.formData.model.componentType.includes('LSTM') || this.formData.model.componentType.includes('机器')) {
             await this.$refs.modelTest.saveTask()
-            if (JSON.stringify(this.formData.modelTest.value) === '{}') {
+            if (JSON.stringify(this.formData.modelTest.params) === '{}') {
               return false
             }
           }else{
             this.formData.modelTest = {}
           }
           await this.$refs.processing.saveTask()
-          if (JSON.stringify(this.formData.processing.value) === '{}') {
+          if (JSON.stringify(this.formData.processing.params) === '{}') {
             return false
           }
           await this.$refs.report.saveTask()
-          if (JSON.stringify(this.formData.report.value) === '{}') {
+          if (JSON.stringify(this.formData.report.params) === '{}') {
             return false
           }
+          if(!this.isEdit){
+            addTask(this.formData).then(res=>{
+              this.dialogVisible = false
+            })
+          }
+
         } else {
-          console.log('校验不通过');
+          this.$message({
+            message: '校验不通过',
+            type: 'warning'
+          })
           return false;
         }
-        if(!this.isEdit){
-          addTask(this.formData).then(res=>{
 
-          })
-        }
       });
-      // this.dialogVisible = false
+
     },
 
     // 数据处理数据
     getDataCleaning(val) {
-      this.formData.dataCleaning.value = val
+      this.formData.dataCleaning.params = val
     },
     getPowerRationing(val) {
-      this.formData.powerRationing.value = val
+      this.formData.powerRationing.params = val
     },
     getModel(val) {
-      this.formData.model.value = val
+      this.formData.model.params = val
     },
     getModelTest(val) {
-      this.formData.modelTest.value = val
+      this.formData.modelTest.params = val
     },
     getProcessing(val) {
-      this.formData.processing.value = val
+      this.formData.processing.params = val
     },
     getReport(val) {
-      this.formData.report.value = val
+      this.formData.report.params = val
     },
     powerRationingNameChange() {
-      // if (!this.isEdit) {
-      //   if (this.formData.powerRationing.name.includes('光伏')) {
-      //     this.formData.powerRationing.value = {
-      //       mongodb_database:'',
-      //       mongodb_read_table:'',
-      //       mongodb_write_table:'',
-      //       col_power:'',
-      //       col_radiance:'',
-      //       sigma: 1
-      //     }
-      //   } else {
-      //     this.formData.powerRationing.value = {
-      //       mongodb_database:'',
-      //       mongodb_read_table:'',
-      //       mongodb_write_table:'',
-      //       col_power:'',
-      //       col_ws:'',
-      //       cap:'',
-      //       eps: 0.1,
-      //       min_samples: '20'
-      //     }
-      //   }
-      // }
+      if (!this.isEdit) {
+        if (this.formData.powerRationing.componentType.includes('光伏')) {
+          this.formData.powerRationing.params = {
+            mongodb_database:'',
+            mongodb_read_table:'',
+            mongodb_write_table:'',
+            col_power:'',
+            col_radiance:'',
+            sigma: 1
+          }
+        } else {
+          this.formData.powerRationing.params = {
+            mongodb_database:'',
+            mongodb_read_table:'',
+            mongodb_write_table:'',
+            col_power:'',
+            col_ws:'',
+            cap:'',
+            eps: 0.1,
+            min_samples: '20'
+          }
+        }
+      }
     },
     isDisableModeTest() {
-      if (this.formData.model.name.includes('LSTM') || this.formData.model.name.includes('机器')) {
+      if (this.formData.model.componentType.includes('LSTM') || this.formData.model.componentType.includes('机器')) {
         this.modelTestDisable = false
-        this.formData.modelTest.enable = true
-        this.formData.modelTest.name = this.formData.model.name + '测试'
+        this.formData.modelTest.isEnable = true
+        this.formData.modelTest.componentType = this.formData.model.componentType + '测试'
         return
       }
       this.modelTestDisable = true
-      this.formData.modelTest.enable = false
+      this.formData.modelTest.isEnable = false
     },
     handleClose() {
       this.$refs.ruleForm.resetFields()
       // this.formData = {
       //   tTaskName: '',
       //   tCronExpression: '',
-      //   dataAcquisition: {name: '数据获取', enable: true, value: {}},
-      //   dataCleaning: {name: '数据处理', enable: true, value: {}},
-      //   powerRationing: {name: '限电清洗-光伏', enable: true, value: {}},
-      //   model: {name: '光伏物理模型', enable: true, value: {}},
-      //   modelTest: {name: '模型测试', enable: true, value: {}},
-      //   processing: {name: '后处理', enable: true, value: {}},
-      //   report: {name: '分析报告', enable: true, value: {}},
+      //   dataAcquisition: {componentType: '数据获取', isEnable: true, params:{}},
+      //   dataCleaning: {componentType: '数据处理', isEnable: true, params:{}},
+      //   powerRationing: {componentType: '限电清洗-光伏', isEnable: true, params:{}},
+      //   model: {componentType: '光伏物理模型', isEnable: true, params:{}},
+      //   modelTest: {componentType: '模型测试', isEnable: true, params:{}},
+      //   processing: {componentType: '后处理', isEnable: true, params:{}},
+      //   report: {componentType: '分析报告', isEnable: true, params:{}},
       // }
       this.dialogVisible = false
     },

+ 33 - 33
xvji-ui/src/views/tasks/training/modelForm.vue

@@ -4,62 +4,62 @@
              label-width="130px">
       <el-form-item label="mongo库" prop="mongodb_database">
         <el-input v-model="form['mongodb_database']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="读取的mongo表" prop="mongodb_read_table" v-if="modelType !== 3">
         <el-input v-model="form['mongodb_read_table']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="写入的mongo表" prop="mongodb_write_table">
         <el-input v-model="form['mongodb_write_table']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="时间列名" prop="col_time">
         <el-input v-model="form['col_time']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="站点编码" prop="farm_id">
         <el-input v-model="form['farm_id']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
 
       <el-form-item label="辐照度列" prop="col_radiance" v-if="modelType === 0">
         <el-input v-model="form['col_radiance']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="风速列" prop="col_speed" v-if="modelType === 1">
         <el-input v-model="form['col_speed']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="辐照度最大值" prop="radiance_max" v-if="modelType === 0">
         <el-input v-model="form['radiance_max']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item :label="modelType ===3?'预测上限':'装机容量'" prop="cap" v-if="modelType !== 2">
         <el-input v-model="form['cap']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
       <el-form-item label="归一化表" prop="scaler_table" v-if="modelType === 3">
         <el-input v-model="form['scaler_table']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
       <el-form-item label="是否配置生产" prop="forecast_file" v-if="modelType !== 3 && modelType !==4" @change="forecastFileChange">
         <el-select v-model="form['forecast_file']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in forecastFileType" :disabled="!model.enable"
+            v-for="item in forecastFileType" :disabled="!model.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -68,18 +68,18 @@
       </el-form-item>
       <el-form-item label="数据开始时间">
         <el-input v-model="form['timeBegin']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="数据结束时间">
         <el-input v-model="form['timeEnd']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="平滑参数" v-if="modelType ===1">
         <el-select v-model="form['sigmoid_param']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in sigmoidParamType" :disabled="!model.enable"
+            v-for="item in sigmoidParamType" :disabled="!model.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -88,23 +88,23 @@
       </el-form-item>
       <el-form-item label="测试第N天" v-if="modelType !== 3 && modelType !==4">
         <el-input v-model="form['howLongAgo']" size="mini"
-                  :disabled="!model.enable || form['forecast_file'] !=='0'" type="textarea"
+                  :disabled="!model.isEnable || form['forecast_file'] !=='0'" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="目标列" prop="target" v-if="modelType !== 4">
         <el-input v-model="form['target']" size="mini"
-                  :disabled="!model.enable || form['forecast_file'] !=='0'" type="textarea"
+                  :disabled="!model.isEnable || form['forecast_file'] !=='0'" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="预测长度" prop="pre_len" v-if="modelType === 2">
         <el-input v-model="form['pre_len']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="预测粒度" prop="freq" v-if="modelType ===2">
         <el-select v-model="form['freq']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in sigmoidParamType" :disabled="!model.enable"
+            v-for="item in sigmoidParamType" :disabled="!model.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -113,18 +113,18 @@
       </el-form-item>
       <el-form-item label="模型名称" prop="model_name">
         <el-input v-model="form['model_name']" size="mini"
-                  :disabled="!model.enable || form['forecast_file'] !=='0'" type="textarea"
+                  :disabled="!model.isEnable || form['forecast_file'] !=='0'" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="模型保存表名" prop="model_table" v-if="modelType ===3">
         <el-input v-model="form['model_table']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="模型类型" prop="model_type" v-if="modelType ===4">
         <el-select v-model="form['model_type']" clearable placeholder="请选择" size="small" style="width: 100%" @change="modelTypeChange">
           <el-option
-            v-for="item in model_type" :disabled="!model.enable"
+            v-for="item in model_type" :disabled="!model.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -133,13 +133,13 @@
       </el-form-item>
       <el-form-item label="特征" prop="features" v-if="modelType ===3">
         <el-input v-model="form['features']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="预测类型" prop="station_type" v-if="modelType ===3">
         <el-select v-model="form['station_type']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in stationType" :disabled="!model.enable"
+            v-for="item in stationType" :disabled="!model.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -148,43 +148,43 @@
       </el-form-item>
       <el-form-item label="周期" prop="seasonal_periods" v-if="modelType === 2">
         <el-input v-model="form['seasonal_periods']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="日出时间" v-if="modelType === 2">
         <el-input v-model="form['sunrise']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="日落时间" v-if="modelType === 2">
         <el-input v-model="form['sunset']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="数值型列" prop="numerical_features" v-if="modelType === 4">
         <el-input v-model="form['numerical_features']" size="mini"
-                  :disabled="!model.enable" type="textarea"
+                  :disabled="!model.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
 <el-form-item label="类别型列" prop="numerical_features" v-if="modelType === 4">
         <el-input v-model="form['numerical_features']" size="mini"
-                  :disabled="(!model.enable) || categoricalFeaturesDisable" type="textarea"
+                  :disabled="(!model.isEnable) || categoricalFeaturesDisable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 <el-form-item label="模型参数" prop="model_params" v-if="modelType === 4">
         <el-input v-model="form['model_params']" size="mini"
-                  :disabled="!model.enable " type="textarea"
+                  :disabled="!model.isEnable " type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 <el-form-item label="迭代次数" prop="num_boost_round" v-if="modelType === 4">
         <el-input v-model="form['num_boost_round']" size="mini"
-                  :disabled="!model.enable " type="textarea"
+                  :disabled="!model.isEnable " type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 <el-form-item label="目标列" prop="label" v-if="modelType === 4">
         <el-input v-model="form['label']" size="mini"
-                  :disabled="!model.enable " type="textarea"
+                  :disabled="!model.isEnable " type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
@@ -213,7 +213,7 @@ export default {
           this.$refs.modelForm.clearValidate()
         });
         this.model = newVal
-        this.modelType = this.modelName.find(w => w.label === newVal.name).value
+        this.modelType = this.modelName.find(w => w.label === newVal.componentType).value
         this.rules = {}
         if(this.modelType === 0){
           this.rules = { ...this.commonRules, ...this.solarRules }
@@ -226,7 +226,7 @@ export default {
         }else if(this.modelType === 4){
           this.rules = { ...this.commonRules, ...this.machineRules }
         }
-        this.form = JSON.parse(JSON.stringify(newVal.value))
+        this.form = JSON.parse(JSON.stringify(newVal.params))
 
       },
       immediate: true,

+ 18 - 18
xvji-ui/src/views/tasks/training/modelTestForm.vue

@@ -4,50 +4,50 @@
              label-width="130px">
       <el-form-item label="mongo库" prop="mongodb_database">
         <el-input v-model="form['mongodb_database']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="读取的mongo表" prop="mongodb_read_table" v-if="modelTestType !== 3">
         <el-input v-model="form['mongodb_read_table']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="写入的mongo表" prop="mongodb_write_table">
         <el-input v-model="form['mongodb_write_table']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="时间列名" prop="col_time">
         <el-input v-model="form['col_time']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="站点编码" prop="farm_id">
         <el-input v-model="form['farm_id']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
       <el-form-item label="归一化表" prop="scaler_table" v-if="modelTestType === 0">
         <el-input v-model="form['scaler_table']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="模型名称" prop="model_name">
         <el-input v-model="form['model_name']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="存储的模型表" prop="modelTest_table" v-if="modelTestType ===0">
         <el-input v-model="form['modelTest_table']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
       <el-form-item label="测试or生产" prop="algorithm_test" v-if="modelTestType ===0">
         <el-select v-model="form['algorithm_test']" clearable placeholder="请选择" size="small" style="width: 100%" @change="columnChange">
           <el-option
-            v-for="item in algorithmTestType" :disabled="!modelTest.enable"
+            v-for="item in algorithmTestType" :disabled="!modelTest.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -56,18 +56,18 @@
       </el-form-item>
       <el-form-item label="装机容量" prop="cap" v-if="modelTestType === 0">
         <el-input v-model="form['cap']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="mongodb_modelTest_table" prop="mongodb_modelTest_table" v-if="modelTestType ===1">
         <el-input v-model="form['mongodb_modelTest_table']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="是否配置生产" prop="forecast_file" v-if="modelTestType === 1" >
         <el-select v-model="form['forecast_file']" clearable placeholder="请选择" size="small" style="width: 100%" @change="columnChange">
           <el-option
-            v-for="item in forecastFileType" :disabled="!modelTest.enable"
+            v-for="item in forecastFileType" :disabled="!modelTest.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -76,22 +76,22 @@
       </el-form-item>
       <el-form-item label="数据开始时间">
         <el-input v-model="form['timeBegin']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="数据结束时间">
         <el-input v-model="form['timeEnd']" size="mini"
-                  :disabled="!modelTest.enable" type="textarea"
+                  :disabled="!modelTest.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="测试第N天" >
         <el-input v-model="form['howLongAgo']" size="mini"
-                  :disabled="!modelTest.enable || columnDisabled" type="textarea"
+                  :disabled="!modelTest.isEnable || columnDisabled" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="目标列" prop="target" >
         <el-input v-model="form['target']" size="mini"
-                  :disabled="!modelTest.enable || columnDisabled  " type="textarea"
+                  :disabled="!modelTest.isEnable || columnDisabled  " type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
@@ -120,14 +120,14 @@ export default {
           this.$refs.modelTestForm.clearValidate();
         });
         this.modelTest = newVal
-        this.modelTestType = newVal.name.includes('LSTM')?0:1
+        this.modelTestType = newVal.componentType.includes('LSTM')?0:1
         this.rules = {}
        if (this.modelTestType === 0) {
           this.rules = {...this.commonRules, ...this.LSTMRules}
         } else if (this.modelTestType === 1) {
           this.rules = {...this.commonRules, ...this.machineRules}
         }
-        this.form = JSON.parse(JSON.stringify(newVal.value))
+        this.form = JSON.parse(JSON.stringify(newVal.params))
 
       },
       immediate: true,

+ 72 - 20
xvji-ui/src/views/tasks/training/powerRationingForm.vue

@@ -1,55 +1,108 @@
 <template>
   <div>
+<!--    <el-form ref="powerRationingForm" :rules="rules" :model="form" class="demo-form-inline"-->
+<!--             label-width="130px">-->
+<!--      <el-form-item label="mongo库" prop="mongodb_database">-->
+<!--        <el-input v-model="form['mongodb_database']" size="mini"-->
+<!--                  :disabled="!powerRationing.isEnable" type="textarea"-->
+<!--                  :autosize="{ minRows: 1 }"></el-input>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="读取的mongo表" prop="mongodb_read_table">-->
+<!--        <el-input v-model="form['mongodb_read_table']" size="mini"-->
+<!--                  :disabled="!powerRationing.isEnable" type="textarea"-->
+<!--                  :autosize="{ minRows: 1 }"></el-input>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="写入的mongo表" prop="mongodb_write_table">-->
+<!--        <el-input v-model="form['mongodb_write_table']" size="mini"-->
+<!--                  :disabled="!powerRationing.isEnable" type="textarea"-->
+<!--                  :autosize="{ minRows: 1 }"></el-input>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item :label="stationType===0?'实测辐照度列':'功率列'" prop="col_power">-->
+<!--        <el-input v-model="form['col_power']" size="mini"-->
+<!--                  :disabled="!powerRationing.isEnable" type="textarea"-->
+<!--                  :autosize="{ minRows: 1 }"></el-input>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="功率列" prop="col_radiance" v-if="stationType === 0">-->
+<!--        <el-input v-model="form['col_radiance']" size="mini"-->
+<!--                  :disabled="!powerRationing.isEnable" type="textarea"-->
+<!--                  :autosize="{ minRows: 1 }"></el-input>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="平滑参数" v-if="stationType ===0">-->
+<!--        <el-input v-model="form['sigma']" size="mini"-->
+<!--                  :disabled="!powerRationing.isEnable" type="textarea"-->
+<!--                  :autosize="{ minRows: 1 }"></el-input>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="实测风速列"  v-if="stationType === 1">-->
+<!--        <el-input v-model="form['col_ws']" size="mini"-->
+<!--                  :disabled="!powerRationing.isEnable" type="textarea"-->
+<!--                  :autosize="{ minRows: 1 }"></el-input>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="划分半径" v-if="stationType === 1">-->
+<!--        <el-input v-model="form['eps']" size="mini"-->
+<!--                  :disabled="!powerRationing.isEnable" type="textarea"-->
+<!--                  :autosize="{ minRows: 1 }"></el-input>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="半径内最小样本点" v-if="stationType === 1">-->
+<!--        <el-input v-model="form['min_samples']" size="mini"-->
+<!--                  :disabled="!powerRationing.isEnable" type="textarea"-->
+<!--                  :autosize="{ minRows: 1 }"></el-input>-->
+<!--      </el-form-item>-->
+<!--      <el-form-item label="装机容量" prop="cap" v-if="stationType === 1">-->
+<!--        <el-input v-model="form['cap']" size="mini"-->
+<!--                  :disabled="!powerRationing.isEnable" type="textarea"-->
+<!--                  :autosize="{ minRows: 1 }"></el-input>-->
+<!--      </el-form-item>-->
+<!--    </el-form>-->
     <el-form ref="powerRationingForm" :rules="rules" :model="form" class="demo-form-inline"
              label-width="130px">
-      <el-form-item label="mongo库" prop="mongodb_database">
+      <el-form-item label="mongo库" >
         <el-input v-model="form['mongodb_database']" size="mini"
-                  :disabled="!powerRationing.enable" type="textarea"
+                  :disabled="!powerRationing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
-      <el-form-item label="读取的mongo表" prop="mongodb_read_table">
+      <el-form-item label="读取的mongo表" >
         <el-input v-model="form['mongodb_read_table']" size="mini"
-                  :disabled="!powerRationing.enable" type="textarea"
+                  :disabled="!powerRationing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
-      <el-form-item label="写入的mongo表" prop="mongodb_write_table">
+      <el-form-item label="写入的mongo表" >
         <el-input v-model="form['mongodb_write_table']" size="mini"
-                  :disabled="!powerRationing.enable" type="textarea"
+                  :disabled="!powerRationing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
-      <el-form-item :label="stationType===0?'实测辐照度列':'功率列'" prop="col_power">
+      <el-form-item :label="stationType===0?'实测辐照度列':'功率列'" >
         <el-input v-model="form['col_power']" size="mini"
-                  :disabled="!powerRationing.enable" type="textarea"
+                  :disabled="!powerRationing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
-      <el-form-item label="功率列" prop="col_radiance" v-if="stationType === 0">
+      <el-form-item label="功率列" v-if="stationType === 0">
         <el-input v-model="form['col_radiance']" size="mini"
-                  :disabled="!powerRationing.enable" type="textarea"
+                  :disabled="!powerRationing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="平滑参数" v-if="stationType ===0">
         <el-input v-model="form['sigma']" size="mini"
-                  :disabled="!powerRationing.enable" type="textarea"
+                  :disabled="!powerRationing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="实测风速列"  v-if="stationType === 1">
         <el-input v-model="form['col_ws']" size="mini"
-                  :disabled="!powerRationing.enable" type="textarea"
+                  :disabled="!powerRationing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="划分半径" v-if="stationType === 1">
         <el-input v-model="form['eps']" size="mini"
-                  :disabled="!powerRationing.enable" type="textarea"
+                  :disabled="!powerRationing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="半径内最小样本点" v-if="stationType === 1">
         <el-input v-model="form['min_samples']" size="mini"
-                  :disabled="!powerRationing.enable" type="textarea"
+                  :disabled="!powerRationing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
-      <el-form-item label="装机容量" prop="cap" v-if="stationType === 1">
+      <el-form-item label="装机容量"  v-if="stationType === 1">
         <el-input v-model="form['cap']" size="mini"
-                  :disabled="!powerRationing.enable" type="textarea"
+                  :disabled="!powerRationing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
     </el-form>
@@ -71,21 +124,20 @@ export default {
         console.log(newVal)
         // this.$refs.powerRationingForm.resetFields()
         this.powerRationing = newVal
-        this.stationType = newVal.name.includes('光伏')?0:1
+        this.stationType = newVal.componentType.includes('光伏')?0:1
         this.rules = {}
         if(this.stationType === 0){
           this.rules = { ...this.commonRules, ...this.solarRules }
         }else{
           this.rules = { ...this.commonRules, ...this.windRules }
         }
-        this.form = JSON.parse(JSON.stringify(newVal.value))
+        this.form = JSON.parse(JSON.stringify(newVal.params))
         console.log(this.rules)
         this.$nextTick(() => {
           this.$refs.powerRationingForm.resetFields();
         });
       },
-      immediate: true,
-      deep: true
+      immediate: true
     }
   },
   data() {

+ 8 - 8
xvji-ui/src/views/tasks/training/processingForm.vue

@@ -4,28 +4,28 @@
              label-width="130px">
       <el-form-item label="mongo库" prop="mongodb_database">
         <el-input v-model="form['mongodb_database']" size="mini"
-                  :disabled="!processing.enable" type="textarea"
+                  :disabled="!processing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="读取的mongo表" prop="mongodb_read_table">
         <el-input v-model="form['mongodb_read_table']" size="mini"
-                  :disabled="!processing.enable" type="textarea"
+                  :disabled="!processing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="写入的mongo表" prop="mongodb_write_table">
         <el-input v-model="form['mongodb_write_table']" size="mini"
-                  :disabled="!processing.enable" type="textarea"
+                  :disabled="!processing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="时间列名称" prop="col_time">
         <el-input v-model="form['col_time']" size="mini"
-                  :disabled="!processing.enable" type="textarea"
+                  :disabled="!processing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="类型" prop="plant_type">
         <el-select v-model="form['plant_type']" clearable placeholder="请选择" size="small" style="width: 100%">
           <el-option
-            v-for="item in plantType" :disabled="!processing.enable"
+            v-for="item in plantType" :disabled="!processing.isEnable"
             :key="item.value"
             :label="item.label"
             :value="item.value">
@@ -34,12 +34,12 @@
       </el-form-item>
       <el-form-item label="数据清洗流程">
         <el-input v-model="form['mongodb_nwp_table']" size="mini"
-                  :disabled="!processing.enable || form['plant_type'] ==='wind'" type="textarea"
+                  :disabled="!processing.isEnable || form['plant_type'] ==='wind'" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="平滑参数" prop="process_param">
         <el-input v-model="form['process_param']" size="mini"
-                  :disabled="!processing.enable" type="textarea"
+                  :disabled="!processing.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
@@ -64,7 +64,7 @@ export default {
       handler(newVal, oldVal) {
         console.log(newVal)
         this.processing = newVal
-        this.form = newVal.value
+        this.form = newVal.params
       },
       immediate: true
     }

+ 9 - 9
xvji-ui/src/views/tasks/training/reportForm.vue

@@ -4,43 +4,43 @@
              label-width="130px">
       <el-form-item label="mongo库" prop="mongodb_database">
         <el-input v-model="form['mongodb_database']" size="mini"
-                  :disabled="!report.enable" type="textarea"
+                  :disabled="!report.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="读取的mongo表" prop="mongodb_read_table">
         <el-input v-model="form['mongodb_read_table']" size="mini"
-                  :disabled="!report.enable" type="textarea"
+                  :disabled="!report.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="时间列名称" prop="col_time">
         <el-input v-model="form['col_time']" size="mini"
-                  :disabled="!report.enable" type="textarea"
+                  :disabled="!report.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="目标列" prop="label">
         <el-input v-model="form['label']" size="mini"
-                  :disabled="!report.enable " type="textarea"
+                  :disabled="!report.isEnable " type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="预测列" prop="label_pre">
         <el-input v-model="form['label_pre']" size="mini"
-                  :disabled="!report.enable " type="textarea"
+                  :disabled="!report.isEnable " type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="站点编码" prop="farm_id">
         <el-input v-model="form['farm_id']" size="mini"
-                  :disabled="!report.enable" type="textarea"
+                  :disabled="!report.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
       <el-form-item label="装机容量" prop="cap">
         <el-input v-model="form['cap']" size="mini"
-                  :disabled="!report.enable" type="textarea"
+                  :disabled="!report.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
       <el-form-item label="分组计算准确率的key值">
         <el-input v-model="form['group_key']" size="mini"
-                  :disabled="!report.enable" type="textarea"
+                  :disabled="!report.isEnable" type="textarea"
                   :autosize="{ minRows: 1 }"></el-input>
       </el-form-item>
 
@@ -65,7 +65,7 @@ export default {
       handler(newVal, oldVal) {
         console.log(newVal)
         this.report = newVal
-        this.form = newVal.value
+        this.form = newVal.params
       },
       immediate: true
     }