 <!-- 最新版生产执行页面 -->
<template>
	<el-container>
		<el-header>
			<div class="right-panel">
                <el-date-picker v-model="queryDate" type="month" placeholder="查询月份"
                    value-format="YYYY-MM" style="width:200px">
                </el-date-picker>
                <el-button type="primary" icon="el-icon-search" @click="handleQuery"></el-button>
                <el-button type="primary" @click="downloadPDF">导出</el-button>
            </div>
		</el-header>
		<el-main id="elMain" class="nopadding">
            <div id="content">
                <!-- 混料统计 -->
                <hunliao
                    class="contentItem"
                    :firstWeekNum="firstWeekNum"
                    :endWeekNum="endWeekNum"
                    :start_date="start_date"
                    :end_date="end_date"
                    :queryDate="queryDate"
                    :queryType="queryType"
                    :xAxisData="xAxisData"
                ></hunliao>
                <!-- 合格数统计 -->
                <pass_num 
                    class="contentItem"
                    :firstWeekNum="firstWeekNum"
                    :endWeekNum="endWeekNum"
                    :start_date="start_date"
                    :end_date="end_date"
                    :queryDate="queryDate"
                    :queryType="queryType"
                    :xAxisData="xAxisData"
                ></pass_num>
                <!-- 任务进度 -->
                <task_rate
                    class="contentItem"
                    :start_date="start_date"
                    :end_date="end_date"
                    :queryDate="queryDate"
                    :queryType="queryType"
                ></task_rate>
                <!-- 工序合格数 -->
                <ppass_num
                    class="contentItem"
                    :start_date="start_date"
                    :end_date="end_date"
                    :queryDate="queryDate"
                    :queryType="queryType"
                ></ppass_num>
                <product_check
                    class="contentItem"
                    :start_date="start_date"
                    :end_date="end_date"
                    :queryDate="queryDate"
                    :queryType="queryType"
                ></product_check>
                <product_check2
                    class="contentItem"
                    :start_date="start_date"
                    :end_date="end_date"
                    :queryDate="queryDate"
                    :queryType="queryType"
                ></product_check2>
                <material_statistics
                    class="contentItem"
                    :start_date="start_date"
                    :end_date="end_date"
                    :queryDate="queryDate"
                    :queryType="queryType"
                ></material_statistics>
                <user_statistics
                    class="contentItem"
                    :start_date="start_date"
                    :end_date="end_date"
                    :queryDate="queryDate"
                    :queryType="queryType"
                ></user_statistics>
                <inm_statistics
                    class="contentItem"
                    :start_date="start_date"
                    :end_date="end_date"
                    :queryDate="queryDate"
                    :queryType="queryType"
                ></inm_statistics>
                <stock_statistics
                    class="contentItem"
                    :start_date="start_date"
                    :end_date="end_date"
                    :queryDate="queryDate"
                    :queryType="queryType"
                ></stock_statistics>
            </div>
		</el-main>
	</el-container>
