|
@@ -1,32 +1,54 @@
|
|
|
<template>
|
|
|
<view class="location-edit">
|
|
|
<ul>
|
|
|
- <li>
|
|
|
+ <li v-for="(i,index) in listData" :key="i.id">
|
|
|
<view class="label">
|
|
|
- 物料编码:xxxxxxx
|
|
|
- <view class="">
|
|
|
- 删除图标
|
|
|
+ 物料编码:{{i.materialCode}}
|
|
|
+ <view class="" @click="deteleFn(i,index)">
|
|
|
+ <image style="width:36rpx;height:36rpx" src="@/static/images/delete.png" mode=""></image>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="label">
|
|
|
- 物料名:嘻嘻嘻嘻嘻嘻、
|
|
|
+ 物料名:{{i.materialName}}
|
|
|
</view>
|
|
|
<view class="label">
|
|
|
<view class="">
|
|
|
- 数量:1111
|
|
|
+ 数量:{{i.quantity}}
|
|
|
</view>
|
|
|
<view class="">
|
|
|
- 所在仓库:xxxxx
|
|
|
+ 所在仓库:{{i.houseName}}
|
|
|
</view>
|
|
|
</view>
|
|
|
- <view class="label">
|
|
|
- 货架:xxxxxx
|
|
|
+ <view class="label" @click="open(i,index)">
|
|
|
+ 货架:{{ i.PlaceAreaName || '点击选择货架'}} >
|
|
|
</view>
|
|
|
</li>
|
|
|
</ul>
|
|
|
- <button @click="scan">
|
|
|
- 扫描
|
|
|
- </button>
|
|
|
+ <view class="footer-btn">
|
|
|
+ <view class="shaomiao" @click="scan()">
|
|
|
+ <image style="width:36rpx;height:36rpx" src="@/static/images/shaomiao.png" mode=""></image>
|
|
|
+ 扫描
|
|
|
+ </view>
|
|
|
+ <view class="set" @click="open()">
|
|
|
+ 批量设置库存
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="fixed-btn">
|
|
|
+ <button style="background-color: #1A3AF0;color:#fff" @click="submitFn">提交</button>
|
|
|
+ <button @click="backFn">取消</button>
|
|
|
+ </view>
|
|
|
+ <uni-popup ref="popup" type="top">
|
|
|
+ <view class="search-box">
|
|
|
+ <view class="">
|
|
|
+ <input v-model="searchText" @input="search" class="uni-input" @ placeholder="输入货架名称进行搜索如A5" />
|
|
|
+ </view>
|
|
|
+ <ul>
|
|
|
+ <li @click="selectMaterialList(i)" v-for="(i,index) in range" :key="i.id">
|
|
|
+ {{i.name}}
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ </view>
|
|
|
+ </uni-popup>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
@@ -39,42 +61,226 @@
|
|
|
data: {},
|
|
|
isReading: true,
|
|
|
rfidCode: '',
|
|
|
- scanCode: ''
|
|
|
+ scanCode: '',
|
|
|
+ listData:[],
|
|
|
+ range:[],
|
|
|
+ rangeCopy:[],
|
|
|
+ searchText:'',
|
|
|
+ setIndex:0,
|
|
|
}
|
|
|
},
|
|
|
+ created(){
|
|
|
+ this.getStockArea()
|
|
|
+ },
|
|
|
methods:{
|
|
|
+ deteleFn(item,index){
|
|
|
+ this.listData.splice(index,1)
|
|
|
+ },
|
|
|
+ backFn(){
|
|
|
+ uni.navigateBack()
|
|
|
+ },
|
|
|
+ submitFn(){
|
|
|
+ const req = [];
|
|
|
+ if(this.listData.length == 0){
|
|
|
+ uni.showToast({
|
|
|
+ icon:"none",
|
|
|
+ title: '请扫描物料',
|
|
|
+ duration: 1000
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for (var i = 0; i < this.listData.length; i++) {
|
|
|
+ if(this.listData[i].PlaceAreaName == null){
|
|
|
+ uni.showToast({
|
|
|
+ icon:"none",
|
|
|
+ title: '请选择货架',
|
|
|
+ duration: 1000
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ req.push({
|
|
|
+ placeareaid:this.listData[i].PlaceAreaId,
|
|
|
+ id:this.listData[i].id
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ uni.request({
|
|
|
+ url: 'http://120.79.80.64:8050' + '/cloudApi/stockDetail/setAreaId',
|
|
|
+ data: req,
|
|
|
+ method: 'POST',
|
|
|
+ success: (res) => {
|
|
|
+ console.log(res)
|
|
|
+ if(res.data.code == 200){
|
|
|
+ uni.showToast({
|
|
|
+ title: '设置成功',
|
|
|
+ duration: 1000
|
|
|
+ })
|
|
|
+ setTimeout(()=>{
|
|
|
+ uni.navigateBack()
|
|
|
+ },1000)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: (err) => {
|
|
|
+ console.log(err)
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+ search(){
|
|
|
+ const v = this
|
|
|
+ v.range = []
|
|
|
+ const range = JSON.parse(JSON.stringify(v.rangeCopy))
|
|
|
+ for (var i = 0; i < range.length; i++) {
|
|
|
+ if(range[i].name.indexOf(v.searchText) != -1){
|
|
|
+ v.range.push(range[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ open(item,index){
|
|
|
+ console.log(index)
|
|
|
+ if(index != undefined){
|
|
|
+ this.$refs.popup.open('top')
|
|
|
+ this.setIndex = index
|
|
|
+ }else{
|
|
|
+ this.$refs.popup.open('top')
|
|
|
+ this.setIndex = 'all'
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ selectMaterialList(i){
|
|
|
+ const v = this
|
|
|
+ console.log(i)
|
|
|
+ if(this.setIndex == 'all'){
|
|
|
+ for (var j = 0; j < v.listData.length; j++) {
|
|
|
+ v.listData[j].PlaceAreaId = i.id
|
|
|
+ v.listData[j].PlaceAreaName = i.name
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ v.listData[v.setIndex].PlaceAreaId = i.id
|
|
|
+ v.listData[v.setIndex].PlaceAreaName = i.name
|
|
|
+ }
|
|
|
+ console.log(v.listData)
|
|
|
+ this.$refs.popup.close()
|
|
|
+ },
|
|
|
+ getStockArea(){
|
|
|
+ const v = this
|
|
|
+ uni.request({
|
|
|
+ url: 'http://120.79.80.64:8050' + '/cloudApi/stockArea/list',
|
|
|
+ data: {},
|
|
|
+ method: 'POST',
|
|
|
+ success: (res) => {
|
|
|
+ console.log(res)
|
|
|
+ if(res.data.code == 200){
|
|
|
+ this.range = res.data.data
|
|
|
+ this.rangeCopy = res.data.data
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: (err) => {
|
|
|
+ console.log(err)
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
scan() {
|
|
|
+ const v = this
|
|
|
uni.scanCode({
|
|
|
success(res) {
|
|
|
- console.log(res.result)
|
|
|
+ uni.request({
|
|
|
+ url: 'http://120.79.80.64:8050' + '/cloudApi/stockDetail/getMaterialInfoByQrCode',
|
|
|
+ data: {
|
|
|
+ qrCode:res.result
|
|
|
+ },
|
|
|
+ method: 'POST',
|
|
|
+ success: (res) => {
|
|
|
+ console.log(res.data)
|
|
|
+ if(res.data.code == 200){
|
|
|
+ for (var i = 0; i < v.listData.length; i++) {
|
|
|
+ if(v.listData[i].materialCode == res.data.data.materialCode){
|
|
|
+ uni.showToast({
|
|
|
+ icon:"none",
|
|
|
+ title: '此物料已扫描',
|
|
|
+ duration: 1000
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ v.listData.push({...res.data.data,PlaceAreaName:null})
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: (err) => {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
})
|
|
|
- // clearTimeout(this.timer)
|
|
|
- // this.$msg.showLoading('扫描中...')
|
|
|
- // console.log(pda)
|
|
|
- // pda.scanCode({}, res => {
|
|
|
- // this.$msg.hideLoading()
|
|
|
- // this.scanCode = res.replace('\n', '')
|
|
|
- // this.getlist(res)
|
|
|
- // clearTimeout(this.timer)
|
|
|
- // })
|
|
|
- // this.timer = setTimeout(() => {
|
|
|
- // this.$msg.hideLoading()
|
|
|
- // }, 3000)
|
|
|
},
|
|
|
},
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style lang="less">
|
|
|
+<style scoped lang="less">
|
|
|
+ .fixed-btn{
|
|
|
+ display: flex;
|
|
|
+ position: fixed;
|
|
|
+ bottom: 10rpx;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ button{
|
|
|
+ width: 40%;
|
|
|
+ margin: 0 5%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .search-box{
|
|
|
+ height: 80vh;
|
|
|
+ overflow-y: scroll;
|
|
|
+ background-color: #fff;
|
|
|
+ ul{
|
|
|
+ height: 70vh;
|
|
|
+ overflow-y: scroll;
|
|
|
+ }
|
|
|
+ input{
|
|
|
+ height: 70rpx;
|
|
|
+ padding: 10rpx;
|
|
|
+ border:1rpx solid #dcdcdc;
|
|
|
+ margin: 10rpx;
|
|
|
+ }
|
|
|
+ ul{
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
.location-edit{
|
|
|
+ .footer-btn{
|
|
|
+ .set{
|
|
|
+ height: 70rpx;
|
|
|
+ line-height: 70rpx;
|
|
|
+ background: #EF0000;
|
|
|
+ text-align: center;
|
|
|
+ margin: 20rpx 20rpx;
|
|
|
+ border-radius: 10rpx;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ .shaomiao{
|
|
|
+ height: 70rpx;
|
|
|
+ line-height: 70rpx;
|
|
|
+ background: #fff;
|
|
|
+ text-align: center;
|
|
|
+ margin: 0 20rpx;
|
|
|
+ border:2rpx solid #979797;
|
|
|
+ border-radius: 10rpx;
|
|
|
+ image{
|
|
|
+ margin-right: 20rpx;
|
|
|
+ position: relative;
|
|
|
+ top: 10rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
ul{
|
|
|
padding: 0;
|
|
|
- margin: 30rpx 18rpx 0;
|
|
|
+ margin: 30rpx 18rpx 20rpx;
|
|
|
li{
|
|
|
padding: 5rpx 40rpx;
|
|
|
list-style: none;
|
|
|
background-color: #fff;
|
|
|
+ margin-top: 20rpx;
|
|
|
.label{
|
|
|
height: 66rpx;
|
|
|
line-height: 66rpx;
|