| | |
| | | <template> |
| | | <view> |
| | | <view class="cu-form-group margin-top"> |
| | | <view> |
| | | 出库口 |
| | | </view> |
| | | <view class="uni-list-cell-db"> |
| | | <picker @change="bindPickerChange" :value="index" :range="array" range-key="name"> |
| | | <view class="uni-input">{{array[index]}}</view> |
| | | </picker> |
| | | </view> |
| | | <view> |
| | | <button v-model="matBtn" class="cu-btn bg-yellow" @click="toggle('right')"><text>+补充</text></button> |
| | | </view> |
| | | <view class="title">托盘码</view> |
| | | <input v-model="billNo" placeholder="扫码 / 输入" name="input" @input="findCode()" focus> |
| | | <button v-model="matBtn" class="cu-btn bg-yellow" @click="toggle('right')"><text>+补充</text></button> |
| | | |
| | | </view> |
| | | <view class="margin-top"> |
| | | <uni-table border stripe emptyText="暂无更多数据"> |
| | | <uni-tr> |
| | | <uni-th width="50">数量</uni-th> |
| | | <uni-th width="100">产品ID</uni-th> |
| | | <uni-th width="100">产品名称</uni-th> |
| | | <uni-th width="100">库位</uni-th> |
| | | <uni-th width="100">确认数量</uni-th> |
| | | <uni-th align="center" width="80">数量</uni-th> |
| | | <uni-th align="center" width="100">产品编码</uni-th> |
| | | <uni-th align="center" width="100">产品名称</uni-th> |
| | | <uni-th align="center" width="100">产品批号</uni-th> |
| | | <uni-th align="center" width="100">库位</uni-th> |
| | | <uni-th align="center" width="150">确认数量</uni-th> |
| | | </uni-tr> |
| | | <uni-tr v-for="(item, index) in locDetlData" :key="index"> |
| | | <uni-td>{{item.count}}</uni-td> |
| | | <uni-td>{{item.matNo}}</uni-td> |
| | | <uni-td>{{item.matName}}</uni-td> |
| | | <uni-td>{{item.itemBatch}}</uni-td> |
| | | <uni-td>{{item.locNo}}</uni-td> |
| | | <uni-td align="center"> |
| | | <button class="uni-button" size="mini" type="primary" @click="conf(index,item)">修改</button> |
| | | <button class="uni-button" size="mini" type="warn" @click="remove(index,item)">删除</button> |
| | | <button class ="cu-btn bg-orange margin-xs" @click="conf(index,item)">修改</button> |
| | | <button class ="cu-btn bg-red margin-xs" @click="remove(index,item)">删除</button> |
| | | </uni-td> |
| | | </uni-tr> |
| | | </uni-table> |
| | | |
| | | </view> |
| | | <view> |
| | | <button class="cu-btn bg-yellow pda-btn" @click="check">确 认</button> |
| | | <button class="cu-btn bg-grey pda-btn" @click="reset">重 置</button> |
| | | <view class="flex solid-bottom padding justify-around"> |
| | | <button class="cu-btn bg-yellow lg" @click="check">确 认</button> |
| | | <button class="cu-btn bg-grey lg" @click="reset">重 置</button> |
| | | </view> |
| | | <view> |
| | | <uni-popup ref="popup" background-color="#fff" style="width: 500rpx;"> |
| | |
| | | </view> |
| | | <view class="cu-form-group margin-top"> |
| | | <text class="title">规格型号</text> |
| | | <input type="text" name="input" autocomplete="off" v-model="specs"> |
| | | <input type="text" name="input" autocomplete="off" v-model="size"> |
| | | </view> |
| | | <view class="cu-form-group margin-top"> |
| | | <text class="title">单位</text> |
| | |
| | | </view> |
| | | <view class="cu-form-group margin-top"> |
| | | <text class="title">数量</text> |
| | | <uni-number-box @change="countDom" v-model="count" /> |
| | | <uni-number-box :min="0" :max="999" @change="countDom" v-model="count" /> |
| | | </view> |
| | | <button class="cu-btn bg-yellow pda-btn2" @click="confirm">提取</button> |
| | | <view class="flex solid-bottom padding justify-center"> |
| | | <button class="cu-btn bg-yellow pda-btn2" @click="confirm">提取</button> |
| | | </view> |
| | | |
| | | </view> |
| | | </uni-popup> |
| | |
| | | <uni-popup-message :type="msgType" :message="messageText" :duration="2000"></uni-popup-message> |
| | | </uni-popup> |
| | | </view> |
| | | <view> |
| | | <!-- 输入框示例 --> |
| | | <uni-popup ref="inputDialog" type="dialog"> |
| | | <uni-popup-dialog ref="inputClose" mode="input" title="产品数量" |
| | | placeholder="请输入组托数量" @confirm="dialogInputConfirm"> |
| | | <uni-number-box :min="0" :max="999" v-model="value" /> |
| | | </uni-popup-dialog> |
| | | </uni-popup> |
| | | </view> |
| | | <!-- <view> |
| | | <view class="uni-padding-wrap uni-common-mt"> |
| | | <view class="uni-btn-v"> |
| | | <button type="default" @tap="noTitlemodalTap">无标题的modal</button> |
| | | </view> |
| | | </view> |
| | | </view> --> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | return { |
| | | msgType: '', |
| | | messageText: '', |
| | | index: 0, |
| | | array: [], |
| | | matBtn:'', |
| | | souceData:[], // 初始化表格数据记录 |
| | | locDetlData:[], |
| | | matNo:'', |
| | | matName:'', |
| | | specs:'', |
| | | size:'', |
| | | unit:'', |
| | | count:'0', |
| | | count:0, |
| | | type: '', |
| | | msgType:'', |
| | | messageText:'', |
| | | baseIP:'', |
| | | outlet:'', |
| | | checkList:[], |
| | | sourceList:[], |
| | | minCount:0, |
| | | billNo:'', |
| | | matData:[], |
| | | rowNum:'', |
| | | value:'0', |
| | | } |
| | | }, |
| | | mounted(){ |
| | | // 获取IP端口 |
| | | const UIP = uni.getStorageSync('UIP'); |
| | | this.baseIP = UIP |
| | | // 获取出库口 |
| | | let that = this |
| | | uni.request({ |
| | | url: that.baseHttp + that.baseIP + that.baseUrl + "/available/take/check/site", |
| | | header: { |
| | | 'token':uni.getStorageSync('token') |
| | | }, |
| | | method: 'POST', |
| | | async: false, |
| | | success(res){ |
| | | if(res.data.code === 200){ |
| | | that.array = res.data.data |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | methods: { |
| | | // 提示窗口 |
| | |
| | | this.messageText = '提取失败' |
| | | this.$refs.message.open() |
| | | }, |
| | | // 出库口:180等 |
| | | bindPickerChange: function(e) { |
| | | // 根据托盘码查询 |
| | | findCode() { |
| | | let that = this |
| | | that.index = e.detail.value |
| | | that.outlet = that.array[that.index] |
| | | if (that.billNo.length === 0 || that.billNo.length !== 8) { |
| | | return |
| | | } |
| | | let barCode = that.billNo |
| | | // 赋值前清空表格 |
| | | that.locDetlData = [] |
| | | uni.request({ |
| | | url: that.baseHttp + that.baseIP + that.baseUrl + "/mobile/check/queryMatFromDevNo?devNo=" + that.outlet, |
| | | url: that.baseHttp + that.baseIP + that.baseUrl + "/mobile/check/queryMatFromBarCode?barCode=" + barCode, |
| | | header: { |
| | | 'content-type':'application/x-www-form-urlencoded', |
| | | 'token':uni.getStorageSync('token') |
| | | }, |
| | | data: { |
| | | barCode: barCode |
| | | }, |
| | | method:'GET', |
| | | async:false, |
| | | success(res){ |
| | | if(res.data.code === 200){ |
| | | console.log(1) |
| | | success(res) { |
| | | if (res.data.code === 200) { |
| | | that.locDetlData = res.data.data |
| | | if(res.data.data && res.data.data.length > 0){ |
| | | if (res.data.data && res.data.data.length > 0) { |
| | | res.data.data.map(function(item){ |
| | | that.souceData.push(item) |
| | | console.log(that.souceData) |
| | | }) |
| | | } |
| | | } else if (res.data.code = 403){ |
| | | } else if (res.data.code === 403) { |
| | | uni.navigateBack({ |
| | | delta: 1 |
| | | }) |
| | | } else { |
| | | this.messageToggle('error') |
| | | this.messageText = res.data.msg |
| | | that.messageToggle('error') |
| | | that.messageText = res.data.msg |
| | | } |
| | | } |
| | | |
| | | }) |
| | | |
| | | }, |
| | | // 点击补充的弹窗 |
| | | toggle(type) { |
| | |
| | | method: 'POST', |
| | | success(res){ |
| | | let data = res.data.data |
| | | |
| | | if(res.data.code === 200){ |
| | | if(data != null){ |
| | | that.matName = data.matName |
| | | that.specs = data.specs |
| | | that.size = data.size |
| | | that.unit = data.unit |
| | | } |
| | | } else if (res.data.code ===403 ){ |
| | |
| | | } |
| | | }) |
| | | }, |
| | | // 删除 |
| | | remove(index,item){ |
| | | this.matData.splice(index,1) |
| | | this.messageToggle('success') |
| | | this.messageText = '删除成功' |
| | | }, |
| | | // 弹窗 确认补充 |
| | | confirm(){ |
| | | let that = this |
| | |
| | | |
| | | }, |
| | | // 修改数量 |
| | | conf(){ |
| | | let that = this |
| | | let data = { |
| | | matNo:that.matNo, |
| | | matName:that.matName, |
| | | count:that.count |
| | | conf(index,item){ |
| | | this.$refs.inputDialog.open() |
| | | this.rowNum = index |
| | | if (item.count === undefined ) { |
| | | this.value = 0 |
| | | } |
| | | for (var j = 0; j < that.locDetlData.length; j++) { |
| | | if (matNo === that.locDetlData[j].matNo && locNo === that.locDetlData[j].locNo) { |
| | | if (that.count < that.minCount) { |
| | | that.messageToggle('error') |
| | | that.messageText = '数量必须大于0' |
| | | return; |
| | | } |
| | | that.locDetlData[j].count = Number(that.count); |
| | | } |
| | | } |
| | | that.messageToggle('success') |
| | | that.messageText = '修改成功' |
| | | }, |
| | | // 修改数量弹窗 |
| | | dialogInputConfirm(value) { |
| | | this.locDetlData[this.rowNum].count = this.value |
| | | this.messageToggle('success') |
| | | this.messageText = '修改成功' |
| | | }, |
| | | // 移除物料 |
| | | remove(index,item){ |
| | | this.matData.splice(index,1) |
| | | this.locDetlData.splice(index,1) |
| | | this.messageToggle('success') |
| | | this.messageText = '删除成功' |
| | | }, |
| | | // 表格渲染 |
| | | addTableData(data){ |
| | | let that = this |
| | | if(data.matNo.length === 0){ |
| | |
| | | return |
| | | } |
| | | var toPush = true |
| | | for (var j = 0; j < this.locDetlData.length; j++) { |
| | | if (data.matNo === this.locDetlData[j].matNo && data.locNo === this.locDetlData[j].locNo) { |
| | | for (var j = 0; j < that.locDetlData.length; j++) { |
| | | if (data.matNo === that.locDetlData[j].matNo && data.locNo === that.locDetlData[j].locNo) { |
| | | toPush = false; |
| | | } |
| | | } |
| | | if (toPush) { |
| | | var pushData = { |
| | | locNo: this.locDetlData[0] ? this.locDetlData[0].locNo : null, |
| | | locNo: that.locDetlData[0] ? that.locDetlData[0].locNo : null, |
| | | matNo: data.matNo, |
| | | count: data.count, |
| | | matName: data.matName |
| | | } |
| | | locDetlData.push(pushData); |
| | | that.locDetlData.push(pushData); |
| | | } |
| | | this.$refs.popup.close() |
| | | |
| | | }, |
| | | initTableData(data){ |
| | | for(var i=0;i<data.length;i++){ |
| | | var toPush =true |
| | | for(var j = 0; j<this.locDetlDate.length;j++){ |
| | | if (data[i].matNo === this.locDetlData[j].matNo && data[i].locNo === this.locDetlData[j].locNo) { |
| | | toPush = false; |
| | | } |
| | | } |
| | | if(toPush){ |
| | | this.locDetlDate.push(data[i]) |
| | | } |
| | | } |
| | | that.$refs.popup.close() |
| | | }, |
| | | // 重置 |
| | | reset(){ |
| | | this.array = [] |
| | | this.locDetlData = []; |
| | | this.checkList = [] |
| | | this.sourceList = [] |
| | | this.billNo = '' |
| | | this.locDetlData = [] |
| | | }, |
| | | check(){ |
| | | if(this.souceData.length === 0) { |
| | | this.messageToggle('error') |
| | | this.messageText = '站点无货,无法盘点' |
| | | let that = this |
| | | if(that.billNo.length === 0) { |
| | | that.messageToggle('error') |
| | | that.messageText = '请 扫码 / 输入 托盘码' |
| | | return |
| | | } |
| | | if(this.locDetlData.length > 0) { |
| | | if(that.billNo.length < 8) { |
| | | that.messageToggle('error') |
| | | that.messageText = '托盘码必须为8位' |
| | | return |
| | | } |
| | | if(that.locDetlData.length > 0) { |
| | | for(var i = 0; i < that.locDetlData.length; i++){ |
| | | if (that.locDetlData[i].count === null || that.locDetlData[i].count === 0 || |
| | | that.locDetlData[i].count === undefined) { |
| | | this.messageToggle('error') |
| | | this.messageText = that.locDetlData[i].matNo + '商品数量错误' |
| | | that.messageToggle('error') |
| | | that.messageText = that.locDetlData[i].matNo + '商品数量错误' |
| | | return |
| | | } |
| | | } |
| | | } |
| | | if (this.locDetlData.length > 0) { |
| | | this.locDetlData.map(function (item) { |
| | | this.checkList.push({ |
| | | if (that.locDetlData.length > 0) { |
| | | that.locDetlData.map(function (item) { |
| | | that.checkList.push({ |
| | | locNo: item.locNo, |
| | | matNo: item.matNo, |
| | | checkQty: item.count |
| | | checkQty: item.count, |
| | | itemBatch: item.itemBatch |
| | | }); |
| | | }); |
| | | } |
| | | if (this.souceData.length > 0) { |
| | | this.souceData.map(function (item) { |
| | | this.sourceList.push({ |
| | | if (that.souceData.length > 0) { |
| | | that.souceData.map(function (item) { |
| | | that.sourceList.push({ |
| | | locNo: item.locNo, |
| | | matNo: item.matNo, |
| | | count: item.count |
| | | count: item.count, |
| | | itemBatch: item.itemBatch |
| | | }); |
| | | }); |
| | | } |
| | | // this.noTitlemodalTap() |
| | | uni.request({ |
| | | url: that.baseHttp + that.baseIP + that.baseUrl + "/mobile/stock/check", |
| | | header: { |
| | | 'token':uni.getStorageSync('token') |
| | | }, |
| | | data: JSON.stringify({ |
| | | checkList: this.checkList |
| | | checkList: that.checkList |
| | | }), |
| | | method:'POST', |
| | | async:false, |
| | | success(res){ |
| | | if(res.data.code === 200){ |
| | | this.reset(); |
| | | this.messageToggle('success') |
| | | this.messageText = '盘点成功' |
| | | that.reset(); |
| | | that.messageToggle('success') |
| | | that.messageText = '盘点成功' |
| | | } else if (res.data.code === 403) { |
| | | uni.navigateBack({ |
| | | delta: 1 |
| | | }) |
| | | } else { |
| | | this.messageToggle('error') |
| | | this.messageText = res.data.msg |
| | | that.messageToggle('error') |
| | | that.messageText = res.data.msg |
| | | } |
| | | |
| | | } |
| | | }) |
| | | }, |
| | | noTitlemodalTap: function (e) { |
| | | uni.showModal({ |
| | | content: "是否确认盘点", |
| | | confirmText: "是", |
| | | cancelText: "否" |
| | | }) |
| | | |
| | | } |
| | | } |
| | | } |