| | |
| | | <template> |
| | | <div class="header"> |
| | | <el-form :inline="true" :model="seachData" class="demo-form-inline"> |
| | | <el-form-item label=""> |
| | | <el-select |
| | | style="width: 140px" |
| | | v-model="seachData.ownerIndex" |
| | | placeholder="所属单位" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in ownerOptions" |
| | | :key="item.Id" |
| | | :label="item.Name" |
| | | :value="index" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label=""> |
| | | <el-select |
| | | style="width: 120px" |
| | | v-model="seachData.status" |
| | | placeholder="排放状态" |
| | | > |
| | | <el-option |
| | | v-for="item in statusOptions" |
| | | :key="item.label" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label=""> |
| | | <el-select |
| | | style="width: 120px" |
| | | v-model="seachData.onlineStatus" |
| | | placeholder="整体状态" |
| | | > |
| | | <el-option |
| | | v-for="item in onlineStatusOptions" |
| | | :key="item.label" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div class="header"> |
| | | <el-form :inline="true" :model="seachData" class="demo-form-inline"> |
| | | <el-form-item label=""> |
| | | <el-select |
| | | style="width: 140px" |
| | | v-model="seachData.ownerIndex" |
| | | placeholder="所属单位" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in ownerOptions" |
| | | :key="item.Id" |
| | | :label="item.Name" |
| | | :value="index" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label=""> |
| | | <el-select |
| | | style="width: 120px" |
| | | v-model="seachData.status" |
| | | placeholder="排放状态" |
| | | > |
| | | <el-option |
| | | v-for="item in statusOptions" |
| | | :key="item.label" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label=""> |
| | | <el-select |
| | | style="width: 120px" |
| | | v-model="seachData.onlineStatus" |
| | | placeholder="整体状态" |
| | | > |
| | | <el-option |
| | | v-for="item in onlineStatusOptions" |
| | | :key="item.label" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-radio v-model="seachData.type" label="1">监控设备</el-radio> |
| | | <el-radio v-model="seachData.type" label="2">监测设备</el-radio> |
| | | </el-form-item> |
| | | <el-form-item label=""> |
| | | <el-date-picker |
| | | v-model="seachData.alarmTime" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="getUserList">刷新</el-button> |
| | | <el-form-item> |
| | | <el-radio v-model="seachData.type" label="1">监控设备</el-radio> |
| | | <el-radio v-model="seachData.type" label="2">监测设备</el-radio> |
| | | </el-form-item> |
| | | <el-form-item label=""> |
| | | <el-date-picker |
| | | v-model="seachData.alarmTime" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | :picker-options="pickerOptions" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="getList">刷新</el-button> |
| | | <el-button type="primary" @click="resetAll">重置</el-button> |
| | | |
| | | <el-button type="primary" @click="exportTableData">导出</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <el-button type="primary" @click="exportTableData" |
| | | >导出</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import realTimeApi from "@/api/smoke/realTime"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | onlineStatusOptions: [ |
| | | { |
| | | label: "正常", |
| | | value: "NORMAL", |
| | | }, |
| | | { |
| | | label: "预警", |
| | | value: "ALARM", |
| | | }, |
| | | { |
| | | label: "超标", |
| | | value: "EXCESS", |
| | | }, |
| | | { |
| | | label: "离线", |
| | | value: "DOWN", |
| | | }, |
| | | { |
| | | label: "异常离线", |
| | | value: "OFF", |
| | | }, |
| | | ], |
| | | statusOptions: [ |
| | | { |
| | | label: "正常", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "离线", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "异常离线", |
| | | value: 3, |
| | | }, |
| | | ], |
| | | ownerOptions: [], |
| | | seachData: {}, |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "最近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | data() { |
| | | return { |
| | | onlineStatusOptions: [ |
| | | { |
| | | label: "正常", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "离线", |
| | | value: 2, |
| | | }, |
| | | { |
| | | label: "异常离线", |
| | | value: 3, |
| | | }, |
| | | ], |
| | | statusOptions: [ |
| | | { |
| | | label: "正常", |
| | | value: "NORMAL", |
| | | }, |
| | | { |
| | | label: "预警", |
| | | value: "ALARM", |
| | | }, |
| | | { |
| | | label: "超标", |
| | | value: "EXCESS", |
| | | }, |
| | | { |
| | | label: "离线", |
| | | value: "DOWN", |
| | | }, |
| | | { |
| | | label: "异常离线", |
| | | value: "OFF", |
| | | }, |
| | | ], |
| | | ownerOptions: [], |
| | | seachData: {}, |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "最近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | created() {}, |
| | | mounted() { |
| | | this.getOwnerOptions(); |
| | | }, |
| | | methods: { |
| | | // 获取所属单位 |
| | | getOwnerOptions() { |
| | | const param = { pageSize: 100, pageNum: 1 }; |
| | | realTimeApi |
| | | .findCustomerList(param) |
| | | .then((res) => { |
| | | this.ownerOptions = res.list; |
| | | }) |
| | | .catch((err) => this.$message.error(err)); |
| | | }; |
| | | }, |
| | | |
| | | getUserList() { |
| | | const ownerItem = this.ownerOptions[this.seachData.ownerIndex]; |
| | | this.seachData.owner = ownerItem.Pid + ownerItem.Id; |
| | | this.$emit("getList", { seachData: this.seachData }); |
| | | created() { }, |
| | | mounted() { |
| | | this.getOwnerOptions(); |
| | | }, |
| | | exportTableData(){ |
| | | methods: { |
| | | // 获取所属单位 |
| | | getOwnerOptions() { |
| | | const param = { pageSize: 100, pageNum: 1 }; |
| | | realTimeApi |
| | | .findCustomerList(param) |
| | | .then((res) => { |
| | | this.ownerOptions = res.list; |
| | | }) |
| | | .catch((err) => this.$message.error(err)); |
| | | }, |
| | | |
| | | } |
| | | }, |
| | | resetAll() { |
| | | this.seachData = {}; |
| | | this.$emit("getList", { seachData: this.seachData }); |
| | | }, |
| | | getList() { |
| | | if (this.seachData.ownerIndex !== undefined) { |
| | | const ownerItem = this.ownerOptions[this.seachData.ownerIndex]; |
| | | this.seachData.owner = ownerItem.Pid + ownerItem.Id + "/"; |
| | | } |
| | | this.$emit("getList", { seachData: this.seachData }); |
| | | }, |
| | | exportTableData() { |
| | | if (this.seachData.ownerIndex !== undefined) { |
| | | const ownerItem = this.ownerOptions[this.seachData.ownerIndex]; |
| | | this.seachData.owner = ownerItem.Pid + ownerItem.Id + "/"; |
| | | } |
| | | this.$emit("exportTable", { seachData: this.seachData }); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .header { |
| | | line-height: normal; |
| | | line-height: normal; |
| | | } |
| | | </style> |