From e27e8bcfe31730a9a35ddf09cf4386509b2608b1 Mon Sep 17 00:00:00 2001 From: quanyawei <401863037@qq.com> Date: Wed, 20 Dec 2023 14:36:41 +0800 Subject: [PATCH] fix:热力图播放 --- src/views/Listdata/index.vue | 207 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 186 insertions(+), 21 deletions(-) diff --git a/src/views/Listdata/index.vue b/src/views/Listdata/index.vue index ae35e81..acc59f9 100644 --- a/src/views/Listdata/index.vue +++ b/src/views/Listdata/index.vue @@ -12,7 +12,7 @@ style="width: 21rem" /> <!-- <div> --> - <el-select + <!-- <el-select v-model="value" placeholder="������������" style="margin-left: 20px" @@ -23,23 +23,62 @@ :label="item.label" :value="item.value" /> - </el-select> - <el-date-picker - v-model="timevalue" - type="datetimerange" - range-separator="���" - value-format="yyyy-MM-dd HH" - start-placeholder="������������" - :picker-options="pickerOptions" - end-placeholder="������������" - style="margin-left: 1rem" - > - </el-date-picker> + </el-select> --> + <div style="margin-left: 1.5rem"> + <el-cascader + v-model="value" + :options="newSensor" + :props="props" + collapse-tags + clearable + ></el-cascader> + </div> + <div> + <el-select + v-model="select1" + placeholder="���������" + style="margin-left: 1.5rem; width: 15rem" + > + <el-option + v-for="item in options1" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </div> + <component + :is="dataType" + style="padding-left: 0; margin-left: 20px; width: 160px" + @sendPickerChild="showPickerChild" + class="select11" + /> - <el-button type="primary" @click="toExcel()" style="margin-left: 20px" + <!-- <el-button type="primary" @click="toExcel()" style="margin-left: 20px" >������</el-button + > --> + <!-- <el-dropdown @command="handleCommand"> + <el-button type="primary" @click="toExcel()" style="margin-left: 20px" + >������<i class="el-icon-arrow-down el-icon--right"></i + ></el-button> + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item command="expNew">������(���)</el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> --> + <el-dropdown + split-button + type="primary" + @click="toExcel()" + @command="handleCommand" + style="margin-left: 20px" > - <el-button @click="exportMon">������</el-button> + ������ + <el-dropdown-menu slot="dropdown"> + <el-dropdown-item command="expNew">������(���)</el-dropdown-item> + </el-dropdown-menu> + </el-dropdown> + <el-button @click="exportMon" style="margin-left: 10px">������</el-button> </div> <el-table :data="dateList" @@ -56,6 +95,14 @@ :key="item" > </el-table-column> + <!-- <el-table-column + v-for="item in columnList" + :prop="item.props" + :label="item.label" + width="180px" + :key="item.label" + > + </el-table-column> --> </el-table> </div> </template> @@ -66,7 +113,23 @@ import FileSaver from 'file-saver' import XLSX2 from 'xlsx-style' import XLSX from 'xlsx' +import DatePicker from '@/components/Form/DatePicker' +import MouthPicker from '@/components/Form/MouthPicker' +import HourPicker from '@/components/Form/HourPicker' +import HourPicker1 from '@/components/Form/HourPicker1' +import CustomPicker from '@/components/Form/CustomPicker' +import CustomPicker1 from '@/components/Form/CustomPicker1' +import TimePicker1 from '@/components/Form/TimePicker1' export default { + components: { + DatePicker, + MouthPicker, + HourPicker, + CustomPicker, + CustomPicker1, + TimePicker1, + HourPicker1, + }, data() { // ������������������ return { @@ -79,6 +142,23 @@ columnList: [], //��������������� dateList: [], timevalue: [], + select1: '������', + dataType: 'HourPicker', + unit: 'day', + options1: [ + { + label: '���������', + value: '���������', + }, + { + label: '������', + value: '������', + }, + { + label: '������', + value: '������', + }, + ], pickerOptions: { disabledDate: (time) => { return time.getTime() > new Date() @@ -90,6 +170,24 @@ computed: {}, // ������data������������������ watch: { + select1(nv, ov) { + if (nv === '������') { + this.dataType = 'HourPicker' + this.unit = 'day' + } else if (nv === '������') { + this.dataType = 'DatePicker' + this.unit = 'month' + } else if (nv === '������') { + this.dataType = 'MouthPicker' + this.unit = 'month' + } else if (nv === '���������') { + this.dataType = 'HourPicker1' + this.unit = 'hours' + } else { + this.dataType = 'CustomPicker' + this.unit = 'hours' + } + }, // ��������������������������� newMac(newVal, oldval) { this.newMac1 = [] @@ -119,6 +217,56 @@ activated() {}, // ������������ methods: { + handleCommand(command) { + if (this.newMac1 == '') { + this.$message.warning('���������������') + return + } + if (this.value == '') { + this.$message.warning('���������������') + return + } + this.dateList = [] + this.columnList = [] + this.$request({ + url: 'monitorPoint/exlOut', + method: 'post', + data: { + macs: this.newMac1, + sensors: this.value.toString(), + // startTime: this.timevalue[0], + // endTime: this.timevalue[1], + type: this.unit, + times: this.newData instanceof Array ? this.newData : [this.newData], + }, + responseType: 'blob', + }).then((res) => { + console.log('������������', res) + this.getOutExcel('������������������.xlsx', res) + }) + }, + getOutExcel(fileName, res) { + let blob = new Blob([res], { type: 'application/x-xls' }) + if (window.navigator.msSaveOrOpenBlob) { + //������ IE & EDGE + navigator.msSaveBlob(blob, fileName) + } else { + var link = document.createElement('a') + // ������������������������URL������ + const url = window.URL || window.webkitURL || window.moxURL + // ������������������ + link.href = url.createObjectURL(blob) + //������������������ + link.download = fileName + //������������������ + link.click() + //������������������������ + url.revokeObjectURL(link.href) + } + }, + showPickerChild(data) { + this.newData = data + }, getData() { this.$request({ url: '/monitorPoint/queryMonitorPoints', @@ -154,6 +302,7 @@ }, // ��������������������������������� getSensor() { + this.newSensor = [] this.$request({ url: '/deviceInfo/getMacSensors', method: 'post', @@ -174,7 +323,6 @@ }) }, exportMon() { - console.log(this.timevalue) if (this.newMac1 == '') { this.$message.warning('���������������') return @@ -183,7 +331,6 @@ this.$message.warning('���������������') return } - this.dateList = [] this.columnList = [] this.$request({ @@ -192,19 +339,37 @@ data: { macs: this.newMac1, sensors: this.value.toString(), - startTime: this.timevalue[0], - endTime: this.timevalue[1], + // startTime: this.timevalue[0], + // endTime: this.timevalue[1], + type: this.unit, + times: this.newData instanceof Array ? this.newData : [this.newData], }, }).then((res) => { - console.log(res, 11) + //console.log(res, 11) this.tableData = res.data - console.log(this.tableData, 'this.tableData') for (let key in this.tableData[0]) { this.columnList.push(key) } for (let item of this.tableData) { this.dateList.push(item) } + // this.tableData = res.data + // for (let key in this.tableData[0]) { + // let prop = key + // if (String(key).indexOf('.') > -1) { + // prop = key.replace(/\./g, '') + // } + // this.columnList.push({ label: key, props: prop }) + // } + // for (let item of this.tableData) { + // for (let key in this.tableData[0]) { + // if (String(key).indexOf('.') > -1) { + // let newKey = key.replace(/\./g, '') + // item[newKey] = item[key] + // } + // } + // this.dateList.push(item) + // } }) }, toExcel() { -- Gitblit v1.8.0