From d3cff99cd833fedf7714cbe42e052f1402136a84 Mon Sep 17 00:00:00 2001 From: yyb <995253665@qq.com> Date: 星期二, 24 六月 2025 17:29:05 +0800 Subject: [PATCH] 联调车间订单下发页面 --- pages/product/WorkshopOrderIssued/index.vue | 820 ++++++++++++++++++++++++++++++---------------------------- 1 files changed, 422 insertions(+), 398 deletions(-) diff --git a/pages/product/WorkshopOrderIssued/index.vue b/pages/product/WorkshopOrderIssued/index.vue index 81349d1..bfed593 100644 --- a/pages/product/WorkshopOrderIssued/index.vue +++ b/pages/product/WorkshopOrderIssued/index.vue @@ -1,440 +1,464 @@ // 杞﹂棿璁㈠崟涓嬪彂 <template> - <view class="page"> - <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> - <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="seachComp()">{{ registerInfo.value2 == '' ? - "鐐瑰嚮閫夋嫨" : registerInfo.value2 }}</text> - <u-icon name="arrow-right" color="#687792" size="28" @click="seachComp()" - v-show="registerInfo.value2 == ''"></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"> - <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> - </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> - </view> - </u-cell-group> - </scroll-view> - <scan></scan> - </view> - </view> + <view class="page"> + <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.moNo == "" ? "鐐瑰嚮閫夋嫨" : registerInfo.moNo + }}</text> + <u-icon + name="arrow-right" + color="#687792" + size="28" + @click="seachPersonnelNo()" + v-show="registerInfo.moNo == ''" + ></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"> + <text class="item-one item-two" @click="seachComp()">{{ + registerInfo.partNo == "" ? "鐐瑰嚮閫夋嫨" : registerInfo.partNo + }}</text> + <u-icon + name="arrow-right" + color="#687792" + size="28" + @click="seachComp()" + v-show="registerInfo.partNo == ''" + ></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"> + <text class="item-one item-two">{{ registerInfo.partName }}</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> + </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.outBatchNo }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-name">涓嬪彂鏁伴噺锛�</view> + </view> + <view class="_content"> + {{ item.qpa }} + </view> + </view> + </view> + </view> + </u-cell-group> + </scroll-view> + <scan></scan> + </view> + <u-modal + v-model="showModal" + title="" + :show-cancel-button="true" + :show-confirm-button="true" + @confirm="confirm" + @cancel="cancel" + > + <view class="popup-content"> + <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">{{ + modalList.outBatchNo + }}</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"> + <u-input + class="item-one item-two" + v-model="modalList.suppliedQuantity" + /> + </view> + </view> + </view> + </view> + </view> + </u-modal> + </view> </template> <script> import scan from "@/components/scan/scan.vue"; -import content_bg from '@/static/custom/packing/backBg.png' +import content_bg from "@/static/custom/packing/backBg.png"; export default { - components: { - scan, - }, - data() { - return { - background: { - backgroundImage: `url(${content_bg})`, - backgroundAttachment: 'fixed', - backgroundSize: '100% auto', - backgroundRepeat: 'no-repeat', - }, - labelStyle: { - fontSize: '32rpx', - whiteSpace: 'nowrap' - }, - registerInfo: { - value1: '', - value2: '', - }, - 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(option) { }, - onShow() { + components: { + scan, + }, - 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(); - - }) - }, - onNavigationBarButtonTap() { - this.goScan() - }, - onReady() { }, - methods: { - setNo(val) { - console.log('11111', val) - this.registerInfo.value1 = val.value1 - this.registerInfo.value2 = val.value2 - - }, - //璁㈠崟鍙� - seachPersonnelNo() { - console.log('杞﹂棿璁㈠崟鍙�') - uni.navigateTo({ - url: '/pages/product/report/orderList' - }) - }, - //瀛愪欢 - seachComp() { - if (this.registerInfo.value1 == null || this.registerInfo.value1 == '') { - this.$u.toast('璇烽�夋嫨璁㈠崟鍙�') - return - } - console.log('瀛愪欢') - uni.navigateTo({ - url: '/pages/product/WorkshopOrderIssued/comp' - }) - }, - goScan() { - uni.scanCode({ - scanType: ['qrCode'], - success: res => { - try { - console.log('鎵爜缁撴灉锛�', res); - this.scanHandle(res.result) - } catch (e) { } - } - }); - }, - 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) - } - } - }, - 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) => { - // }) - - }, - } + data() { + return { + background: { + backgroundImage: `url(${content_bg})`, + backgroundAttachment: "fixed", + backgroundSize: "100% auto", + backgroundRepeat: "no-repeat", + }, + labelStyle: { + fontSize: "32rpx", + whiteSpace: "nowrap", + }, + // 寮圭獥鍒楄〃 + modalList: { + operationTaskId: "", + partNo: "", + moNo: "", + }, + // 涓婚〉闈㈠垪琛� + registerInfo: { + id: "", + moNo: "", + partNo: "", + partName: "", + }, + // 涓嬪彂璁板綍鍒楄〃 + hasScanSnList: [], + codeInfoId: "", + showModal: false, + }; + }, + onShow() { + let that = this; + uni.$off("scan"); // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒 + uni.$on("scan", function (data) { + console.log("onscan"); + if (that.registerInfo.partNo == "") { + uni.showToast({ + icon: "none", + title: "璇峰厛閫夋嫨瀛愪欢锛�", + duration: 2 * 1000, + }); + return; + } + if (data.code) { + //鎵爜鎴愬姛鍚庣殑鍥炶皟锛屼綘鍙互鍐欒嚜宸辩殑閫昏緫浠g爜鍦ㄨ繖閲� + console.log("鎵爜缁撴灉锛�", data.code); + let codeInfo = JSON.parse(data.code); + that.codeInfoId = codeInfo.id; + if (codeInfo.partNo) { + // 鎵弿鎶ュ伐鍗曚簩缁寸爜 + that.scanHandle(data.code); + that.$forceUpdate(); + that.getHandelList(); + } + } + }); + }, + methods: { + getHandelList() { + this.$u.api.workReporting + .getProductMainV1({ + current: 1, + size: -1, + id: this.codeInfoId, + }) + .then((res) => { + this.hasScanSnList = res.data.productOutputList; + }); + }, + // 鐐瑰嚮纭鍚庤幏鍙栦笅鍙戣褰� + confirm() { + // 澶勭悊纭閫昏緫 + this.$u.api.WorkshopOrderIssued.checkRawPart(this.modalList).then( + (res) => { + console.log("res", res); + if (res.data.code === 0) { + this.confirmList(); + } + } + ); + }, + // 璁㈠崟涓嬪彂 + confirmList() { + this.$u.api.WorkshopOrderIssued.checkRawPart(this.modalList).then( + (res) => { + console.log("res", res); + if (res.data.code === 0) { + this.showModal = false; + } + } + ); + }, + // 妯℃�佹鍙栨秷 + cancel() { + this.showModal = false; // 鍏抽棴寮圭獥 + }, + // 瀛愪欢鍥炴樉 + compNo(val) { + this.registerInfo.partNo = val.partNo; + this.registerInfo.partName = val.partName; + }, + // 璁㈠崟鍙峰洖鏄� + setNo(val) { + console.log("11111", val); + this.registerInfo.moNo = val.moNo; + // this.registerInfo.value2 = val.value2; + this.registerInfo.id = val.id; + }, + //璁㈠崟鍙� + seachPersonnelNo() { + console.log("杞﹂棿璁㈠崟鍙�"); + uni.navigateTo({ + url: "/pages/product/report/orderList", + }); + }, + //瀛愪欢 + seachComp() { + if (this.registerInfo.moNo == "") { + this.$u.toast("璇烽�夋嫨璁㈠崟鍙�"); + return; + } + console.log("瀛愪欢"); + // 浣跨敤uni.navigateTo鏂规硶璺宠浆锛屽苟閫氳繃queryParams浼犻�掑弬鏁� + uni.navigateTo({ + url: + "/pages/product/WorkshopOrderIssued/comp?id=" + + encodeURIComponent(JSON.stringify(this.registerInfo.id)), + }); + }, + // 鎵爜鍚庢暟鎹洖鏄� + scanHandle(val) { + this.modalList = val; + this.showModal = true; + }, + }, }; </script> <style lang="scss" scoped> +.popup-content { + width: 600rpx; + height: 250rpx; + background-color: #fff; + border-radius: 8px; + z-index: 10; + /* 纭繚鍐呭鍦ㄨ挋鐗堜箣涓� */ +} .packing-registration-bg { - background-color: #F6F9FF; - background-image: url('~@/static/custom/packing/backBg.png'); - 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; + background-color: #f6f9ff; + background-image: url("~@/static/custom/packing/backBg.png"); + 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; } .packing-registration-param { - padding: 40rpx 30rpx 10rpx 30rpx; + padding: 40rpx 30rpx 10rpx 30rpx; - .packing-registration-param-title { - display: flex; - flex-direction: row; - align-items: center; - margin-bottom: 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; - } - } + .title-label { + margin-left: 14rpx; + font-size: 34rpx; + font-weight: bold; + color: #283e65; + } + } - .packing-registration-param-view { - height: 345rpx; - background-color: #fff; - border-radius: 10rpx; - padding: 0rpx 23rpx; - margin-bottom: 30rpx; + .packing-registration-param-view { + height: 345rpx; + background-color: #fff; + border-radius: 10rpx; + padding: 0rpx 23rpx; + margin-bottom: 30rpx; - .packing-registration-param-item { - height: 90rpx; - border: 1px solid #ADC8E4; - line-height: 90rpx; - display: flex; - justify-content: space-between; - border: none; + .packing-registration-param-item { + height: 90rpx; + border: 1px solid #adc8e4; + line-height: 90rpx; + display: flex; + justify-content: space-between; + border: none; - .packing-registration-param-item-left { - .item-one { - font-size: 30rpx; - color: #666666; - } - } + .packing-registration-param-item-left { + .item-one { + font-size: 30rpx; + color: #666666; + } + } - .packing-registration-param-item-right { - display: flex; - justify-content: space-between; + .packing-registration-param-item-right { + display: flex; + justify-content: space-between; - .item-one { - font-size: 30rpx; - color: #333333; - margin-right: 6rpx; - } + .item-one { + font-size: 30rpx; + color: #333333; + margin-right: 6rpx; + } - .item-two { - font-size: 30rpx; - color: #A6B4CC; - margin-right: 6rpx; - } + .item-two { + font-size: 30rpx; + color: #a6b4cc; + margin-right: 6rpx; + } - .item-three { - font-size: 30rpx; - color: #214DED; - margin-right: 6rpx; - } - } - } + .item-three { + font-size: 30rpx; + color: #214ded; + margin-right: 6rpx; + } + } + } - .param-extra { - border-bottom: 1px solid #EDEDED; - } - } + .param-extra { + border-bottom: 1px solid #ededed; + } + } } .wrap .packing-registration-scroll-list { - height: calc(100vh - var(--window-top) - var(--window-bottom) - 550rpx); - width: 100%; + height: calc(100vh - var(--window-top) - var(--window-bottom) - 550rpx); + 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; - } + ::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 { + 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 { + 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-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-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; + .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 { + 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; + .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; - } - } + ._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 ._content { + flex: 1.5; + text-align: right; + color: #909399; + font-size: 24rpx; + } - .row-list .s1 { - color: #d35651; - } - } - } + .row-list .s1 { + color: #d35651; + } + } + } } </style> \ No newline at end of file -- Gitblit v1.9.3