From f26f29d84e0a68831a6af14dab3eec5500496d2e Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期三, 28 五月 2025 16:48:52 +0800 Subject: [PATCH] 初始化项目 --- pages/wareHouse/materialReturn/index.vue | 641 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 641 insertions(+), 0 deletions(-) diff --git a/pages/wareHouse/materialReturn/index.vue b/pages/wareHouse/materialReturn/index.vue new file mode 100644 index 0000000..6dcbbad --- /dev/null +++ b/pages/wareHouse/materialReturn/index.vue @@ -0,0 +1,641 @@ +<template> + <view class="page"> + <view class="warehouse-materialreturn-bg"/> + <u-navbar title="鎵爜閫�鏂�" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" back-icon-color="#000"/> + <view class="warehouse-materialreturn-param"> + <view class="warehouse-materialreturn-param-view"> + <view class="warehouse-materialreturn-param-item"> + <view class="warehouse-materialreturn-param-item-left"> + <text class="item-one">宸ヤ綔绔�</text> + </view> + <view class="warehouse-materialreturn-param-item-right"> + <text class="item-one" @click="toWorkstation">{{tailHandle.workstationName}}</text> + <view class="scan" style="margin-right: 24rpx;" @click="goScan"> + </view> + <u-icon name="arrow-right" color="#687792" size="28" @click="toWorkstation"></u-icon> + </view> + </view> + </view> + </view> + <view class="materialreturn-index-body-title"> + <view> + <u-line style="border:5rpx solid #264DE9" length="33rpx" direction="col" color="#264DE9" :hair-line="false"></u-line> + </view> + <view class="title-label">鏈哄彴鐗╂枡</view> + </view> + <view class="wrap"> + <scroll-view class="warehouse-materialreturn-scroll-list" scroll-y="true"> + <u-cell-group class="warehouse-materialreturn-scroll-list-group" :border="false"> + <div class="tip" style="text-align:center;" v-if="list.length==0">-鏆傛棤鐗╂枡-</div> + <view class="content" v-for="(item, index) in list" :key="item.id" :index="index" @click="selectRow(item)"> + <view class="content-header"> + <view class="header-item"> + <view class="content-header-icon-one"></view> + <view class="content-header-title">{{ item.partBatchNo }}</view> + </view> + <view class="header-item"> + <view class="content-header-icon-two"></view> + <view class="content-header-title-ne">{{ item.partName }}</view> + </view> + <view :class="[item.isSelected?'header-item-toolbar-selected':'header-item-toolbar-unselected']"> + + </view> + </view> + <view class="content-body"> + <view class="row-list"> + <view class="_label"> + 闆朵欢缂栧彿锛� + </view> + <view class="_content"> + {{ item.partNo }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + erp鎵� 鍙凤細 + </view> + <view class="_content"> + {{ item.ifsBatchNo }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + 鍙敤鏁伴噺锛� + </view> + <view class="_content"> + <text class="_content-text">{{ item.availableStockQuantity+'('+item.unit+')' }}</text> + </view> + </view> + <view class="row-list"> + <view class="_label s1"> + 閫�鏂欐暟閲忥細 + </view> + <view class="_content _input"> + <u-input placeholder="璇疯緭鍏ラ��鏂欐暟閲�" v-model="item.returnValue" type="digit"></u-input> + <view class="edit_icon"></view> + </view> + </view> + </view> + </view> + </u-cell-group> + </scroll-view> + + <view class="materialReturn-form-footer"> + <u-button class="btn" type="primary" @click="goSubmit">閫�鍥�</u-button> + </view> + <scan></scan> + <u-modal v-model="showConfirm" :title="''" content="鏄惁纭灏嗗熬鏂欐墸闄わ紝姝ゆ搷浣滀笉鍙�嗭紒" @confirm="confirm" :show-cancel-button="true"> + <view class="slot-content"> + <view @click="showPicker=true" style="padding: 20rpx;"> + <view> + <text style="margin-right: 20rpx;">閫�鏂欏簱浣�</text> + <text style="color: #e6db74;">{{active}}</text> + </view> + </view> + </view> + </u-modal> + <u-picker v-model="showPicker" mode="selector" :range="arr" range-key="locName" @confirm="confirmPicker"></u-picker> + </view> + </view> +</template> +<script> + import scan from "@/components/scan/scan.vue"; + import content_bg from '@/static/custom/materialReturn/backBg.png' + export default { + components: { + scan + }, + data() { + return { + background:{ + backgroundImage: `url(${content_bg})`, + backgroundAttachment: 'fixed', + backgroundSize: '100% auto', + backgroundRepeat: 'no-repeat', + }, + showPicker:false, + tailHandle:{ + workstationId: null, + workstationNo: null, + workstationName: null + }, + list:[{partNo:'88.118.1/A0138298',partName:'鍦伴搧鍙婅建閬撶敤杞數缂嗗拰杞嚎 /1000V 1脳35 A0',partBatchNo:'231115000002N',ifsBatchNo:'231115000002N',availableStockQuantity:56.3,unit:'绫�',returnValue:56.6}, + {partNo:'BS-1704',partName:'涓夊眰鍏辨尋杈撴恫鐢ㄨ啘',partBatchNo:'231115000002N',ifsBatchNo:'231115000002N',availableStockQuantity:72.3,unit:'绫�',returnValue:84}, + {partNo:'BS-1704',partName:'涓夊眰鍏辨尋杈撴恫鐢ㄨ啘',partBatchNo:'231115000002N',ifsBatchNo:'231115000002N',availableStockQuantity:72.3,unit:'绫�',returnValue:84} + ], + showConfirm:false, + arr:[], + active:'鐐瑰嚮閫夋嫨搴撲綅', + obj:{} + }; + }, + onLoad() { + + }, + onShow() { + let that = this + uni.$off('scan') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒 + uni.$on('scan', function(data) { + //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲� + console.log('鎵爜缁撴灉锛�', data.code); + // console.log(data.code.replace(/\n/g,'').replace(/\s*/g,'')) + // console.log('鎵爜缁撴灉1锛�', JSON.parse(data.code.replace(/\n/g,"").replace(/\s*/g,''))); + + that.loadList(data.code); + that.$forceUpdate(); + }) + }, + onNavigationBarButtonTap(e) { + this.goScan() + }, + methods: { + confirmPicker(val) { + this.obj = {} + this.active = this.arr[val[0]].locName + this.obj = this.arr[val[0]] + }, + goScan(){ + //let scanresult={"part_no":"88.118.1/A0044193","package_code":"TP092022101200001","unit_meas":"璺�","wdr":"*","lot_batch_no":"*","qty_arrived":12} + //this.scanHandle(JSON.stringify(scanresult)) + + uni.scanCode({ + scanType: ['qrCode'], + success: res => { + try { + console.log('鎵爜缁撴灉锛�', res); + this.scanHandle(res.result) + } catch (e) {} + } + }); + }, + //鏍规嵁鏈哄彴鍙凤紝鏌ヨ鏈哄彴淇℃伅锛屽啀鏌ヨ鐗╂枡淇℃伅 + scanHandle(workstationNo){ + if(workstationNo!=''){ + this.$u.api.pigxFeed.fetchWorkstationList({workstationNo:workstationNo}).then(resp => { + + if (!resp.data.records || resp.data.records.length == 0) { + this.$u.toast('銆�'+workstationNo+'銆�,鏈煡璇㈠埌鏈哄彴淇℃伅') + }else{ + let workstationList=resp.data.records + let scanWorkstationInfo=workstationList[0] + this.tailHandle.workstationId = scanWorkstationInfo.id + this.tailHandle.workstationNo = scanWorkstationInfo.workstationNo + this.tailHandle.workstationName = scanWorkstationInfo.name + this.list=[] + this.$u.api.returnMaterial.getFeedingStockByWorkstationNo({workstationNo:scanWorkstationInfo.workstationNo}).then(res => { + let reList = [] + reList = res.data; + if(reList.length!=0) + { + // 鎸夊彲鐢ㄦ暟閲忔帓涓簭 + reList.sort(this.compare('availableStockQuantity')) + reList.forEach((item)=>{ + this.list.push({ + locationId:item.locationId, + locNo:item.locNo, + partBatchNo:item.partBatchNo, + partId:item.partId, + partNo:item.partNo, + partName:item.partName, + availableStockQuantity:item.availableStockQuantity, + unit:item.unit, + ifsBatchNo:item.ifsBatchNo, + id:item.id, + systemNo:item.systemNo, + isSelected:false + }) + }) + } + }) + } + }) + }else{ + this.$u.toast('鏈壂鎻忓埌鏈哄彴鍙�') + } + }, + selectRow(stock){ + stock.isSelected=!stock.isSelected + if(stock.isSelected) { + stock.returnValue = stock.availableStockQuantity + } else { + stock.returnValue = '' + } + /*this.list.forEach((item,index)=>{ + if(item.id ==stock.id){ + this.list.splice(index,1) + return; + } + })*/ + //if(stock.isSelected){ + //灞曠ず鍦ㄥ垪琛ㄦ渶涓婃柟 + // this.list.unshift(stock) + //}else{ + //灞曠ず鍦ㄥ垪琛ㄦ渶涓嬫柟 + // this.list.push(stock) + //} + + }, + setWorkstation(workstation) { + this.list=[] + this.tailHandle.workstationId = workstation.id + this.tailHandle.workstationNo = workstation.workstationNo + this.tailHandle.workstationName = workstation.name + this.$u.api.returnMaterial.getFeedingStockByWorkstationNo({workstationNo:workstation.workstationNo}).then(res => { + let reList = [] + reList = res.data; + if(reList.length!=0) + { + // 鎸夊彲鐢ㄦ暟閲忔帓涓簭 + reList.sort(this.compare('availableStockQuantity')) + reList.forEach((item)=>{ + this.list.push({ + locationId:item.locationId, + locNo:item.locNo, + partBatchNo:item.partBatchNo, + partId:item.partId, + partNo:item.partNo, + partName:item.partName, + availableStockQuantity:item.availableStockQuantity, + unit:item.unit, + ifsBatchNo:item.ifsBatchNo, + id:item.id, + systemNo:item.systemNo, + isSelected:false + }) + }) + } + }); + }, + toWorkstation() { + uni.navigateTo({ + url: '/pages/product/tailHandle/workstationList' + }) + }, + loadList(sanCode) { + let that = this + if(sanCode!="") + { + //鏍规嵁鎵叆鐨勫瓧绗︿覆淇℃伅锛屽垽鏂壂鐨勬槸鏉″舰鐮侊紝杩樻槸浜岀淮鐮� + let snNo + if (sanCode.indexOf('sn_no') != -1) { + // 浜岀淮鐮� + const scanContentJson = JSON.parse( + sanCode.replace(/\n/g, '').replace(/\s*/g, '') + ) + snNo=scanContentJson.sn_no + + } else { + // 鏉″舰鐮� + snNo = sanCode + } + //鏍规嵁sn鍙烽�変腑鐗╂枡 + let exsitMaterial=this.list.find((item)=>{ + return item.partBatchNo==snNo + }) + if(exsitMaterial){ + exsitMaterial.isSelected=true + /*this.list.forEach((item,index)=>{ + if(item.id ==exsitMaterial.id){ + this.list.splice(index,1) + return; + } + })*/ + //灞曠ず鍦ㄥ垪琛ㄦ渶涓婃柟 + //this.list.unshift(exsitMaterial) + + } + } + }, + goSubmit(){ + let stockIds = [] + this.list.forEach((item) => { + if(item.isSelected){ + stockIds.push(item) + } + }) + if(stockIds.length>0){ + this.showConfirm=true + this.$u.api.returnMaterial.getReturnLocations({workstationId:this.tailHandle.workstationId}).then((res) => { + console.log(res); + console.log(stockIds); + this.arr = res.data + }) + } else { + this.$u.toast('璇烽�夋嫨闇�鍙戞斁鐨勭墿鏂�!') + } + }, + confirm(){ + let stockIds = [] + if(this.active === '鐐瑰嚮閫夋嫨搴撲綅') { + this.$u.toast('璇烽�夋嫨搴撲綅') + this.showConfirm = true + } else { + this.list.forEach((item) => { + if(item.isSelected){ + stockIds.push({ + id:item.id, + partBatchNo:item.partBatchNo, + partId:item.partId, + returnLocationId:this.obj.id, + returnQuantity:item.returnValue, + systemNo:item.systemNo, + workstationId:this.tailHandle.workstationId + }) + } + }) + if(stockIds.length>0){ + this.$u.api.returnMaterial.returnMaterial(stockIds).then(res => { + let reData = res.data; + this.$u.toast('閫�鏂欐垚鍔�!') + this.getWorkstationMaterial(this.tailHandle.workstationNo) + }) + } + } + }, + getWorkstationMaterial(workstationNo){ + this.list=[] + this.$u.api.returnMaterial.getFeedingStockByWorkstationNo({workstationNo:workstationNo}).then(res => { + let reList = [] + reList = res.data; + if(reList.length!=0) + { + // 鎸夊彲鐢ㄦ暟閲忔帓涓簭 + reList.sort(this.compare('availableStockQuantity')) + reList.forEach((item)=>{ + this.list.push({ + locationId:item.locationId, + locNo:item.locNo, + partBatchNo:item.partBatchNo, + partId:item.partId, + partNo:item.partNo, + partName:item.partName, + availableStockQuantity:item.availableStockQuantity, + unit:item.unit, + ifsBatchNo:item.ifsBatchNo, + id:item.id, + systemNo:item.systemNo, + isSelected:false + }) + }) + } + }); + }, + compare(pro){ + return function(obj1, obj2) { + const val1 = obj1[pro] + const val2 = obj2[pro] + if (val2 < val1) { + // 姝e簭 + return 1 + } else if (val2 > val1) { + return -1 + } else { + return 0 + } + } + } + } + }; +</script> +<style lang="scss" scoped> + .warehouse-materialreturn-bg{ + background-color: #F6F9FF; + background-image: url('~@/static/custom/materialReturn/backBg.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)); + padding: 0 20rpx; + background-attachment: fixed; + background-size: 100% auto; + background-repeat: no-repeat; + position: fixed; + top: 0; + bottom: 0; + width: 100%; + z-index: -1; + } + + .warehouse-materialreturn-param{ + padding: 50rpx 30rpx 0rpx 30rpx; + .warehouse-materialreturn-param-view{ + height: 100rpx; + background: rgba(255,255,255,0.61); + box-shadow: 0rpx 6rpx 8rpx 0rpx rgba(110,120,135,0.09); + border-radius: 10rpx; + padding:0rpx 23rpx; + margin-bottom: 30rpx; + .warehouse-materialreturn-param-item{ + height: 100rpx; + border: 1px solid #ADC8E4; + line-height: 100rpx; + display:flex; + justify-content: space-between; + border: none; + .warehouse-materialreturn-param-item-left{ + .item-one{ + font-size: 30rpx; + color: #4F4F4F; + } + } + .warehouse-materialreturn-param-item-right{ + display: flex; + align-items: center; + .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; + } + .scan{ + background-image: url('~@/static/custom/materialReturn/scan.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height:32rpx; + width:32rpx; + } + } + } + .param-extra{ + border-bottom: 1px solid #E8EBEE; + } + } + } + + .materialreturn-index-body-title{ + padding: 0rpx 30rpx 0rpx 30rpx; + margin-bottom: 32rpx; + display: flex; + flex-direction: row; + align-items: center; + .title-label{ + margin-left: 14rpx; + font-size: 34rpx; + font-weight: bold; + color: #283E65; + } + } + + .wrap .warehouse-materialreturn-scroll-list{ + height:calc(100vh - var(--window-top) - var(--window-bottom) - 494rpx); + width:100%; + } + + .warehouse-materialreturn-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 24rpx; + height: 382rpx; + padding: 10rpx 20rpx; + box-shadow:0rpx 6rpx 12rpx 2rpx rgba(127, 127, 127, 0.1) !important; + position:relative; + .content-header{ + .header-item{ + height: 50rpx; + display: flex; + align-items:center; + .content-header-icon-one{ + background-image: url('~@/static/custom/materialReturn/label-icon-1.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height:28rpx; + width:28rpx; + } + .content-header-icon-two{ + background-image: url('~@/static/custom/materialReturn/label-icon-2.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: #333333; + } + .content-header-title-ne{ + margin-left: 11rpx; + font-size: 26rpx; + color: #333333; + } + } + .header-item-toolbar-selected{ + position: absolute; + background-image: url('~@/static/custom/materialReturn/selected-btn-1.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height:50rpx; + width:50rpx; + right:20rpx; + top:12rpx; + display: flex; + justify-content: flex-end; + padding-top: 10rpx; + padding-right: 18rpx; + } + .header-item-toolbar-unselected{ + position: absolute; + background-image: url('~@/static/custom/materialReturn/unselected-btn-1.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height:50rpx; + width:50rpx; + right:20rpx; + top:12rpx; + display: flex; + justify-content: flex-end; + padding-top: 10rpx; + padding-right: 18rpx; + } + } + + .content-body{ + height:250rpx; + background: #F5F9FF; + border-radius: 10rpx; + padding: 25rpx 23rpx; + .row-list { + height: 50rpx; + display: flex; + flex-direction: row; + padding: 0px; + align-items: center; + justify-content: space-between; + } + .row-list ._label { + display: flex; + color: #666666; + font-size:26rpx; + align-items: center; + width: 170rpx; + } + + .row-list ._content { + text-align: right; + color: #909399; + font-size: 24rpx; + ._content-text{ + color:#214ded; + } + } + .row-list ._input { + display: flex; + justify-content: space-between; + align-items: center; + border-bottom: 1px solid #4FA0FF; + height: 56rpx; + .edit_icon{ + background-image: url('~@/static/custom/materialReturn/icon_edit.png'); + background-size: 100% auto; + background-repeat: no-repeat; + height:26rpx; + width:26rpx; + } + ::v-deep .uni-input-input{ + color:#D35651; + } + } + + .row-list .s1 { + display: flex; + color: #214DED; + font-size:26rpx; + align-items: center; + width: 170rpx; + } + } + } + } + + .materialReturn-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> -- Gitblit v1.9.3