From 0c04de484a2a2bebbd08a06a604c3cdbb7b9cb47 Mon Sep 17 00:00:00 2001 From: yyb <995253665@qq.com> Date: 星期五, 30 五月 2025 17:02:57 +0800 Subject: [PATCH] 移库和盘点报告盘点页面绘制完成 --- pages/wareHouse/inventory/index.vue | 720 +++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 501 insertions(+), 219 deletions(-) diff --git a/pages/wareHouse/inventory/index.vue b/pages/wareHouse/inventory/index.vue index dedccde..b34c3e2 100644 --- a/pages/wareHouse/inventory/index.vue +++ b/pages/wareHouse/inventory/index.vue @@ -1,156 +1,372 @@ <template> <view class="page"> - <view class="inventory-list-bg"/> - <u-navbar title="鐩樼偣鍒楄〃" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" back-icon-color="#000"/> - <view class="inventory-list-search"> - <u-search v-model="query.inyNo" shape="square" bg-color="rgba(250,252,255,0.36)" :show-action="false" placeholder="鐩樼偣缂栧彿" @clear="search" @custom="search" @search="search"> - </u-search> - </view> - <view class="wrap"> - <scroll-view class="inventory-list-scroll-list" scroll-y="true" @scrolltolower="loadMore"> - <u-cell-group class="inventory-list-scroll-list-group" :border="false"> - <view class="content" v-for="(item, index) in list" :key="index" :index="index" - @click="goDetail(item)"> - <view class="content-header"> - <view class="content-header-left"> - <view class="content-header-icon"></view> - <view class="content-header-title">鐩樼偣缂栧彿锛歿{ item.inyNo }}</view> - </view> - <view class="content-header-right"> - {{item.inyStatus=='finished'?'宸插畬鎴�':'鑽夌'}} - </view> - </view> - <view class="content-body"> - <view class="row-list"> - <view class="_label"> - <view class="_label-icon-1"> - </view> - <view class="_label-name">鐩樼偣鎻忚堪锛�</view> - </view> - <view class="_content"> - {{ item.inyDesc||'鏃�' }} - </view> - </view> - <view class="row-list"> - <view class="_label"> - <view class="_label-icon-2"> - </view> - <view class="_label-name">鍒� 寤� 浜猴細</view> - </view> - <view class="_content"> - {{ item.createUser }} - </view> - </view> - <view class="row-list"> - <view class="_label"> - <view class="_label-icon-3"> - </view> - <view class="_label-name">鍒涘缓鏃堕棿锛�</view> - </view> - <view class="_content"> - {{ item.createTime }} - </view> - </view> - </view> + <view class="packing-registration-bg" /> + <u-navbar title="鐩樼偣鎶ュ憡鐩樼偣" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" + back-icon-color="#000" /> + <view class="packing-registration-param"> + <view class="packing-registration-param-view"> + <view class="packing-registration-param-item param-extra"> + <view class="packing-registration-param-item-left"> + <text class="item-one">鐩樼偣鎶ュ憡鍙�</text> + </view> + <view class="packing-registration-param-item-right"> + <text class="item-one item-two" + @click="seachPersonnelNo()">{{registerInfo.value1=='' ? "鐐瑰嚮閫夋嫨":registerInfo.value1}}</text> + <u-icon name="arrow-right" color="#687792" size="28" @click="seachPersonnelNo()" + v-show="registerInfo.value1 ==''"></u-icon> + </view> </view> - </u-cell-group> - <view class="loadmore" @click="loadMore"> - <u-loadmore :status="loadStatus"></u-loadmore> + <view class="packing-registration-param-item param-extra"> + <view class="packing-registration-param-item-left"> + <text class="item-one">浠撳簱</text> + </view> + <view class="packing-registration-param-item-right"> + <text class="item-one item-two">{{registerInfo.value2}}</text> + </view> + </view> + <view class="packing-registration-param-item param-extra"> + <view class="packing-registration-param-item-left"> + <text class="item-one">闆朵欢鍙�</text> + </view> + <view class="packing-registration-param-item-right"> + <view class="item-one item-two" @click="openPN()"> + <text>{{registerInfo.value6=='' ? "鐐瑰嚮杈撳叆":registerInfo.value6}}</text> + </view> + <u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value6==''"></u-icon> + </view> + </view> + <view class="packing-registration-param-item param-extra"> + <view class="packing-registration-param-item-left"> + <text class="item-one">鎵规鍙�</text> + </view> + <view class="packing-registration-param-item-right" @click="openBatch()"> + <text class="item-one item-two">{{registerInfo.value3=='' ? "鐐瑰嚮杈撳叆":registerInfo.value3}}</text> + <u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value3==''"></u-icon> + </view> + </view> + <view class="packing-registration-param-item param-extra"> + <view class="packing-registration-param-item-left"> + <text class="item-one">搴撲綅鍙�</text> + </view> + <view class="packing-registration-param-item-right" @click="openLocation()"> + <view class="item-one item-two"> + <text>{{registerInfo.value4 == '' ? "鐐瑰嚮杈撳叆":registerInfo.value4}}</text> + </view> + <u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value4==''"></u-icon> + </view> + </view> + <view class="packing-registration-param-item param-extra"> + <view class="packing-registration-param-item-left"> + <text class="item-one">鐩樼偣鏁伴噺</text> + </view> + <view class="packing-registration-param-item-right" @click="openPhysicalInventory()"> + <view class="item-one item-two"> + <text>{{registerInfo.value5 == '' ? "鐐瑰嚮杈撳叆":registerInfo.value5}}</text> + </view> + <u-icon name="arrow-right" color="#687792" size="28" v-show="registerInfo.value4==''"></u-icon> + </view> + </view> + <view class="packing-registration-param-item param-extra"> + <view class="packing-registration-param-item-left"> + <text class="item-one">鐩樼偣璁板綍锛�</text> + </view> + </view> </view> - </scroll-view> + </view> + <view class="wrap"> + <scroll-view class="packing-registration-scroll-list" scroll-y="true"> + <u-cell-group class="packing-registration-scroll-list-group" :border="false"> + <!-- <div class="tip" style="text-align: center;" v-if="hasScanSnList.length==0">-璇锋壂鐮�-</div> --> + <view class="content" v-for="(item, index) in hasScanSnList" :key="index" :index="index"> + <view class="content-header"> + <view class="content-header-title">{{ index+1 }}</view> + </view> + <view class="content-body"> + <view class="row-list"> + <view class="_label"> + <view class="_label-name">闆朵欢鍙凤細</view> + </view> + <view class="_content"> + {{ item.value0 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-name">鎵规鍙凤細</view> + </view> + <view class="_content"> + {{ item.value1 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-name">搴撲綅鍙凤細</view> + </view> + <view class="_content"> + {{ item.value0 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-name">鐩樼偣鏁伴噺锛�</view> + </view> + <view class="_content"> + {{ item.value1 }} + </view> + </view> + </view> + </view> + </u-cell-group> + </scroll-view> + <view class="registration-form-footer"> + <u-button class="btn" type="primary" @click="goSubmit">鎻愪氦</u-button> + </view> + <scan></scan> + <!-- 闆朵欢鍙� --> + <modalBg ref="openPN" :confirm="confirmPN"> + <u-field v-model="registerInfo.value6" label="闆朵欢鍙凤細" placeholder="璇疯緭鍏�" :border-bottom="false"> + </u-field> + </modalBg> + <!-- 鎵规鍙� --> + <modalBg ref="openBatch" :confirm="confirmBatch"> + <u-field v-model="registerInfo.value3" label="鎵规鍙凤細" placeholder="璇疯緭鍏�" :border-bottom="false"> + </u-field> + </modalBg> + <!-- 搴撲綅鍙� --> + <modalBg ref="openLocation" :confirm="confirmLocation"> + <u-field v-model="registerInfo.value4" label="搴撲綅鍙凤細" placeholder="璇疯緭鍏�" :border-bottom="false"> + </u-field> + </modalBg> + <!-- 鐩樼偣鏁伴噺 --> + <modalBg ref="openPhysicalInventory" :confirm="confirmPhysicalInventory"> + <u-field v-model="registerInfo.value5" label="鐩樼偣鏁伴噺锛�" label-width="140" placeholder="璇疯緭鍏�" + :border-bottom="false"> + </u-field> + </modalBg> + </view> </view> - </view> </template> <script> - import content_bg from '@/static/custom/inventory/locNoBg.png' + import modalBg from '@/components/modal/modal-bg.vue' + import scan from "@/components/scan/scan.vue"; + import content_bg from '@/static/custom/packing/backBg.png' export default { + components: { + scan, + modalBg + }, data() { return { - background:{ + background: { backgroundImage: `url(${content_bg})`, backgroundAttachment: 'fixed', backgroundSize: '100% auto', backgroundRepeat: 'no-repeat', }, - keywords: '', - query: { - current: 1, - size: 20, - criteria:JSON.stringify({ - orderBy:{ - column:'createTime', - direction:'desc' - } - }) + labelStyle: { + fontSize: '32rpx', + whiteSpace: 'nowrap' }, - list: [], - count: 0, - loadStatus: 'loading' + registerInfo: { + value1: '', + value2: '', + value3: '', + value4: '', + value5: '', + value6: '' + }, + hasScanSnList: [ + { + value0: '11111111111111111111111', + value1: '111', + value2: '111', + value3:'111', + }, + { + value0: '111', + value1: '111', + value2: '111', + value3:'111', + }, + { + value0: '111', + value1: '111', + value2: '111', + value3:'111', + }, + { + value0: '111', + value1: '111', + value2: '111', + value3:'111', + }, + ], + delContent: null, + staffList: [], }; }, - onLoad() { - this.loadList(); - }, + onLoad(option) {}, onShow() { + let that = this + + uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒 + uni.$on('scan', function(data) { + console.log('onscan'); + //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲� + console.log('鎵爜缁撴灉锛�', data.code); + that.scanHandle(data.code) + that.$forceUpdate(); + + }) }, - filters: { - inyStatus(val) { - let inyStatus = { - finished: '宸插畬鎴�', - draft: '鑽夌', - } - return inyStatus[val] - } + onNavigationBarButtonTap() { + this.goScan() }, + onReady() {}, methods: { - loadMore() { - if(this.loadStatus == "nomore"){ - return - } - this.loadStatus = "loading"; - setTimeout(() => { - this.query.current += 1; - this.loadList(); - }, 100); + //闆朵欢鍙� + openPN() { + this.$refs.openPN.open(); }, - loadList() { - this.$u.api.inventory.getMain(this.query).then(res => { - this.list = this.list.concat(res.data.records); - //this.total = res.data.total; - this.query.current = res.data.current; - this.query.size = res.data.size; - this.loadStatus = "loadmore"; - if (!res.data.records || res.data.records.length < this.query.size) { - this.loadStatus = "nomore"; + // 寮规淇濆瓨 + confirmPN() { + console.log('淇濆瓨', this.registerInfo.value6); + // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊� + }, + //鎵规鍙� + openBatch() { + this.$refs.openBatch.open(); + }, + // 寮规淇濆瓨 + confirmBatch() { + console.log('淇濆瓨', this.registerInfo.value3); + // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊� + }, + //搴撲綅鍙� + openLocation() { + this.$refs.openLocation.open(); + }, + // 寮规淇濆瓨 + confirmLocation() { + console.log('淇濆瓨', this.registerInfo.value4); + // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊� + }, + //鐩樼偣鏁伴噺 + openPhysicalInventory() { + this.$refs.openPhysicalInventory.open(); + }, + // 寮规淇濆瓨 + confirmPhysicalInventory() { + console.log('淇濆瓨', this.registerInfo.value5); + // 璇锋眰鎺ュ彛锛屾牴鎹伐鍗曞彿鏌ヨ鍏朵粬淇℃伅骞惰祴鍊� + }, + + setNo(val) { + console.log('11111', val) + this.registerInfo.value1 = val.value1 + this.registerInfo.value2 = val.value2 + + }, + //鐩樼偣鎶ュ憡鍙� + seachPersonnelNo() { + console.log('11111') + uni.navigateTo({ + url: '/pages/wareHouse/inventory/orderList' + }) + }, + goScan() { + uni.scanCode({ + scanType: ['qrCode'], + success: res => { + try { + console.log('鎵爜缁撴灉锛�', res); + this.scanHandle(res.result) + } catch (e) {} } }); }, - search(value) { - this.list = []; - this.query.current = 1; - this.loadList(); - }, - goDetail(item) { - if(item.inyStatus === 'finished'){ - uni.showToast({ - title: "鐩樼偣宸插畬鎴愩��", - icon: "none" - }); - return + scanHandle(scanresult) { + scanresult = scanresult.replace(/[\r\n]/g, "") + if (scanresult.indexOf('{') > -1) { + //浜岀淮鐮� + const result = JSON.parse(scanresult) + //澧炲姞SN鏍¢獙 + if (result.sn_no && result.sn_no != null && result.sn_no != '') { + if (this.hasScanSnList.length > 0) { + let hasScanSnIndex = this.hasScanSnList.indexOf(result.sn_no) + if (hasScanSnIndex < 0) { + this.hasScanSnList.push(result.sn_no) + } else { + this.$u.toast('璇峰嬁閲嶅鎵弿') + } + } else { + this.hasScanSnList.push(result.sn_no) + } + } + + } else { + //澧炲姞SN鏍¢獙 + if (this.hasScanSnList.length > 0) { + let hasScanSnIndex = this.hasScanSnList.indexOf(scanresult) + if (hasScanSnIndex < 0) { + this.hasScanSnList.push(scanresult) + } else { + this.$u.toast('璇峰嬁閲嶅鎵弿') + } + } else { + this.hasScanSnList.push(scanresult) + } } - uni.navigateTo({ - url: `/pages/wareHouse/inventory/detail?id=${item.id}&no=${item.inyNo}` - }) - } + }, + goSubmit() { + // if (this.registerInfo.shiftId == null || this.registerInfo.shiftId == '') { + // this.$u.toast('璇烽�夋嫨鐝') + // return + // } + // if (this.registerInfo.value3 == null || this.registerInfo.value3 == '') { + // this.$u.toast('璇烽�夋嫨鏃ユ湡') + // return + // } + // if (this.registerInfo.locNo == null || this.registerInfo.locNo == '') { + // this.$u.toast('璇烽�夋嫨鍖呰搴撲綅') + // return + // } + // if (this.hasScanSnList.length == 0) { + // this.$u.toast('鏃犲緟鎻愪氦鐨凷N鍙锋槑缁�') + // return + // } + // let registrList = [] + // this.staffList = [] + // this.staffNameList.forEach((item) => { + // this.staffList.push({ + // staffId: item.id + // }) + // }) + // this.hasScanSnList.forEach((item) => { + // registrList.push({ + // shiftId: this.registerInfo.shiftId, + // value3: this.registerInfo.value3, + // locNo: this.registerInfo.locNo, + // partBatchNo: item, + // staffList: this.staffList + // }) + // }) + // this.$u.api.pigxPacking.addPackageRegister(registrList).then(res => { + // let resData = res.data + // this.hasScanSnList = [] + // this.$u.toast('鎻愪氦鎴愬姛') + // }).catch((e) => { + // }) + + }, } }; </script> -<style scoped lang="scss"> - .inventory-list-bg{ +<style lang="scss" scoped> + .packing-registration-bg { background-color: #F6F9FF; - background-image: url('~@/static/custom/inventory/locNoBg.png'); - // background: linear-gradient(180deg,rgba(206,227,254,1),rgba(206,227,254,1) 20%,rgba(206,227,254,0.5) 40%,rgba(206,227,254,0.25) 60%,rgba(206,227,254,0.08) 80%,rgba(206,227,254,0)); + background-image: url('~@/static/custom/packing/backBg.png'); padding: 0 20rpx; background-attachment: fixed; background-size: 100% auto; @@ -161,112 +377,178 @@ width: 100%; z-index: -1; } - - .inventory-list-search{ - padding: 40rpx 30rpx 20rpx 30rpx; - } - .wrap .inventory-list-scroll-list{ - height:calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx); - width:100%; - } - .inventory-list-scroll-list-group{ - ::v-deep .u-cell-item-box { - background-color:rgba(250,252,255,0.36) !important; - padding:0rpx 30rpx ; - } - .content { - font-size: 12px; - background-color: #FFFFFF; - box-sizing: border-box; + + .packing-registration-param { + padding: 40rpx 30rpx 10rpx 30rpx; + + .packing-registration-param-title { + display: flex; + flex-direction: row; + align-items: center; + margin-bottom: 30rpx; + + .title-label { + margin-left: 14rpx; + font-size: 34rpx; + font-weight: bold; + color: #283E65; + } + } + + .packing-registration-param-view { + height: 615rpx; + background-color: #fff; border-radius: 10rpx; - margin: 0rpx 0rpx 16rpx; - height: 298rpx; - padding: 10rpx 20rpx; - box-shadow: none; - .content-header{ + padding: 0rpx 23rpx; + margin-bottom: 30rpx; + + .packing-registration-param-item { height: 90rpx; + border: 1px solid #ADC8E4; + line-height: 90rpx; display: flex; - align-items:center; justify-content: space-between; - .content-header-left{ - display: flex; - align-items:center; - .content-header-icon{ - background-image: url('~@/static/custom/inventory/icon_5.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height:28rpx; - width:28rpx; - } - .content-header-title{ - margin-left: 11rpx; - font-size: 28rpx; - font-weight: bold; - color: #333333; + border: none; + + .packing-registration-param-item-left { + .item-one { + font-size: 30rpx; + color: #666666; } } - .content-header-right{ - text-align: right; - font-weight: bold; - color: #FB5B25; + + .packing-registration-param-item-right { + display: flex; + justify-content: space-between; + + .item-one { + font-size: 30rpx; + color: #333333; + margin-right: 6rpx; + } + + .item-two { + font-size: 30rpx; + color: #A6B4CC; + margin-right: 6rpx; + } + + .item-three { + font-size: 30rpx; + color: #214DED; + margin-right: 6rpx; + } } } - .content-body{ - height:184rpx; - background: #F5F9FF; - border-radius: 10rpx; - padding: 0rpx 23rpx; - .row-list { - height: 60rpx; - display: flex; - flex-direction: row; - padding: 0px; - align-items: center; - } - .row-list ._label { - display: flex; - flex: 0.6; - color: #909399; - align-items: center; - ._label-icon-1{ - background-image: url('~@/static/custom/inventory/label-icon-1.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height:26rpx; - width:26rpx; - } - ._label-icon-2{ - background-image: url('~@/static/custom/inventory/icon3.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height:26rpx; - width:26rpx; - } - ._label-icon-3{ - background-image: url('~@/static/custom/inventory/icon4.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height:26rpx; - width:26rpx; - } - ._label-name{ - margin-left: 11rpx; - font-size: 26rpx; - font-weight: 500; - color: #909399; - - } - } - - .row-list ._content { - flex: 1.5; - color: #666666; - font-size: 24rpx; - } - .row-list .s1 { - color:#D35651; - } + + .param-extra { + border-bottom: 1px solid #EDEDED; } } } -</style> + + .wrap .packing-registration-scroll-list { + height: calc(100vh - var(--window-top) - var(--window-bottom) - 930rpx); + width: 100%; + } + + .packing-registration-scroll-list-group { + ::v-deep .u-cell-item-box { + background-color: rgba(250, 252, 255, 0.36) !important; + padding: 0rpx 30rpx; + } + + .content { + font-size: 12px; + background-color: #ffffff; + box-sizing: border-box; + border-radius: 10rpx; + margin: 0rpx 0rpx 16rpx; + padding: 20rpx 8rpx; + box-shadow: none; + display: flex; + align-items: center; + + .content-header { + width: 40rpx; + height: 90rpx; + display: flex; + align-items: center; + + .content-header-icon { + background-image: url("~@/static/custom/moveWareHouse/header_icon.png"); + background-size: 100% auto; + background-repeat: no-repeat; + height: 28rpx; + width: 28rpx; + } + + .content-header-title { + margin-left: 11rpx; + font-size: 26rpx; + font-weight: bold; + color: #626369; + } + } + + .content-body { + flex: 1; + background-color: #ffffff; + border-radius: 10rpx; + padding: 0rpx 23rpx; + + .row-list { + height: 60rpx; + display: flex; + flex-direction: row; + padding: 0px; + align-items: center; + } + + .row-list ._label { + display: flex; + flex: 0.8; + color: #909399; + align-items: center; + + ._label-name { + margin-left: 11rpx; + font-size: 26rpx; + font-weight: 500; + color: #666666; + } + } + + .row-list ._content { + flex: 1.5; + text-align: right; + color: #909399; + font-size: 24rpx; + } + + .row-list .s1 { + color: #d35651; + } + } + } + } + + .registration-form-footer { + display: flex; + margin-top: 10rpx; + margin-bottom: 10rpx; + margin-left: 20rpx; + margin-right: 20rpx; + padding-bottom: 14rpx; + + .btn { + flex: 1; + margin: 10rpx; + background: #214DED; + box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(4, 49, 212, 0.3); + font-weight: bold; + color: #FEFEFE; + font-family: PingFang SC; + } + } +</style> \ No newline at end of file -- Gitblit v1.9.3