Merge pull request 'pc-master' (#157) from pc-master into portal

Reviewed-on: #157
portal
xiaomeng 2024-07-16 01:27:56 +00:00
commit cabade84d3
2 changed files with 207 additions and 30 deletions

View File

@ -257,7 +257,15 @@ geteqetdata(data) {
getControlChartdata(data) { getControlChartdata(data) {
return sendPostRequest('/equip/chartdata?equipmentId=' + data, '') return sendPostRequest('/equip/chartdata?equipmentId=' + data, '')
}, },
//首页历史数据/数据分析弹窗
selFsAvgdata(data) {
return sendPostRequest('/selFs/avgdata',data)
},
//首页历史数据/数据分析弹窗下载数据
selFsAvgdatadownload(data) {
return sendPostRequest('/selFs/avgdatadownload',data)
},
// 根据用户id查询对应的设备大数据信息 // 根据用户id查询对应的设备大数据信息

View File

@ -20,8 +20,8 @@
</div> </div>
<div class="input-sel-time"> <div class="input-sel-time">
<span>时间段</span> <span>时间段</span>
<el-date-picker v-model="dateRange" type="datetimerange" range-separator="" start-placeholder="" <el-date-picker v-model="dateRange" type="datetimerange" range-separator=""
end-placeholder="结束时间"> start-placeholder="开始时间" end-placeholder="结束时间">
</el-date-picker> </el-date-picker>
</div> </div>
<div class="input-btn "> <div class="input-btn ">
@ -31,10 +31,10 @@
<div class="btn blue" @click="download"> <div class="btn blue" @click="download">
下载 下载
</div> </div>
<!-- <div class="btn blue"> <div class="btn blue" @click="openModel">
数据统计 数据统计
</div> </div>
<div class="btn blue"> <!-- <div class="btn blue">
/夜平均时间范围设置 /夜平均时间范围设置
</div> --> </div> -->
</div> </div>
@ -51,14 +51,64 @@
</el-table> </el-table>
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="currentPage" :page-sizes="[10, 20, 50, 100, 200, 500, 1000,1500]" :page-size="pageSize" :current-page="currentPage" :page-sizes="[10, 20, 50, 100, 200, 500, 1000, 1500]"
layout="->,total, sizes, prev, pager, next, jumper" :total="total"> :page-size="pageSize" layout="->,total, sizes, prev, pager, next, jumper" :total="total">
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
<el-dialog title="数据统计" class="vrcode-model" :append-to-body="true" :visible.sync="addModel" width="80%">
<el-button class="model-return-btn" type="primary" @click="addModel = false"> </el-button>
<div class="model-title">数据统计</div>
<div class="flex-view">
<div class="input-btn">
<span>快速查询</span>
<div class="btn btn-w66" @click="active1 = 0" :class="active1 == 0 ? 'blue' : 'off'">
今日
</div>
<div class="btn btn-w66" @click="active1 = 1" :class="active1 == 1 ? 'blue' : 'off'">
昨日
</div>
<div class="btn btn-w66" @click="active1 = 2" :class="active1 == 2 ? 'blue' : 'off'">
自定义
</div>
</div>
<div class="input-sel-time">
<span>时间段</span>
<el-date-picker v-model="dateRange1" type="datetimerange" range-separator=""
start-placeholder="开始时间" end-placeholder="结束时间">
</el-date-picker>
</div>
<div class="input-btn ">
<div class="btn blue" @click="search1">
查询
</div>
<div class="btn blue" @click="download1">
下载
</div>
</div>
</div>
<div class="table-view" style="padding-bottom: 20px;">
<el-table :data="tableData1" :row-class-name="tableRowClassName" max-height="520" style="width: 100%">
<el-table-column min-width='180' prop="time" label="时间"></el-table-column>
<el-table-column min-width='150' prop="envirnmentName" label="名称"></el-table-column>
<el-table-column min-width='150' prop="dif" label="差值"></el-table-column>
<el-table-column min-width='150' prop="max" label="最大值"></el-table-column>
<el-table-column min-width='150' prop="min" label="最小值"></el-table-column>
<el-table-column min-width='150' prop="avg" label="平均值"></el-table-column>
</el-table>
<el-pagination @size-change="handleSizeChange1" @current-change="handleCurrentChange1"
:current-page="currentPage1" :page-sizes="[10, 20, 50, 100, 200, 500, 1000, 1500]"
:page-size="pageSize1" layout="->,total, sizes, prev, pager, next, jumper" :total="total1">
</el-pagination>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
// 1 1
import { Loading } from 'element-ui'; import { Loading } from 'element-ui';
export default { export default {
data() { data() {
@ -70,7 +120,16 @@ export default {
pageSize: 10, pageSize: 10,
tableList: [], tableList: [],
total: 0, total: 0,
loading:null, loading: null,
addModel:false,
active1: 0,
dateRange1: [],
tableData1: [],
currentPage1: 1,
pageSize1: 10,
tableList1: [],
total1: 0,
} }
}, },
watch: { watch: {
@ -79,6 +138,11 @@ export default {
this.dataInit() this.dataInit()
} }
}, },
active1(newVal, oldVal) {
if (newVal != 2) {
this.dataInit1()
}
},
$route(newVal, oldVal) { $route(newVal, oldVal) {
const that = this; const that = this;
const store = this.$store.state const store = this.$store.state
@ -92,6 +156,12 @@ export default {
this.dataInit() this.dataInit()
}, },
methods: { methods: {
openModel() {
this.addModel = true
setTimeout(() => {
this.dataInit1()
}, 0);
},
getTime(time) { getTime(time) {
// //
var chinaTime = new Date(time); var chinaTime = new Date(time);
@ -103,13 +173,34 @@ export default {
var formattedTime = utcTime.toISOString().slice(0, 19).replace('T', ' '); var formattedTime = utcTime.toISOString().slice(0, 19).replace('T', ' ');
return formattedTime return formattedTime
}, },
search1() {
this.dataInit1()
},
dataInit1() {
this.loading = this.$loading({
lock: true,
text: '加载中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
if (this.active1 == 0) {
this.timeInit(1)
} else if (this.active1 == 1) {
this.yesterdayTime(1)
}
this.pageSize1 = 10
this.currentPage1 = 1
setTimeout(() => {
this.getData1()
}, 0);
},
dataInit() { dataInit() {
this.loading = this.$loading({ this.loading = this.$loading({
lock: true, lock: true,
text: '加载中', text: '加载中',
spinner: 'el-icon-loading', spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)' background: 'rgba(0, 0, 0, 0.7)'
}); });
if (this.active == 0) { if (this.active == 0) {
this.timeInit() this.timeInit()
} else if (this.active == 1) { } else if (this.active == 1) {
@ -121,26 +212,26 @@ export default {
this.getData() this.getData()
}, 0); }, 0);
}, },
download() { download1() {
this.loading = this.$loading({ this.loading = this.$loading({
lock: true, lock: true,
text: '加载中', text: '加载中',
spinner: 'el-icon-loading', spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)' background: 'rgba(0, 0, 0, 0.7)'
}); });
var store = this.$store.state var store = this.$store.state
var index = store.equipmentIndex; var index = store.equipmentIndex;
var data = { var data = {
equipmentId: store.equipmentList[index - 1].deviceId, equipmentId: store.equipmentList[index - 1].deviceId,
startTime: this.getTime(this.dateRange[0]), startTime: this.getTime(this.dateRange1[0]),
endTime: this.getTime(this.dateRange[1]), endTime: this.getTime(this.dateRange1[1]),
page: this.currentPage, page: this.currentPage1,
pageSize: this.pageSize, pageSize: this.pageSize1,
isEquipment: store.equipmentList[index - 1].deviceName == 30 ? 1 : 0 isEquipment: store.equipmentList[index - 1].deviceName == 30 ? 1 : 0
} }
this.api.loadHistorydata(data).then(res => { this.api.selFsAvgdatadownload(data).then(res => {
// blob // blob
this.loading.close() this.loading.close()
const blob = new Blob([res.data], { type: 'text/csv' }); const blob = new Blob([res.data], { type: 'text/csv' });
// a // a
@ -160,6 +251,64 @@ export default {
window.URL.revokeObjectURL(url); window.URL.revokeObjectURL(url);
}) })
}, },
download() {
this.loading = this.$loading({
lock: true,
text: '加载中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
var store = this.$store.state
var index = store.equipmentIndex;
var data = {
equipmentId: store.equipmentList[index - 1].deviceId,
startTime: this.getTime(this.dateRange[0]),
endTime: this.getTime(this.dateRange[1]),
page: this.currentPage,
pageSize: this.pageSize,
isEquipment: store.equipmentList[index - 1].deviceName == 30 ? 1 : 0
}
this.api.loadHistorydata(data).then(res => {
// blob
this.loading.close()
const blob = new Blob([res.data], { type: 'text/csv' });
// a
const url = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
//
link.setAttribute('download', 'filename.csv');
//
document.body.appendChild(link);
link.click();
//
document.body.removeChild(link);
window.URL.revokeObjectURL(url);
})
},
getData1() {
var store = this.$store.state
var index = store.equipmentIndex;
var data = {
equipmentId: store.equipmentList[index - 1].deviceId,
startTime: this.getTime(this.dateRange1[0]),
endTime: this.getTime(this.dateRange1[1]),
page: this.currentPage1,
pageSize: this.pageSize1,
isEquipment: store.equipmentList[index - 1].deviceName == 30 ? 1 : 0
}
this.api.selFsAvgdata(data).then(res => {
this.loading.close()
if (res.data.code == 200) {
this.tableData1 = res.data.data.data
this.total1 = res.data.data.totalCount
}
})
},
getData() { getData() {
var store = this.$store.state var store = this.$store.state
var index = store.equipmentIndex; var index = store.equipmentIndex;
@ -197,7 +346,7 @@ export default {
} }
}) })
}, },
yesterdayTime() { yesterdayTime(index) {
// //
var today = new Date(); var today = new Date();
@ -212,17 +361,37 @@ export default {
// 23:59 // 23:59
yesterday.setHours(23, 59, 59, 999); yesterday.setHours(23, 59, 59, 999);
var end = yesterday.toISOString(); var end = yesterday.toISOString();
this.dateRange = [start, end] if(index==1){
this.dateRange1 = [start, end]
}else{
this.dateRange = [start, end]
}
}, },
timeInit() { timeInit(index) {
const start = new Date() const start = new Date()
start.setHours(0, 0, 0, 0) start.setHours(0, 0, 0, 0)
const end = new Date() const end = new Date()
this.dateRange = [start, end] if(index==1){
this.dateRange1 = [start, end]
}else{
this.dateRange = [start, end]
}
}, },
search() { search() {
this.dataInit() this.dataInit()
}, },
handleSizeChange1(val) {
this.pageSize1 = val
setTimeout(() => {
this.getData1()
}, 0);
},
handleCurrentChange1(val) {
this.currentPage1 = val
setTimeout(() => {
this.getData1()
}, 0);
},
handleSizeChange(val) { handleSizeChange(val) {
this.pageSize = val this.pageSize = val
setTimeout(() => { setTimeout(() => {