</template>
<script>
import getPdf from "@/utils/htmlToPdf";
import PdfLoader from '@/utils/html2pdf';
import hunliao from "./all_sc_hl.vue";//生产-混料统计
import pass_num from "./all_sc_hg.vue";//生产-合格数统计
import task_rate from "./all_sc_rw.vue";//生产-任务进度
import ppass_num from "./all_sc_gx.vue";//生产-工序合格数
import product_check from "./all_jy_sc.vue";//检验-生产检验统计
import product_check2 from "./all_jy_cjg.vue";//检验-生产检验统计(粗加工)
import material_statistics from "./all_cg.vue";//采购统计
import user_statistics from "./all_jx.vue";//绩效统计
import inm_statistics from "./all_xs.vue";//销售统计
import stock_statistics from "./all_kc.vue";//库存统计
export default {
	name: "all",
    components: { 
        hunliao, 
        pass_num, 
        task_rate, 
        ppass_num,
        product_check,
        product_check2,
        material_statistics,
        user_statistics,
        inm_statistics,
        stock_statistics},
	data() {
		return {
            queryType:'月',
            queryDate: '',
            start_date: '',
            end_date: '',
            xAxisData:[],
            xAxisOrigin:[],
            firstWeekNum: 1,
            endWeekNum: 4,
            currentfirstWeekNum: 1,
            currentendWeekNum: 4,
            pdfDownLoader:null
		};
	},
	mounted() {
        let that = this;
        let date = new Date();
        let year = date.getFullYear();
        let month = date.getMonth() + 1;
        let days = new Date(year, month, 0).getDate();
        that.currentYear = year;
        that.currentMonth = month;
        that.firstWeekNum =  that.currentfirstWeekNum = that.getWeekOfYear(year,month,1);
        that.endWeekNum = that.currentendWeekNum = that.getWeekOfYear(year,month,days);
        month = month < 10 ? '0' + month : month;
        that.start_date = year + '-' + month + '-01';
        that.end_date = year + '-' + month + '-' + days;
        that.queryDate = year + '-' + month;
        let duration = that.endWeekNum - that.firstWeekNum + 1;
        for (let i = 1; i <= duration; i++) {
            that.xAxisOrigin.push('第' + i + '周');
        }
        that.xAxisData = that.xAxisOrigin;
         const content = document.getElementById('content') 
            this.pdfDownLoader = new PdfLoader(content, '光子科技生产管理系统月度报告')  // exportTables -->防止被截断的class名
	},
	methods: {
        getWeekOfYear(a,b,c) {
            var date1 = new Date(a, parseInt(b) - 1, c), //当前日期  
            date2 = new Date(a, 0, 1), //当年第一天  
            // d是当前日期是今年第多少天  
            d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000);
            // d + 当前年的第一天的周差距的和在除以7就是本年第几周  
            return Math.ceil((d + (date2.getDay() + 1 - 1)) / 7);
        },
        downloadPDF() {
            this.$PRINT('#content');
            this.pdfDownLoader.outPutPdfFn('光子科技生产管理系统月度报告')
        },
        handleQuery() {
			let that = this;
            if (that.queryDate !== "" && that.queryDate !== null) {
                let arr = that.queryDate.split("-");
                let year = arr[0];
                let month = arr[1];
                let days = new Date(year, month, 0).getDate();
                that.start_date = that.queryDate + "-01";
                that.end_date =that.queryDate +"-" +days;
                that.firstWeekNum = that.getWeekOfYear(year,month,1);
                that.endWeekNum = that.getWeekOfYear(year,month,days);
                let duration = that.endWeekNum - that.firstWeekNum + 1;
                let xAxisData = [];
                for (let i = 1; i <= duration; i++) {
                    xAxisData.push("第" + i + "周");
                }
                that.xAxisData = xAxisData;
            } else {
                that.start_date =that.currentYear + "-" + that.currentMonth + "-01";
                that.end_date =that.currentYear +"-" +that.currentMonth +"-" +new Date(that.currentYear,that.currentMonth,0).getDate();
                that.firstWeekNum = that.getWeekOfYear(that.currentYear,that.currentMonth,1);
                that.xAxisData = that.xAxisOrigin;
            }
			// if (that.queryType == "月") {
			// 	if (that.queryDate !== "" && that.queryDate !== null) {
			// 		let arr = that.queryDate.split("-");
			// 		let year = arr[0];
            //         let month = arr[1];
			// 		let days = new Date(year, month, 0).getDate();
			// 		that.start_date = that.queryDate + "-01";
			// 		that.end_date =that.queryDate +"-" +days;
			// 		that.firstWeekNum = that.getWeekOfYear(year,month,1);
			// 		that.endWeekNum = that.getWeekOfYear(year,month,days);
			// 		let duration = that.endWeekNum - that.firstWeekNum + 1;
			// 		let xAxisData = [];
			// 		for (let i = 1; i <= duration; i++) {
			// 			xAxisData.push("第" + i + "周");
			// 		}
			// 		that.xAxisData = xAxisData;
			// 	} else {
			// 		that.start_date =that.currentYear + "-" + that.currentMonth + "-01";
			// 		that.end_date =that.currentYear +"-" +that.currentMonth +"-" +new Date(that.currentYear,that.currentMonth,0).getDate();
			// 		that.firstWeekNum = that.getWeekOfYear(that.currentYear,that.currentMonth,1);;
			// 		that.xAxisData = that.xAxisOrigin;
			// 	}
			// } else {
			// 	if (that.queryDate !== "" && that.queryDate !== null) {
			// 		that.start_date = that.queryDate + "-01-01";
			// 		that.end_date = that.queryDate + "-12-31";
			// 	} else {
			// 		that.start_date = that.currentYear + "-01-01";
			// 		that.end_date = that.currentYear + "-12-31";
			// 	}
			// 	that.xAxisData = that.monthList;
			// }
		},
	},
};
</script>
<style scoped>
#content{
    width: 1190px;
}
.contentItem{
    margin-top: 20px;
}
</style>
