From ed7e2bd3782f3b867a8806b11d2f2314f3b8966a Mon Sep 17 00:00:00 2001 From: zhaoxiaolin <khd@123> Date: Tue, 2 Jan 2024 09:46:35 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BD=E5=9D=AF=E5=9B=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/quality/qcProCheck.js | 4 +- src/views/quality/qcProCheck/index.vue | 385 +++++++++------- src/views/quality/qcTableXJ/index.vue | 590 +++++++++++++++++++++++++ 3 files changed, 817 insertions(+), 162 deletions(-) create mode 100644 src/views/quality/qcTableXJ/index.vue diff --git a/src/api/quality/qcProCheck.js b/src/api/quality/qcProCheck.js index 5b5556cb..64f37df4 100644 --- a/src/api/quality/qcProCheck.js +++ b/src/api/quality/qcProCheck.js @@ -1,8 +1,8 @@ import request from '@/utils/request' -export function listCheck(query) { +export function getHfChartData(query) { return request({ - url: '/quality/qcProCheck/list', + url: '/quality/qcProCheck/getHfChartData', method: 'get', params: query }); diff --git a/src/views/quality/qcProCheck/index.vue b/src/views/quality/qcProCheck/index.vue index d68a7244..133d399c 100644 --- a/src/views/quality/qcProCheck/index.vue +++ b/src/views/quality/qcProCheck/index.vue @@ -1,14 +1,17 @@ <template> - <div class="app-container"> - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> - <el-form-item label="工单编码" prop="workorderCode"> - <el-input - v-model="queryParams.workorderCode" - placeholder="请输入工单编码" - clearable - @keyup.enter.native="handleQuery" - /> - </el-form-item> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="100px" style="margin-bottom: 0px;"> + <el-form-item label="生产时间段" prop="productDateArray"> + <el-date-picker + v-model="queryParams.productDateArray" + format="yyyy-MM-dd HH:mm:00" + type="datetimerange" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期"> + </el-date-picker> + </el-form-item> + <el-form-item label="产品编码" prop="productCode"> <el-input v-model="queryParams.productCode" @@ -25,164 +28,226 @@ @keyup.enter.native="handleQuery" /> </el-form-item> - <el-form-item label-width="100px" label="循环范围开始" prop="planLoopStart"> - <el-date-picker - v-model="queryParams.createTimeArray" - type="datetimerange" - :picker-options="pickerOptions" - range-separator="至" - start-placeholder="开始日期" - end-placeholder="结束日期" - value-format="yyyy-MM-dd HH:mm:ss" - align="right"> - </el-date-picker> - </el-form-item> - <el-form-item> - <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> - </el-form-item> - </el-form> - - <el-row :gutter="10" class="mb8"> - <el-col :span="1.5"> - <el-button - type="warning" - plain - icon="el-icon-download" - size="mini" - @click="handleExport" - v-hasPermi="['quality:qcProCheck:export']" - >导出</el-button> - </el-col> - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> - </el-row> - - <el-table v-loading="loading" :data="checkList" border :span-method="objectSpanMethod"> - <el-table-column label="烘房编码" align="center" prop="machineCode"/> - <el-table-column label="烘房名称" align="center" prop="machineName"/> - <el-table-column label="合格数量" align="center" prop="acceptanceNumber"/> - <el-table-column label="不合格数量" align="center" prop="unqualifiedNumber"/> - <el-table-column label="合格率" align="center" prop="passRate"/> - </el-table> - + <el-form-item label="班次" prop="shiftId"> + <el-select v-model="queryParams.shiftId" placeholder="请选择班次" clearable> + <el-option v-for="item in workShift" :key="item.shiftId" :label="item.shiftDesc" + :value="item.shiftId" + ></el-option> + </el-select> + </el-form-item> + <el-form-item label="图表类型"> + <el-select v-model="queryParams.chartType" filterable placeholder="请选择图表类型"> + <el-option + v-for="item in typeOptions" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> + </el-form-item> + </el-form> + <el-row :gutter="20"> + <el-col :sm="24" :lg="24"> + <span style="font-size: 20px;margin: 40%;color: cadetblue;">{{title}}</span> + </el-col> + </el-row> + <el-row :gutter="20"> + <div style="border: 1px solid #cfdee4;"> + <div id="orderline" style="width:100%;height:500px"></div> + </div> + </el-row> </div> </template> <script> -import { listCheck} from "@/api/quality/qcProCheck"; - +import * as echarts from 'echarts' +require('echarts/theme/macarons') +import {getHfChartData} from "@/api/quality/qcProCheck"; +import {getProShifts} from "@/api/mes/reportWork"; +import moment from 'moment'; export default { - name: "qcProCheck", + name: "produceLineChart", + components: {}, data() { return { - // 日期范围选择快捷 - pickerOptions: { - shortcuts: [{ - text: '最近一周', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); - picker.$emit('pick', [start, end]); + title:"烘房白坯质量统计", + // 查询参数 + queryParams: { + productDateArray: [], + pageNum: 1, + pageSize: 10, + workorderCode: null, + workorderName: null, + parentOrder: null, + orderId: null, + orderCode: null, + productId: null, + productCode: null, + prodType: null, + productName: null, + productSpc: null, + productDate: null, + createTimeStart:null, + createTimeEnd:null, + chartType:'hf' + }, + typeOptions:[ + { + label:"烘房", + value:"hf" + }, + { + label:"产品", + value:"cp" } - }, { - text: '最近一个月', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); - picker.$emit('pick', [start, end]); - } - }, { - text: '最近三个月', - onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); - picker.$emit('pick', [start, end]); - } - }] - }, - rowNum : 1, - // 遮罩层 - loading: true, - // 选中数组 - ids: [], - // 非单个禁用 - single: true, - // 非多个禁用 - multiple: true, - // 显示搜索条件 - showSearch: true, - // 总条数 - total: 0, - // 【请填写功能名称】表格数据 - checkList: [], - // 弹出层标题 - title: "", - // 是否显示弹出层 - open: false, - // 查询参数 - queryParams: { - createTimeArray: [], - workorderCode:null, - productCode:null, - machineCode:null, - createTimeStart:null, - createTimeEnd:null, - }, - // 表单参数 - form: {}, - }; - }, - created() { - this.getList(); + ], + options:null, + // 产品选中listtag + selectMaterielListtag:[], + // 班次list + workShift: [] + } }, - methods: { - objectSpanMethod({ row, column, rowIndex, columnIndex }) { - }, - /** 查询【请填写功能名称】列表 */ - getList() { - this.loading = true; - listCheck(this.queryParams).then(response => { - this.checkList = response; - this.loading = false; - }); - }, - // 取消按钮 - cancel() { - this.open = false; - this.reset(); - }, - // 表单重置 - reset() { - this.form = { - createTimeArray: [], - workorderCode:null, - productCode:null, - machineCode:null, - createTimeStart:null, - createTimeEnd:null, - }; - this.resetForm("form"); - }, - /** 搜索按钮操作 */ - handleQuery() { - this.queryParams.pageNum = 1; - this.getList(); - }, - /** 重置按钮操作 */ - resetQuery() { - this.resetForm("queryForm"); - this.queryParams.createTimeArray = []; - this.handleQuery(); - }, - /** 导出按钮操作 */ - handleExport() { - this.download('quality/qcProCheck/export', { - ...this.queryParams - }, `qcProCheck_${new Date().getTime()}.xlsx`) - } - } + mounted(){ + this.getDate(); + this.getList(); + // 获取班次信息 + getProShifts().then(response => { + this.workShift = response.data + }) + }, + + methods: { + /**获取默认查询时间段**/ + getDate() { + let start = this.Fungetdate (0) + let end = this.Fungetdate (1) + this.queryParams.productDateArray.push(start,end) + }, + Fungetdate (num) { + var dd = new Date(); + dd.setDate(dd.getDate() + num); + var y = dd.getFullYear(); + var m = dd.getMonth() + 1;//获取当前月份的日期 + var d = dd.getDate(); + return y + "-" + m + "-" + d+" 00:00:00"; + }, + /** 搜索按钮操作 */ + handleQuery() { + this.getList(); + }, + + /** 重置按钮操作 */ + resetQuery() { + this.resetForm("queryForm"); + this.getDate(); + this.handleQuery(); + }, + getList() { + + if(this.queryParams.productDateArray!=null){ + this.queryParams.createTimeStart = moment(this.queryParams.productDateArray[0]).format('YYYY-MM-DD HH:mm:00'); + this.queryParams.createTimeEnd = moment(this.queryParams.productDateArray[1]).format('YYYY-MM-DD HH:mm:00'); + } + + let myChart = this.$echarts.init(document.getElementById('orderline')) + getHfChartData(this.queryParams).then(data => { + + let seriesResult = data.series; + seriesResult.forEach(se => { + se.type = 'bar'; + se.stack = 'total', + se.label = {show: true}, + se.emphasis = {focus: 'series'} + }); + + myChart.setOption({ + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + } + }, + legend: {}, + grid: { + left: '3%', + right: '4%', + bottom: '3%', + containLabel: true + }, + xAxis: { + type: 'value' + }, + yAxis: { + type: 'category', + data: data.yAxisData//['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] + }, + series: seriesResult, + tooltip: { + trigger: 'axis', + axisPointer: { + type: 'shadow' + }, + formatter: function (params) { + debugger + let result="合格率:"+Number(params[0].data)*100.00/(Number(params[1].data)+Number(params[0].data))+"%<br/>"; + for (let i = 0; i < params.length; i++) { + result+=params[i].marker + params[i].seriesName + ':' + params[i].data + '<br>' + } + return params[0].name + '<br/>' + + result + } + } + }, + true + ) + }) + } + } }; </script> +<style lang="scss" scoped> +.tagbox { + display: flex; + /* overflow: scroll; */ + position: relative; + width: 80%; + padding-left: 26px; + margin-bottom: 15px; + .tagboxlabel{ + width: 100px; + text-align: right; + vertical-align: middle; + font-size: 14px; + color: black; + line-height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-right: 12px; + } + .tag { + width: 720px; + border: 1px #DCDFE6 solid; + height: 60px; + padding: 5px 15px; + overflow-y: scroll; + .tagitem{ + margin-left: 5px; + } + } + .button1{ + width: 37px; + height: 37px; + position: absolute; + right: -39px; + top: 2px; + + } +} +</style> + + diff --git a/src/views/quality/qcTableXJ/index.vue b/src/views/quality/qcTableXJ/index.vue new file mode 100644 index 00000000..f126c609 --- /dev/null +++ b/src/views/quality/qcTableXJ/index.vue @@ -0,0 +1,590 @@ +<template> + <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px" class="edit-el-form"> + <el-form-item label="订单编码" prop="workorderCodeSap"> + <el-input + v-model="queryParams.workorderCodeSap" + placeholder="请输入订单编码" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="产品编号" prop="productCode"> + <el-input + v-model="queryParams.productCode" + placeholder="请输入产品编号" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <el-form-item label="产品名称" prop="productName"> + <el-input + v-model="queryParams.productName" + placeholder="请输入产品名称" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> + <!-- <el-form-item label="规格型号" prop="productSpc"> + <el-input + v-model="queryParams.productSpc" + placeholder="请输入规格型号" + clearable + @keyup.enter.native="handleQuery" + /> + </el-form-item> --> + <el-form-item label="工单生产日期" prop="productDate"> + <el-date-picker clearable + v-model="queryParams.productDate" + type="date" + value-format="yyyy-MM-dd" + placeholder="请选择工单生产日期" + style="width:205px" + > + </el-date-picker> + </el-form-item> + <!-- + <el-form-item label="单据状态" prop="status"> + <el-select + v-model="queryParams.status" + placeholder="请选择单据状态" + @change="$forceUpdate()" + clearable + style="width:205px" + @keyup.enter.native="handleQuery"> + <el-option v-for="item in options" :key="item.status" :label="item.label" :value="item.status"></el-option> + </el-select> + </el-form-item>--> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >搜索</el-button> + <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8"> + <!-- <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + @click="handleAdd" + v-hasPermi="['mes:prepare:add']" + >新增</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + icon="el-icon-edit" + size="mini" + :disabled="single" + @click="handleUpdate" + v-hasPermi="['mes:prepare:edit']" + >修改</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="danger" + plain + icon="el-icon-delete" + size="mini" + :disabled="multiple" + @click="handleDelete" + v-hasPermi="['mes:prepare:remove']" + >删除</el-button> + </el-col> --> + <el-col :span="1.5"> + <el-button + type="warning" + plain + icon="el-icon-download" + size="mini" + @click="handleExport" + v-hasPermi="['mes:prepare:export']" + >导出</el-button> + </el-col> + <el-col :span="1.5"> + <el-button + type="success" + plain + :disabled="single" + icon="el-icon-download" + size="mini" + @click="showPrint" + v-hasPermi="['mes:prepare:export']" + >打印预览</el-button> + </el-col> + <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> + </el-row> + + <el-table v-loading="loading" :data="prepareList" @selection-change="handleSelectionChange"> + <el-table-column type="selection" width="55" align="center" /> + <el-table-column prop="date" label="生产日期" width="100" align="center"/> + <el-table-column prop="date" label="产品名称" width="150" align="center"/> + <el-table-column prop="date" label="产品编码" width="150" align="center"/> + <el-table-column prop="date" label="订单编码" width="150" align="center"/> + <el-table-column prop="date" label="订单批次" width="150" align="center"/> + <el-table-column label="上午" align="center" > + <el-table-column prop="name" label="8:00-9:00" width="120" align="center"/> + <el-table-column prop="name" label="9:00-10:00" width="120" align="center"/> + <el-table-column prop="name" label="10:00-11:00" width="120" align="center"/> + <el-table-column prop="name" label="11:00-12:00" width="120" align="center"/> + </el-table-column> + <el-table-column label="下午" align="center" > + <el-table-column prop="name" label="13:30-14:30" width="120" align="center"/> + <el-table-column prop="name" label="14:30-15:30" width="120" align="center"/> + <el-table-column prop="name" label="15:30-16:30" width="120" align="center"/> + <el-table-column prop="name" label="16:30-17:30" width="120" align="center"/> + </el-table-column> + <el-table-column label="加班" align="center" > + <el-table-column prop="name" label="12:30-13:30" width="120" align="center"/> + <el-table-column prop="name" label="18:00-19:00" width="120" align="center"/> + <el-table-column prop="name" label="19:00-20:00" width="120" align="center"/> + <el-table-column prop="name" label="20:00-21:00" width="120" align="center"/> + </el-table-column> + </el-table> + + <pagination + v-show="total>0" + :total="total" + :page.sync="queryParams.pageNum" + :limit.sync="queryParams.pageSize" + @pagination="getList" + /> + + <!-- 添加或修改备料单对话框 --> + <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> + <el-form ref="form" :model="form" :rules="rules" label-width="110px"> + <el-form-item label="工单编码" prop="workorderCode"> + <el-input v-model="form.workorderCode" placeholder="请输入工单编码" /> + </el-form-item> + <el-form-item label="工单名称" prop="workorderName"> + <el-input v-model="form.workorderName" placeholder="请输入工单名称" /> + </el-form-item> + <el-form-item label="父工单" prop="parentOrder"> + <el-input v-model="form.parentOrder" placeholder="请输入父工单" /> + </el-form-item> + <el-form-item label="订单编码" prop="orderCode"> + <el-input v-model="form.orderCode" placeholder="请输入订单编码" /> + </el-form-item> + <el-form-item label="产品编号" prop="productCode"> + <el-input v-model="form.productCode" placeholder="请输入产品编号" /> + </el-form-item> + <el-form-item label="产品名称" prop="productName"> + <el-input v-model="form.productName" placeholder="请输入产品名称" /> + </el-form-item> + <el-form-item label="规格型号" prop="productSpc"> + <el-input v-model="form.productSpc" placeholder="请输入规格型号" /> + </el-form-item> + <el-form-item label="配料计划明细id" prop="wetDetailPlanId"> + <el-input v-model="form.wetDetailPlanId" placeholder="请输入配料计划明细id" /> + </el-form-item> + <el-form-item label="工单生产日期" prop="productDate" > + <el-date-picker clearable + v-model="form.productDate" + type="date" + value-format="yyyy-MM-dd" + placeholder="请选择工单生产日期" + style="width:350px"> + </el-date-picker> + </el-form-item> + <el-form-item label="班次" prop="shiftId"> + <el-input v-model="form.shiftId" placeholder="请输入班次" /> + </el-form-item> + <el-form-item label="备注" prop="remark"> + <el-input v-model="form.remark" placeholder="请输入备注" /> + </el-form-item> + <el-form-item label="工厂编码" prop="factoryCode"> + <el-input v-model="form.factoryCode" placeholder="请输入工厂编码" /> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitForm">确 定</el-button> + <el-button @click="cancel">取 消</el-button> + </div> + </el-dialog> + + <!-- 打印预览弹出层 --> + <el-dialog + title="备料信息" + :visible.sync="printDialogVisible" + width="1000px" + > + <div id="printFrom" class="my-print-box"> + + <el-form :ref="formRef" :model="form" :rules="validateRules"> + + <!-- 表头-工单信息 --> + <el-row class="my-print-head"> + <el-col :offset="10" :span="5">生产订单备料单(订单物料)</el-col> + </el-row> + <!-- 导航栏 --> + <el-row class="my-print-nav"> + <el-col :span="4">工厂:{{printData.factory}}</el-col> + <el-col :span="4">工作中心:{{printData.workCenter}}</el-col> + <el-col :span="4">生产日期:{{printData.productDate}}</el-col> + <el-col :span="4">打印日期:{{printData.printDate}}</el-col> + <el-col :span="4">页次: 1/ 1</el-col> + </el-row> + <!-- 主数据 --> + <el-table + v-if="refreshNewWorkerTable" + v-loading="newWorkerLoading" + class="my-print-table" + :data="printData.workTable" + border + style="width: 100%"> + <el-table-column + type="index" + label="序号" + width="50"> + </el-table-column> + <el-table-column + prop="materialCode" + label="料号" + width="170"> + </el-table-column> + <el-table-column + prop="materialName" + label="物料描述" + width="240"> + </el-table-column> + <el-table-column + prop="unit" + width="50" + label="单位"> + </el-table-column> + <el-table-column + prop="workorderCode" + width="120" + label="生产订单"> + </el-table-column> + <el-table-column + prop="quantity" + label="请领数量"> + </el-table-column> + <el-table-column + prop="fundQuanlity" + label="欠领数量"> + </el-table-column> + <el-table-column + prop="routeCode" + width="80" + label="实发数量"> + </el-table-column> + <el-table-column + prop="recoil" + label="反冲物料"> + </el-table-column> + </el-table> + + <br/> + <!-- 底部 --> + <el-row class="my-print-foot"> + <el-col :offset="1" :span="3">发料人:</el-col> + <el-col :offset="2" :span="3">收料人:</el-col> + <el-col :offset="2" :span="3">白色:车间联</el-col> + <el-col :offset="1" :span="3">蓝色:仓库联</el-col> + <el-col :offset="1" :span="3">红色:财务联</el-col> + </el-row> + <el-row class="my-print-foot"> + <el-col :offset="1" :span="3">SAP-No:{{printData.SAPNo}}</el-col> + <el-col :offset="1" :span="3">Z-PM-F-030-A.2</el-col> + </el-row> + + </el-form> + + + </div> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" @click="handlePrint(printData)">打 印</el-button> + </span> + </el-dialog> + + </div> +</template> + +<script> +import { listPrepare, getPrepare, delPrepare, addPrepare, updatePrepare } from "@/api/mes/prepare"; +import {printPrepareByCode} from "@/api/mes/prepareDetail"; +import moment from "moment/moment"; +export default { + name: "Prepare", + // components: {Detail}, + data() { + return { + newWorkerLoading: false, + refreshNewWorkerTable:true, + // 选择领料单 + selectPrepare:[], + // 打印 + formRef: 'form', + validateRules: [], + printData: { + printable: 'printFrom', + ignore: ['no-print'], + workCenter: "暂无数据", + SAPNo: null, + manufacture: null, + auditor: null, + printDate: null, + factory: null, + productDate: null, + workTable: [], + }, + printDialogVisible: false, + // 遮罩层 + loading: true, + // 选中数组 + ids: [], + // 非单个禁用 + single: true, + // 非多个禁用 + multiple: true, + // 显示搜索条件 + showSearch: true, + // 总条数 + total: 0, + // 备料单表格数据 + prepareList: [], + // 弹出层标题 + title: "", + // 是否显示弹出层 + open: false, + // 查询参数 + queryParams: { + pageNum: 1, + pageSize: 10, + workorderCode: null, + workorderName: null, + parentOrder: null, + orderId: null, + orderCode: null, + productId: null, + productCode: null, + prodType: null, + productName: null, + productSpc: null, + wetDetailPlanId: null, + productDate: null, + shiftId: null, + ancestors: null, + status: null, + attr1: null, + attr2: null, + attr3: null, + attr4: null, + factoryCode: null + }, + options: [{ + status: "L0", + label: '待确认' + }, { + status: "L1", + label: '已确认' + }], + // 表单参数 + form: {}, + // 表单校验 + rules: { + workorderCode: [ + { required: true, message: "工单编码不能为空", trigger: "blur" } + ], + parentOrder: [ + { required: true, message: "父工单不能为空", trigger: "blur" } + ], + orderId: [ + { required: true, message: "订单id不能为空", trigger: "blur" } + ], + productCode: [ + { required: true, message: "产品编号不能为空", trigger: "blur" } + ], + productName: [ + { required: true, message: "产品名称不能为空", trigger: "blur" } + ], + } + }; + }, + created() { + this.getList(); + }, + methods: { + // 打印 + handlePrint(params) { + printJS({ + printable: params.printable, // 'printFrom', // 标签元素id + type: params.type || 'html', + maxWidth: 1500, // 最大宽度 + font_size: "",// 设置字体大小 + header: params.header, // '表单', + targetStyles: ['*'], + style: '@page {margin:0 10mm};', // 可选-打印时去掉眉页眉尾 + ignoreElements: params.ignore || [], // ['no-print'] + properties: params.properties || null + }) + }, + // 打印预览 + showPrint() { + // 清楚缓存 + this.printData.workCenter = "暂无数据"; + this.printData.printDate = null; + this.printData.workTable = []; + this.printData.factory = null; + this.printData.productDate = null; + // 打开工单信息对话框 + this.printDialogVisible = true; + this.newWorkerLoading = true // 设置加载状态为true,表示正在加载 + this.refreshNewWorkerTable = false // 先将refreshProTable设置为false,隐藏表格 + printPrepareByCode(this.selectPrepare[0].workorderCode).then(response => { + console.log(response.data) + this.printData.factory = response.data.mesPrepareDetailList[0].factoryCode + this.printData.productDate = response.data.mesPrepareDetailList[0].productDate + this.printData.printDate = moment(new Date()).format('YYYY-MM-DD') + this.printData.workTable = response.data.mesPrepareDetailList + this.refreshNewWorkerTable = true // 立即将refreshProTable设置为true,显示表格 + this.newWorkerLoading = false // 设置加载状态为false,表示加载完成 + }) + }, + //新增 设备选择弹出框 + // handlePrepareDetail(){ + // this.$refs.detail.showFlag = true; + // }, + // 生成表头序号 + indexMethod(index){ + return index+1 ; + }, + /** 查询备料单列表 */ + getList() { + this.loading = true; + listPrepare(this.queryParams).then(response => { + this.prepareList = response.rows; + this.total = response.total; + this.loading = false; + }); + }, + // 取消按钮 + cancel() { + this.open = false; + this.reset(); + }, + // 表单重置 + reset() { + this.form = { + prepareId: null, + workorderCode: null, + workorderName: null, + parentOrder: null, + orderId: null, + orderCode: null, + productId: null, + productCode: null, + prodType: null, + productName: null, + productSpc: null, + wetDetailPlanId: null, + productDate: null, + shiftId: null, + ancestors: null, + status: null, + remark: null, + attr1: null, + attr2: null, + attr3: null, + attr4: null, + createBy: null, + createTime: null, + updateBy: null, + updateTime: null, + factoryCode: null + }; + this.resetForm("form"); + }, + /** 搜索按钮操作 */ + handleQuery() { + this.queryParams.pageNum = 1; + this.getList(); + }, + /** 重置按钮操作 */ + resetQuery() { + this.resetForm("queryForm"); + this.handleQuery(); + }, + // 多选框选中数据 + handleSelectionChange(selection) { + this.ids = selection.map(item => item.prepareId) + this.single = selection.length!==1 + this.multiple = !selection.length + this.selectPrepare = selection + }, + /** 新增按钮操作 */ + handleAdd() { + this.reset(); + this.open = true; + this.title = "添加备料单"; + }, + /** 修改按钮操作 */ + handleUpdate(row) { + this.reset(); + const prepareId = row.prepareId || this.ids + getPrepare(prepareId).then(response => { + this.form = response.data; + this.open = true; + this.title = "修改备料单"; + }); + }, + /** 提交按钮 */ + submitForm() { + this.$refs["form"].validate(valid => { + if (valid) { + if (this.form.prepareId != null) { + updatePrepare(this.form).then(response => { + this.$modal.msgSuccess("修改成功"); + this.open = false; + this.getList(); + }); + } else { + addPrepare(this.form).then(response => { + this.$modal.msgSuccess("新增成功"); + this.open = false; + this.getList(); + }); + } + } + }); + }, + /** 删除按钮操作 */ + handleDelete(row) { + const prepareIds = row.prepareId || this.ids; + this.$modal.confirm('是否确认删除备料单编号为"' + prepareIds + '"的数据项?').then(function() { + return delPrepare(prepareIds); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("删除成功"); + }).catch(() => {}); + }, + /** 导出按钮操作 */ + handleExport() { + this.download('mes/prepare/export', { + ...this.queryParams + }, `prepare_${new Date().getTime()}.xlsx`) + } + } +}; +</script> +<style> +.my-print-head { + margin-top: 20px; + font-weight: bold; +} +.my-print-nav { + margin-top: 15px; + margin-bottom: 15px; +} +.my-print-table { + +} +.my-print-foot { + margin-top: 20px; +} +</style>