| | |
| | | <template> |
| | | <default-header-page-layout ref="page" title="出库执行"> |
| | | |
| | | <view class="page-frame with-action-user-row" :style="{height:pageBodyHeight+'px'}" v-if="pageBodyHeight"> |
| | | <action-user-row /> |
| | | <scan-input-form-item :inputFocus="inputFocus" v-model="OP80NewCode" class="forma-item" :label="baseTitile" |
| | | :msg="msg" :msg-type="msgType" @search="onSearchContainter" @clear="onClearContainter" /> |
| | | <view class="with-action-user-row-page-content"> |
| | | <scan-input-form-item :inputFocus="inputFocus" v-model="OP80NewCode" class="forma-item" label="OP80成品码/工件二维码" :msg="msg" :msg-type="msgType" |
| | | @search="onSearchContainter" @clear="onClearContainter" /> |
| | | |
| | | <Content @deleteData="deleteData" :workPieceData="workPieceData" /> |
| | | |
| | | |
| | | <Content @deleteData="deleteData" :workPieceData="workPieceData" /> |
| | | </view> |
| | | <modalPwd @reflesh="reflesh" ref="pwdRef"/> |
| | | <modalPwd @reflesh="reflesh" ref="pwdRef" /> |
| | | </view> |
| | | <template v-slot:footer> |
| | | <view class="bottom-btns-row"> |
| | | <view class="btn-frame right-btn-frame"> |
| | | <u-button :disabled="workPieceData.length<1" type="primary" text="确认出库" @click="outBoundConfirm"></u-button> |
| | | <u-button :disabled="workPieceData.length<1" type="primary" text="确认出库" |
| | | @click="outBoundConfirm"></u-button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | |
| | | import ScanInputFormItem from './modules/ScanInputFormItem.vue' |
| | | import Content from './modules/content.vue' |
| | | import modalPwd from './modules/modalPwd.vue' |
| | | import Vue from 'vue' |
| | | import { |
| | | parseDic, |
| | | $alert, |
| | |
| | | } from '@/static/js/utils/index.js' |
| | | import { |
| | | getWorkPieceByOP80NewCode, |
| | | outBoundWorkPiece |
| | | outBoundWorkPiece, |
| | | getOutBoundWorkPieceInfoCount |
| | | } from '@/api/outBound/index.js' |
| | | import {listbycode} from '@/api/common/index.js' |
| | | import { |
| | | listbycode |
| | | } from '@/api/common/index.js' |
| | | export default { |
| | | name: 'baseInPage', |
| | | components: { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | barHeight: '', |
| | | ckNumToday: "0", //今天总出库数 |
| | | baseTitile: '扫描成品码/工件二维码', //扫描成品码/工件二维码 |
| | | title: '', |
| | | pageBodyHeight: 0, |
| | | initInterVal: null, |
| | | myInterval: null, |
| | | msg: '', |
| | | msgType: 'error', |
| | | OP80NewCode: '', |
| | | workPieceData:[], |
| | | workPieceData: [], |
| | | workPieceStatus: [], |
| | | inputFocus:true, |
| | | inputFocus: true, |
| | | // codeLength:1 |
| | | } |
| | | }, |
| | | onLoad() { |
| | | var _this = this; |
| | | _this._getOutBoundWorkPieceInfoCount(); |
| | | //不再循环读 |
| | | /* |
| | | this.myInterval = setInterval(function() { |
| | | _this._getOutBoundWorkPieceInfoCount(); |
| | | }, 1000 * 10); |
| | | //*/ |
| | | //this.myInterval=setInterval(this.myFun(), 3000); |
| | | }, |
| | | methods: { |
| | | // 获取工件信息 |
| | | async _getOutBoundWorkPieceInfoCount(OP80NewCode) { |
| | | try { |
| | | let { |
| | | data |
| | | } = await getOutBoundWorkPieceInfoCount(null) |
| | | this.ckNumToday = data; |
| | | } catch (e) {} |
| | | this.setMsg(); |
| | | }, |
| | | // 获取工件信息 |
| | | async onSearchContainter(OP80NewCode) { |
| | | //debugger |
| | | if (OP80NewCode.length != 21) { |
| | | this.initFocus(100); |
| | | // uni.showToast({ |
| | | // title: '工件码或成品码长度不正确', |
| | | // icon: 'error', |
| | | // duration: 2000, |
| | | // mask: true |
| | | // }); |
| | | return; |
| | | } |
| | | |
| | | this.inputFocus = false |
| | | const param = { |
| | | OP80NewCode: OP80NewCode |
| | | } |
| | | try{ |
| | | let {data}=await getWorkPieceByOP80NewCode(param) |
| | | if(!this.workPieceData.some(item=>item.workPieceID==data.workPieceID)) { |
| | | try { |
| | | let data={}; |
| | | data.addTime = new Date(); |
| | | data.workPieceID=OP80NewCode; |
| | | data.oP80NewCode=OP80NewCode; |
| | | if (!this.workPieceData.some(item => item.workPieceID == data.workPieceID)) { |
| | | data.addTime = new Date(); |
| | | this.workPieceData.push(data) |
| | | } |
| | | console.log(this.workPieceData,'dsts'); |
| | | this.inputFocus=false |
| | | setTimeout(()=>{ |
| | | this.OP80NewCode = '' ;//每次刷完就清空输入框 【Editby shaocx,2024-06-12】 |
| | | this.inputFocus=true |
| | | },100) |
| | | }catch(e){ |
| | | //顺序调转,排序 |
| | | this.workPieceData.sort((a, b) => b.addTime - a.addTime); |
| | | |
| | | this.OP80NewCode = ''; //每次刷完就清空输入框 【Editby shaocx,2024-06-12】 |
| | | this.initFocus(100); |
| | | //console.log(this.workPieceData,'dsts'); |
| | | // setTimeout(()=>{ |
| | | // this.OP80NewCode = '' ;//每次刷完就清空输入框 【Editby shaocx,2024-06-12】 |
| | | // this.inputFocus=true |
| | | // },100) |
| | | } catch (e) { |
| | | //debugger |
| | | this.initFocus(100); |
| | | //TODO handle the exception |
| | | console.log(e); |
| | | } |
| | | //this.msg = " 扫码数:"+this.workPieceData.length+" 今日出库数:"; |
| | | this.setMsg(); |
| | | }, |
| | | setMsg() { |
| | | this.msg = " 扫码数:" + this.workPieceData.length + " 今日出库数:" + this.ckNumToday; |
| | | }, |
| | | initFocus(num) { |
| | | setTimeout(() => { |
| | | this.OP80NewCode = ''; //每次刷完就清空输入框 【Editby shaocx,2024-06-12】 |
| | | this.inputFocus = true |
| | | }, num) |
| | | }, |
| | | // 获取扫码长度 |
| | | // async listbycode(){ |
| | |
| | | // //TODO handle the exception |
| | | // console.log(e); |
| | | // } |
| | | |
| | | |
| | | // }, |
| | | onClearContainter() { |
| | | this.OP80NewCode = '' |
| | | }, |
| | | deleteData(opt){ |
| | | this.workPieceData=this.workPieceData.filter(item=>item.workPieceID!=opt.workPieceID) |
| | | deleteData(opt) { |
| | | this.workPieceData = this.workPieceData.filter(item => item.workPieceID != opt.workPieceID) |
| | | this.setMsg(); |
| | | }, |
| | | reflesh(){ |
| | | reflesh() { |
| | | this.OP80NewCode = '' |
| | | this.workPieceData=[] |
| | | this.workPieceData = [] |
| | | setTimeout(() => { |
| | | this._getOutBoundWorkPieceInfoCount(); |
| | | this.setMsg(); |
| | | }, 1000) |
| | | }, |
| | | outBoundConfirm(){ |
| | | outBoundConfirm() { |
| | | this.$refs.pwdRef.showModal(this.workPieceData) |
| | | |
| | | /* |
| | | // 存在非成品 |
| | | const flag=this.workPieceData.some(item=>item.workPieceState!=10) |
| | | if(flag) { |
| | | const flag = this.workPieceData.some(item => item.workPieceState != 10) |
| | | if (flag) { |
| | | uni.showModal({ |
| | | title:'提示', |
| | | content:'当前工件存在非成品,确定强制出库吗?', |
| | | success:(value)=>{ |
| | | const {confirm,cancel}=value |
| | | if(confirm) { |
| | | title: '提示', |
| | | content: '当前工件存在非成品,确定强制出库吗?', |
| | | success: (value) => { |
| | | const { |
| | | confirm, |
| | | cancel |
| | | } = value |
| | | if (confirm) { |
| | | this.$refs.pwdRef.showModal(this.workPieceData) |
| | | } |
| | | } |
| | | }) |
| | | }else{ |
| | | } else { |
| | | this.$refs.pwdRef.showModal(this.workPieceData) |
| | | } |
| | | |
| | | //*/ |
| | | |
| | | }, |
| | | /* 页面初始化获取页面body高度的定时器 */ |
| | | startInitInterval(callback) { |
| | | this.initInterVal = setInterval(() => { |
| | | //console.log('bbb') |
| | | if (this.pageBodyHeight) { |
| | | this.clearInitInterval() |
| | | callback && callback() |
| | |
| | | /* 清除定时器 */ |
| | | clearInitInterval() { |
| | | try { |
| | | //alert('执行'); |
| | | clearInterval(this.initInterVal) |
| | | this.initInterVal = null |
| | | } catch (e) { |
| | | //TODO handle the exception |
| | | } |
| | | }, |
| | | clearInitInterval2() { |
| | | try { |
| | | clearInterval(this.myInterval) |
| | | this.myInterval = null |
| | | } catch (e) { |
| | | //TODO handle the exception |
| | | } |
| | | }, |
| | | comfirmUpdate() { |
| | | this.$refs.pwdRef.showModal(this.barDetail); |
| | | }, |
| | | myFun() { |
| | | console.log('aaaa') |
| | | } |
| | | }, |
| | | onReady() { |
| | | this.setMsg(); |
| | | |
| | | this.startInitInterval(() => { |
| | | /* 页面初始化后需要执行的代码在这边调用 */ |
| | | // this.listbycode() |
| | | |
| | | }) |
| | | }, |
| | | mounted() { |
| | | // 设置fixed定位 |
| | | //this.barHeight = Vue.prototype.CustomBar || 45 |
| | | this.barHeight = Vue.prototype.CustomBar |
| | | }, |
| | | onUnload() { |
| | | //alert(11); 页面离开时 |
| | | this.clearInitInterval() |
| | | } |
| | | this.clearInitInterval2(); |
| | | }, |
| | | //监听原生返回键 |
| | | onBackPress(e) { |
| | | // 此处一定要return为true,否则页面不会返回到指定路径 |
| | | if (1 != 1) { |
| | | return false //可返回 |
| | | } else { |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: '是否确认返回?', |
| | | showCancel: true, |
| | | cancelColor: '#333333', |
| | | success: (res => { |
| | | if (res.confirm) { |
| | | uni.redirectTo({ |
| | | url: '/pages/home/index' |
| | | }) |
| | | } else if (res.cancel) { |
| | | |
| | | } |
| | | }) |
| | | }); |
| | | return true |
| | | } |
| | | }, |
| | | } |
| | | </script> |
| | | |