You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xy-frontend/src/views/photographicDevice/components/workStatus.vue

290 lines
7.9 KiB
Vue

2 years ago
<template>
<el-dialog
class="workStatusBox"
1 year ago
title="工作状态报"
2 years ago
:visible.sync="isShow"
:close-on-click-modal="false"
1 year ago
width="1360px"
2 years ago
>
<el-form :inline="true" :model="formdata" class="demo-form-inline">
<el-form-item label="开始日期">
<el-date-picker
@change="changestartdate"
2 years ago
v-model="formdata.starttime"
type="datetime"
:picker-options="pickerOptions"
2 years ago
placeholder="开始日期"
value-format="timestamp"
>
</el-date-picker>
</el-form-item>
<el-form-item label="结束日期">
<el-date-picker
@change="changeenddate"
2 years ago
v-model="formdata.endtime"
type="datetime"
:picker-options="pickerOptions"
2 years ago
placeholder="结束日期"
value-format="timestamp"
class="ml10"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit"></el-button>
<el-button type="primary" @click="exportFault"></el-button>
2 years ago
</el-form-item>
</el-form>
<el-table
ref="multipleTable"
:data="listData"
stripe
tooltip-effect="dark"
style="width: 100%"
v-loading="loading"
>
<template slot="empty">
<el-empty :image-size="160" description="暂无数据"></el-empty>
</template>
<el-table-column min-width="45" label="序号">
<template slot-scope="scope">
<span>{{ (page - 1) * pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column
prop="cmdid"
label="装置编号"
1 year ago
min-width="160"
show-overflow-tooltip
></el-table-column>
<el-table-column prop="wsUpdateTimeStr" label="采集时间" min-width="140">
</el-table-column>
<el-table-column
prop="batteryVoltage"
label="电池电压(V)"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="opTemperature"
label="工作温度(℃)"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="batteryCapacity"
label="电池电量mA"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="floatingChargeStr"
label="浮充状态"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="totalWorkingTime"
label="工作总时间(小时)"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="workingTime"
label="本次连续工作时间(小时)"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="connectionStr"
label="网络连接状态"
show-overflow-tooltip
></el-table-column>
<el-table-column
prop="recvFlowStr"
label="当月发送流量(M)"
2 years ago
show-overflow-tooltip
></el-table-column>
<el-table-column
1 year ago
prop="sendFlowStr"
label="当月接收流量M"
2 years ago
show-overflow-tooltip
></el-table-column>
1 year ago
2 years ago
<el-table-column
1 year ago
prop="protocolVersion"
label="通信协议版本"
2 years ago
show-overflow-tooltip
></el-table-column>
</el-table>
<div class="pageNation">
<el-pagination
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
:current-page="page"
:page-size="pageSize"
layout="sizes, prev, pager, next, jumper,total"
:total="total"
background
>
</el-pagination>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="hide"> </el-button>
2 years ago
</div>
</el-dialog>
</template>
<script>
import {
getWorkingStatusHistoryApi,
1 year ago
getWorkingStatusHistoryExcel,
} from "@/utils/api/index";
2 years ago
export default {
data() {
return {
isShow: false,
formdata: {},
rowInfo: "",
listData: [],
2 years ago
loading: false,
page: 1, // 当前页数
pageSize: 10, // 每页数量
2 years ago
total: 0, //总条数
pickerOptions: {
disabledDate(date) {
return date.getTime() > Date.now(); // 禁用大于今天的日期
},
},
2 years ago
};
},
watch: {
endtime(newVal) {
if (newVal) {
const date = new Date(newVal);
date.setHours(23);
date.setMinutes(59);
date.setSeconds(59);
this.formdata.endtime = date;
}
},
},
created() {},
2 years ago
mounted() {},
methods: {
getTime() {
const thirtyDaysAgo = new Date();
thirtyDaysAgo.setHours(0); // 设置小时为23
thirtyDaysAgo.setMinutes(0); // 设置分钟为59
thirtyDaysAgo.setSeconds(0); // 设置秒数为59
1 year ago
console.log(
new Date(thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30))
);
1 year ago
const startTimeNew = new Date(
thirtyDaysAgo.setDate(thirtyDaysAgo.getDate())
).getTime();
this.$set(this.formdata, "starttime", startTimeNew);
console.log("开始时间", this.formdata.starttime);
const currentDate = new Date(); // 获取当前时间
currentDate.setHours(23); // 设置小时为23
currentDate.setMinutes(59); // 设置分钟为59
currentDate.setSeconds(59); // 设置秒数为59
1 year ago
this.$set(this.formdata, "endtime", currentDate.getTime());
console.log("结束时间", this.formdata.endtime);
this.getfaultinfo();
},
changestartdate(val) {
console.log(val);
if (val == null) {
console.log(new Date());
const startDate = new Date();
startDate.setHours(0); // 设置小时为23
startDate.setMinutes(0); // 设置分钟为59
startDate.setSeconds(0); // 设置秒数为59
this.formdata.starttime = startDate;
console.log(this.formdata.starttime);
} else {
this.formdata.starttime = val;
}
},
//结束日期
changeenddate(val) {
if (val == null) {
console.log(new Date());
const endDate = new Date();
endDate.setHours(23); // 设置小时为23
endDate.setMinutes(59); // 设置分钟为59
endDate.setSeconds(59); // 设置秒数为59
this.formdata.endtime = endDate;
console.log(this.formdata.endtime);
} else {
this.formdata.endtime = val;
console.log(val);
}
},
2 years ago
//查询
onSubmit() {
if (this.formdata.starttime > this.formdata.endtime) {
return this.$message({
duration: 1500,
showClose: true,
message: "开始日期不能大于结束日期",
type: "warning",
});
}
this.getfaultinfo();
},
//导出
exportFault() {
window.location.href =
1 year ago
"/api/getWorkingStatusHistoryExcel?termid=" + this.rowInfo.id;
2 years ago
},
//获取数据
getfaultinfo() {
2 years ago
this.loading = true;
getWorkingStatusHistoryApi({
termid: this.rowInfo.id,
starttime: this.formdata.starttime,
endtime: this.formdata.endtime,
2 years ago
pageindex: this.page,
pagesize: this.pageSize,
}).then((res) => {
this.listData = res.data.list;
this.total = res.data.total;
this.$nextTick(() => {
this.loading = false;
});
2 years ago
});
},
//点击分页
handleCurrentChange(val) {
this.page = val;
this.getfaultinfo();
2 years ago
},
//每页条数
handleSizeChange(val) {
this.pageSize = val;
this.getfaultinfo();
2 years ago
},
display(row) {
console.log(row);
this.rowInfo = row;
2 years ago
this.isShow = true;
this.getTime();
2 years ago
},
hide() {
this.isShow = false;
this.formdata = {};
2 years ago
},
},
};
</script>
<style lang="less">
.workStatusBox {
2 years ago
.pageNation {
justify-content: flex-start;
margin-top: 16px;
.el-pagination {
padding: 0px;
.el-select .el-input {
margin-left: 0px;
}
}
}
}
</style>