| | |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | | <view class="packing-registration-param-item-left"> |
| | | <text class="item-one">工单</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two" @click="seachWork()">{{ |
| | | registerInfo.optaskNo == "" ? "点击选择" : registerInfo.optaskNo |
| | | }}</text> |
| | | <u-icon name="arrow-right" color="#687792" size="28" @click="seachWork()" |
| | | v-show="registerInfo.optaskNo == ''"></u-icon> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | | <view class="packing-registration-param-item-left"> |
| | | <text class="item-one">机台</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <picker class="item-one item-two" style="width: 100%; text-align: right" |
| | | @change="machineChange($event, machineList)" :value="machineIndex" :range="machineList" |
| | | range-key="label"> |
| | | <view> |
| | | <text :style="{ color: machineIndex == null ? '#a5abb4' : '#a5abb4' }">{{ |
| | | machineIndex == null |
| | | ? "点击选择" |
| | | : machineList[machineIndex].label |
| | | }}</text> |
| | | </view> |
| | | </picker> |
| | | <u-icon v-if="machineIndex == null" name="arrow-right" color="#687792" size="28"></u-icon> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | | <view class="packing-registration-param-item-left"> |
| | | <text class="item-one">子件</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two" @click="seachComp()">{{ |
| | | registerInfo.value2 == "" ? "点击选择" : registerInfo.value2 |
| | | registerInfo.partNo == "" ? "点击选择" : registerInfo.partNo |
| | | }}</text> |
| | | <u-icon name="arrow-right" color="#687792" size="28" @click="seachComp()" |
| | | v-show="registerInfo.value2 == ''"></u-icon> |
| | | v-show="registerInfo.partNo == ''"></u-icon> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | |
| | | <text class="item-one">零件描述</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two">{{ registerInfo.value3 }}</text> |
| | | <text class="item-one item-two">{{ registerInfo.partName }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | |
| | | <view class="_label-name">批号:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value0 }} |
| | | {{ item.outBatchNo }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | |
| | | <view class="_label-name">下发数量:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value1 }} |
| | | {{ item.suppliedQuantity }} |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | <text class="item-one">批号</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two">{{ modalList.value }}</text> |
| | | <text class="item-one item-two">{{ |
| | | modalList.outBatchNo |
| | | }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | | <view class="packing-registration-param-item-left"> |
| | | <text class="item-one">库位</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <text class="item-one item-two">{{ |
| | | modalList.locationNo |
| | | }}</text> |
| | | </view> |
| | | </view> |
| | | <view class="packing-registration-param-item param-extra"> |
| | |
| | | <text class="item-one">下发数量</text> |
| | | </view> |
| | | <view class="packing-registration-param-item-right"> |
| | | <u-input class="item-one item-two" v-model="modalList.value1" /> |
| | | <u-input class="item-one item-two" v-model="modalList.suppliedQuantity" /> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | whiteSpace: "nowrap", |
| | | }, |
| | | // 弹窗列表 |
| | | modalList: { |
| | | value: "", |
| | | value1: "", |
| | | }, |
| | | modalList: {}, |
| | | // 主页面列表 |
| | | registerInfo: { |
| | | operationTaskId: '', |
| | | id: "", |
| | | moNo: "", |
| | | value2: "", |
| | | value3: "", |
| | | partNo: "", |
| | | partName: "", |
| | | optaskNo: "", |
| | | workstationId: '' |
| | | }, |
| | | // 下发记录列表 |
| | | hasScanSnList: [], |
| | | codeInfoId: "", |
| | | showModal: false, |
| | | machineIndex: null, |
| | | machineList: [], |
| | | |
| | | }; |
| | | }, |
| | | onShow() { |
| | | let that = this; |
| | | uni.$off("scan"); // 每次进来先 移除全局自定义事件监听器 |
| | | if ((registerInfo.moNO = null)) { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: "请先选择子件!", |
| | | duration: 2 * 1000, |
| | | }); |
| | | return; |
| | | } |
| | | uni.$on("scan", function(data) { |
| | | console.log("onscan"); |
| | | //扫码成功后的回调,你可以写自己的逻辑代码在这里 |
| | | console.log("扫码结果:", data.code); |
| | | that.scanHandle(data.code); |
| | | that.$forceUpdate(); |
| | | if (that.registerInfo.partNo == "") { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: "请先选择子件!", |
| | | duration: 2 * 1000, |
| | | }); |
| | | return; |
| | | } |
| | | if (that.registerInfo.workstationId == "") { |
| | | uni.showToast({ |
| | | icon: "none", |
| | | title: "请先选择机台!", |
| | | duration: 2 * 1000, |
| | | }); |
| | | return; |
| | | } |
| | | if (data.code) { |
| | | //扫码成功后的回调,你可以写自己的逻辑代码在这里 |
| | | console.log("扫码结果:", data.code); |
| | | let codeInfo = JSON.parse(data.code); |
| | | that.codeInfoId = codeInfo.id; |
| | | if (codeInfo.partNo) { |
| | | if (that.registerInfo.partNo != codeInfo.partNo) { |
| | | this.$u.toast("当前子件和扫码子件不一致!"); |
| | | return; |
| | | } |
| | | // 扫描报工单二维码 |
| | | that.scanHandle(codeInfo); |
| | | that.$forceUpdate(); |
| | | // that.getHandelList(); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | methods: { |
| | | //机台 |
| | | machineChange(e, storage, code) { |
| | | this.hasScanSnList = [] |
| | | if (storage.length <= 0) { |
| | | this.machineIndex = null; |
| | | return; |
| | | } |
| | | this.machineIndex = e.target.value; |
| | | this.registerInfo.workstationId = storage[this.machineIndex].value; |
| | | }, |
| | | // getHandelList() { |
| | | // this.$u.api.workReporting |
| | | // .getProductMainV1({ |
| | | // current: 1, |
| | | // size: -1, |
| | | // id: this.codeInfoId, |
| | | // }) |
| | | // .then((res) => { |
| | | // this.hasScanSnList = res.data.productOutputList; |
| | | // }); |
| | | // }, |
| | | // 点击确认后获取下发记录 |
| | | confirm() { |
| | | // 处理确认逻辑 |
| | | this.showModal = false; |
| | | this.$u.api.workReporting |
| | | ._({}).then((res) => { |
| | | console.log("res", res); |
| | | this.hasScanSnList = res.data.records; |
| | | }); |
| | | this.$u.api.WorkshopOrderIssued.feeding({ |
| | | feedingFrom: "stocker", |
| | | operationTaskId: this.registerInfo.operationTaskId, |
| | | feeds: [{ |
| | | ...this.modalList |
| | | }] |
| | | }).then( |
| | | (res) => { |
| | | console.log("res", res); |
| | | if (res.code === 0) { |
| | | this.$u.toast("提交成功"); |
| | | this.showModal = false; |
| | | const obj = { |
| | | suppliedQuantity: this.modalList.suppliedQuantity, |
| | | outBatchNo: this.modalList.outBatchNo, |
| | | } |
| | | this.hasScanSnList.push(obj) |
| | | } |
| | | } |
| | | ); |
| | | }, |
| | | // 模态框取消 |
| | | cancel() { |
| | | this.showModal = false; // 关闭弹窗 |
| | | }, |
| | | // 工单回显 |
| | | workNo(val) { |
| | | this.machineList = [] |
| | | this.machineIndex = null |
| | | this.registerInfo.workstationId = '' |
| | | this.registerInfo.partName = '' |
| | | this.registerInfo.partNo = '' |
| | | this.$u.api.WorkshopOrderIssued |
| | | .selWorkStation(val) |
| | | .then((res) => { |
| | | console.log('111', res) |
| | | if (res.code === 0 && res.data.length > 0) { |
| | | res.data.forEach(i => { |
| | | const obj = Object.assign({ |
| | | label: i.name, |
| | | value: i.id, |
| | | }) |
| | | this.machineList.push(obj) |
| | | }) |
| | | } |
| | | }); |
| | | this.registerInfo.optaskNo = val.optaskNo; |
| | | this.registerInfo.operationTaskId = val.id; |
| | | this.hasScanSnList = [] |
| | | }, |
| | | // 子件回显 |
| | | compNo(val) { |
| | | this.registerInfo.value2 = val.value2; |
| | | this.registerInfo.value3 = val.value2; |
| | | this.registerInfo.partNo = val.partNo; |
| | | this.registerInfo.partName = val.partName; |
| | | }, |
| | | // 订单号回显 |
| | | setNo(val) { |
| | | console.log("11111", val); |
| | | this.registerInfo.moNo = val.moNo; |
| | | this.registerInfo.value2 = val.value2; |
| | | this.registerInfo = { |
| | | operationTaskId: '', |
| | | id: val.id, |
| | | moNo: val.moNo, |
| | | partNo: "", |
| | | partName: "", |
| | | optaskNo: "", |
| | | workstationId: '' |
| | | }, |
| | | this.machineList = [] |
| | | this.machineIndex = null |
| | | this.hasScanSnList = [] |
| | | }, |
| | | //订单号 |
| | | seachPersonnelNo() { |
| | |
| | | }, |
| | | //子件 |
| | | seachComp() { |
| | | if (this.registerInfo.value1 == null || this.registerInfo.value1 == "") { |
| | | if (this.registerInfo.optaskNo == "") { |
| | | this.$u.toast("请选择工单号"); |
| | | return; |
| | | } |
| | | console.log("子件"); |
| | | // 使用uni.navigateTo方法跳转,并通过queryParams传递参数 |
| | | uni.navigateTo({ |
| | | url: "/pages/product/WorkshopOrderIssued/comp?operationTaskId=" + |
| | | encodeURIComponent(JSON.stringify(this.registerInfo.operationTaskId)), |
| | | }); |
| | | }, |
| | | //工单 |
| | | seachWork() { |
| | | if (this.registerInfo.moNo == "") { |
| | | this.$u.toast("请选择订单号"); |
| | | return; |
| | | } |
| | | console.log("子件"); |
| | | // 使用uni.navigateTo方法跳转,并通过queryParams传递参数 |
| | | uni.navigateTo({ |
| | | url: "/pages/product/WorkshopOrderIssued/comp", |
| | | url: "/pages/product/WorkshopOrderIssued/WorkOrderList?id=" + |
| | | encodeURIComponent(JSON.stringify(this.registerInfo.id)), |
| | | }); |
| | | }, |
| | | // 扫码后数据回显 |
| | | scanHandle(scanresult) { |
| | | this.$u.api.workReporting |
| | | ._({}).then((res) => { |
| | | this.modalList = res.data.records; |
| | | this.showModal = true; |
| | | }); |
| | | scanHandle(val) { |
| | | const { |
| | | outBatchNo |
| | | } = val |
| | | const { |
| | | workstationId, |
| | | operationTaskId |
| | | } = this.registerInfo |
| | | const obj = { |
| | | outBatchNo: outBatchNo, |
| | | workstationId: workstationId, |
| | | operationTaskId: operationTaskId, |
| | | } |
| | | this.$u.api.WorkshopOrderIssued.checkRawPartPDA(obj).then( |
| | | (res) => { |
| | | console.log("res", res); |
| | | if (res.code === 0) { |
| | | res.data.workstationId = workstationId, |
| | | this.modalList = res.data; |
| | | this.showModal = true; |
| | | } |
| | | } |
| | | ); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .popup-content { |
| | | width: 600rpx; |
| | | height: 350rpx; |
| | | background-color: #fff; |
| | | border-radius: 8px; |
| | | z-index: 10; |
| | | /* 确保内容在蒙版之上 */ |
| | | } |
| | | |
| | | .packing-registration-bg { |
| | | background-color: #f6f9ff; |
| | | background-image: url("~@/static/custom/packing/backBg.png"); |
| | |
| | | margin-left: 14rpx; |
| | | font-size: 34rpx; |
| | | font-weight: bold; |
| | | color: #283e65; |
| | | color: #283E65; |
| | | } |
| | | } |
| | | |
| | | .packing-registration-param-view { |
| | | height: 345rpx; |
| | | height: 550rpx; |
| | | background-color: #fff; |
| | | border-radius: 10rpx; |
| | | padding: 0rpx 23rpx; |
| | |
| | | |
| | | .packing-registration-param-item { |
| | | height: 90rpx; |
| | | border: 1px solid #adc8e4; |
| | | border: 1px solid #ADC8E4; |
| | | line-height: 90rpx; |
| | | display: flex; |
| | | justify-content: space-between; |
| | |
| | | } |
| | | } |
| | | |
| | | .packing-registration-param-item-right { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .packing-registration-param-item-right { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .item-one { |
| | | font-size: 30rpx; |
| | | color: #333333; |
| | | margin-right: 6rpx; |
| | | } |
| | | .item-one { |
| | | font-size: 30rpx; |
| | | color: #060505; |
| | | margin-right: 6rpx; |
| | | } |
| | | |
| | | .item-two { |
| | | font-size: 30rpx; |
| | | color: #a6b4cc; |
| | | margin-right: 6rpx; |
| | | } |
| | | .item-two { |
| | | font-size: 30rpx; |
| | | color: #a6b4cc; |
| | | margin-right: 6rpx; |
| | | } |
| | | |
| | | .item-three { |
| | | font-size: 30rpx; |
| | | color: #214ded; |
| | | margin-right: 6rpx; |
| | | } |
| | | } |
| | | } |
| | | .item-three { |
| | | font-size: 30rpx; |
| | | color: #214ded; |
| | | margin-right: 6rpx; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .param-extra { |
| | | border-bottom: 1px solid #ededed; |
| | | border-bottom: 1px solid #EDEDED; |
| | | } |
| | | } |
| | | } |