<!-- 手动出库 --> <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"> <view class="title"> <span> <span style="color: red;">*</span> 出库信息 </span> </view> <view class="text"> <view class="label">领料人:</view> <select-lay :value="operateUser" placeholder="默认当前用户" :options="userList" @selectitem="selectitem" :zindex="2000"></select-lay> </view> <view class="text"> <view class="label">仓库:</view> <select-lay :zindex="1000" :value="plcStationCode" :options="selectList" @selectitem="storeSelectitem"></select-lay> </view> <view class="text"> <view class="label">出库类型:</view> <select-lay :value="stockChangeType" :options="typeList" @selectitem="typeSelectitem"></select-lay> </view> <view class="text" style="align-items: flex-start;"> <view class="label">备注:</view> <u-input v-model="remark" type="textarea" :border="true" /> </view> <view class="text" style="margin: 20rpx 0 30rpx 0;"> <view class="label">领料时间:</view> <view style="line-height: 1;">{{ time }}</view> </view> <view class="title flex-between"> <span> <span style="color: red;">*</span> 出库列表 </span> <a href="#" @click="scan">+扫描添加</a> </view> <view class="list"> <view class="item" v-for="(item, index) in scanList" :key="index"> <view class="row"> <view class="col"> <view class="value">{{ item.materialCode }}</view> </view> <view class="col"> <view class="value">{{ item.materialName }}</view> </view> </view> <view class="row sub-row"> <view class="col"> <view class="label">规格:</view> <view class="value">{{ item.spec }}</view> </view> <view class="col"> <view class="label">数量:</view> <view class="value">{{ item.quantity }}米</view> </view> </view> </view> </view> <my-fixed-button :customClick="true" @click="cfm" text="提交"></my-fixed-button> </view> </view> </template> <script> import DateFormat from '../../../js_sdk/xfl-DateFormat/DateFormat.js'; export default { data() { return { timer: null, time: new DateFormat(new Date()).toString(), show: false, operateUser: this.$storage.getStorageSync('userInfo').id, userInfo: this.$storage.getStorageSync('userInfo'), plcStationCode: '1', stockChangeType: '20', remark: '', isReading: false, scanList: [], userList: [], selectList: [], typeList: [ { label: '出库', value: 20 }, { label: '盘点删除', value: 21 }, { label: '补出库', value: 23 }, ], roleKey:null, }; }, methods: { /* 选择类型 */ typeSelectitem(index, item) { this.stockChangeType = item.value; }, /* 选择领料人 */ selectitem(index, item) { this.operateUser = item.value; this.roleKey = item.roleKey console.log(this.userInfo) }, /* 选择仓库 */ storeSelectitem(index, item) { this.plcStationCode = item.value; uni.setStorage({ key: 'plcStationCode', data: item.value }) }, cfm(){ let obj = { userId: this.operateUser, plcCode: this.plcStationCode, rfidItems: this.scanList.map(item => item.rfidCode), stockChangeType: this.stockChangeType, remark: this.remark } console.log(this.roleKey) console.log(this.stockChangeType) if((this.roleKey == 'sewing' || this.roleKey == 'crop')){ if(this.stockChangeType == 20) obj.stockChangeType = 30 } console.log(obj) this.$http.HandleMacStockInOut(obj).then(res => { console.log(res) if(res.code === 0) { this.materialReceiveSubmit(obj) this.$msg.showToast(res.msg || '操作成功!') this.timer = setTimeout(() => { this.$utils.back() }, 2000) } }) }, materialReceiveSubmit(obj){ console.log(obj) if(obj.stockChangeType == 29 || obj.stockChangeType == 20 || obj.stockChangeType == 30){ uni.request({ url: 'http://120.79.80.64:8050' + '/cloudApi/materialReceive/submit', method: 'POST', header:{ 'Content-Type' : 'application/json', }, data: { checkUserId: this.userInfo.id }, success: res => { console.log(res); },fail(err) { console.log(err); } }); } }, /* 扫描添加 */ scan() { this.$utils.open('/pages/store-out-manage/store-out/store-out-scan') }, getList () { this.$http.GetApplyStockOutTemp().then(res => { console.log(res) if(res.code === 0) { this.scanList = res.result } }) }, /* 添加扫描到的退货数据 */ pushData(data) { console.log(this.scanList) let flag = true this.scanList.forEach(item => { if(item.rfidCode === data.rfidCode) { flag = false } }) if(flag) { this.scanList.push(data) } else { setTimeout(() => { this.$msg.showToast('标签已存在!') }, 100) } }, /* 获取用户列表 */ getUserPageList() { this.$http.GetUserPageList({ pageIndex: 1, pageSize: 999, takeUser: true }).then(res => { console.log(res) if(res.code == 0) { let list = res.result.list.map(item => { return { label: item.realName, value: item.id, roleKey: item.roleKey } }) this.userList = list } }) }, /* 手持机获取仓库 */ getStockHouse() { this.$http.GetStockHouse().then(res => { if(res.code === 0) { this.selectList = res.result.map(item => { return { label: item.name, value: item.plcCode } }) } }) } }, onLoad(option) { this.getUserPageList() this.getStockHouse() console.log(option) uni.$on('scan-list', res => { console.log('?????????????') console.log(res) this.pushData(res) }) uni.getStorage({ key: 'plcStationCode', success: (res) => { this.plcStationCode = res.data } }); }, onUnload() { clearTimeout(this.timer) uni.$off('scan-list') } } </script> <style lang="scss" scoped> .container-wrap { overflow: hidden; .container { padding: 20rpx; height: calc(100vh - var(--status-bar-height) - 44px); overflow: auto; padding-bottom: 100rpx; .text { padding: 10rpx 0; display: flex; align-items: center; font-size: 24rpx; .label { width: 150rpx; text-align: right; } } .list { margin: 10rpx 0; .item { padding: 20rpx; margin-bottom: 10rpx; background-color: #FFFFFF; border: 1rpx solid rgba(215, 215, 215, 1); border-radius: 10rpx; .row { &.border { border-bottom: 1px solid rgba(215, 215, 215, 1); } .label { width: 80rpx; } .col { &:last-child { justify-content: flex-end; } } } .sub-row { align-items: flex-start; .label, .value { font-size: 24rpx; color: #7F7F7F; } } } } } } </style>