zhaoyun 1 месяц назад
Родитель
Сommit
5004038a0d

+ 105 - 34
src/views/modules/load-forecasting-v2/components/add-or-update.vue

@@ -2,51 +2,88 @@
   <div class="addEdit-block">
     <el-form class="add-update-preview" ref="ruleForm" :model="ruleForm" label-width="180px">
       <el-row>
+        
         <el-col :span="24">
-          <el-form-item label="变电站名称" prop="subNm">
-            <el-input v-model="ruleForm.subNm" placeholder="请输入变电站名称" :readonly="type == 'view'"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="24">
-          <el-form-item label="归属县旗" prop="compNm">
-            <el-input v-model="ruleForm.compNm" placeholder="请输入归属县旗名称" :readonly="type == 'view'"></el-input>
-          </el-form-item>
+         <el-form-item class="input" label="地区" prop="region" >
+         	<el-select
+         	  style="width: 100%"
+         	  v-model="ruleForm.regionId"
+         	  placeholder="请选择地区"
+         	  clearable
+         	>
+         	  <el-option label="全部" value="">全部</el-option>
+			  <el-option
+         	    v-for="item in regionList"
+         	    :key="item.value"
+         	    :label="item.label"
+         	    :value="item.value"
+         	  />
+         	</el-select>
+         </el-form-item>
         </el-col>
-        <el-col :span="24">
-          <el-form-item label="预测类型" prop="forecastType">
-            <el-input type="number" v-model="ruleForm.forecastType" placeholder="请输入预测类型" :readonly="type == 'view'" />
+		<el-col :span="24">
+		  <el-form-item label="变电站" prop="subNm" class="input">
+		    <el-select
+		      style="width: 100%"
+		      v-model="ruleForm.substationId"
+		      placeholder="请选择变电站"
+		      clearable
+		    >
+		      <el-option label="全部" value="">全部</el-option>
+		      <el-option
+		        v-for="item in substationList"
+		        :key="item.value"
+		        :label="item.label"
+		        :value="item.value"
+		      />
+		    </el-select>
+		  </el-form-item>
+		</el-col>
+        <!-- <el-col :span="24">
+          <el-form-item label="预测方法" prop="predictType" class="input">
+            <el-select
+              style="width: 100%"
+              v-model="ruleForm.predictType"
+              placeholder="预测方法"
+              clearable
+            >
+              <el-option label="依据历史数据" value="0">依据历史数据</el-option>
+			  <el-option label="温度和历史数据" value="2">温度和历史数据</el-option>
+            </el-select>
           </el-form-item>
-        </el-col>
+        </el-col> -->
         <el-col :span="24">
-          <el-form-item label="预测参数" prop="forecastParams">
+          <el-form-item label="温度" prop="temperatures" class="input">
             <el-input
-              type="number"
               style="width: 100%"
-              v-model="ruleForm.forecastParams"
-              placeholder="请输入预测参数"
+              v-model="ruleForm.temperatures"
+              placeholder="请输入温度"
               :readonly="type == 'view'"
             />
           </el-form-item>
         </el-col>
         <el-col :span="24">
-          <el-form-item label="预测周期" prop="forecastCycle">
-            <el-input
-              type="number"
-              style="width: 100%"
-              v-model="ruleForm.forecastCycle"
-              placeholder="请输入预测周期"
-              :readonly="type == 'view'"
-            />
+          <el-form-item label="时间维度" prop="dimension">
+           <el-select
+             style="width: 100%"
+             v-model="ruleForm.dimension"
+             placeholder="时间维度"
+             clearable
+           >
+             <el-option label="日" value="daily">日</el-option>
+             <el-option label="月" value="monthly">月</el-option>
+			  <el-option label="年" value="yearly">年</el-option>
+           </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="24">
-          <el-form-item label="预测开始时间" prop="forecastStartTime">
-            <el-input v-model="ruleForm.forecastStartTime" :readonly="type == 'view'" />
+          <el-form-item label="开始时间" prop="startTime">
+            <el-input v-model="ruleForm.startTime" :readonly="type == 'view'" />
           </el-form-item>
         </el-col>
         <el-col :span="24">
