199 lines
10 KiB
Vue
199 lines
10 KiB
Vue
<!--
|
|
* @Author: Do not edit
|
|
* @Date: 2024-04-22 15:49:56
|
|
* @LastEditTime: 2024-04-25 14:31:53
|
|
* @LastEditors: DY
|
|
* @Description:
|
|
-->
|
|
<template>
|
|
<div class="weekly">
|
|
<el-form :inline="true" :model="listQuery" class="blueTip">
|
|
<el-form-item label="周" prop="reportTime">
|
|
<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>
|