<!-- * @Author: Do not edit * @Date: 2024-04-22 15:49:56 * @LastEditTime: 2024-04-24 15:28:44 * @LastEditors: DY * @Description: --> <template> <div class="weekly"> <el-form :inline="true" :model="listQuery" class="blueTip"> <el-form-item> <el-date-picker v-model="reportTime" type="week" size="small" @change="changeTime" :picker-options="{firstDayOfWeek: 4}" :format="'yyyy 第 WW 周' + '\u3000' + startTimeStamp + '-' + endTimeStamp" style="width: 350px" placeholder="选择周"> </el-date-picker> </el-form-item> <el-button v-if="this.$auth.hasPermi('base:report-auto-production:query')" type="primary" size="small" @click="search()"> 查询 </el-button> <el-button v-if="this.$auth.hasPermiAnd(['base:report-auto-original-glass:export', 'base:report-auto-production:export'])" type="primary" size="small" plain @click="handleExport">导出</el-button> </el-form> <glassWeek v-if="glassWeekShow" ref="glassWeek" :product="false" :params="listQuery" /> <proWeek v-if="proWeekShow" ref="proWeek" :product="false" :params="listQuery" /> </div> </template> <script> import glassWeek from '../glass/weekly.vue' import proWeek from '../productionWeekReport/index.vue' import { parseTime } from '../../core/mixins/code-filter' import FileSaver from 'file-saver' import * as XLSX from 'xlsx/xlsx.mjs' export default { components: { glassWeek, proWeek }, data() { return { listQuery: { // pageSize: 10, // pageNo: 1, // total: 0, reportType: 3, reportTime: [] }, startTimeStamp: '', endTimeStamp: '', reportTime: '', glassWeekShow: false, proWeekShow: false, proTabaleData: [] } }, created() { this.getCurrentWeekStartTimeAndEndTime() this.glassWeekShow = true this.proWeekShow = true }, methods: { // handleExport() { // this.$nextTick(() => { // this.$refs['glassWeek'].handleExport() // this.$refs['proWeek'].handleExport() // }) // }, handleExport() { const xlsxParam = { raw: true } let workbook = XLSX.utils.book_new() var ws = XLSX.utils.table_to_sheet( document.querySelector('#exportTable'), xlsxParam) XLSX.utils.book_append_sheet(workbook, ws, '许昌安彩周原片生产汇总') var prows = XLSX.utils.table_to_sheet( document.querySelector('#exportproductionTable'), xlsxParam) XLSX.utils.book_append_sheet(workbook, prows, '许昌安彩周成品生产汇总') let fileName = '生产数据汇总表-周报.xlsx'; var wbout = XLSX.write(workbook, { bookType: 'xlsx', bookSST: true, type: 'array', }); try { FileSaver.saveAs( new Blob([wbout], { type: 'application/octet-stream' }), fileName ); this.$message.success('导出成功'); } catch (e) { if (typeof console !== 'undefined') console.log(e, wbout); } return wbout; }, search() { this.$nextTick(() => { this.$refs['glassWeek'].getDataList() this.$refs['proWeek'].getDataList() }) }, changeTime(val) { console.log(val); if(val) { let timeStamp = val.getTime(); //标准时间转为时间戳,毫秒级别 this.startTimeStamp = this.timeFun(timeStamp - 24 * 60 * 60 * 1000); //开始时间 this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 6); //结束时间 console.log(this.startTimeStamp, this.endTimeStamp) this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000 } else { this.listQuery.reportTime = [] } }, getCurrentWeekStartTimeAndEndTime() { this.reportTime = new Date() var weekday = new Array(7); weekday[0] = "Sunday"; weekday[1] = "Monday"; weekday[2] = "Tuesday"; weekday[3] = "Wednesday"; weekday[4] = "Thursday"; weekday[5] = "Friday"; weekday[6] = "Saturday"; // console.log(weekday[this.reportTime.getDay()]); if (weekday[this.reportTime.getDay()] === 'Monday') { this.startTimeStamp = this.timeFun(new Date().getTime() - 4 * 24 * 60 * 60 * 1000) this.endTimeStamp = this.timeFun(new Date().getTime() + 3 * 24 * 60 * 60 * 1000) this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000 // this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间 // this.changeTime(reportTime) } else if (weekday[this.reportTime.getDay()] === 'Tuesday') { this.startTimeStamp = this.timeFun(new Date().getTime() - 5 * 24 * 60 * 60 * 1000) this.endTimeStamp = this.timeFun(new Date().getTime() + 2 * 24 * 60 * 60 * 1000) this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000 // this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间 // this.changeTime(reportTime) } else if (weekday[this.reportTime.getDay()] === 'Wednesday') { this.startTimeStamp = this.timeFun(new Date().getTime() - 6 * 24 * 60 * 60 * 1000) this.endTimeStamp = this.timeFun(new Date().getTime() + 1 * 24 * 60 * 60 * 1000) this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000 // this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间 // this.changeTime(reportTime) } else if (weekday[this.reportTime.getDay()] === 'Thursday') { this.startTimeStamp = this.timeFun(new Date().getTime() - 7 * 24 * 60 * 60 * 1000) this.endTimeStamp = this.timeFun(new Date().getTime()) this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000 // this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间 // this.changeTime(reportTime) } else if (weekday[this.reportTime.getDay()] === 'Friday') { this.startTimeStamp = this.timeFun(new Date().getTime() - 8 * 24 * 60 * 60 * 1000) this.endTimeStamp = this.timeFun(new Date().getTime() - 1 * 24 * 60 * 60 * 1000) this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000 // this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间 // this.changeTime(reportTime) } else if (weekday[this.reportTime.getDay()] === 'Saturday') { this.startTimeStamp = this.timeFun(new Date().getTime() - 9 * 24 * 60 * 60 * 1000) this.endTimeStamp = this.timeFun(new Date().getTime() - 2 * 24 * 60 * 60 * 1000) this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000 // this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间 // this.changeTime(reportTime) } else if (weekday[this.reportTime.getDay()] === 'Sunday') { this.startTimeStamp = this.timeFun(new Date().getTime() - 10 * 24 * 60 * 60 * 1000) this.endTimeStamp = this.timeFun(new Date().getTime() + 3 * 24 * 60 * 60 * 1000) this.listQuery.reportTime[0] = parseTime(new Date(this.startTimeStamp + ' 07:00:01').getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 this.listQuery.reportTime[1] = parseTime(new Date(this.endTimeStamp + ' 07:00:00').getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000 // this.endTimeStamp = this.timeFun(timeStamp + (24 * 60 * 60 * 1000) * 5); //结束时间 // this.changeTime(reportTime) } }, //时间戳转为yy-mm-dd hh:mm:ss timeFun(unixtimestamp) { var unixtimestamp = new Date(unixtimestamp); var year = 1900 + unixtimestamp.getYear(); var month = "0" + (unixtimestamp.getMonth() + 1); var date = "0" + unixtimestamp.getDate(); return year + "-" + month.substring(month.length - 2, month.length) + "-" + date.substring(date.length - 2, date.length) } } } </script> <style scoped> .weekly { padding-top: 16px; } .blueTip::before{ display: inline-block; content: ''; width: 4px; height: 18px; background: #0B58FF; border-radius: 1px; margin-right: 8PX; margin-top: 8px; margin-left: 16px; } </style>