Просмотр исходного кода

2022-10-26 update

1. 指标录入 中指标参数 调整为 后台提供
2. 场站功率图表调整数据项名称
moccus 2 лет назад
Родитель
Сommit
07a41b388b

+ 8 - 1
src/api/station.js

@@ -174,6 +174,12 @@ const getAdmList =(data)=>{
 		method:"get"
   })
 }
+const standardpoint =(data)=>{
+  return request({
+		url:`/standardpoint/list?pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
+		method:"get"
+  })
+}
 export default {
   companys,
   addCompanys,
@@ -201,5 +207,6 @@ export default {
 	addMeterpoint,
 	deleteMeterpoint,
 	getStationPersis,
-	getAdmList
+	getAdmList,
+	standardpoint,
 };

+ 102 - 96
src/views/indicators/components/TableEdit.vue

@@ -1,109 +1,115 @@
 <template>
-  <el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
-    <el-form ref="form" :model="form" :rules="rules">
-      <el-form-item label="场站" prop="stationid">
-        <el-select v-model="form.stationid" placeholder="请选择" clearable :disabled="!idAdd?true:false">
-          <el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id">
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="指标" prop="kay">
-        <el-select v-model="form.kay" placeholder="请选择" clearable :disabled="!idAdd?true:false">
-          <el-option v-for="item in keyList" :key="item.name" :label="item.name" :value="item.name">
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item label="值" prop="value">
-        <el-input class="inputs" v-model="form.value"></el-input>
-      </el-form-item>
-      <el-form-item label="录入时间" prop="createtime">
-        <el-date-picker v-model="form.createtime" type="datetime" placeholder="选择日期时间">
-        </el-date-picker>
-      </el-form-item>
-    </el-form>
-    <div slot="footer" class="dialog-footer">
-      <el-button @click="close">取 消</el-button>
-      <el-button type="primary" @click="handleSave()">确 定</el-button>
-    </div>
-  </el-dialog>
+	<el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
+		<el-form ref="form" :model="form" :rules="rules">
+			<el-form-item label="场站" prop="stationid">
+				<el-select v-model="form.stationid" placeholder="请选择" clearable :disabled="!idAdd ? true : false">
+					<el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id">
+					</el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item label="指标" prop="kay">
+				<el-select v-model="form.kay" placeholder="请选择" clearable :disabled="!idAdd ? true : false">
+					<el-option v-for="item in standardList" :key="item.uniformcode" :label="item.name" :value="item.uniformcode">
+					</el-option>
+				</el-select>
+			</el-form-item>
+			<el-form-item label="值" prop="value">
+				<el-input class="inputs" v-model="form.value"></el-input>
+			</el-form-item>
+			<el-form-item label="录入时间" prop="createtime">
+				<el-date-picker v-model="form.createtime" type="datetime" placeholder="选择日期时间">
+				</el-date-picker>
+			</el-form-item>
+		</el-form>
+		<div slot="footer" class="dialog-footer">
+			<el-button @click="close">取 消</el-button>
+			<el-button type="primary" @click="handleSave()">确 定</el-button>
+		</div>
+	</el-dialog>
 </template>
 
 <script>
 import api from '@/api/table'
 import dayjs from "dayjs";
 export default {
-  name: 'TableEdit',
-  props: {
-    stationList: {
-      type: Array,
-      default: []
-    },
-  },
-  data() {
-    return {
-      keyList: [{ name: '发电量' }, { name: '平均功率' }, { name: '最优功率' }],
-      form: {
-        kay: '',
-        createtime: '',
-        stationid: '',
-        stationname: '',
-        value: '',
-      },
-      rules: {
-        stationid: [{ required: true, trigger: 'blur', message: '请选择' }],
-        kay: [{ required: true, trigger: 'blur', message: '请选择' }],
-        value: [{ required: true, trigger: 'blur', message: '请输入' }],
-        createtime: [{ required: true, trigger: 'blur', message: '请选择' }],
-      },
-      title: '',
-      dialogFormVisible: false,
-      idAdd: true,
-    }
-  },
-  created() { },
-  methods: {
-    showEdit(row) {
-      if (!row) {
-        this.title = '添加'
-        this.idAdd = true
-      } else {
-        this.title = '编辑'
-        this.idAdd = false
-        this.form = Object.assign({}, row)
-      }
-      this.dialogFormVisible = true
-    },
-    close() {
-      this.$refs['form'].resetFields()
-      this.form = this.$options.data().form
-      this.dialogFormVisible = false
-      this.$emit('fetch-data')
-    },
-    handleSave() {
-      this.$refs['form'].validate(async (valid) => {
-        if (valid) {
-          this.form.stationname = this.stationList.find(val => val.id === this.form.stationid).name
-          this.form.createtime = dayjs(this.form.createtime).format("YYYY-MM-DD HH:mm:ss")
-          api.addIndicators(this.form).then(res => {
-            if (res.code == 200) {
-              this.$message({
-                type: 'success',
-                message: '添加成功!'
-              });
-              this.$emit('handleSuccess');
-              this.dialogFormVisible = false
-            }
-          })
-        } else {
-          return false
-        }
-      })
-    },
-  },
+	name: 'TableEdit',
+	props: {
+		stationList: {
+			type: Array,
+			default: []
+		},
+		standardList: {
+			type: Array,
+			default: []
+		}
+	},
+	data() {
+		return {
+			form: {
+				kay: '',
+				createtime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
+				stationid: '',
+				stationname: '',
+				value: '',
+			},
+			rules: {
+				stationid: [{ required: true, trigger: 'blur', message: '请选择' }],
+				kay: [{ required: true, trigger: 'blur', message: '请选择' }],
+				value: [{ required: true, trigger: 'blur', message: '请输入' }],
+				createtime: [{ required: true, trigger: 'blur', message: '请选择' }],
+			},
+			title: '',
+			dialogFormVisible: false,
+			idAdd: true,
+		}
+	},
+	created() { },
+	methods: {
+		showEdit(row) {
+			if (!row) {
+				this.title = '添加'
+				this.idAdd = true
+			} else {
+				this.title = '编辑'
+				this.idAdd = false
+				this.form = Object.assign({}, {
+					...row,
+					createtime: dayjs().format("YYYY-MM-DD HH:mm:ss")
+				})
+			}
+			this.dialogFormVisible = true
+		},
+		close() {
+			this.$refs['form'].resetFields()
+			this.form = this.$options.data().form
+			this.dialogFormVisible = false
+			this.$emit('fetch-data')
+		},
+		handleSave() {
+			this.$refs['form'].validate(async (valid) => {
+				if (valid) {
+					this.form.stationname = this.stationList.find(val => val.id === this.form.stationid).stationname
+					this.form.createtime = dayjs(this.form.createtime).format("YYYY-MM-DD HH:mm:ss")
+					api.addIndicators(this.form).then(res => {
+						if (res.code == 200) {
+							this.$message({
+								type: 'success',
+								message: '添加成功!'
+							});
+							this.$emit('handleSuccess');
+							this.dialogFormVisible = false
+						}
+					})
+				} else {
+					return false
+				}
+			})
+		},
+	},
 }
 </script>
 <style lang="less" scoped>
 .inputs {
-  width: 200px;
+	width: 200px;
 }
 </style>

+ 220 - 206
src/views/indicators/index.vue

@@ -1,57 +1,58 @@
 <template>
-  <div class="table-container">
-    <div class="title">
-      <div class="left">
-        <div class="left-item">
-          <div>场站:</div>
-          <el-select v-model="selectValue" placeholder="请选择" clearable>
-            <el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id">
-            </el-option>
-          </el-select>
-        </div>
-        <div class="left-item">
-          <div style="width: 70px;">名称:</div>
-          <el-input v-model="fuzzyQuery" placeholder="请输入" clearable />
-        </div>
-        <el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
-          查询
-        </el-button>
-      </div>
-      <div class="right">
-        <el-button icon="el-icon-plus" type="primary" @click="handleAdd">
-          添加
-        </el-button>
-        <el-button icon="el-icon-delete" type="danger" @click="handleDelete">
-          删除
-        </el-button>
-      </div>
-    </div>
+	<div class="table-container">
+		<div class="title">
+			<div class="left">
+				<div class="left-item">
+					<div>场站:</div>
+					<el-select v-model="selectValue" placeholder="请选择" clearable>
+						<el-option v-for="item in stationList" :key="item.id" :label="item.name" :value="item.id">
+						</el-option>
+					</el-select>
+				</div>
+				<div class="left-item">
+					<div style="width: 70px;">名称:</div>
+					<el-input v-model="fuzzyQuery" placeholder="请输入" clearable />
+				</div>
+				<el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">
+					查询
+				</el-button>
+			</div>
+			<div class="right">
+				<el-button icon="el-icon-plus" type="primary" @click="handleAdd">
+					添加
+				</el-button>
+				<el-button icon="el-icon-delete" type="danger" @click="handleDelete">
+					删除
+				</el-button>
+			</div>
+		</div>
 
-    <el-table ref="tableSort" v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText"
-      :height="height" @selection-change="setSelectRows">
-      <!-- show-summary :summary-method="getSummaries" -->
-      <el-table-column show-overflow-tooltip type="selection" width="65"></el-table-column>
-      <el-table-column show-overflow-tooltip label="风场编号" prop="stationid" width="200" align="center" sortable>
-      </el-table-column>
-      <el-table-column show-overflow-tooltip label="风场名称" prop="stationname" align="center" sortable></el-table-column>
-      <el-table-column show-overflow-tooltip label="指标" prop="kay" align="center" sortable>
-      </el-table-column>
-      <el-table-column show-overflow-tooltip label="值" prop="value" align="center" sortable>
-      </el-table-column>
-      <el-table-column show-overflow-tooltip label="录入时间" prop="createtime" align="center" sortable>
-      </el-table-column>
-      <el-table-column show-overflow-tooltip label="操作" width="180px">
-        <template #default="{ row }">
-          <el-button type="text" @click="handleEdit(row)">编辑</el-button>
-          <el-button type="text" @click="handleDelete(row)">删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <el-pagination :background="background" :current-page="queryForm.pageNo" :layout="layout"
-      :page-size="queryForm.pageSize" :total="total" @current-change="handleCurrentChange"
-      @size-change="handleSizeChange"></el-pagination>
-    <table-edit ref="edit" :stationList="stationList" @handleSuccess="fetchData"></table-edit>
-  </div>
+		<el-table ref="tableSort" v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText"
+			:height="height" @selection-change="setSelectRows">
+			<!-- show-summary :summary-method="getSummaries" -->
+			<el-table-column show-overflow-tooltip type="selection" width="65"></el-table-column>
+			<el-table-column show-overflow-tooltip label="风场编号" prop="stationid" width="200" align="center" sortable>
+			</el-table-column>
+			<el-table-column show-overflow-tooltip label="风场名称" prop="stationname" align="center" sortable></el-table-column>
+			<el-table-column show-overflow-tooltip label="指标" prop="kay" align="center" sortable>
+			</el-table-column>
+			<el-table-column show-overflow-tooltip label="值" prop="value" align="center" sortable>
+			</el-table-column>
+			<el-table-column show-overflow-tooltip label="录入时间" prop="createtime" align="center" sortable>
+			</el-table-column>
+			<el-table-column show-overflow-tooltip label="操作" width="180px">
+				<template #default="{ row }">
+					<el-button type="text" @click="handleEdit(row)">编辑</el-button>
+					<el-button type="text" @click="handleDelete(row)">删除</el-button>
+				</template>
+			</el-table-column>
+		</el-table>
+		<el-pagination :background="background" :current-page="queryForm.pageNo" :layout="layout"
+			:page-size="queryForm.pageSize" :total="total" @current-change="handleCurrentChange"
+			@size-change="handleSizeChange"></el-pagination>
+		<table-edit ref="edit" :stationList="stationList" :standardList="standardList" @handleSuccess="fetchData">
+		</table-edit>
+	</div>
 </template>
 
 <script>
@@ -59,170 +60,183 @@ import api from '@/api/table'
 import apis from '@/api/station'
 import TableEdit from './components/TableEdit'
 export default {
-  name: 'ComprehensiveTable',
-  components: {
-    TableEdit
-  },
-  filters: {
-    statusFilter(status) {
-      const statusMap = {
-        published: 'success',
-        draft: 'gray',
-        deleted: 'danger',
-      }
-      return statusMap[status]
-    },
-  },
-  data() {
-    return {
-      imgShow: true,
-      list: [],
-      fuzzyQuery: '',
-      cascaderSel: [],
-      selectValue: '',
-      listLoading: true,
-      layout: 'total, sizes, prev, pager, next, jumper',
-      total: 0,
-      background: true,
-      selectRows: '',
-      elementLoadingText: '正在加载...',
-      queryForm: {
-        pageNo: 1,
-        pageSize: 20,
-        title: '',
-      },
-      stationList: [],
-    }
-  },
-  computed: {
-    height() {
-      return this.$baseTableHeight() + 50
-    },
-  },
-  created() {
-    this.getStation()
-    this.fetchData()
-  },
-  beforeDestroy() { },
-  mounted() { },
-  methods: {
-    getStation() {
-      apis.windpowerstationList({
-        id: '',
-        name: '',
-        companyid: '',
-        pageNum: 1,
-        pageSize: 1000,
-      }).then(res => {
-        if (res.data) {
-          this.listLoading = false
-          this.stationList = res.data.records
-        }
-      })
-    },
-    setSelectRows(val) {
-      this.selectRows = val
-    },
-    handleAdd() {
-      this.$refs['edit'].showEdit()
-    },
-    handleEdit(row) {
-      this.$refs['edit'].showEdit(row)
-    },
-    handleDelete(row) {
-      if (row.id || this.selectRows.length > 0) {
-        this.$baseConfirm('你确定要删除吗', null, async () => {
-          let ids = ''
-          if (this.selectRows.length > 0) {
-            ids = this.selectRows.map((item) => item.id).join()
-          }
-          api.removeIndicators({
-            id: row.id || ids
-          }).then(res => {
-            if (res.data) {
-              this.$baseMessage('删除成功', 'success')
-              this.fetchData()
-            }
-          })
-        })
-      } else {
-        this.$baseMessage('未选中任何行', 'error')
-        return false
-      }
-    },
-    handleSizeChange(val) {
-      this.queryForm.pageSize = val
-      this.fetchData()
-    },
-    handleCurrentChange(val) {
-      this.queryForm.pageNo = val
-      this.fetchData()
-    },
-    handleQuery() {
-      this.queryForm.pageNo = 1
-      this.fetchData()
-    },
-    fetchData() {
-      this.listLoading = true
-      api.indicators({
-        windpowerstationid: this.selectValue,
-        name: this.fuzzyQuery,
-        pagenum: this.queryForm.pageNo,
-        pagesize: this.queryForm.pageSize,
-      }).then(res => {
-        if (res.data) {
-          this.total = res.data.total
-          this.list = res.data.records
-          setTimeout(() => {
-            this.listLoading = false
-          }, 500)
-        }
-      })
-    },
-    getSummaries(param) {
-      const { columns, data } = param;
-      const sums = [];
-      columns.forEach((column, index) => {
-        if (index === 0) {
-          sums[index] = '总计';
-          return;
-        } else if (index === 4) {
-          let totle = 0
-          data.forEach(item => {
-            totle = totle + Number(item.value)
-          })
-          sums[index] = totle;
-        } else {
-          sums[index] = '--';
-        }
-      });
-      return sums;
-    }
-  },
+	name: 'ComprehensiveTable',
+	components: {
+		TableEdit
+	},
+	filters: {
+		statusFilter(status) {
+			const statusMap = {
+				published: 'success',
+				draft: 'gray',
+				deleted: 'danger',
+			}
+			return statusMap[status]
+		},
+	},
+	data() {
+		return {
+			imgShow: true,
+			list: [],
+			fuzzyQuery: '',
+			cascaderSel: [],
+			selectValue: '',
+			listLoading: true,
+			layout: 'total, sizes, prev, pager, next, jumper',
+			total: 0,
+			background: true,
+			selectRows: '',
+			elementLoadingText: '正在加载...',
+			queryForm: {
+				pageNo: 1,
+				pageSize: 20,
+				title: '',
+			},
+			stationList: [],
+			standardList: [] // 指标列表
+		}
+	},
+	computed: {
+		height() {
+			return this.$baseTableHeight() + 50
+		},
+	},
+	created() {
+		this.getStation()
+		this.getStandard()
+		this.fetchData()
+	},
+	beforeDestroy() { },
+	mounted() { },
+	methods: {
+		getStation() {
+			apis.windpowerstationList({
+				id: '',
+				name: '',
+				companyid: '',
+				pageNum: 1,
+				pageSize: 1000,
+			}).then(res => {
+				if (res.data) {
+					this.listLoading = false
+					this.stationList = res.data.records
+				}
+			})
+		},
+		getStandard() {
+			apis.standardpoint({
+				pageNum: 1,
+				pageSize: 100000,
+			}).then(res => {
+				if (res.data) {
+					this.listLoading = false
+					this.standardList = res.data.records
+				}
+			})
+		},
+		setSelectRows(val) {
+			this.selectRows = val
+		},
+		handleAdd() {
+			this.$refs['edit'].showEdit()
+		},
+		handleEdit(row) {
+			this.$refs['edit'].showEdit(row)
+		},
+		handleDelete(row) {
+			if (row.id || this.selectRows.length > 0) {
+				this.$baseConfirm('你确定要删除吗', null, async () => {
+					let ids = ''
+					if (this.selectRows.length > 0) {
+						ids = this.selectRows.map((item) => item.id).join()
+					}
+					api.removeIndicators({
+						id: row.id || ids
+					}).then(res => {
+						if (res.data) {
+							this.$baseMessage('删除成功', 'success')
+							this.fetchData()
+						}
+					})
+				})
+			} else {
+				this.$baseMessage('未选中任何行', 'error')
+				return false
+			}
+		},
+		handleSizeChange(val) {
+			this.queryForm.pageSize = val
+			this.fetchData()
+		},
+		handleCurrentChange(val) {
+			this.queryForm.pageNo = val
+			this.fetchData()
+		},
+		handleQuery() {
+			this.queryForm.pageNo = 1
+			this.fetchData()
+		},
+		fetchData() {
+			this.listLoading = true
+			api.indicators({
+				windpowerstationid: this.selectValue,
+				name: this.fuzzyQuery,
+				pagenum: this.queryForm.pageNo,
+				pagesize: this.queryForm.pageSize,
+			}).then(res => {
+				if (res.data) {
+					this.total = res.data.total
+					this.list = res.data.records
+					setTimeout(() => {
+						this.listLoading = false
+					}, 500)
+				}
+			})
+		},
+		getSummaries(param) {
+			const { columns, data } = param;
+			const sums = [];
+			columns.forEach((column, index) => {
+				if (index === 0) {
+					sums[index] = '总计';
+					return;
+				} else if (index === 4) {
+					let totle = 0
+					data.forEach(item => {
+						totle = totle + Number(item.value)
+					})
+					sums[index] = totle;
+				} else {
+					sums[index] = '--';
+				}
+			});
+			return sums;
+		}
+	},
 }
 </script>
 <style lang="less" scoped>
 .title {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
-  justify-content: space-between;
+	display: flex;
+	flex-direction: row;
+	align-items: center;
+	justify-content: space-between;
 }
 
 .left {
-  display: flex;
-  flex-direction: row;
-  align-items: center;
+	display: flex;
+	flex-direction: row;
+	align-items: center;
 
-  .left-item {
-    display: flex;
-    flex-direction: row;
-    align-items: center;
-    margin-right: 10px;
-  }
+	.left-item {
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		margin-right: 10px;
+	}
 }
 
 .cascaders {
-  width: 300px;
+	width: 300px;
 }
 </style>

+ 5 - 5
src/views/stationConfiguration/stationpersis/index.vue

@@ -123,12 +123,12 @@ export default {
 				},
 				yAxis: [
 					{
-						name: '单位 (kw)',
+						name: '单位 (m/s)',
 						type: "value",
 						position: 'left'
 					},
 					{
-						name: '单位 (kw)',
+						name: '单位 (kw/h)',
 						type: "value",
 						position: 'right'
 					}
@@ -139,7 +139,7 @@ export default {
 					y: "top",
 					itemWidth: 10,
 					itemHeight: 10,
-					data: ["理论功率", "实际功率"],
+					data: ["风速", "总功率"],
 					textStyle: {
 						fontSize: 10, //字体大小
 						color: "#000", //字体颜色
@@ -254,7 +254,7 @@ export default {
 						this.option.xAxis.data = res.data.map(o => dayjs(o.datatime).format('YYYY-M-D HH:mm:ss'))
 						this.option.series = [
 							{
-								name: '理论功率',
+								name: '风速',
 								data: res.data.map(o => o.rpjfs),
 								type: 'line',
 								itemStyle: {
@@ -263,7 +263,7 @@ export default {
 								yAxisIndex: 0
 							},
 							{
-								name: '实际功率',
+								name: '功率',
 								data: res.data.map(o => o.sszgl),
 								type: 'line',
 								itemStyle: {