修改bug

This commit is contained in:
‘937886381’
2024-03-18 16:00:56 +08:00
parent a4994ca5ae
commit 94886eedde
28 changed files with 1006 additions and 369 deletions

View File

@@ -1,17 +1,15 @@
<!--
* @Author: zhp
* @Date: 2023-12-12 13:45:25
* @LastEditTime: 2024-03-13 15:29:17
* @LastEditTime: 2024-03-18 15:27:53
* @LastEditors: zhp
* @Description:
-->
<template>
<div class="app-container">
<el-form :inline="true" :model="dataForm" class="demo-form-inline">
<el-form-item>
<el-date-picker v-model="monthValue" type="monthrange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" clearable :picker-options="pickerOptions" size="small" style='width:350px;'
@change="timeSelect">
<el-form :inline="true" :model="dataForm" class="blueTip">
<el-form-item label="月" prop="reportTime">
<el-date-picker v-model="reportTime" type="month" size="small" @change="changeTime" placeholder="选择月">
</el-date-picker>
</el-form-item>
<el-button type="primary" @click="getDataList()">查询</el-button>
@@ -19,10 +17,11 @@
@click="handleExport">导出</el-button>
</el-form>
<el-row style="float: right; margin-bottom: 5px">
<el-button size="small" @click="editDataList()">编辑</el-button>
<el-button v-if="!isSave" size="small" @click="editDataList()">编辑</el-button>
<el-button v-if="isSave" size="small" @click="handleReturn()">返回</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="{
<el-table id="exportTable" :data="list" style="width: 100%" :header-cell-style="{
background: '#F2F4F9',
color: '#606266'
}">
@@ -48,9 +47,9 @@
</el-table-column>
<el-table-column prop="inputTrend" label="增减" align="center">
<template slot-scope="scope">
<el-input v-if="!disabled" v-model="scope.row.inputTrend" :disabled="disabled"></el-input>
<el-input v-if="!disabled" v-model="scope.row.inputTrend" :disabled="!disabled"></el-input>
<span v-else>{{ scope.row.inputTrend ? parseFloat((scope.row.inputTrend *
100).toFixed(2)) + '%' : undefined }} </span>
100).toFixed(2)) + '%' : undefined }} </span>
</template>
</el-table-column>
</el-table-column>
@@ -71,67 +70,86 @@
</el-table-column>
<el-table-column prop="goodProductTrend" label="增减" align="center">
<template slot-scope="scope">
<el-input v-if="!disabled" v-model="scope.row.goodProductTrend" :disabled="disabled">
<el-input v-if="!disabled" v-model="scope.row.goodProductTrend" :disabled="!disabled">
</el-input>
<span v-else>{{ scope.row.goodProductTrend ? parseFloat((scope.row.goodProductTrend *
100).toFixed(2)) + '%' : undefined }} </span>
100).toFixed(2)) + '%' : undefined }} </span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="原片漏检率" align="center">
<el-table-column prop="missCheckNow" label="本月" align="center">
<el-table-column prop="missCheckNow" label="今日" align="center">
<template slot-scope="scope">
<el-input v-if="!disabled" v-model="scope.row.missCheckNow" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.missCheckNow }} </span>
<span v-else>{{ scope.row.missCheckNow ? parseFloat((scope.row.missCheckNow *
100).toFixed(2)) +
'%' : undefined }}
</span>
</template>
</el-table-column>
<el-table-column prop="missCheckHis" label="上月" align="center">
<el-table-column prop="missCheckHis" label="昨日" align="center">
<template slot-scope="scope">
<el-input v-if="!disabled" v-model="scope.row.missCheckHis" :disabled="disabled"></el-input>
<span v-else>{{ scope.row.missCheckHis }} </span>
<span v-else>{{ scope.row.missCheckHis ? parseFloat((scope.row.missCheckHis *
100).toFixed(2)) +
'%' : undefined }}
</span>
</template>
</el-table-column>
<el-table-column prop="missCheckTrend" label="增减" align="center">
<template slot-scope="scope">
<el-input v-if="!disabled" v-model="scope.row.missCheckTrend" :disabled="disabled">
<el-input v-if="!disabled" v-model="scope.row.missCheckTrend" :disabled="!disabled">
</el-input>
<span v-else>{{ scope.row.missCheckTrend ? parseFloat((scope.row.missCheckTrend *
100).toFixed(2)) +'%' : undefined }} </span>
100).toFixed(2)) +
'%' : undefined }}
</span>
</template>
</el-table-column>
</el-table-column>
<el-table-column label="综合良品率" align="center">
<el-table-column prop="goodProductPassNow" label="本月" align="center">
<el-table-column prop="goodProductPassNow" label="今日" align="center">
<template slot-scope="scope">
<el-input v-if="!disabled" v-model="scope.row.goodProductPassNow" :disabled="disabled">
<el-input v-if="!disabled" v-model="scope.row.goodProductPassNow" :disabled="!disabled">
</el-input>
<span v-else>{{ scope.row.goodProductPassNow }} </span>
<span v-else>{{ scope.row.goodProductPassNow ? parseFloat((scope.row.goodProductPassNow *
100).toFixed(2)) +
'%' : undefined }}
</span>
</template>
</el-table-column>
<el-table-column prop="goodProductPassHis" label="上月" align="center">
<el-table-column prop="goodProductPassHis" label="昨日" align="center">
<template slot-scope="scope">
<el-input v-if="!disabled" v-model="scope.row.goodProductPassHis" :disabled="disabled">
<el-input v-if="!disabled" v-model="scope.row.goodProductPassHis" :disabled="!disabled">
</el-input>
<span v-else>{{ scope.row.goodProductPassHis }} </span>
<span v-else>{{ scope.row.goodProductPassHis ? parseFloat((scope.row.goodProductPassHis *
100).toFixed(2)) +
'%' : undefined }}
</span>
</template>
</el-table-column>
<el-table-column prop="goodProductPassTrend" label="增减" align="center">
<template slot-scope="scope">
<el-input v-if="!disabled" v-model="scope.row.goodProductPassTrend" :disabled="disabled">
<el-input v-if="!disabled" v-model="scope.row.goodProductPassTrend" :disabled="!disabled">
</el-input>
<span v-else>{{ scope.row.goodProductPassTrend ? parseFloat((scope.row.goodProductPassTrend *
100).toFixed(2))+ '%' :undefined }}
100).toFixed(2)) +
'%' : undefined }}
</span>
</template>
</el-table-column>
</el-table-column>
</el-table-column>
<div style="height: 50px;" class="remark" slot="append">
<!-- <div style="height: 50px;" class="remark" slot="append">
<el-input placeholder="备注" v-if="!disabled" v-model="remark" :disabled="disabled">
</el-input>
<span v-else>{{ remark }} </span>
</div>
</div> -->
</el-table>
<div style="height: 50px;" class="remark">
<el-input placeholder="备注" v-model="remark" :disabled="disabled">
</el-input>
</div>
<!-- 搜索工作栏 -->
<!-- <SearchBar :formConfigs="searchBarFormConfig" ref="search-bar" @headBtnClick="handleSearchBarBtnClick" /> -->
@@ -159,8 +177,10 @@ import {
// import Editor from '@/components/Editor';
import moment from 'moment';
// import DialogForm from './dialogForm.vue';
import { parseTime } from '../../core/mixins/code-filter';
import { getCorePLList } from '@/api/base/coreProductionLine'
import FileSaver from 'file-saver'
import * as XLSX from 'xlsx'
// import basicPageMixin from '@/mixins/lb/basicPageMixin';
const tableProps = [
{
@@ -397,7 +417,8 @@ export default {
// explainText: undefined,
// remark: undefined,
// },
// 查询参数
// 查询参数
reportTime:'',
dataForm: {
// workOrderIdList:undefined,
// productionId: undefined,
@@ -411,7 +432,7 @@ export default {
},
created() {
this.getCurrentMonthFirst()
this.getCurrentMonthLast()
// this.getCurrentMonthLast()
// this.getProductLineList();
},
mounted() {
@@ -435,6 +456,11 @@ export default {
this.getDict()
},
methods: {
handleReturn() {
this.disabled = true
this.isSave = false
this.getDataList()
},
async getDict() {
// 产线列表
const res = await getCorePLList();
@@ -442,32 +468,89 @@ export default {
},
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(() => { });
var xlsxParam = { raw: true };
/* 从表生成工作簿对象 */
var wb = XLSX.utils.table_to_book(
document.querySelector("#exportTable"),
xlsxParam
);
/* 获取二进制字符串作为输出 */
var wbout = XLSX.write(wb, {
bookType: "xlsx",
bookSST: true,
type: "array",
});
try {
FileSaver.saveAs(
//Blob 对象表示一个不可变、原始数据的类文件对象。
//Blob 表示的不一定是JavaScript原生格式的数据。
//File 接口基于Blob继承了 blob 的功能并将其扩展使其支持用户系统上的文件。
//返回一个新创建的 Blob 对象,其内容由参数中给定的数组串联组成。
new Blob([wbout], { type: "application/octet-stream" }),
//设置导出文件名称
"许昌安彩月成品生产汇总.xlsx"
);
} catch (e) {
if (typeof console !== "undefined") console.log(e, wbout);
}
return wbout;
},
getCurrentMonthFirst() {
const date = new Date();
date.setDate(1)
// date.setHours(7, 0, 1)
this.monthValue[0] = moment(date).format('YYYY-MM-DD')
console.log(date)
date.setDate(1);
this.reportTime = date
// console.log(date)
this.changeTime(date)
// console.log(date.valueOf());
},
getCurrentMonthLast() {
const date = new Date();
const currentMonth = date.getMonth();
const nextMonth = currentMonth + 1;
const nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
const oneDay = 24 * 60 * 60 * 1000;
this.monthValue[1] = new Date(nextMonthFirstDay - oneDay)
changeTime(val) {
console.log(val)
if (val) {
const timeStamp = val.getMonth(); //标准时间转为时间戳,毫秒级别
const fullyear = val.getFullYear()
let days = 0
switch (timeStamp) {
case 0:
case 2:
case 4:
case 6:
case 7:
case 9:
case 11:
days = 31
break
case 3:
case 4:
case 8:
case 10:
days = 30
break
case 1:
if ((fullyear % 400 === 0) || (fullyear % 4 === 0 && fullyear % 100 !== 0)) {
days = 29
} else {
days = 28
}
break
}
this.startTimeStamp = this.timeFun(new Date(fullyear, timeStamp, 1, 7, 0, 1).getTime()); //开始时间
this.endTimeStamp = this.timeFun(new Date(fullyear, timeStamp, days, 7, 0, 0).getTime()); //结束时间
console.log(this.startTimeStamp, this.endTimeStamp)
this.timeTips = this.startTimeStamp + '-' + this.endTimeStamp
this.dataForm.reportTime[0] = parseTime(new Date(fullyear, timeStamp, 1, 7, 0, 1).getTime()) //+ ' 00:00:00' //new Date(this.startTimeStamp + ' 00:00:00').getTime() / 1000
this.dataForm.reportTime[1] = parseTime(new Date(fullyear, timeStamp, days, 7, 0, 0).getTime()) //+ ' 23:59:59' //new Date(this.endTimeStamp + ' 23:59:59').getTime() / 1000
} else {
this.dataForm.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)
},
timeSelect() {
// switch (this.queryParams.timeDim) {
@@ -566,7 +649,13 @@ export default {
// this.$modal.msgError('月范围不能为空')
// return false
}
if (this.dataForm.reportTime.length == 0) {
this.$message({
message: '请选择时间',
type: 'warning'
})
return false
}
console.log(this.dataForm);
const res = await this.$axios({
url: '/base/report-auto-production/page',
@@ -601,3 +690,19 @@ export default {
},
};
</script>
<style scoped>
/* .blueTip { */
/* padding-bottom: 10px; */
/* } */
.blueTip::before{
display: inline-block;
content: '';
width: 4px;
height: 18px;
background: #0B58FF;
border-radius: 1px;
margin-right: 8PX;
margin-top: 8px;
}
</style>