From c068a9cbaca1c984590c14b8851e97486bfdb430 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期五, 06 十月 2023 21:05:57 +0800 Subject: [PATCH] 导出功能 --- src/views/smoke/realTime/index.vue | 149 ++++++++++++++++++++++++++++++------------------- 1 files changed, 90 insertions(+), 59 deletions(-) diff --git a/src/views/smoke/realTime/index.vue b/src/views/smoke/realTime/index.vue index 09f4a4e..00a65c3 100644 --- a/src/views/smoke/realTime/index.vue +++ b/src/views/smoke/realTime/index.vue @@ -1,6 +1,9 @@ <template> <div> - <MyHeader @getList="getRealTimeList"></MyHeader> + <MyHeader + @getList="getRealTimeList" + @exportTable="exportInTime" + ></MyHeader> <!-- 鏁版嵁灞曠ず --> <div style="width: 100%; overflow-x: scroll"> <el-table @@ -148,43 +151,7 @@ getRealTimeList(seachData) { let params; if (seachData) { - params = { - pageNum: this.currentPage, - pageSize: this.pageSize, - resource: - seachData.seachData.resource == undefined - ? null - : seachData.seachData.resource, - region: - seachData.seachData.region == undefined - ? null - : seachData.seachData.region, - type: this.statusArr[1] ?? null, - code: - seachData.seachData.code == undefined - ? null - : seachData.seachData.code, - categoryBig: - seachData.seachData.categoryBig == undefined - ? null - : seachData.seachData.categoryBig, - categorySmall: - seachData.seachData.categorySmall == undefined - ? null - : seachData.seachData.categorySmall, - site: - seachData.seachData.site == undefined - ? null - : seachData.seachData.site, - street: - seachData.seachData.street == undefined - ? null - : seachData.seachData.street, - alarmTime: - seachData.seachData.alarmTime == undefined - ? null - : seachData.seachData.alarmTime, - }; + params = this.getParam(seachData) } else { params = { pageNum: this.currentPage, @@ -196,7 +163,7 @@ .findInTimeList(params) .then(({ list, total }) => { list.forEach(e => { - e.AcquitAtStr = this.Dateformat(e.AcquitAt); + e.AcquitAtStr = this.dateFormat("YYYY-mm-dd HH:MM", new Date(e.AcquitAt)); e.FanStatusStr = this.FanStatusStr(e.FanStatus) e.FilterStatusStr = this.FanStatusStr(e.FilterStatus) e.OnlineStatusStr = this.OnlineStatusStr(e.OnlineStatus) @@ -207,6 +174,72 @@ }) .catch((err) => this.$message.error(err)); }, + exportInTime(seachData) { + let params; + if (seachData) { + params = this.getParam(seachData) + } + realTimeApi + .exportInTime(params) + .then((res) => { + debugger + let time = new Date(); + let deathdate = time.toLocaleDateString(); + const blob = new Blob([res.data], { + type: "application/vnd.ms-excel;charset=utf-8", + }); + if (window.navigator.msSaveBlob) { + window.navigator.msSaveBlob( + blob, + deathdate + "瀹炴椂鏁版嵁" + ".xls" + ); + } else { + const url = window.URL.createObjectURL(blob); + const link = document.createElement("a"); + link.style.display = "none"; + link.href = url; + link.download = deathdate + "瀹炴椂鏁版嵁" + ".xls"; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } + this.$message.success("鎿嶄綔鎴愬姛"); + }) + .catch((err) => this.$message.error(err)); + }, + getParam(seachData) { + let params; + if (seachData) { + const seachParams = seachData.seachData + params = { + owner: + seachParams.owner == undefined + ? null + : seachParams.owner, + onlineStatus: + seachParams.onlineStatus == undefined + ? null + : seachParams.onlineStatus, + status: seachParams.status == undefined + ? null + : seachParams.status, + type: + seachParams.type == undefined + ? null + : seachParams.type, + startTime: + seachParams.alarmTime == undefined + ? null + : this.dateFormat("YYYY-mm-dd HH:MM:SS", seachParams.alarmTime[0]), + endTime: + seachParams.alarmTime == undefined + ? null + : this.dateFormat("YYYY-mm-dd HH:MM:SS", seachParams.alarmTime[1]), + }; + } + return params; + }, + FanStatusStr(FanStatus) { switch (FanStatus) { case 1: @@ -264,28 +297,26 @@ this.currentPage = page; this.getRealTimeList(); }, - Dateformat(fmt) { - var fmtdate = new Date(fmt) - var o = { - "M+": fmtdate.getMonth() + 1, //鏈堜唤 - "d+": fmtdate.getDate(), //鏃� - "h+": fmtdate.getHours(), //灏忔椂 - "m+": fmtdate.getMinutes(), //鍒� - "s+": fmtdate.getSeconds(), //绉� - "q+": Math.floor((fmtdate.getMonth() + 3) / 3), //瀛e害 - "S": fmtdate.getMilliseconds() //姣 + dateFormat(fmt, date) { + let ret; + const opt = { + "Y+": date.getFullYear().toString(), // 骞� + "m+": (date.getMonth() + 1).toString(), // 鏈� + "d+": date.getDate().toString(), // 鏃� + "H+": date.getHours().toString(), // 鏃� + "M+": date.getMinutes().toString(), // 鍒� + "S+": date.getSeconds().toString() // 绉� + // 鏈夊叾浠栨牸寮忓寲瀛楃闇�姹傚彲浠ョ户缁坊鍔狅紝蹇呴』杞寲鎴愬瓧绗︿覆 }; - if (/(y+)/.test(fmt)) { - fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); - } - for (var k in o) { - if (new RegExp("(" + k + ")").test(fmt)) { - fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); - } - } + for (let k in opt) { + ret = new RegExp("(" + k + ")").exec(fmt); + if (ret) { + fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0"))) + }; + }; return fmt; - } - }, + }, + } }; </script> -- Gitblit v1.8.0