<!-- 手动出库扫描添加 --> <template> <view class="container-wrap"> <uni-nav-bar title="扫描添加" :status-bar="true" background-color="#3F92F9" color="#FFF"> <view slot="left"> <u-icon name="account-fill" color="#FFF" size="35"></u-icon> <span style="padding: 0 5rpx;color: #FFFFFF;">{{ userInfo.name }}</span> </view> <view slot="right" @tap="$utils.back()"> <span style="color: #FFFFFF;">返回</span> </view> </uni-nav-bar> <view class="container"> <!-- 扫描rfid --> <view class="reading"> <view class="title">请扫描要出库的<br/>物料RFID标签</view> <u-image height="300rpx" mode="aspectFit" src="../../../static/images/rfid.png"></u-image> <view class="title" v-if="isReading">扫描中...</view> <view class="title" v-if="!isReading">扫描结果</view> </view> <!-- 扫描到RFID标签时,打开质检结果 --> <view v-if="!isReading" class="info"> <view class="title">物料信息</view> <view class="row flex-start"> <view class="label"> 物料标签: </view> <view class="value"> {{ data.rfidCode }} </view> </view> <view class="row flex-start"> <view class="label"> 物料编码: </view> <view class="value"> {{ data.materialCode }} </view> </view> <view class="row flex-start"> <view class="label"> 物料名称: </view> <view class="value"> {{ data.materialName }} </view> </view> <view class="row flex-start"> <view class="label"> 物料规格: </view> <view class="value"> {{ data.spec }} </view> </view> <view class="row flex-start"> <view class="label"> 物料数量: </view> <view class="value"> {{ data.quantity }} </view> </view> </view> <view class="btn" v-if="!isReading"> <view class="row"> <u-button throttleTime="300" type="primary" style="width: 100%;" @click="cfm">确定</u-button> </view> <view class="row"> <u-button throttleTime="300" type="error" style="width: 100%;" @click="$utils.back()">取消</u-button> </view> </view> </view> </view> </template> <script> // #ifdef APP-PLUS // #endif export default { data() { return { rfidCode: '', isReading: true, data: {}, timer: null, isActive: true, }; }, methods: { cfm() { uni.$emit('scan-list', { ...this.data, takeQty: this.data.quantity, rfidCode: this.rfidCode }) this.$utils.back() }, getList() { this.$http.ScanRfidCodeStockTag({ rfidCode: this.rfidCode, checkRfidType: 1, }).then(res => { console.log(res) if(res.code === 0) { this.isReading = false this.data = res.result } else { this.$msg.showToast(res.msg) if(this.isActive) { this.scanRfid() } } }) }, scanRfid() { this.$pda.uhfScan().then(res => { console.log(res) this.rfidCode = res[0].epc this.getList() console.log(this.rfidCode) }).catch(() => { this.$msg.showToast('未识别到有效RFID标签!') this.timer = setTimeout(() => { this.$utils.back() }, 1000) }) } }, onLoad(option) { this.isActive = true this.scanRfid() }, onUnload() { this.isActive = false clearTimeout(this.timer) this.$pda.uhfStop() } } </script> <style lang="scss" scoped> .container-wrap { overflow: hidden; .container { padding: 0 60rpx; padding-bottom: 80rpx; height: calc(100vh - var(--status-bar-height) - 44px); overflow: auto; .title { padding: 20rpx 0; font-size: 36rpx; font-weight: bold; text-align: center; } .reading { padding: 40rpx 0; } .info { padding: 20rpx 60rpx; border-radius: 10rpx ; background-color: #FFFFFF; .row { align-items: flex-start; .label { font-size: 32rpx; width: 160rpx; } .value { font-size: 32rpx; flex: 1; overflow: hidden; word-wrap: break-word; } } } .btn { margin-top: 20rpx; .row { padding: 0; padding-bottom: 10rpx; width: 100%; &:last-child { padding-bottom: 0; } } } } } </style>