|
@@ -0,0 +1,564 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-form :inline="true" :model="queryParams" class="demo-form-inline">
|
|
|
+ <el-form-item label="任务名称">
|
|
|
+ <el-input size="small" v-model="queryParams.name" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button size="small" type="primary" plain @click="getList">查询</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button size="small" type="success" plain @click="addTask()">创建任务</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div>
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :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">
|
|
|
+ <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">
|
|
|
+ <template slot-scope="{row}">
|
|
|
+ <el-button @click="viewInfo(row)" type="text" size="small">查看</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center"
|
|
|
+ fixed="right"
|
|
|
+ label="操作" width="200"
|
|
|
+ >
|
|
|
+ <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>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <pagination
|
|
|
+ v-show="total>0"
|
|
|
+ :total="total"
|
|
|
+ :page.sync="queryParams.pageNum"
|
|
|
+ :limit.sync="queryParams.pageSize"
|
|
|
+ @pagination="getList"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <el-dialog
|
|
|
+ :title="isEdit?'修改任务':'创建任务'"
|
|
|
+ :visible.sync="dialogVisible"
|
|
|
+ width="60%"
|
|
|
+ :before-close="handleClose" :close-on-click-modal="false">
|
|
|
+ <div>
|
|
|
+ <el-form ref="ruleForm" :rules="rules" :model="formData" class="demo-form-inline" label-width="130px">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="任务名称" prop="tTaskName" label-width="100px">
|
|
|
+ <el-input v-model="formData.tTaskName"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="定时任务" prop="tCronExpression" label-width="100px">
|
|
|
+ <el-input v-model="formData.tCronExpression"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ <div class="mode-table">
|
|
|
+ <div class="flex model-table-tr">
|
|
|
+ <span class="pa-0 td td0"></span>
|
|
|
+ <span class="pa-0 td td1 font-bold">是否开启</span>
|
|
|
+ <span class="pa-0 td2 font-bold">参数</span>
|
|
|
+ </div>
|
|
|
+ <!-- 数据获取 -->
|
|
|
+ <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-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"
|
|
|
+ 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"
|
|
|
+ :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"
|
|
|
+ :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"
|
|
|
+ :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"
|
|
|
+ :autosize="{ minRows: 1 }"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <!-- 数据处理 -->
|
|
|
+ <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-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">
|
|
|
+ <data-clean-form ref="dataCleaning" :form-data="formData.dataCleaning"
|
|
|
+ @child-event="getDataCleaning"></data-clean-form>
|
|
|
+ </div>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <!-- 限电 -->
|
|
|
+ <div class="flex model-table-tr">
|
|
|
+ <span class="pa-0 td td0">
|
|
|
+ <el-select v-model="formData.powerRationing.name" @change="powerRationingNameChange" placeholder="请选择"
|
|
|
+ size="small" style="width: 100%">
|
|
|
+ <el-option
|
|
|
+ v-for="item in powerRationingName"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </span>
|
|
|
+ <span class="pa-0 td td1">
|
|
|
+ <el-radio-group v-model="formData.powerRationing.enable" 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">
|
|
|
+ <power-rationing-form ref="powerRationing" :form-data="formData.powerRationing"
|
|
|
+ @child-event="getPowerRationing"></power-rationing-form>
|
|
|
+ </div>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <!-- 模型 -->
|
|
|
+ <div class="flex model-table-tr">
|
|
|
+ <span class="pa-0 td td0">
|
|
|
+ <el-select v-model="formData.model.name" @change="isDisableModeTest" placeholder="请选择" size="small"
|
|
|
+ style="width: 100%">
|
|
|
+ <el-option
|
|
|
+ v-for="item in modelName"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </span>
|
|
|
+ <span class="pa-0 td td1">
|
|
|
+ <el-radio-group v-model="formData.model.enable" size="mini">
|
|
|
+ <el-radio-button :label="true">开启</el-radio-button>
|
|
|
+ <el-radio-button :label="false" disabled>关闭</el-radio-button>
|
|
|
+ </el-radio-group>
|
|
|
+ </span>
|
|
|
+ <span class="pa-0 td2">
|
|
|
+ <div class="form-table-item">
|
|
|
+ <model-form ref="model" :form-data="formData.model" @child-event="getModel"></model-form>
|
|
|
+ </div>
|
|
|
+ </span>
|
|
|
+ </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 td1">
|
|
|
+ <el-radio-group v-model="formData.modelTest.enable" size="mini">
|
|
|
+ <el-radio-button :label="true" :disabled="modelTestDisable">开启</el-radio-button>
|
|
|
+ <el-radio-button :label="false" disabled>关闭</el-radio-button>
|
|
|
+ </el-radio-group>
|
|
|
+ </span>
|
|
|
+ <span class="pa-0 td2">
|
|
|
+ <div class="form-table-item">
|
|
|
+ <model-test-form ref="modelTest" :form-data="formData.modelTest"
|
|
|
+ @child-event="getModelTest"></model-test-form>
|
|
|
+ </div>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <!-- 后处理 -->
|
|
|
+ <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-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">
|
|
|
+ <processing-form ref="processing" :form-data="formData.processing"
|
|
|
+ @child-event="getProcessing"></processing-form>
|
|
|
+ </div>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <!-- 分析报告 -->
|
|
|
+ <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-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">
|
|
|
+ <report-form ref="report" :form-data="formData.report"
|
|
|
+ @child-event="getReport"></report-form>
|
|
|
+ </div>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button size="small" @click="handleClose">取 消</el-button>
|
|
|
+ <el-button size="small" type="primary" @click="saveTask">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <el-dialog
|
|
|
+ title="运行信息"
|
|
|
+ :visible.sync="dialogInfoVisible"
|
|
|
+ width="30%"
|
|
|
+ >
|
|
|
+ <div>
|
|
|
+ {{ info }}
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button size="mini" @click="dialogInfoVisible = false">关 闭</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import dataCleanForm from './dataCleanForm.vue'
|
|
|
+import powerRationingForm from './powerRationingForm.vue'
|
|
|
+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";
|
|
|
+
|
|
|
+export default {
|
|
|
+ components: {modelForm, modelTestForm, dataCleanForm, powerRationingForm, processingForm, reportForm},
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ loading: false,
|
|
|
+ tableData: [],
|
|
|
+ formData: {
|
|
|
+ dataAcquisition: {name: '数据获取', enable: true, value: {}},
|
|
|
+ dataCleaning: {name: '数据处理', enable: true, value: {}},
|
|
|
+ powerRationing: {name: '限电清洗', enable: true, value: {
|
|
|
+ mongodb_database:'',
|
|
|
+ mongodb_read_table:'',
|
|
|
+ mongodb_write_table:'',
|
|
|
+ col_power:'',
|
|
|
+ col_radiance:'',
|
|
|
+ sigma:'1'
|
|
|
+ }},
|
|
|
+ model: {name: '模型', enable: true, value: {}},
|
|
|
+ modelTest: {name: '模型测试', enable: true, value: {}},
|
|
|
+ processing: {name: '后处理', enable: true, value: {}},
|
|
|
+ report: {name: '分析报告', enable: true, value: {}},
|
|
|
+ },
|
|
|
+ modelTestDisable: true,
|
|
|
+ // 总条数
|
|
|
+ total: 0,
|
|
|
+ // 查询参数
|
|
|
+ queryParams: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ name: '',
|
|
|
+ },
|
|
|
+ isEdit: false,
|
|
|
+ dialogVisible: false,
|
|
|
+ dialogInfoVisible: false,
|
|
|
+ info: '',
|
|
|
+ rules: {
|
|
|
+ tTaskName: [
|
|
|
+ {required: true, message: '请填写任务名称', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ name: [
|
|
|
+ {required: true, message: '请填写任务名称', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+
|
|
|
+ },
|
|
|
+ dataAcquisitionRules: {
|
|
|
+ query_sql: [
|
|
|
+ {required: true, message: '请填写查询语句', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ mongodb_database: [
|
|
|
+ {required: true, message: '请填写mongo库', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ mongodb_write_table: [
|
|
|
+ {required: true, message: '请填写写入的mongo表', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ mysql_database: [
|
|
|
+ {required: true, message: '请填写查询的mysql库', trigger: 'blur'}
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ powerRationingName: [
|
|
|
+ {label: '限电清洗-光伏', value: '限电清洗-光伏'},
|
|
|
+ {label: '限电清洗-风电', value: '限电清洗-风电'}
|
|
|
+ ],
|
|
|
+ modelName: [
|
|
|
+ {label: '光伏物理模型', value: '光伏物理模型'},
|
|
|
+ {label: '风电物理模型', value: '风电物理模型'},
|
|
|
+ {label: 'Holtwinters模型', value: 'Holtwinters模型'},
|
|
|
+ {label: 'LSTM', value: 'LSTM'},
|
|
|
+ {label: '机器学习模型', value: '机器学习模型'}
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ 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
|
|
|
+ },
|
|
|
+ // 新增
|
|
|
+ addTask() {
|
|
|
+
|
|
|
+ this.isEdit = false
|
|
|
+ this.dialogVisible = true
|
|
|
+ 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: {}},
|
|
|
+ }
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ this.$refs.ruleForm.clearValidate()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 编辑
|
|
|
+ handleClick() {
|
|
|
+ this.isEdit = true
|
|
|
+ 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) === '{}') {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ await this.$refs.powerRationing.saveTask()
|
|
|
+ if (JSON.stringify(this.formData.powerRationing.value) === '{}') {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ await this.$refs.model.saveTask()
|
|
|
+ if (JSON.stringify(this.formData.model.value) === '{}') {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ if (this.formData.model.name.includes('LSTM') || this.formData.model.name.includes('机器')) {
|
|
|
+ await this.$refs.modelTest.saveTask()
|
|
|
+ if (JSON.stringify(this.formData.modelTest.value) === '{}') {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ this.formData.modelTest = {}
|
|
|
+ }
|
|
|
+ await this.$refs.processing.saveTask()
|
|
|
+ if (JSON.stringify(this.formData.processing.value) === '{}') {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ await this.$refs.report.saveTask()
|
|
|
+ if (JSON.stringify(this.formData.report.value) === '{}') {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ console.log('校验不通过');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(!this.isEdit){
|
|
|
+ addTask(this.formData).then(res=>{
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // this.dialogVisible = false
|
|
|
+ },
|
|
|
+
|
|
|
+ // 数据处理数据
|
|
|
+ getDataCleaning(val) {
|
|
|
+ this.formData.dataCleaning.value = val
|
|
|
+ },
|
|
|
+ getPowerRationing(val) {
|
|
|
+ this.formData.powerRationing.value = val
|
|
|
+ },
|
|
|
+ getModel(val) {
|
|
|
+ this.formData.model.value = val
|
|
|
+ },
|
|
|
+ getModelTest(val) {
|
|
|
+ this.formData.modelTest.value = val
|
|
|
+ },
|
|
|
+ getProcessing(val) {
|
|
|
+ this.formData.processing.value = val
|
|
|
+ },
|
|
|
+ getReport(val) {
|
|
|
+ this.formData.report.value = 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'
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ isDisableModeTest() {
|
|
|
+ if (this.formData.model.name.includes('LSTM') || this.formData.model.name.includes('机器')) {
|
|
|
+ this.modelTestDisable = false
|
|
|
+ this.formData.modelTest.enable = true
|
|
|
+ this.formData.modelTest.name = this.formData.model.name + '测试'
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.modelTestDisable = true
|
|
|
+ this.formData.modelTest.enable = 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: {}},
|
|
|
+ // }
|
|
|
+ this.dialogVisible = false
|
|
|
+ },
|
|
|
+ // 预览报告文件
|
|
|
+ viewReport() {
|
|
|
+
|
|
|
+ },
|
|
|
+ // 运行信息
|
|
|
+ viewInfo(row) {
|
|
|
+ this.info = row.tRunInfo
|
|
|
+ this.dialogInfoVisible = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped lang="scss">
|
|
|
+.form-table-item {
|
|
|
+ max-height: 30vh;
|
|
|
+ overflow-y: auto;
|
|
|
+
|
|
|
+ ::v-deep .el-form-item {
|
|
|
+ margin-bottom: 15px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.td0 {
|
|
|
+ width: 200px;
|
|
|
+}
|
|
|
+
|
|
|
+.td1 {
|
|
|
+ width: 150px;
|
|
|
+}
|
|
|
+
|
|
|
+.td2 {
|
|
|
+ width: calc(100% - 350px);
|
|
|
+}
|
|
|
+
|
|
|
+.mode-table .model-table-tr:last-child {
|
|
|
+ border-bottom: 1px solid #ebeef5;
|
|
|
+}
|
|
|
+
|
|
|
+.model-table-tr {
|
|
|
+ width: 100%;
|
|
|
+ text-align: center;
|
|
|
+ border: 1px solid #ebeef5;
|
|
|
+ border-bottom: none;
|
|
|
+ line-height: 30px;
|
|
|
+
|
|
|
+ .td {
|
|
|
+ border-right: 1px solid #ebeef5;
|
|
|
+ display: grid;
|
|
|
+ place-items: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ .pa-0 {
|
|
|
+ padding: 0 .5vw;
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+</style>
|