<!-- * @Author: zhp * @Date: 2023-12-12 13:45:25 * @LastEditTime: 2024-01-24 15:55:48 * @LastEditors: zhp * @Description: --> <template> <div class="app-container"> <el-form :inline="true" :model="dataForm" class="demo-form-inline"> <el-form-item> <el-form-item label="日" prop="reportTime"> <el-date-picker v-model="reportTime" @change="changeTime" type="date" placeholder="选择日期"> </el-date-picker> </el-form-item> </el-form-item> <el-button type="primary" @click="getDataList()">查询</el-button> <el-button v-if="this.$auth.hasPermi('report:glass-month:export')" type="primary" size="small" plain @click="handleExport">导出</el-button> </el-form> <el-row style="float: right; margin-bottom: 5px"> <el-button size="small" @click="editDataList()">编辑</el-button> <el-button size="small" v-if="isSave" @click="saveDataList()">保存</el-button> </el-row> <el-table :data="list" style="width: 100%" :header-cell-style="{ background: '#F2F4F9', color: '#606266' }"> <el-table-column :label="'许昌安彩月成品生产汇总' + timeTips" align="center"> <el-table-column prop="lineId" label="生产线"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.lineId" :disabled="disabled"></el-input> <span v-else>{{ scope.row.lineId }} </span> </template> </el-table-column> <el-table-column label="投入数㎡"> <el-table-column prop="inputNow" label="本周"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.inputNow" :disabled="disabled"></el-input> <span v-else>{{ scope.row.inputNow }} </span> </template> </el-table-column> <el-table-column prop="inputHis" label="上周"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.inputHis" :disabled="disabled"></el-input> <span v-else>{{ scope.row.inputHis }} </span> </template> </el-table-column> <el-table-column prop="inputTrend" label="增减"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.inputTrend" :disabled="disabled"></el-input> <span v-else>{{ scope.row.inputTrend }} </span> </template> </el-table-column> </el-table-column> <el-table-column label="完成良品产量"> <el-table-column prop="goodProductNow" label="本周"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.goodProductNow" :disabled="disabled"> </el-input> <span v-else>{{ scope.row.goodProductNow }} </span> </template> </el-table-column> <el-table-column prop="goodProductHis" label="上周"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.goodProductHis" :disabled="disabled"> </el-input> <span v-else>{{ scope.row.goodProductHis }} </span> </template> </el-table-column> <el-table-column prop="goodProductTrend" label="增减"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.goodProductTrend" :disabled="disabled"> </el-input> <span v-else>{{ scope.row.goodProductTrend }} </span> </template> </el-table-column> </el-table-column> <el-table-column label="原片漏检率"> <el-table-column prop="missCheckNow" label="本周"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.missCheckNow" :disabled="disabled"></el-input> <span v-else>{{ scope.row.missCheckNow }} </span> </template> </el-table-column> <el-table-column prop="missCheckHis" label="上周"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.missCheckHis" :disabled="disabled"></el-input> <span v-else>{{ scope.row.missCheckHis }} </span> </template> </el-table-column> <el-table-column prop="missCheckTrend" label="增减"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.missCheckTrend" :disabled="disabled"> </el-input> <span v-else>{{ scope.row.missCheckTrend }} </span> </template> </el-table-column> </el-table-column> <el-table-column label="综合良品率"> <el-table-column prop="goodProductPassNow" label="本周"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.goodProductPassNow" :disabled="disabled"> </el-input> <span v-else>{{ scope.row.goodProductPassNow }} </span> </template> </el-table-column> <el-table-column prop="goodProductPassHis" label="上周"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.goodProductPassHis" :disabled="disabled"> </el-input> <span v-else>{{ scope.row.goodProductPassHis }} </span> </template> </el-table-column> <el-table-column prop="goodProductPassTrend" label="增减"> <template slot-scope="scope"> <el-input v-if="scope.row.det === true" v-model="scope.row.goodProductPassTrend" :disabled="disabled"> </el-input> <span v-else>{{ scope.row.goodProductPassTrend }} </span> </template> </el-table-column> </el-table-column> </el-table-column> <div style="height: 50px;" class="remark" slot="append"> <h3 style="float: left;text-align: center;margin-left: 20px;">备注:</h3> <el-input :disabled="disabled" style="float:right;width: 96%;margin-top: 8px;" v-model="remark"></el-input> </div> </el-table> <!-- 搜索工作栏 --> <!-- <SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @headBtnClick="handleSearchBarBtnClick" /> --> <!-- 列表 --> <!-- <base-table :table-props="tableProps" :page="1" :limit="10" :summary-method="getSummaries" show-summary :table-data="list"> </base-table> --> <!-- 分页组件 --> <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" @pagination="getList" /> --> </div> </template> <script> import { getProductionDataList, updateProductionDataList, updateSumProductionDataList, exportProductExcel } from '@/api/report/production'; // import Editor from '@/components/Editor'; import moment from 'moment'; // import DialogForm from './dialogForm.vue'; // import basicPageMixin from '@/mixins/lb/basicPageMixin'; const tableProps = [ { // width: 128, prop: 'lineId', label: '生产线', }, { // width: 128, prop: '', label: '投入数㎡', align: 'center', children: [ { prop: 'inputNow', label: '本周' }, { prop: 'inputHis', label: '上周' }, { prop: 'inputTrend', label: '增减' } ] }, { // width: 128, prop: '', label: '完成良品产量', align: 'center', children: [ { prop: 'goodProductNow', label: '本周' }, { prop: 'goodProductHis', label: '上周' }, { prop: 'goodProductTrend', label: '增减' } ] }, { // width: 128, prop: '', label: '原片漏检率', align: 'center', children: [ { prop: 'missCheckNow', label: '本周' }, { prop: 'missCheckHis', label: '上周' }, { prop: 'missCheckTrend', label: '增减' } ] }, { // width: 128, prop: '', label: '综合良品率', align: 'center', children: [ { prop: 'goodProductPassNow', label: '本周' }, { prop: 'goodProductPassHis', label: '上周' }, { prop: 'goodProductPassTrend', label: '增减' } ] }, ]; export default { name: 'statisticalData', // components: { // DialogForm, // }, // mixins: [basicPageMixin], data() { return { list: [], remark: '', urlOptions: { // getDataListURL: getGlassPage, exportURL: exportProductExcel }, // dynamicProps: [], tableProps, timeTips:'', // dataForm: { // reportTime:undefined // }, isSave:false, disabled: true, sumArr: [], weekValue1: null,//最多24周 weekValue2: null, searchBarFormConfig: [ // { // type: 'select', // label: '工单名称', // placeholder: '请选择工单名称', // param: 'workOrderIdList', // selectOptions: [], // multiple: true, // labelField: 'name', // valueField: 'id', // defaultSelect: [] // }, // { // type: 'select', // label: '产品', // placeholder: '请选择产品', // param: 'productionId', // selectOptions: [], // }, // { // type: 'input', // label: '检测内容', // placeholder: '请输入检测内容', // param: 'inspectionDetContent', // }, { type: 'datePicker', label: '时间段', dateType: 'daterange', // datetimerange // format: 'yyyy-MM-dd HH:mm:ss', format: 'yyyy-MM-dd HH:mm:ss', valueFormat: 'yyyy-MM-dd HH:mm:ss', rangeSeparator: '-', startPlaceholder: '开始日期', endPlaceholder: '结束日期', defaultTime: ['00:00:00', '23:59:59'], param: 'checkTime', // width: 350, }, { type: 'button', btnName: '查询', name: 'search', color: 'primary', }, // { // type: this.$auth.hasPermi( // 'base:quality-inspection-record:create' // ) // ? 'button' // : '', // btnName: '新增', // name: 'add', // plain: true, // color: 'success', // }, ], pickerOptionsWeek: { disabledDate(time) { let day = Date.now() let limitTime = moment(day).day(-1) return time.getTime() > new Date(limitTime).getTime() } }, reportTime:undefined, dataForm: { // workOrderIdList:undefined, // productionId: undefined, // startTime: undefined, // endTime: undefined, reportTime: [], reportType:2 // productionLineId: null, }, }; }, created() { // this.getProductLineList(); }, mounted() { // if (this.$route.params.startTime && this.$route.params.endTime) { // this.searchBarFormConfig[0].defaultSelect = [ // this.$route.params.startTime, // this.$route.params.endTime, // ]; // this.queryParams.param = {}; // this.$set( // this.queryParams.param, // 'startTime', // this.$route.params.startTime // ); // this.$set(this.queryParams.param, 'endTime', this.$route.params.endTime); // } else { // this.searchBarFormConfig[0].defaultSelect = []; // } this.getDataList() }, methods: { format(shijianchuo) { //shijianchuo是整数,否则要parseInt转换 var time = moment(new Date(shijianchuo)).format('YYYY-MM-DD HH:mm:ss') // console.log(time) // var y = time.getFullYear(); // var m = time.getMonth() + 1; // var d = time.getDate(); // var h = time.getHours(); // var mm = time.getMinutes(); // var s = time.getSeconds(); return time }, changeTime(val) { if (val) { // console.log(val) // console.log(val.setHours(7, 0, 0)) // console.log(val.setHours(7, 0, 0) + 24 * 60 * 60 * 1000) // let time = this.format(val.setHours(7, 0, 0)) this.dataForm.reportTime[0] = this.format(val.setHours(7, 0, 0)) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000 this.dataForm.reportTime[1] = this.format(val.setHours(7, 0, 0) + 24 * 60 * 60 * 1000) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000 console.log(this.dataForm.reportTime); } else { this.dataForm.reportTime = [] } }, editDataList() { this.disabled = false this.isSave = true }, async saveDataList() { let obj = {} this.list.forEach((ele, index) => { if (ele.det === false) { this.list[index].lineId = '' this.list[index].remark = this.remark obj = ele this.list.splice(index,1) } }) let updateArr = this.list // console.log(JSON.stringify(updateArr[1])) const result = await Promise.all([ await updateSumProductionDataList(obj), await updateProductionDataList(updateArr), ]); if (result[0].data == true && result[1].data == true) { // console.log(res) this.disabled = true this.isSave = false this.getDataList() } else { this.$modal.msgError('更新失败'); } }, handleExport() { // 处理查询参数 let params = { ...this.dataForm }; params.pageNo = undefined; params.pageSize = undefined; this.$modal.confirm('是否确认导出所有数据项?').then(() => { this.exportLoading = true; return this.urlOptions.exportURL(params); }).then(response => { this.$download.excel(response, '成品生产日报.xls'); this.exportLoading = false; }).catch(() => { }); }, async getDataList() { // if (this.weekValue1 && this.weekValue2) { // this.dataForm.reportTime[0] = moment(this.weekValue1).day(0).format('YYYY-MM-DD') + ' 00:00:00' // // this.queryParams.startTime = this.monthValue[0] // this.dataForm.reportTime[1] = moment(this.weekValue2).day(6).format('YYYY-MM-DD') + ' 23:59:59' // this.timeTips = moment(this.weekValue1).day(0).format('YYYY-MM-DD') + ' - ' + moment(this.weekValue2).day(0).format('YYYY-MM-DD') // } else { // } this.loading = true; // 执行查询 const res = await this.$axios({ url: '/base/report-auto-production/page', method: 'get', params: this.dataForm }) // console.log(this.queryParams); console.log(res) // let sum = undefined // res.data.list.forEach((ele, index) => { // if (ele.det === false) { // sum = res.data.list.splice(index, 1) // } // }) res.data.list.forEach((ele,index) => { if (ele.det === false) { res.data.list[index].lineId = '合计' this.remark = res.data.list[index].remark } }); this.list = res.data.list }, }, }; </script>