-          <el-form-item label="预测结束时间" prop="forecastEndTime">
-            <el-input v-model="ruleForm.forecastEndTime" :readonly="type == 'view'" />
+          <el-form-item label="结束时间" prop="endTime">
+            <el-input v-model="ruleForm.endTime" :readonly="type == 'view'" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -72,7 +109,11 @@ export default {
   data() {
     return {
       type: 'view', // add, edit, view
-      ruleForm: {},
+      ruleForm: {
+		  region: '全部',
+		  substation: '全部'
+		  
+	  },
     };
   },
   props: ['parent'],
@@ -99,11 +140,41 @@ export default {
     },
     // 提交
     async onSubmit() {
-      await this.$refs['ruleForm'].validate(async valid => {
-        if (valid) {
-          console.log(111);
-        }
-      });
+      // await this.$refs['ruleForm'].validate(async valid => {
+      //   if (valid) {
+      //     console.log(111);
+      //   }
+      // });
+	  var objcross = this.$storage.getObj('crossObj');
+	  if(!this.ruleForm.id) {
+	  	delete this.ruleForm.userid
+	  }
+	  await this.$refs["ruleForm"].validate(async valid => {
+	  	if (valid) {
+	  		await this.$http({
+	  			url: `predict-conf/${!this.ruleForm.id ? "save" : "update"}`,
+	  			method: "post",
+	  			data: this.ruleForm
+	  		}).then(async ({ data }) => {
+	  			if (data && data.code === 0) {
+	  				this.$message({
+	  					message: "操作成功",
+	  					type: "success",
+	  					duration: 1500,
+	  					onClose: () => {
+	  						this.parent.showFlag = true;
+	  						this.parent.addOrUpdateFlag = false;
+	  						this.parent.rainfalldataCrossAddOrUpdateFlag = false;
+	  						this.parent.search();
+	  						this.parent.contentStyleChange();
+	  					}
+	  				});
+	  			} else {
+	  				this.$message.error(data.msg);
+	  			}
+	  		});
+	  	}
+	  });
     },
     // 返回
     back() {

+ 33 - 23
src/views/modules/load-forecasting-v2/index.vue

@@ -44,17 +44,18 @@
                 height: '40px',
               }"
               class="item-label"
-              >归属县旗</label
+              >地区</label
             >
             <el-select
               style="width: 100%"
-              v-model="searchForm.compId"
-              placeholder="归属县旗"
+              v-model="searchForm.regionId"
+              placeholder="地区"
               @keydown.enter.native="search()"
               @change="getSubList"
               clearable
             >
-              <el-option v-for="item in compList" :key="item.value" :label="item.label" :value="item.value" />
+			  <el-option label="全部" value="">全部</el-option>
+              <el-option v-for="item in regionList" :key="item.value" :label="item.label" :value="item.value" />
             </el-select>
           </div>
           <div
@@ -64,7 +65,7 @@
               display: 'flex',
             }"
           >
-            <label
+           <!-- <label
               :style="{
                 margin: '0 10px 0 0',
                 whiteSpace: 'nowrap',
@@ -80,7 +81,7 @@
             >
             <el-select style="width: 100%" v-model="searchForm.subId" placeholder="变电站" @keydown.enter.native="search()" clearable>
               <el-option v-for="item in subList" :key="item.value" :label="item.label" :value="item.value" />
-            </el-select>
+            </el-select> -->
           </div>
           <div
             :style="{
@@ -149,7 +150,7 @@
                 height: '34px',
               }"
             ></span>
-            新增
+            新增预测参数
           </el-button>
         </el-row>
       </el-form>
@@ -181,19 +182,28 @@
           v-loading="dataListLoading"
         >
           <el-table-column :resizable="true" :sortable="true" label="序号" type="index" width="50" />
