From 25508db9e43fe793d7a34fa2d8ca1d7244d887a6 Mon Sep 17 00:00:00 2001 From: yyb <995253665@qq.com> Date: 星期四, 17 七月 2025 16:11:56 +0800 Subject: [PATCH] PDA核磅录入除提交外其余地方联调结果 --- pages/wareHouse/nuclearScale/nuclearScaleList.vue | 703 +++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 429 insertions(+), 274 deletions(-) diff --git a/pages/wareHouse/nuclearScale/nuclearScaleList.vue b/pages/wareHouse/nuclearScale/nuclearScaleList.vue index 7113631..d862c3e 100644 --- a/pages/wareHouse/nuclearScale/nuclearScaleList.vue +++ b/pages/wareHouse/nuclearScale/nuclearScaleList.vue @@ -1,298 +1,453 @@ <template> - <view class="page"> - <view class="finishProductIn-locno-bg" /> - <u-navbar title="鏍哥鍗曞彿" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" - back-icon-color="#000" /> - <view class="finishProductIn-locno-search"> - <u-search v-model="keywords" 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="finishProductIn-locno-scroll-list" scroll-y="true" @scrolltolower="loadMore"> - <u-cell-group class="finishProductIn-locno-scroll-list-group" :border="false"> - <view class="content" v-for="(item, index) in list" :key="item.locNo" :index="index" - @click="selectNo(item.index)"> - <view class="row-list"> - <view class="_label"> - <view class="_label-icon-1"> - </view> - <view class="_label-name">璁㈠崟鍙凤細</view> - </view> - <view class="_content"> - {{ item.value0 }} - </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.value1 }} - </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.value2 }} - </view> - </view> - <view class="row-list"> - <view class="_label"> - <view class="_label-icon-1"> - </view> - <view class="_label-name">鎵归噺澶у皬锛�</view> - </view> - <view class="_content"> - {{ item.value3 }} - </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.value4 }} - </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.value5 }} - </view> - </view> - </view> - </u-cell-group> - <view class="loadmore" @click="loadMore"> - <u-loadmore :status="loadStatus"></u-loadmore> - </view> - </scroll-view> - </view> - </view> + <view class="page"> + <view class="finishProductIn-locno-bg" /> + <u-navbar title="鏍哥鍗曞彿" :background="background" :border-bottom="false" :title-bold="true" title-color="#000" + back-icon-color="#000" /> + <view class="finishProductIn-locno-search"> + <u-search v-model="keywords" 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="finishProductIn-locno-scroll-list" scroll-y="true" @scrolltolower="getmoreList()"> + <u-skeleton v-if="isLoading && list.length === 0" type="list" :row="5" :loading="isLoading" /> + <u-cell-group class="finishProductIn-locno-scroll-list-group" :border="false"> + <view v-if="list.length === 0 && !isLoading" class="empty-tips"> + <text>鏆傛棤鏁版嵁</text> + </view> + <view class="content" v-for="(item, index) in list" :key="item.verificationNo" :index="index" + @click="selectNo(item)"> + <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-icon-1"> </view> + <view class="_label-name">鏍告鍗曞彿锛�</view> + </view> + <view class="_content"> + {{ item.verificationNo }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-2"> </view> + <view class="_label-name">浜у搧绫诲瀷锛�</view> + </view> + <view class="_content"> + {{ formatProductType(item.productType) }} + </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.licensePlate }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-1"> </view> + <view class="_label-name">鍙戣揣閫氱煡1锛�</view> + </view> + <view class="_content"> + {{ item.shippingNoticeNo1 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-2"> </view> + <view class="_label-name">瀹㈡埛鍚嶇О1锛�</view> + </view> + <view class="_content"> + {{ item.customerName1 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-1"> </view> + <view class="_label-name">鍙戣揣閫氱煡2锛�</view> + </view> + <view class="_content"> + {{ item.shippingNoticeNo2 }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-2"> </view> + <view class="_label-name">瀹㈡埛鍚嶇О2锛�</view> + </view> + <view class="_content"> + {{ item.customerName2 }} + </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.workshop }} + </view> + </view> + <view class="row-list"> + <view class="_label"> + <view class="_label-icon-1"> </view> + <view class="_label-name">鍙哥鍛橈細</view> + </view> + <view class="_content"> + {{ item.weighingOperator }} + </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.forkliftOperator }} + </view> + </view> + </view> + </view> + </u-cell-group> + <view class="loadmore" @click="getmoreList()"> + <u-loadmore :status="status" :load-text="loadText" @loadmore="getmoreList()" /> + </view> + </scroll-view> + </view> + <view class="plus-button" @click="openCreateWriteOffForm"> + <text class="plus-sign">+</text> + </view> + </view> </template> <script> -import content_bg from '@/static/custom/finishProductIn/locNoBg.png' -export default { - data() { - return { - background: { - backgroundImage: `url(${content_bg})`, - backgroundAttachment: 'fixed', - backgroundSize: '100% auto', - backgroundRepeat: 'no-repeat', - }, - keywords: '', - alllist: [], - originList: [], - query: { - current: 1, - size: 10 - }, - list: [ - { - index: 1, - value0: '123456789', - value1: '123456789', - value2: '123456789', - value3: '123456789', - value4: '123456789', - value5: '123456789' - } - ], - count: 0, - loadStatus: 'loading' - }; + import content_bg from "@/static/custom/finishProductIn/locNoBg.png"; + export default { + data() { + return { + background: { + backgroundImage: `url(${content_bg})`, + backgroundAttachment: "fixed", + backgroundSize: "100% auto", + backgroundRepeat: "no-repeat", + }, + keywords: "", + list: [], + total: 0, + pageNum: 1, + pageSize: 10, + status: 'loading', + isLoading: false, + loadText: { + loadmore: "鍔犺浇鏇村...", + loading: "鍔姏鍔犺浇涓�...", + nomore: "娌℃湁鏇村浜�", + }, + }; + }, + onLoad() { + this.getlist(); }, - onLoad() { - this.$u.api.finishProductIn.fetchList().then(res => { - this.alllist = res.data - this.originList = res.data - this.loadList() - }) - }, - methods: { - loadMore() { - if (this.loadStatus == "nomore" || this.loadStatus == "loading") { - return - } - this.loadStatus = "loading"; - setTimeout(() => { - this.query.current += 1; - this.loadList(); - }, 100); - }, - loadList() { - const data = this.originList.slice((this.query.current - 1) * this.query.size, this.query.current * this.query.size) - this.list = this.list.concat(data); - this.loadStatus = "loadmore"; - if (!data || data.length < this.query.size) { - this.loadStatus = "nomore"; - } - }, - search(value) { - this.list = []; - this.query.current = 1; - if (value) { - this.originList = this.alllist.filter(item => item.locNo.includes(value)) - } else { - this.originList = this.alllist - } - this.loadList() - }, - selectNo(no) { - this.refreshLastPage(no) - }, + onShow() { + this.getlist(); + }, + methods: { + //鍒涘缓鏍搁攢鍗� + openCreateWriteOffForm() { + uni.navigateTo({ + url: '/pages/wareHouse/nuclearScale/createwriteoffform' + }) + }, + getmoreList() { + if (this.pageSize >= this.total) { + this.status = "nomore"; + return; + } + this.isLoading = true; + this.status = "loading"; + setTimeout(() => { + this.pageSize += this.pageSize; + this.getlist(); + }, 1000); + }, + getlist() { + this.isLoading = true; + this.$u.api.NuclearScaleEntry + .getWeighingOrder({ + current: this.pageNum, + size: this.pageSize + }) + .then((res) => { + this.handleListResponse(res); + }) + .catch((err) => { + this.handleApiError(err); + }) + .finally(() => { + this.isLoading = false; + }); + }, - //鍒锋柊涓婁竴涓〉闈� - refreshLastPage(no) { - // 鍛婄煡 A.vue 鏇存柊鏁版嵁 - // 鑾峰彇椤甸潰鏍� - let pages = getCurrentPages() + getmoreList() { + if (this.isLoading || this.pageSize >= this.total) { + return; + } + this.isLoading = true; + this.status = "loading"; + setTimeout(() => { + this.pageSize += this.pageSize; + this.getlist(); + }, 500); + }, - // 鑾峰彇涓婁竴椤垫爤 - let prevPage = pages[pages.length - 2] + // 鎼滅储鐩稿叧鏂规硶 + search(value) { + if (value) { + this.list = []; + this.pageSize = 10; + this.isLoading = true; + this.$u.api.NuclearScaleEntry + .getWeighingOrder({ + current: this.pageNum, + size: this.pageSize, + verificationNo: value, + }) + .then((res) => { + this.handleListResponse(res); + }) + .catch((err) => { + this.handleApiError(err); + }) + .finally(() => { + this.isLoading = false; + }); + } else { + this.getlist(); + } + }, - // 瑙﹀彂涓婁竴椤� upData 鍑芥暟(骞舵惡甯﹀弬鏁�) - prevPage.$vm.setNo(no) + // 宸ュ叿鏂规硶 + handleListResponse(res) { + console.log('API Response:', res); + console.log('Response Code:', res.code); + console.log('Response Data:', res.data); + console.log('Response Records:', res.data ? res.data.records : 'res.data is undefined'); - // 杩斿洖涓婁竴椤� - uni.navigateBack({ - delta: 1 - }) - }, - } -}; + if (res.code != 0) { + uni.showToast({ + title: res.msg || '鑾峰彇鏁版嵁澶辫触', + icon: 'none' + }); + return; + } + + if (!res.data) { + console.error('res.data is undefined'); + uni.showToast({ + title: '鏁版嵁鏍煎紡閿欒', + icon: 'none' + }); + return; + } + + this.list = res.data.records || []; + this.total = res.data.total || 0; + this.status = this.pageSize >= this.total ? "nomore" : "loadmore"; + }, + + handleApiError(err) { + console.error('API璇锋眰澶辫触:', err); + uni.showToast({ + title: '缃戠粶寮傚父锛岃绋嶅悗閲嶈瘯', + icon: 'none' + }); + }, + formatProductType(type) { + const productTypeMap = { + 1: '瀵间綋', + 2: '閾滄潌', + 3: '瀵间綋2.6' + }; + return productTypeMap[type] || type; + }, + selectNo(no) { + this.refreshLastPage(no); + }, + + //鍒锋柊涓婁竴涓〉闈� + refreshLastPage(no) { + // 鍛婄煡 A.vue 鏇存柊鏁版嵁 + // 鑾峰彇椤甸潰鏍� + let pages = getCurrentPages(); + + // 鑾峰彇涓婁竴椤垫爤 + let prevPage = pages[pages.length - 2]; + + // 瑙﹀彂涓婁竴椤� upData 鍑芥暟(骞舵惡甯﹀弬鏁�) + prevPage.$vm.setNo(no); + + // 杩斿洖涓婁竴椤� + uni.navigateBack({ + delta: 1, + }); + }, + }, + }; </script> -<style lang="scss"> -.finishProductIn-locno-bg { - background-color: #F6F9FF; - background-image: url('~@/static/custom/finishProductIn/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)); - 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; -} +<style lang="scss" scoped> + .plus-button { + width: 40px; + height: 40px; + border-radius: 50%; + background-color: #007aff; + display: flex; + justify-content: center; + align-items: center; + position: fixed; + bottom: 40px; + right: 10px; + z-index: 100; + } -.finishProductIn-locno-search { - padding: 40rpx 30rpx 20rpx 30rpx; -} + .plus-sign { + color: white; + font-size: 50px; + position: relative; + bottom: 4px; -.wrap .finishProductIn-locno-scroll-list { - height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx); - width: 100%; -} + } -.finishProductIn-locno-scroll-list-group { - ::v-deep .u-cell-item-box { - background-color: rgba(250, 252, 255, 0.36) !important; - padding: 0rpx 30rpx; - } + .finishProductIn-locno-bg { + background-color: #f6f9ff; + background-image: url("~@/static/custom/finishProductIn/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)); + 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; + } - .content { - font-size: 12px; - background-color: #FFFFFF; - box-sizing: border-box; - border-radius: 10rpx; - margin: 0rpx 0rpx 16rpx; - padding: 20rpx; - box-shadow: none; + .finishProductIn-locno-search { + padding: 40rpx 30rpx 20rpx 30rpx; + } - .content-header { - width: 40rpx; - height: 90rpx; - display: flex; - align-items: center; + .wrap .finishProductIn-locno-scroll-list { + height: calc(100vh - var(--window-top, 0) - var(--window-bottom, 0) - 242rpx); + width: 100%; + min-height: 300rpx; /* 娣诲姞鏈�灏忛珮搴︾‘淇濆厓绱犲缁堝彲瑙� */ + } - .content-header-icon { - background-image: url('~@/static/custom/moveWareHouse/header_icon.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height: 28rpx; - width: 28rpx; - } + .finishProductIn-locno-scroll-list-group { + ::v-deep .u-cell-item-box { + background-color: rgba(250, 252, 255, 0.36) !important; + padding: 0rpx 30rpx; + } - .content-header-title { - margin-left: 11rpx; - font-size: 26rpx; - font-weight: bold; - color: #333333; - } - } + .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; - .row-list { - height: 60rpx; - display: flex; - flex-direction: row; - padding: 0px; - align-items: center; - } + .content-header { + width: 40rpx; + height: 90rpx; + display: flex; + align-items: center; - .row-list ._label { - display: flex; - flex: 0.8; - color: #909399; - 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; + } - ._label-icon-1 { - background-image: url('~@/static/custom/moveWareHouse/label-icon-1.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height: 26rpx; - width: 26rpx; - } + .content-header-title { + margin-left: 11rpx; + font-size: 26rpx; + font-weight: bold; + color: #3d52f5; + } + } - ._label-icon-2 { - background-image: url('~@/static/custom/moveWareHouse/label-icon-2.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height: 26rpx; - width: 26rpx; - } + .content-body { + flex: 1; + background: #f5f9ff; + border-radius: 10rpx; + padding: 0rpx 23rpx; - ._label-icon-3 { - background-image: url('~@/static/custom/moveWareHouse/label-icon-3.png'); - background-size: 100% auto; - background-repeat: no-repeat; - height: 26rpx; - width: 26rpx; - } + .row-list { + height: 60rpx; + display: flex; + flex-direction: row; + padding: 0px; + align-items: center; + } - ._label-name { - margin-left: 11rpx; - font-size: 26rpx; - font-weight: 500; - color: #666666; - } - } + .row-list ._label { + display: flex; + flex: 0.8; + color: #909399; + align-items: center; - .row-list ._content { - flex: 1.5; - text-align: right; - color: #909399; - font-size: 24rpx; - } + ._label-icon-1 { + background-image: url("~@/static/custom/moveWareHouse/label-icon-1.png"); + background-size: 100% auto; + background-repeat: no-repeat; + height: 26rpx; + width: 26rpx; + } - .row-list .s1 { - color: #D35651; - } - } -} -</style> + ._label-icon-2 { + background-image: url("~@/static/custom/moveWareHouse/label-icon-2.png"); + background-size: 100% auto; + background-repeat: no-repeat; + height: 26rpx; + width: 26rpx; + } + + ._label-icon-3 { + background-image: url("~@/static/custom/moveWareHouse/label-icon-3.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: #666666; + } + } + + .row-list ._content { + flex: 1.5; + text-align: right; + color: #909399; + font-size: 24rpx; + } + + .row-list .s1 { + color: #d35651; + } + } + } + } +</style> \ No newline at end of file -- Gitblit v1.9.3