| | |
| | | <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" |
| | | /> |
| | | <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 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)" |
| | | > |
| | | <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="_label-name">核榜单号:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value0 }} |
| | | {{ item.verificationNo }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | |
| | | <view class="_label-name">产品类型:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value1 }} |
| | | {{ formatProductType(item.productType) }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | |
| | | <view class="_label-name">车牌号:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value2 }} |
| | | {{ item.licensePlate }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | | <view class="_label"> |
| | | <view class="_label-icon-1"> </view> |
| | | <view class="_label-name">发货通知:</view> |
| | | <view class="_label-name">发货通知1:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value3 }} |
| | | {{ item.shippingNoticeNo1 }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | | <view class="_label"> |
| | | <view class="_label-icon-2"> </view> |
| | | <view class="_label-name">客户名称:</view> |
| | | <view class="_label-name">客户名称1:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value4 }} |
| | | {{ 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-name">生产车间:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value5 }} |
| | | {{ item.workshop }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | |
| | | <view class="_label-name">司磅员:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value6 }} |
| | | {{ item.weighingOperator }} |
| | | </view> |
| | | </view> |
| | | <view class="row-list"> |
| | |
| | | <view class="_label-name">叉车司机:</view> |
| | | </view> |
| | | <view class="_content"> |
| | | {{ item.value7 }} |
| | | {{ item.forkliftOperator }} |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </u-cell-group> |
| | | <view class="loadmore" @click="loadMore"> |
| | | <u-loadmore :status="loadStatus"></u-loadmore> |
| | | <view class="loadmore" @click="getmoreList()"> |
| | | <u-loadmore :status="status" :load-text="loadText" @loadmore="getmoreList()" /> |
| | | </view> |
| | | </scroll-view> |
| | | </view> |
| | |
| | | backgroundRepeat: "no-repeat", |
| | | }, |
| | | keywords: "", |
| | | alllist: [], |
| | | originList: [], |
| | | query: { |
| | | current: 1, |
| | | size: 10, |
| | | list: [], |
| | | total: 0, |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | status: 'loading', |
| | | isLoading: false, |
| | | loadText: { |
| | | loadmore: "加载更多...", |
| | | loading: "努力加载中...", |
| | | nomore: "没有更多了", |
| | | }, |
| | | list: [ |
| | | { |
| | | value0: "123456789", |
| | | value1: "123456789", |
| | | value2: "123456789", |
| | | value3: "123456789", |
| | | value4: "123456789", |
| | | value5: "123456789", |
| | | value6: "123456789", |
| | | value7: "123456789", |
| | | }, |
| | | { |
| | | value0: "123456789", |
| | | value1: "123456789", |
| | | value2: "123456789", |
| | | value3: "123456789", |
| | | value4: "123456789", |
| | | value5: "123456789", |
| | | value6: "123456789", |
| | | value7: "123456789", |
| | | }, |
| | | ], |
| | | count: 0, |
| | | loadStatus: "loading", |
| | | }; |
| | | }, |
| | | onLoad() { |
| | | this.$u.api.finishProductIn.fetchList().then((res) => { |
| | | this.alllist = res.data; |
| | | this.originList = res.data; |
| | | this.loadList(); |
| | | }); |
| | | this.getlist(); |
| | | }, |
| | | onShow() { |
| | | this.getlist(); |
| | | }, |
| | | methods: { |
| | | //创建核销单 |
| | |
| | | url: '/pages/wareHouse/nuclearScale/createwriteoffform' |
| | | }) |
| | | }, |
| | | loadMore() { |
| | | if (this.loadStatus == "nomore" || this.loadStatus == "loading") { |
| | | getmoreList() { |
| | | if (this.pageSize >= this.total) { |
| | | this.status = "nomore"; |
| | | return; |
| | | } |
| | | this.loadStatus = "loading"; |
| | | this.isLoading = true; |
| | | this.status = "loading"; |
| | | setTimeout(() => { |
| | | this.query.current += 1; |
| | | this.loadList(); |
| | | }, 100); |
| | | this.pageSize += this.pageSize; |
| | | this.getlist(); |
| | | }, 1000); |
| | | }, |
| | | 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"; |
| | | 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; |
| | | }); |
| | | }, |
| | | |
| | | getmoreList() { |
| | | if (this.isLoading || this.pageSize >= this.total) { |
| | | return; |
| | | } |
| | | this.isLoading = true; |
| | | this.status = "loading"; |
| | | setTimeout(() => { |
| | | this.pageSize += this.pageSize; |
| | | this.getlist(); |
| | | }, 500); |
| | | }, |
| | | |
| | | // 搜索相关方法 |
| | | search(value) { |
| | | this.list = []; |
| | | this.query.current = 1; |
| | | if (value) { |
| | | this.originList = this.alllist.filter((item) => |
| | | item.locNo.includes(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.originList = this.alllist; |
| | | this.getlist(); |
| | | } |
| | | this.loadList(); |
| | | }, |
| | | |
| | | // 工具方法 |
| | | 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'); |
| | | |
| | | 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); |
| | |
| | | delta: 1, |
| | | }); |
| | | }, |
| | | // 新增按钮 |
| | | handleClick() { |
| | | console.log("按钮被点击"); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | right: 10px; |
| | | z-index: 100; |
| | | } |
| | | |
| | | .plus-sign { |
| | | color: white; |
| | | font-size: 50px; |
| | |
| | | bottom: 4px; |
| | | |
| | | } |
| | | |
| | | .finishProductIn-locno-bg { |
| | | background-color: #f6f9ff; |
| | | background-image: url("~@/static/custom/finishProductIn/locNoBg.png"); |
| | |
| | | } |
| | | |
| | | .wrap .finishProductIn-locno-scroll-list { |
| | | height: calc(100vh - var(--window-top) - var(--window-bottom) - 242rpx); |
| | | height: calc(100vh - var(--window-top, 0) - var(--window-bottom, 0) - 242rpx); |
| | | width: 100%; |
| | | min-height: 300rpx; /* 添加最小高度确保元素始终可见 */ |
| | | } |
| | | |
| | | .finishProductIn-locno-scroll-list-group { |