|
|
<template> <div class="mod-config"> <el-form :inline="true" label-position="top" label-width="100px" > <el-form-item :label="'混炼任务单号:'"> <el-input v-model="searchData.taskNo" style="width: 120px"></el-input> </el-form-item > <el-form-item > <span slot="label" style="" @click="getBaseList(5)"><a herf="#">物料编码</a></span> <el-input v-model="searchData.partNo" style="width: 120px"></el-input> </el-form-item> <el-form-item :label="'合并日期:'"> <el-date-picker style="width: 130px" v-model="searchData.startDate" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"> </el-date-picker> </el-form-item> <el-form-item style="margin-top: 23px;"> <laber style="margin-left: -9px;font-size: 19px">➞</laber> </el-form-item> <el-form-item :label="' '"> <el-date-picker style="width: 130px" v-model="searchData.endDate" type="date" value-format="yyyy-MM-dd" placeholder="选择日期"> </el-date-picker> </el-form-item> <el-form-item :label="'是否报工:'"> <el-select filterable v-model="searchData.reportFlag" style="width: 120px"> <el-option label="全部" value=""></el-option> <el-option label="否" value="N"></el-option> <el-option label="是" value="Y"></el-option> </el-select> </el-form-item> <el-form-item :label="' '"> <el-button @click="search()" style="margin-left: 0px;margin-top: 0px" type="primary">查询</el-button> <el-button @click="scanReport()" style="margin-left: 0px;margin-top: 0px" type="primary">扫码报工</el-button> <download-excel :fields="exportDataStandard" :data="tableData" type="xlsx" :name="exportName" :header="exportHeader" :footer="exportFooter" :defaultValue="exportDefaultValue" :fetch="createExportData" :before-generate="startDownload" :before-finish="finishDownload" worksheet="导出信息" class="el-button el-button--primary el-button--medium"> {{'导出'}} </download-excel> </el-form-item> </el-form> <el-table :height="height" :data="tableData" border style="width: 100%"> <el-table-column prop="" header-align="center" align="center" min-width="160" label="操作"> <template slot-scope="scope" class="foo_container"> <a type="text" size="small" @click="printHunlianCard(scope.row)">混炼任务单</a> <a type="text" v-if="scope.row.reportFlag=='N'" size="small" @click="reportTaskModal(scope.row)">报工</a> <a type="text" v-if="scope.row.reportFlag=='Y'&&scope.row.wareHouseFlag=='N'" size="small" @click="cancelReportTask(scope.row)">取消报工</a> <a type="text" size="small" @click="printPartCard(scope.row)">物料标识卡</a> <a type="text" size="small" @click="detailModal(scope.row)">查看周计划明细</a> <a type="text" v-if="scope.row.reportFlag=='N'" size="small" @click="cancelTask(scope.row)">取消任务</a> </template> </el-table-column> <el-table-column prop="taskNo" header-align="center" align="left" min-width="80" label="混炼任务单号"> </el-table-column> <el-table-column prop="partNo" header-align="center" align="left" min-width="70" label="混炼物料编码"> </el-table-column> <el-table-column prop="partDesc" header-align="center" align="left" min-width="100" label="混炼胶名称"> </el-table-column> <el-table-column prop="taskQty" header-align="center" align="right" min-width="100" label="混炼胶数量"> </el-table-column> <el-table-column prop="createDate" header-align="center" align="left" min-width="70" label="合并日期"> </el-table-column> <el-table-column prop="createBy" header-align="center" align="left" min-width="70" label="创建人"> </el-table-column> <el-table-column prop="reportFlag" header-align="center" align="left" min-width="70" label="是否报工"> </el-table-column> <el-table-column prop="reportQty" header-align="center" align="right" min-width="70" label="报工数量"> </el-table-column> <el-table-column prop="wareHouseFlag" header-align="center" align="left" min-width="70" label="是否入库"> </el-table-column> <el-table-column prop="orderRef1" header-align="center" align="left" min-width="100" label="合并生产订单号"> </el-table-column> </el-table> <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" v-drag title="周计划清单" :visible.sync="detailFlag" width="600px"> <el-table height="300" :data="detailList" border style="width: 100%"> <el-table-column prop="taskNo" header-align="center" align="left" min-width="80" label="混炼任务单号"> </el-table-column> <el-table-column prop="orderNo" header-align="center" align="left" min-width="70" label="周计划号"> </el-table-column> <el-table-column prop="partDesc" header-align="center" align="left" min-width="100" label="混炼胶名称"> </el-table-column> <el-table-column prop="orderQty" header-align="center" align="right" min-width="70" label="周计划数量"> </el-table-column> <el-table-column prop="hunlianQty" header-align="center" align="right" min-width="70" label="混炼胶数量"> </el-table-column> <el-table-column prop="orderDate" header-align="center" align="left" min-width="100" label="周计划日期"> </el-table-column>
</el-table> <span slot="footer" class="dialog-footer"> <el-button @click="detailFlag = false" type="primary">取消</el-button> </span> </el-dialog> <el-dialog title="报工扫描" :close-on-click-modal="false" v-drag :visible.sync="scanModalFlag" width="215px"> <el-form :inline="true" label-position="top" style="margin-left: 22px;margin-top: -5px;" @submit.native.prevent> <el-form-item :label="'混炼任务号:'"> <el-input v-model="scanTaskNo" ref="start" style="width: 130px;" @keyup.enter.native="doScanTaskNo()"></el-input> </el-form-item> </el-form> <el-footer style="height:40px;margin-top: 20px;text-align:center"> <el-button type="primary" @click="doScanTaskNo()">报工</el-button> <el-button type="primary" @click="scanModalFlag = false">取消</el-button> </el-footer> </el-dialog>
<el-dialog title="保存报工" :close-on-click-modal="false" v-drag :visible.sync="reportModalFlag" width="470px"> <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form-item :label="'任务单号:'"> <el-input v-model="reportData.taskNo" disabled style="width: 130px"></el-input> </el-form-item> <el-form-item :label="'所需数量:'"> <el-input v-model="reportData.qtyRequired" disabled style="width: 130px"></el-input> </el-form-item> <el-form-item :label="'库存数量:'"> <el-input v-model="reportData.qtyOnHand" disabled style="width: 130px"></el-input> </el-form-item> </el-form> <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;"> <el-form-item :label="'混炼胶报工重量:'" > <el-input v-model="reportData.qtyReal" :disabled="reportFlag" type="number" style="width: 130px"></el-input> </el-form-item> <el-form-item :label="'库存抵扣数量:'"> <el-input v-model="reportData.qtyRef" type="number" style="width: 130px"></el-input> </el-form-item> </el-form> <el-footer style="height:40px;margin-top: 20px;text-align:center"> <el-button type="primary" @click="reportSave()">保存</el-button> <el-button type="primary" @click="reportModalFlag = false">取消</el-button> </el-footer> </el-dialog>
<Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist> </div>
</template>
<script> import { getHunlianTaskData,getHunlianTaskDetailData,cancelTask,reportTask,cancelReportTask,getPartNoOnHand,getHunLianPrintData } from "@/api/production.js" import { printTransNoLabel, } from "@/views/modules/print/print_transNo_label.js" import { printHunlianLabel, } from "@/views/modules/print/print_hunlian_card.js" import { printPartLabel, } from "@/views/modules/print/print_part_label.js" import decimalUtil from '../../../utils/decimalUtil' import Chooselist from '@/views/modules/common/Chooselist' export default { components: { Chooselist }, data () { return { reportFlag:false, searchData:{ taskNo:'', partNo:'', startDate:'', endDate:'', reportFlag:'N', }, height:200, tagNo:'', tableData:[], detailList:[], detailFlag:false, reportModalFlag:false, reportData:{ site:'', taskNo:'', qtyRequired: '', reportQty:'', qtyOnHand:'', qtyReal:'', qtyRef:'', }, scanModalFlag:false, scanTaskNo:'', // 导出 start
exportData: [], exportDataStandard: { '混炼任务单号': 'taskNo', '混炼物料编码': 'partNo', '混炼胶名称': 'partDesc', '混炼胶数量': 'taskQty', '合并日期': 'createDate', '创建人': 'createBy', '是否报工': 'reportFlag', '报工数量': 'reportQty', '是否入库': 'wareHouseFlag', '合并生产订单号': 'orderRef1', }, exportName: '日计划列表' + this.getStrDate(), exportHeader: ['日计划列表'], exportFooter: [], exportDefaultValue: '', // 导出 end
} }, mounted() { this.$nextTick(()=>{ this.height = window.innerHeight - 180; }) }, methods: { getBaseList (val,type) { this.tagNo = val this.$nextTick(() => { let strVal = '' if (val === 5) { strVal = this.searchData.partNo } this.$refs.baseList.init(val, strVal) }) }, /* 列表方法的回调 */ getBaseData (val) { if (this.tagNo === 5) { this.searchData.partNo = val.PartNo } },
search(){ getHunlianTaskData(this.searchData).then(({data}) => {
this.tableData = data.rows; }) }, detailModal(row){ let inData={ site:row.site, taskNo:row.taskNo, } getHunlianTaskDetailData(inData).then(({data}) => { this.detailList = data.rows; }) this.detailFlag=true;
}, getPartNoOnHand(site,partNo){ let inData={ site:site, partNo:partNo, } getPartNoOnHand(inData).then(({data}) => { if (data && data.code === 0) { if(data.row!=null){ this.reportData.qtyOnHand=data.row.qtyOnHand; }else { this.reportData.qtyOnHand=0; }
} else { this.$alert(data.msg, '错误', { confirmButtonText: '确定' }) } }) }, printHunlianCard(row){ getHunLianPrintData(row).then(({data}) => { if (data && data.code === 0) { if(data.rows.length>0){ let array=[]; array.push(data.rows[0])
printHunlianLabel(array) }
} })
}, printPartCard(row){ let array=[]; let data={ // printerName:'大标签打印机',
orderNo:'*', userId:this.$store.state.user.name, partNo:row.partNo, sScheduledDate:row.createDate, operatorName:this.$store.state.user.name, partDesc:row.partDesc, qtyRequired:row.taskQty, toExpireDays:row.toExpireDays, remark:row.remark, } array.push(data) printPartLabel(array) }, cancelTask(row){ this.$confirm(`是否删除混炼任务单?`, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { let inData={ site:row.site, taskNo:row.taskNo, userId:this.$store.state.user.name, orderRef1:row.orderRef1, } cancelTask(inData).then(({data}) => { if (data && data.code === 0) { this.search (); this.$message({ message: '操作成功', type: 'success', duration: 1500, onClose: () => { } }) } else { this.$alert(data.msg, '错误', { confirmButtonText: '确定' }) } }) }).catch(() => { })
}, reportTaskModal(row){ if(row.orderRef1==''||row.orderRef1==null){ this.reportFlag=true }else { this.reportFlag=false } this.reportData.site=row.site; this.reportData.taskNo=row.taskNo; this.reportData.qtyRequired=row.taskQty; this.reportData.reportQty=''; this.reportData.partNo=row.partNo; this.reportData.userId=row.userId; this.reportData.qtyReal=0; this.reportData.qtyRef=0; this.getPartNoOnHand(row.site,row.partNo); this.reportModalFlag=true; }, cancelReportTask(row){ this.$confirm(`是否取消报工?`, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { cancelReportTask(row).then(({data}) => { if (data && data.code === 0) { this.search (); } else { this.$alert(data.msg, '错误', { confirmButtonText: '确定' }) } }) }).catch(() => { }) }, reportSave(){ this.reportData.reportQty=Number(Number(this.reportData.qtyReal)+Number(this.reportData.qtyRef)).toFixed(2); if(this.reportData.reportQty<this.reportData.qtyRequired){ this.$alert('报工数量不足,无法报工!', '错误', { confirmButtonText: '确定' }) return false } this.$confirm(`确认是否报工?`, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { reportTask(this.reportData).then(({data}) => { if (data && data.code === 0) { this.search (); this.reportModalFlag=false; data.printData.seqNo='*' let inList=[]; inList.push(data.printData) printTransNoLabel(inList) this.$message({ message: '操作成功', type: 'success', duration: 1500, onClose: () => { } }) } else { this.$alert(data.msg, '错误', { confirmButtonText: '确定' }) } }) }).catch(() => { }) }, scanReport(){ this.scanTaskNo=''; this.scanModalFlag=true; this.$nextTick(() => { this.$refs.start.focus();}) }, doScanTaskNo(){ if(this.scanTaskNo==''||this.scanTaskNo==null){ this.$alert("请扫描任务单二维码", '错误', { confirmButtonText: '确定' }) return false } let inData={ taskNo:this.scanTaskNo, reportFlag:'N' } getHunlianTaskData(inData).then(({data}) => { let list = data.rows; if(list.length==0){ this.scanTaskNo='' this.$alert("该任务单不存在或者已经报过工!", '错误', { confirmButtonText: '确定' }) return false }else { let row=list[0] if(row.flFlag=='N'){ this.$message.error("尚未发料,不允许报工!") return } if(row.orderRef1==''||row.orderRef1==null){ this.reportFlag=true }else { this.reportFlag=false } this.reportData.site=row.site; this.reportData.taskNo=row.taskNo; this.reportData.qtyRequired=row.taskQty; this.reportData.reportQty=''; this.reportData.partNo=row.partNo; this.reportData.userId=row.userId; this.reportData.qtyReal=0; this.reportData.qtyRef=0; this.getPartNoOnHand(row.site,row.partNo); this.scanModalFlag = false this.reportModalFlag=true; } }) }, createExportData () { return this.tableData }, startDownload () { // this.exportData = this.dataList
}, finishDownload () {
}, getStrDate () { let dd = new Date() let Y = dd.getFullYear() let M = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1)// 获取当前月份的日期,不足10补0
let D = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate()// 获取当前几号,不足10补0
let H = dd.getHours() < 10 ? '0' + dd.getHours() : dd.getHours() let MM = dd.getMinutes() < 10 ? '0' + dd.getMinutes() : dd.getMinutes() let S = dd.getSeconds() < 10 ? '0' + dd.getSeconds() : dd.getSeconds() return Y + M + D + H + MM + S } }, created() { } }</script>
<style > .el-table .cell { padding: 0px; }</style>
|