| | |
| | | class="item" |
| | | effect="dark" |
| | | content="报表导出" |
| | | placement="bottom"> |
| | | <i class="el-icon-printer" |
| | | @click="showReportDialog" |
| | | style="font-size: 22px"></i> |
| | | placement="bottom" |
| | | > |
| | | <i |
| | | class="el-icon-printer" |
| | | @click="showReportDialog" |
| | | style="font-size: 22px" |
| | | ></i> |
| | | </el-tooltip> |
| | | </div> |
| | | <div slot="box-tools" class="box-tools"> |
| | |
| | | class="item" |
| | | effect="dark" |
| | | content="数据导出" |
| | | placement="bottom"> |
| | | <i class="iconfont el-icon-daochu" |
| | | placement="bottom" |
| | | > |
| | | <i |
| | | class="iconfont el-icon-daochu" |
| | | @click="showDataDifferDialog" |
| | | style="font-size: 24px"></i> |
| | | style="font-size: 24px" |
| | | ></i> |
| | | </el-tooltip> |
| | | </div> |
| | | <div slot="box-tools" class="box-tools"> |
| | |
| | | :close-on-click-modal="false" |
| | | top="0" |
| | | class="dialog-center" |
| | | :modal-append-to-body="false"> |
| | | :modal-append-to-body="false" |
| | | > |
| | | <report-params-setting |
| | | :batt="batt" v-if="reportParamsDialog" |
| | | :batt="batt" |
| | | v-if="reportParamsDialog" |
| | | @success="handleSuccessReport" |
| | | :record-time="test_record.value" |
| | | :visible.sync="reportParamsDialog"></report-params-setting> |
| | | :visible.sync="reportParamsDialog" |
| | | ></report-params-setting> |
| | | </el-dialog> |
| | | </flex-layout> |
| | | </template> |
| | |
| | | searchBattTestData, |
| | | searchHistory, |
| | | addStandardLine, |
| | | getTestParam, exportReport, |
| | | getTestParam, |
| | | exportReport, |
| | | } from "./js/history"; |
| | | import { searchParam as searchParam1 } from "@/views/pageSetting/js/api" |
| | | import { searchParam as searchParam1 } from "@/views/pageSetting/js/api"; |
| | | |
| | | import { |
| | | formatSeconds, |
| | |
| | | import ReportParamsSetting from "@/views/dataTest/components/reportParamsSetting.vue"; |
| | | import interceptDataByTime from "@/assets/js/tools/interceptDataByTime"; |
| | | import getExportExcelUrl from "@/assets/js/tools/getExportExcelUrl"; |
| | | import getXuHang from "@/assets/js/tools/getXuHang"; |
| | | const { |
| | | cap: CAP, |
| | | vol: VOL, |
| | |
| | | let lastRecordT = data[data.length - 1].recordTime; |
| | | let cutTime = this.cutTime * 60 * 1000; |
| | | let cutStamp = new Date(lastRecordT).getTime() - cutTime; |
| | | data = data.filter((v) => new Date(v.recordTime).getTime() < cutStamp); |
| | | data = data.filter( |
| | | (v) => new Date(v.recordTime).getTime() < cutStamp |
| | | ); |
| | | } |
| | | } |
| | | // console.log(data.length, '2'); |
| | |
| | | batt.monVolStd, |
| | | 1 |
| | | ); |
| | | let xuhang = batt.loadCurr ? real_cap / batt.loadCurr : 0; |
| | | console.log( |
| | | "实际容量:" + |
| | | batt.monCapStd + |
| | | "小时率:" + |
| | | GetHourRate(batt.monCapStd, avg_curr) + |
| | | "已测容量:" + |
| | | list.testCap + |
| | | "最大:" + |
| | | batNum.max + |
| | | "最小:" + |
| | | batNum.min + |
| | | "标称电压:" + |
| | | batt.monVolStd |
| | | ); |
| | | let xuhang = getXuHang(real_cap, batt.loadCurr); |
| | | this.top.xuhang = xuhang ? sethoubeiTime(xuhang) : "---"; |
| | | } |
| | | }, |
| | |
| | | this.reportParamsDialog = true; |
| | | }, |
| | | async handleSuccessReport(params) { |
| | | let data = {...params}; |
| | | let data = { ...params }; |
| | | let dataList = allData.dataList; |
| | | console.log(dataList); |
| | | let list = interceptDataByTime(params.dataCollectionInterval*3600, dataList); |
| | | let list = interceptDataByTime( |
| | | params.dataCollectionInterval * 3600, |
| | | dataList |
| | | ); |
| | | console.log(list); |
| | | data.testRecordCount = list[0].testRecordCount; |
| | | data.recordNums = list.map(item=>{ |
| | | return item.recordNum; |
| | | }).join(','); |
| | | data.headName = data.headName.join(','); |
| | | data.groupPeoples = data.groupPeoples.join(','); |
| | | data.recordNums = list |
| | | .map((item) => { |
| | | return item.recordNum; |
| | | }) |
| | | .join(","); |
| | | data.headName = data.headName.join(","); |
| | | data.groupPeoples = data.groupPeoples.join(","); |
| | | const loading = this.$layer.loading(); |
| | | try{ |
| | | try { |
| | | let res = await exportReport(data); |
| | | this.$layer.close(loading); |
| | | this.reportParamsDialog = false; |
| | | const nameList = res.headers["content-disposition"]; |
| | | const fileName = nameList.split('=')[1]; |
| | | const fileName = nameList.split("=")[1]; |
| | | let blob = res.data; |
| | | let url = window.URL.createObjectURL(blob); |
| | | let a = document.createElement("a"); |
| | |
| | | a.download = decodeURIComponent(fileName); |
| | | a.click(); |
| | | window.URL.revokeObjectURL(url); |
| | | }catch (e) { |
| | | } catch (e) { |
| | | this.$layer.close(loading); |
| | | this.$layer.msg("导出失败"); |
| | | console.log(e); |
| | |
| | | const h = this.$createElement; |
| | | this.$confirm( |
| | | h("div", null, [ |
| | | h("p", null, "标称容量:" + searchParams.moncapstd.toHold(CAP) + "AH"), |
| | | h("p", null, "标称电压:" + searchParams.monvolstd.toHold(VOL) + "V"), |
| | | h( |
| | | "p", |
| | | null, |
| | | "标称容量:" + searchParams.moncapstd.toHold(CAP) + "AH" |
| | | ), |
| | | h( |
| | | "p", |
| | | null, |
| | | "标称电压:" + searchParams.monvolstd.toHold(VOL) + "V" |
| | | ), |
| | | h("p", null, "电池品牌:" + searchParams.battproducer), |
| | | h("p", null, "电池型号:" + searchParams.battmodel), |
| | | h("p", null, "小时率:" + searchParams.note), |