Merge remote-tracking branch 'origin/dev' into pet
commit
3c368c2b3b
|
@ -1,12 +0,0 @@
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<router-view/>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
|
|
||||||
</style>
|
|
|
@ -0,0 +1,383 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form label-width="100px">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="时间">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="dateTimeRange"
|
||||||
|
type="datetimerange"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label-width="10px">
|
||||||
|
<el-button v-waves type="primary" icon="el-icon-search" @click="showAllHistory">
|
||||||
|
搜索
|
||||||
|
</el-button>
|
||||||
|
<el-button v-waves type="success" icon="el-icon-refresh" @click="goKeyReset">
|
||||||
|
重置
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<div id="echarts1" style="height: 300px;width: 100%;"></div>
|
||||||
|
<div id="echarts2" style="height: 300px;width: 100%;"></div>
|
||||||
|
<div id="echarts3" style="height: 300px;width: 100%;"></div>
|
||||||
|
|
||||||
|
<el-table
|
||||||
|
v-loading="listLoading"
|
||||||
|
ref="multipleTable"
|
||||||
|
:data="varList"
|
||||||
|
:row-key="getRowKey"
|
||||||
|
:header-cell-style="{
|
||||||
|
'font-weight': 'bold',
|
||||||
|
'color': '#000'
|
||||||
|
}"
|
||||||
|
tooltip-effect="dark"
|
||||||
|
border
|
||||||
|
fit
|
||||||
|
highlight-current-row
|
||||||
|
>
|
||||||
|
<el-table-column
|
||||||
|
:reserve-selection="true"
|
||||||
|
type="selection"
|
||||||
|
width="55"
|
||||||
|
align="center"/>
|
||||||
|
<el-table-column type="index" label="序号" width="50" align="center" />
|
||||||
|
<el-table-column prop="OPERATTIME" label="上报时间" />
|
||||||
|
<el-table-column prop="WINDSPEED" label="风速" />
|
||||||
|
<el-table-column prop="WINDDIRECTION" label="风向" />
|
||||||
|
<el-table-column prop="TEMPERATURE" label="温度" />
|
||||||
|
|
||||||
|
</el-table>
|
||||||
|
<div class="page-btn-group" style="margin-bottom: 50px;">
|
||||||
|
|
||||||
|
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="showHistory" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ui-foot">
|
||||||
|
<el-button plain type="info" @click="goBack">返 回</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包
|
||||||
|
import { requestFN } from '@/utils/request'
|
||||||
|
import waves from '@/directive/waves'
|
||||||
|
import * as echarts from 'echarts';
|
||||||
|
let echarts1 = null;
|
||||||
|
let echarts2 = null;
|
||||||
|
let echarts3 = null;
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: { Pagination },
|
||||||
|
directives: { waves },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
msg: 'add',
|
||||||
|
config: config,
|
||||||
|
listLoading: false,
|
||||||
|
listQuery: {
|
||||||
|
page: 1,
|
||||||
|
limit: 10
|
||||||
|
},
|
||||||
|
total: 0,
|
||||||
|
KEYWORDS: '',
|
||||||
|
dateTimeRange: [],
|
||||||
|
dates: [],
|
||||||
|
varList: [],
|
||||||
|
temperature:[],
|
||||||
|
winddirection:[],
|
||||||
|
windspeed:[],
|
||||||
|
form: {
|
||||||
|
METEOROLOGICAL_ID: '',
|
||||||
|
EQUIPMENTNAME: '', //
|
||||||
|
EQUIPMENTTYPE: '',
|
||||||
|
PLATFORMMETEOROLOGICAL_ID: '',
|
||||||
|
LATITUDE: '',
|
||||||
|
LONGITUDE: '',
|
||||||
|
TYPE: 1
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.showHistory()
|
||||||
|
// this.initCharts()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
getRowKey(row) {
|
||||||
|
return row.METEOROLOGICALINFO_ID
|
||||||
|
},
|
||||||
|
initCharts1(temperature, winddirection, windspeed){
|
||||||
|
|
||||||
|
// let base = +new Date(1988, 9, 3);
|
||||||
|
// let oneDay = 24 * 3600 * 1000;
|
||||||
|
// let data = [[base, Math.random() * 300]];
|
||||||
|
// for (let i = 1; i < 20000; i++) {
|
||||||
|
// let now = new Date((base += oneDay));
|
||||||
|
// data.push([+now, Math.round((Math.random() - 0.5) * 20 + data[i - 1][1])]);
|
||||||
|
// }
|
||||||
|
console.log(temperature)
|
||||||
|
|
||||||
|
echarts1 = echarts.init(document.querySelector('#echarts1'))
|
||||||
|
const option = {
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
position: function (pt) {
|
||||||
|
return [pt[0], '10%'];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
left: 'center',
|
||||||
|
text: '气象设备数据图 - 温度'
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
boundaryGap: false,
|
||||||
|
minInterval: 1,
|
||||||
|
maxInterval: 3600 * 24 * 1000
|
||||||
|
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value',
|
||||||
|
boundaryGap: [0, '80%']
|
||||||
|
},
|
||||||
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: 'inside',
|
||||||
|
start: 0,
|
||||||
|
end: 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: 0,
|
||||||
|
end: 20
|
||||||
|
}
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: '温度',
|
||||||
|
type: 'line',
|
||||||
|
smooth: true,
|
||||||
|
symbol: 'none',
|
||||||
|
areaStyle: {color: "#42b983"},
|
||||||
|
data: temperature
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
echarts1.setOption(option)
|
||||||
|
},
|
||||||
|
initCharts2(temperature, winddirection, windspeed){
|
||||||
|
|
||||||
|
console.log(winddirection)
|
||||||
|
|
||||||
|
echarts2 = echarts.init(document.querySelector('#echarts2'))
|
||||||
|
const option = {
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
position: function (pt) {
|
||||||
|
return [pt[0], '10%'];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
left: 'center',
|
||||||
|
text: '气象设备数据图 - 风向'
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
boundaryGap: false,
|
||||||
|
minInterval: 1,
|
||||||
|
maxInterval: 3600 * 24 * 1000
|
||||||
|
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value',
|
||||||
|
boundaryGap: [0, '80%']
|
||||||
|
},
|
||||||
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: 'inside',
|
||||||
|
start: 0,
|
||||||
|
end: 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: 0,
|
||||||
|
end: 20
|
||||||
|
}
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
|
||||||
|
{
|
||||||
|
name: '风向',
|
||||||
|
type: 'line',
|
||||||
|
smooth: true,
|
||||||
|
symbol: 'none',
|
||||||
|
areaStyle: {color: "#6a87dc"},
|
||||||
|
data: winddirection
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
echarts2.setOption(option)
|
||||||
|
},
|
||||||
|
initCharts3(temperature, winddirection, windspeed){
|
||||||
|
|
||||||
|
console.log(windspeed)
|
||||||
|
|
||||||
|
echarts3 = echarts.init(document.querySelector('#echarts3'))
|
||||||
|
const option = {
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis',
|
||||||
|
position: function (pt) {
|
||||||
|
return [pt[0], '10%'];
|
||||||
|
}
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
left: 'center',
|
||||||
|
text: '气象设备数据图 - 风速'
|
||||||
|
},
|
||||||
|
xAxis: {
|
||||||
|
type: 'category',
|
||||||
|
boundaryGap: false,
|
||||||
|
minInterval: 1,
|
||||||
|
maxInterval: 3600 * 24 * 1000
|
||||||
|
},
|
||||||
|
yAxis: {
|
||||||
|
type: 'value',
|
||||||
|
boundaryGap: [0, '80%']
|
||||||
|
},
|
||||||
|
dataZoom: [
|
||||||
|
{
|
||||||
|
type: 'inside',
|
||||||
|
start: 0,
|
||||||
|
end: 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
start: 0,
|
||||||
|
end: 20
|
||||||
|
}
|
||||||
|
],
|
||||||
|
series: [
|
||||||
|
|
||||||
|
{
|
||||||
|
name: '风速',
|
||||||
|
type: 'line',
|
||||||
|
smooth: true,
|
||||||
|
symbol: 'none',
|
||||||
|
areaStyle: {color: "#f033a0"},
|
||||||
|
data: windspeed
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
echarts3.setOption(option)
|
||||||
|
},
|
||||||
|
|
||||||
|
// 显示历史记录
|
||||||
|
showHistory(){
|
||||||
|
this.listLoading = true
|
||||||
|
requestFN(
|
||||||
|
'/meteorologicalinfo/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page,
|
||||||
|
{
|
||||||
|
CODE: this.$parent.CODE
|
||||||
|
}
|
||||||
|
).then((data) => {
|
||||||
|
this.listLoading = false
|
||||||
|
this.varList = data.varList
|
||||||
|
this.temperature = []
|
||||||
|
this.winddirection = []
|
||||||
|
this.windspeed = []
|
||||||
|
for (let i = 0 ; i < this.varList.length ; i ++){
|
||||||
|
this.temperature.push([this.varList[i].OPERATTIME, this.varList[i].TEMPERATURE])
|
||||||
|
this.winddirection.push([this.varList[i].OPERATTIME, this.varList[i].WINDDIRECTION])
|
||||||
|
this.windspeed.push([this.varList[i].OPERATTIME, this.varList[i].WINDSPEED])
|
||||||
|
}
|
||||||
|
this.initCharts1(this.temperature, this.winddirection, this.windspeed)
|
||||||
|
this.initCharts2(this.temperature, this.winddirection, this.windspeed)
|
||||||
|
this.initCharts3(this.temperature, this.winddirection, this.windspeed)
|
||||||
|
this.total = data.page.totalResult
|
||||||
|
}).catch((e) => {
|
||||||
|
this.listLoading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showAllHistory(){
|
||||||
|
if (!this.dateTimeRange){
|
||||||
|
this.showHistory()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.listLoading = true
|
||||||
|
requestFN(
|
||||||
|
'/meteorologicalinfo/listAll',
|
||||||
|
{
|
||||||
|
CODE: this.$parent.CODE,
|
||||||
|
START: this.dateTimeRange[0],
|
||||||
|
END: this.dateTimeRange[1]
|
||||||
|
}
|
||||||
|
).then(async (data) => {
|
||||||
|
this.listLoading = false
|
||||||
|
// data.varList
|
||||||
|
this.temperature = []
|
||||||
|
this.winddirection = []
|
||||||
|
this.windspeed = []
|
||||||
|
for (let i = 0 ; i < data.varList.length ; i ++){
|
||||||
|
|
||||||
|
this.temperature.push([data.varList[i].AGGREGATE_TIME, data.varList[i].AVG_TEMPERATURE])
|
||||||
|
this.winddirection.push([data.varList[i].AGGREGATE_TIME, data.varList[i].AVG_WINDDIRECTION])
|
||||||
|
this.windspeed.push([data.varList[i].AGGREGATE_TIME, data.varList[i].AVG_WINDSPEED])
|
||||||
|
|
||||||
|
}
|
||||||
|
this.initCharts1(this.temperature, this.winddirection, this.windspeed)
|
||||||
|
this.initCharts2(this.temperature, this.winddirection, this.windspeed)
|
||||||
|
this.initCharts3(this.temperature, this.winddirection, this.windspeed)
|
||||||
|
|
||||||
|
// this.total = data.page.totalResult
|
||||||
|
}).catch((e) => {
|
||||||
|
this.listLoading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
dateToTimestamp(dateString) {
|
||||||
|
var date = new Date(dateString);
|
||||||
|
// 返回时间戳,单位为秒
|
||||||
|
return Math.round(date.getTime() / 1000);
|
||||||
|
},
|
||||||
|
|
||||||
|
goKeyReset() {
|
||||||
|
this.dateTimeRange = []
|
||||||
|
this.showHistory()
|
||||||
|
},
|
||||||
|
resetForm() {
|
||||||
|
this.form = {
|
||||||
|
METEOROLOGICAL_ID: '',
|
||||||
|
TYPE: '1',
|
||||||
|
EQUIPMENTNAME: '', //
|
||||||
|
EQUIPMENTTYPE: '',
|
||||||
|
PLATFORMMETEOROLOGICAL_ID: '',
|
||||||
|
LATITUDE: '',
|
||||||
|
LONGITUDE: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
goBack() {
|
||||||
|
this.$parent.activeName = 'meteorologicalList'
|
||||||
|
this.$parent.CODE = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
.hide .el-upload--picture-card {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
#map{
|
||||||
|
width: 1000px;
|
||||||
|
height: 500px;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -39,11 +39,11 @@
|
||||||
<span v-else>未定位</span>
|
<span v-else>未定位</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="操作" align="left" width="300">
|
<el-table-column label="操作" align="left" width="400">
|
||||||
<template slot-scope="{row}">
|
<template slot-scope="{row}">
|
||||||
<!-- <el-button type="success" icon="el-icon-caret-right" size="mini" @click="showVideo(row)">播放</el-button>-->
|
<!-- <el-button type="success" icon="el-icon-caret-right" size="mini" @click="showVideo(row)">播放</el-button>-->
|
||||||
<el-button type="info" icon="el-icon-location-information" size="mini" @click="handleMap(row)">定位</el-button>
|
<el-button type="info" icon="el-icon-location-information" size="mini" @click="handleMap(row)">定位</el-button>
|
||||||
<!-- <el-button v-show="!row.PLATFORMMETEOROLOGICAL_ID" type="warning" icon="el-icon-caret-right" size="mini" @click="showVideoBack(row.EQUIPMENTTYPE)">回放</el-button>-->
|
<el-button type="success" icon="el-icon-caret-right" size="mini" @click="showHistory(row.CODE)">历史记录</el-button>
|
||||||
<!-- <el-button v-show="row.PLATFORMMETEOROLOGICAL_ID" type="warning" size="mini" @click="getRTSP(row)">获取rtsp地址</el-button>-->
|
<!-- <el-button v-show="row.PLATFORMMETEOROLOGICAL_ID" type="warning" size="mini" @click="getRTSP(row)">获取rtsp地址</el-button>-->
|
||||||
<el-button v-show="edit" type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.METEOROLOGICAL_ID)">编辑</el-button>
|
<el-button v-show="edit" type="primary" icon="el-icon-edit" size="mini" @click="handleEdit(row.METEOROLOGICAL_ID)">编辑</el-button>
|
||||||
<el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="handleDelete(row.METEOROLOGICAL_ID)">删除</el-button>
|
<el-button v-show="del" type="danger" icon="el-icon-delete" plain @click="handleDelete(row.METEOROLOGICAL_ID)">删除</el-button>
|
||||||
|
@ -367,7 +367,11 @@ export default {
|
||||||
this.EQUIPMENTTYPE = path.replace('play.html', 'playback.html')
|
this.EQUIPMENTTYPE = path.replace('play.html', 'playback.html')
|
||||||
this.dialogVideoBack = true
|
this.dialogVideoBack = true
|
||||||
},
|
},
|
||||||
|
// 显示历史记录
|
||||||
|
showHistory(id){
|
||||||
|
this.$parent.CODE = id
|
||||||
|
this.$parent.activeName = 'meteorologicalHistory'
|
||||||
|
},
|
||||||
showAll() {
|
showAll() {
|
||||||
const _selectData = this.$refs.multipleTable.selection
|
const _selectData = this.$refs.multipleTable.selection
|
||||||
if (_selectData == null || _selectData.length == 0) {
|
if (_selectData == null || _selectData.length == 0) {
|
||||||
|
|
|
@ -7,16 +7,19 @@
|
||||||
<script>
|
<script>
|
||||||
import List from './components/list'
|
import List from './components/list'
|
||||||
import meteorologicalList from './components/meteorological-list'
|
import meteorologicalList from './components/meteorological-list'
|
||||||
|
import meteorologicalHistory from './components/meteorological-history'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
List: List,
|
List: List,
|
||||||
meteorologicalList: meteorologicalList
|
meteorologicalList: meteorologicalList,
|
||||||
|
meteorologicalHistory: meteorologicalHistory,
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
activeName: 'List',
|
activeName: 'List',
|
||||||
CORPINFO_ID: ''
|
CORPINFO_ID: '',
|
||||||
|
CODE: ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,12 +49,11 @@
|
||||||
@cell-mouse-enter="enterSelectionRows"
|
@cell-mouse-enter="enterSelectionRows"
|
||||||
@cell-mouse-leave="leaveSelectionRows">
|
@cell-mouse-leave="leaveSelectionRows">
|
||||||
<el-table-column
|
<el-table-column
|
||||||
v-if="false"
|
|
||||||
:reserve-selection="true"
|
:reserve-selection="true"
|
||||||
type="selection"
|
type="selection"
|
||||||
width="55"
|
width="55"
|
||||||
align="center"/>
|
align="center"/>
|
||||||
<el-table-column type="expand">
|
<el-table-column v-if="false" type="expand">
|
||||||
<template slot-scope="props">
|
<template slot-scope="props">
|
||||||
<el-form label-position="left" inline>
|
<el-form label-position="left" inline>
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
|
|
Loading…
Reference in New Issue