-          <el-table-column :resizable="true" :sortable="true" prop="subNm" label="变电站" />
-          <el-table-column :resizable="true" :sortable="true" prop="recordDate" label="所属地区" />
-          <el-table-column :resizable="true" :sortable="true" prop="recordDate" label="预测类型" />
-          <el-table-column :resizable="true" :sortable="true" prop="recordDate" label="预测参数" />
-          <el-table-column :resizable="true" :sortable="true" prop="recordDate" label="预测周期" />
-          <el-table-column :resizable="true" :sortable="true" prop="recordDate" label="预测开始时间" />
-          <el-table-column :resizable="true" :sortable="true" prop="recordDate" label="预测结束时间" />
-          <el-table-column :resizable="true" :sortable="true" prop="voltageLevel" label="预测结果">
+          <el-table-column :resizable="true" :sortable="true" prop="region" label="所属地区" />
+		  <el-table-column :resizable="true" :sortable="true" prop="substation" label="变电站" />
+          <!-- <el-table-column :resizable="true" :sortable="true" prop="recordDate" label="预测方法" /> -->
+          <el-table-column :resizable="true" :sortable="true" prop="temperatures" label="预测参数" >
+			  <template slot-scope="scope">
+			    {{ "温度"+scope.row.temperatures +"℃"}}
+			  </template>
+		 </el-table-column>
+          <el-table-column :resizable="true" :sortable="true" prop="dimension" label="时间维度">
+			  <template slot-scope="scope">
+			    {{ scope.row.dimension=='daily'?'按日':(scope.row.dimension=='monthly'?'按月':'按年')}}
+			  </template>
+		  </el-table-column>
+          <el-table-column :resizable="true" :sortable="true" prop="startTime" label="开始时间" />
+          <el-table-column :resizable="true" :sortable="true" prop="endTime" label="结束时间" />
+          <el-table-column :resizable="true" :sortable="true" prop="result" label="预测结果">
             <template slot-scope="scope">
-              {{ scope.row.voltageLevel }}
+              {{ scope.row.result=='0'?'待预测':(scope.row.result=='1'?'成功':'失败')}}
             </template>
           </el-table-column>
-          <el-table-column :resizable="true" :sortable="true" prop="recordDate" label="执行时间" />
+          <el-table-column :resizable="true" :sortable="true" prop="execTime" label="执行时间" />
+		  <el-table-column :resizable="true" :sortable="true" prop="createTime" label="添加时间" />
           <el-table-column width="300" label="操作">
             <template slot-scope="scope">
               <el-button class="view" type="success" @click="handleForecastingDetail(scope.row.id)">
@@ -201,7 +211,7 @@
                   class="icon iconfont icon-xihuan"
                   :style="{ margin: '0 2px', fontSize: '14px', color: '#fff', display: 'none', height: '40px' }"
                 ></span>
-                结果明细
+                查看结果
               </el-button>
               <el-button class="edit" type="success" @click="predictHandler(scope.row.id)">
                 <span
@@ -275,7 +285,7 @@ export default {
       showForecastingFlag: false,
       searchForm: {
         subId: '',
-        compId: '',
+        regionId: '',
         dateRange: [],
       },
       dataList: [],
@@ -319,13 +329,13 @@ export default {
     },
     // 获取公司列表
     async getCompList() {
-      this.compList = [];
+      this.regionList = [];
       const { data } = await this.$http({
         url: `/company/lists`,
         method: 'get',
       });
       if (data && data.code === 0) {
-        this.compList = data.data.map(item => ({
+        this.regionList = data.data.map(item => ({
           label: item.compName,
           value: String(item.id),
         }));
@@ -348,7 +358,7 @@ export default {
         record_date_end: this.searchForm.dateRange[1],
       };
       this.$http({
-        url: '/electric-heating/page',
+        url: '/predict-conf/page',
         method: 'get',
         params: params,
       }).then(({ data }) => {
@@ -395,7 +405,7 @@ export default {
         type: 'warning',
       }).then(() => {
         this.$http({
-          url: `/electric-heating/${id}`,
+          url: `/predict-conf/${id}`,
           method: 'delete',
         }).then(({ data }) => {
           if (data && data.code === 0) {