| | |
| | | <uni-forms-item :label="label" style="margin-top: -20px;"></uni-forms-item> |
| | | <!-- <uni-forms-item label="åæ®ç±»åï¼çäº§é¢æå" style="margin-top: -20px;"></uni-forms-item> --> |
| | | <uni-forms-item label="å
ç®±ç ï¼" style="margin-top: -20px;"> |
| | | <uni-easyinput type="text" placeholder="è¯·æ«æå
ç®±ç " ref='midInput' :focus="focus" |
| | | <uni-easyinput type="text" placeholder="è¯·æ«æå
ç®±ç " ref='midInput' :focus="!focus" |
| | | v-model="innerCode" @input="innercodeInput" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item :label="PurchaseOrderNo" style="margin-top: -20px;"></uni-forms-item> |
| | |
| | | </uni-forms-item> |
| | | </uni-forms> |
| | | <uni-forms-item> |
| | | <button @click="submit" type="primary" size="default" style="margin-top: 2%;">确认æ¶è´§</button> |
| | | <view class="uni-flex uni-row" style="justify-content: space-between;margin-top: 2%;height: 45px;width: 520rpx;margin: 0px auto;"> |
| | | <view> |
| | | <button @click="resetReceive" type="default" size="default" style="width: 200rpx;border: 1rpx solid #007aff;color: #007aff;">éç½®</button> |
| | | </view> |
| | | <view> |
| | | <button @click="submit" type="primary" size="default" style="width: 220rpx;">确认æ¶è´§</button> |
| | | </view> |
| | | </view> |
| | | </uni-forms-item> |
| | | <uni-forms-item> |
| | | <button @click="submit1" type="primary" size="default" style="margin-top: 2%;">宿æ¶è´§</button> |
| | | <view style="margin-top: 2%;height: 45px;width: 520rpx;margin: 0px auto;"> |
| | | <button @click="submit1" type="primary" size="default" style="margin-top: 2%;backgroundColor:#1AAD19;borderColor:#1AAD19">宿æ¶è´§</button> |
| | | </view> |
| | | </uni-forms-item> |
| | | </view> |
| | | </view> |
| | |
| | | </uni-forms-item> |
| | | </uni-forms> --> |
| | | <uni-list :border="true"> |
| | | <uni-list-item direction="column" v-for="(item,index) in orderInfo" :key="item.id"> |
| | | <uni-list-item direction="column" v-for="item in orderinfoDetails" :key="item.id"> |
| | | <template v-slot:body> |
| | | <view class="uni-content"> |
| | | <view style="font-size: 18px;">æ¶è´§åå·ï¼{{orderNo}}</view> |
| | | <view style="font-size: 18px;">éè´åå·ï¼{{item.purchaseOrderNo}}</view> |
| | | <view style="font-size: 18px;">ç©æç¼å·ï¼{{item.materielCode}}</view> |
| | | <view style="font-size: 18px;">æ¹æ¬¡å·ï¼{{item.lotNo}}</view> |
| | | <view style="font-size: 18px;">æ¶è´§æ°éï¼{{item.receivedQuantity}}</view> |
| | | <view style="font-size: 18px;">æ¯å¦è´¨æ£ï¼{{item.ifInspection==1?"æ¯":"å¦"}}</view> |
| | | <view>æ¶è´§åå·ï¼{{orderNo}}</view> |
| | | <view>éè´åå·ï¼{{item.purchaseOrderNo}}</view> |
| | | <view>ç©æç¼å·ï¼{{item.materielCode}}</view> |
| | | <view>ç©æåç§°ï¼{{item.materielName}}</view> |
| | | <view>ç©æè§æ ¼ï¼{{item.materielSpec}}</view> |
| | | <view>æ¹æ¬¡å·ï¼{{item.lotNo}}</view> |
| | | <view>æ¶è´§æ°éï¼{{item.receivedQuantity}}</view> |
| | | <view>æ¯å¦è´¨æ£ï¼{{item.ifInspection==1?"æ¯":"å¦"}}</view> |
| | | </view> |
| | | </template> |
| | | </uni-list-item> |
| | |
| | | import { |
| | | config |
| | | } from '../../common/config'; |
| | | import message from '../../tuniao-ui/libs/function/message'; |
| | | const innerAudioContext = uni.createInnerAudioContext(); |
| | | export default { |
| | | data() { |
| | |
| | | current: 0, |
| | | orderNo: "", |
| | | orderInfo: [], |
| | | orderinfoDetails:[], |
| | | label: "", |
| | | innerCode: "", |
| | | PurchaseOrderNo: "éè´åå·ï¼", |
| | |
| | | remaindQty: "å®é
æ°éï¼", |
| | | tagFocus: true, |
| | | numberFocus: false, |
| | | focus: true, |
| | | focus: false, |
| | | tag: "", |
| | | number: "", |
| | | tagmatCode: "ç©æç¼ç ï¼", |
| | |
| | | endTypeRange: [], |
| | | sns: "", |
| | | receiveOrderId: 0, |
| | | warehouseId:"", |
| | | toastQueue: [], // æç¤ºéå |
| | | isShowingToast: false |
| | | } |
| | | }, |
| | | |
| | |
| | | this.orderNo = res.orderNo; |
| | | this.receiveOrderId = res.receiveOrderId; |
| | | this.label = "æ¶è´§åå·ï¼" + this.orderNo; |
| | | this.warehouseId=res.warehouseId; |
| | | this.getData(); |
| | | }, |
| | | mounted() { |
| | |
| | | } |
| | | }, |
| | | methods: { |
| | | showToast(options) { |
| | | this.toastQueue.push(options); |
| | | this.processToastQueue(); |
| | | }, |
| | | |
| | | // å¤çæç¤ºéå |
| | | processToastQueue() { |
| | | // 妿æ£å¨æ¾ç¤ºæç¤ºæéå为空ï¼å䏿§è¡ |
| | | if (this.isShowingToast || this.toastQueue.length === 0) return; |
| | | |
| | | this.isShowingToast = true; |
| | | const toastOptions = this.toastQueue.shift(); |
| | | |
| | | // æ¾ç¤ºæç¤º |
| | | this.$refs.uToast.show({ |
| | | ...toastOptions, |
| | | complete: () => { |
| | | // æç¤ºå
³éåå¤çä¸ä¸ä¸ª |
| | | this.isShowingToast = false; |
| | | this.processToastQueue(); |
| | | } |
| | | }); |
| | | }, |
| | | inputDialogToggle(itemCode) { |
| | | this.itemCode = itemCode; |
| | | this.$refs.inputDialog.open() |
| | | }, |
| | | voiceSpeech(src) { |
| | | innerAudioContext.src = src; // '../../static/success.mp3'; |
| | | innerAudioContext.play(); |
| | | }, |
| | | // voiceSpeech(src) { |
| | | // innerAudioContext.src = src; // '../../static/success.mp3'; |
| | | // innerAudioContext.play(); |
| | | // }, |
| | | search() { |
| | | this.getData(); |
| | | }, |
| | | resetReceive(){ |
| | | this.PurchaseOrderNo="éè´åå·ï¼"; |
| | | this.matCode="ç©æç¼ç ï¼"; |
| | | this.LotNo="ç©ææ¹æ¬¡ï¼"; |
| | | this.orderQty="è®¢åæ°éï¼"; |
| | | this.ProductionDate="çäº§æ¥æï¼"; |
| | | this.EffectiveDate="æææ¥æï¼"; |
| | | this.Quantity=""; |
| | | setTimeout(() => { |
| | | this.innerCode=""; |
| | | this.focus=false; |
| | | }, 10); |
| | | }, |
| | | releasebox() { |
| | | if (this.releasevalue.length == 0) { |
| | |
| | | }); |
| | | }, |
| | | submit() { |
| | | if (this.sns == "") { |
| | | this.$refs.uToast.show({ |
| | | title: "è¯·æ«æå
ç®±æ ç¾", |
| | | type: 'error' |
| | | // æåçäº§æ¥æï¼æ ¼å¼ä¸º"çäº§æ¥æï¼YYYY-MM"ï¼ |
| | | const productionDateStr = this.ProductionDate.replace('çäº§æ¥æï¼', ''); |
| | | if (!productionDateStr) { |
| | | this.showToast({ |
| | | title: "æªè·åå°çäº§æ¥æ", |
| | | type: 'error' |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | // è§£æçäº§æ¥æçå¹´æ |
| | | const [prodYear, prodMonth] = productionDateStr.split('-').map(Number); |
| | | |
| | | // è·åå½åæ¥æçå¹´æ |
| | | const currentDate = new Date(); |
| | | const currentYear = currentDate.getFullYear(); |
| | | const currentMonth = currentDate.getMonth() + 1; |
| | | |
| | | // æ¯è¾å¹´ææ¯å¦ä¸è´ |
| | | const isDateMismatch = prodYear !== currentYear || prodMonth !== currentMonth; |
| | | if (isDateMismatch) { |
| | | this.showToast({ |
| | | title: "è¯¥ç©æçäº§æ¥æçå¹´æä¸å½åå¹´æä¸ä¸è´", |
| | | type: 'warning', |
| | | duration: 1500 |
| | | }); |
| | | } |
| | | |
| | | // åæç确认æ¶è´§é»è¾ |
| | | if (this.sns == "") { |
| | | this.$refs.uToast.show({ |
| | | title: "è¯·æ«æå
ç®±æ ç¾", |
| | | type: 'error' |
| | | }) |
| | | return; |
| | | } |
| | | if (this.Quantity == "") { |
| | | this.$refs.uToast.show({ |
| | | title: "请è¾å
¥å®é
æ°é", |
| | | type: 'error' |
| | | }) |
| | | return; |
| | | } |
| | | if(this.warehouseId==2){ |
| | | //æ¿æ¢æå®ä¸¤ä¸ªå符é´çå符 |
| | | this.sns = this.sns.replace(/(Q:)([^,PO]+)(,PO)/, (match, p1, p2, p3) => { |
| | | return p1 + this.Quantity + p3; |
| | | }); |
| | | } |
| | | const sendRequest = () => { |
| | | this.$u.post('/api/ReceiveOrderDetail/AddReceiveOrderDetail?serNum=' + this.sns + '&orderNo=' + this |
| | | .orderNo, {}).then(res => { |
| | | if (res.status) { |
| | | this.PurchaseOrderNo="éè´åå·ï¼"; |
| | | this.matCode="ç©æç¼ç ï¼"; |
| | | this.LotNo="ç©ææ¹æ¬¡ï¼"; |
| | | this.orderQty="è®¢åæ°éï¼"; |
| | | this.ProductionDate="çäº§æ¥æï¼"; |
| | | this.EffectiveDate="æææ¥æï¼"; |
| | | this.Quantity=""; |
| | | setTimeout(() => { |
| | | this.innerCode=""; |
| | | this.focus=false; |
| | | }, 100); |
| | | this.orderInfo=[]; |
| | | this.sns = ""; |
| | | this.$refs.uToast.show({ |
| | | title:"确认æ¶è´§æå", |
| | | type: "success" |
| | | }) |
| | | } else { |
| | | this.$refs.uToast.show({ |
| | | title: res.message, |
| | | type: "error" |
| | | }) |
| | | } |
| | | }) |
| | | return; |
| | | |
| | | }; |
| | | // å¦æææ¥æä¸å¹é
æç¤ºï¼çå¾
æç¤ºå®æååéè¯·æ± |
| | | if (isDateMismatch) { |
| | | setTimeout(sendRequest, 1500); // çå¾
1.5ç§ï¼ä¸æç¤ºæ¶é¿ä¸è´ï¼ |
| | | } else { |
| | | sendRequest(); // æ²¡ææ¥ææç¤ºï¼ç«å³åéè¯·æ± |
| | | } |
| | | if (this.Quantity == "") { |
| | | this.$refs.uToast.show({ |
| | | title: "请è¾å
¥å®é
æ°é", |
| | | type: 'error' |
| | | }) |
| | | return; |
| | | } |
| | | this.$u.post('/api/ReceiveOrderDetail/AddReceiveOrderDetail?serNum=' + this.sns + '&orderNo=' + this |
| | | .orderNo, {}).then(res => { |
| | | if (res.status) { |
| | | this.$refs.uToast.show({ |
| | | title: "确认æ¶è´§æå", |
| | | type: "success" |
| | | }) |
| | | this.orderInfo=[]; |
| | | this.sns = ""; |
| | | } else { |
| | | this.$refs.uToast.show({ |
| | | title: res.message, |
| | | type: "error" |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | submit1() { |
| | | this.$u.post('/api/ReceiveOrder/FeedbackReceiveOrder?orderId=' + this |
| | |
| | | }) |
| | | }, |
| | | onClickItem(e) { |
| | | console.log(1) |
| | | this.focus = false; |
| | | this.addressFocus = false; |
| | | if (this.current !== e.currentIndex) { |
| | |
| | | } |
| | | this.$u.post('/api/ReceiveOrderDetail/GetReceiveOrderInfos', postData).then((res) => { |
| | | if (res.status) { |
| | | this.orderInfo = res.data; |
| | | if (this.orderInfo.length > 3) { |
| | | this.orderinfoDetails = res.data; |
| | | if (this.orderinfoDetails.length > 3) { |
| | | this.loadVisible = true; |
| | | } |
| | | } |
| | |
| | | return; |
| | | } |
| | | var innerCode = this.innerCode; |
| | | setTimeout(() => { |
| | | this.innerCode = ""; |
| | | }, 10); |
| | | |
| | | this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + innerCode, {}).then((res) => { |
| | | if (res.status) { |
| | | this.sns = res.data.serialNumber; |
| | | // this.matInfos.splice(0, this.matInfos.length); |
| | | // this.matInfos.push(res.data); |
| | | this.matCode = "ç©æç¼ç ï¼" + res.data.materielCode; |
| | | this.LotNo = "ç©ææ¹æ¬¡ï¼" + res.data.lotNo; |
| | | this.PurchaseOrderNo = "éè´åå·ï¼" + res.data.purchaseOrderNo; |
| | | this.EffectiveDate = "æææ¥æï¼" + res.data.effectiveDate; |
| | | this.ProductionDate = "çäº§æ¥æï¼" + res.data.productionDate; |
| | | this.orderQty = "è®¢åæ°éï¼" + res.data.quantity; |
| | | this.Quantity = res.data.quantity; |
| | | if (res.message) { |
| | | //å°innerCode,SCåé¢çè¿è¡æ¿æ¢ç©º |
| | | if(this.warehouseId==11){ |
| | | innerCode=innerCode.replace(/,SC.*/, ''); |
| | | } |
| | | |
| | | if(innerCode.indexOf("POHA")>0){ |
| | | this.$u.post('/api/MaterielInfo/CodeAnalysis?serNum=' + innerCode, {}).then((res) => { |
| | | if (res.status) { |
| | | this.sns = res.data.serialNumber; |
| | | // this.matInfos.splice(0, this.matInfos.length); |
| | | // this.matInfos.push(res.data); |
| | | this.matCode = "ç©æç¼ç ï¼" + res.data.materielCode; |
| | | this.LotNo = "ç©ææ¹æ¬¡ï¼" + res.data.lotNo; |
| | | this.PurchaseOrderNo = "éè´åå·ï¼" + res.data.purchaseOrderNo; |
| | | this.EffectiveDate = "æææ¥æï¼" + res.data.effectiveDate; |
| | | this.ProductionDate = "çäº§æ¥æï¼" + res.data.productionDate; |
| | | this.orderQty = "è®¢åæ°éï¼" + res.data.quantity; |
| | | this.Quantity = res.data.quantity; |
| | | // setTimeout(() => { |
| | | // this.voiceSpeech('../../static/success.mp3'); |
| | | // }, 100); |
| | | } else { |
| | | this.$refs.uToast.show({ |
| | | title: res.message, |
| | | type: "error" |
| | | }) |
| | | setTimeout(() => { |
| | | this.voiceSpeech('../../static/fail.mp3'); |
| | | }, 100); |
| | | return; |
| | | // setTimeout(() => { |
| | | // this.voiceSpeech('../../static/fail.mp3'); |
| | | // }, 100); |
| | | } |
| | | setTimeout(() => { |
| | | this.voiceSpeech('../../static/success.mp3'); |
| | | }, 100); |
| | | } else { |
| | | this.$refs.uToast.show({ |
| | | title: res.message, |
| | | type: "error" |
| | | }) |
| | | setTimeout(() => { |
| | | this.voiceSpeech('../../static/fail.mp3'); |
| | | }, 100); |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | setTimeout(() => { |
| | | this.innerCode = ""; |
| | | this.focus=true; |
| | | }, 100); |
| | | }) |
| | | }, |
| | | tagInput() { |