<template>
|
<view>
|
<u-sticky>
|
<view style="background-color: #ffffff">
|
<uni-search-bar
|
@confirm="search"
|
v-model="searchValue"
|
></uni-search-bar>
|
</view>
|
</u-sticky>
|
<uni-list :border="true">
|
<uni-list-item
|
direction="column"
|
clickable
|
@click="groupClick(item.order_no)"
|
link
|
:to="page + item.order_no"
|
v-for="item in allReceivingOrders"
|
:key="item.order_no"
|
>
|
<template v-slot:body>
|
<uni-group margin-top="20">
|
<view
|
style="
|
line-height: 17px;
|
color: #596671;
|
font-size: 14px;
|
text-align: center;
|
display: flex;
|
justify-content: space-between;
|
"
|
>
|
入库单号 {{ item.order_no }}
|
</view>
|
<view
|
style="
|
margin-top: 10rpx;
|
line-height: 17px;
|
color: #596671;
|
font-size: 14px;
|
text-align: center;
|
display: flex;
|
justify-content: space-between;
|
"
|
>
|
供应商名称 {{ item.supplier_name }}
|
</view>
|
<view
|
style="
|
margin-top: 10rpx;
|
line-height: 17px;
|
color: #596671;
|
font-size: 14px;
|
text-align: center;
|
display: flex;
|
justify-content: space-between;
|
"
|
>
|
创建日期 {{ item.createDate }}
|
</view>
|
<view style="margin-top: 10rpx; display: flex; align-items: center">
|
<view
|
style="
|
text-align: center;
|
line-height: 40rpx;
|
border-radius: 8rpx;
|
width: 238rpx;
|
height: 40rpx;
|
font-size: 22rpx;
|
background-color: rgba(22, 127, 247, 0.18);
|
color: #1f63ff;
|
"
|
>
|
订单状态 {{ item.odrderStatus }}
|
</view>
|
<view
|
style="
|
text-align: center;
|
line-height: 40rpx;
|
border-radius: 8rpx;
|
width: 158rpx;
|
height: 40rpx;
|
font-size: 22rpx;
|
color: #f56c6c;
|
"
|
>
|
总量 {{ item.SumQty }}
|
</view>
|
<view
|
style="
|
text-align: center;
|
line-height: 40rpx;
|
border-radius: 8rpx;
|
width: 158rpx;
|
height: 40rpx;
|
font-size: 22rpx;
|
color: #f56c6c;
|
"
|
>
|
已入 {{ item.OverQty }}
|
</view>
|
</view>
|
</uni-group>
|
</template>
|
</uni-list-item>
|
</uni-list>
|
<uni-load-more :status="status" v-if="loadVisible"></uni-load-more>
|
|
<u-back-top :scroll-top="scrollTop" top="400"></u-back-top>
|
</view>
|
</template>
|
|
<script>
|
import { InboundOrderStatus } from "../../common/config.js";
|
export default {
|
data() {
|
return {
|
page: "/pages/stash/inboundorderDetail?",
|
loadVisible: false,
|
searchValue: "",
|
status: "more",
|
allReceivingOrders: [],
|
pageNo: 1,
|
scrollTop: 0,
|
warehouseId: "",
|
isLoaded: false,
|
};
|
},
|
onLoad(res) {
|
this.warehouseId = res.warehouseId;
|
this.page = this.page + "warehouseId=" + this.warehouseId + "&orderNo=";
|
this.getData();
|
},
|
onReachBottom() {
|
if (this.status === "more") {
|
this.pageNo += 1;
|
this.getData();
|
this.isLoaded = true;
|
}
|
},
|
onShow() {
|
this.isLoaded = uni.getStorageSync("isLoaded");
|
if (this.isLoaded) {
|
uni.removeStorageSync("isLoaded");
|
this.pageNo = 1;
|
this.allReceivingOrders = [];
|
// 从其他页面返回时刷新
|
this.getData();
|
}
|
},
|
onPageScroll(e) {
|
this.scrollTop = e.scrollTop;
|
},
|
methods: {
|
search(res) {
|
this.pageNo = 1;
|
this.getData();
|
},
|
groupClick() {},
|
getData() {
|
var postData = {
|
MainData: {
|
warehouseId: this.warehouseId,
|
orderNo: this.searchValue,
|
pageNo: this.pageNo,
|
},
|
};
|
|
// 如果是第一页或搜索,清空数据
|
if (this.pageNo === 1 || this.searchValue !== "") {
|
this.allReceivingOrders = [];
|
this.status = "more";
|
}
|
|
this.$u
|
.post("/api/CabinOrder/GetCabinOrders", postData)
|
.then((res) => {
|
if (res.status) {
|
if (res.data && res.data.length > 0) {
|
const newData = res.data.map((i) => ({
|
...i,
|
InboundOrderStatus: i.odrderStatus.label,
|
SumQty: i.details
|
.map((item) => item.order_qty)
|
.reduce((prev, next) => prev + next, 0),
|
OverQty: i.details
|
.map((item) => item.order_Inqty)
|
.reduce((prev, next) => prev + next, 0),
|
}));
|
|
// 关键修改:追加数据而不是替换
|
this.allReceivingOrders = [
|
...this.allReceivingOrders,
|
...newData,
|
];
|
|
// 如果返回的数据少于5条,说明没有更多数据了
|
if (res.data.length < 5) {
|
this.status = "noMore";
|
} else {
|
this.status = "more";
|
}
|
|
// 控制加载提示显示
|
this.loadVisible = this.allReceivingOrders.length > 0;
|
} else {
|
// 没有数据
|
this.status = "noMore";
|
this.loadVisible = this.allReceivingOrders.length > 0;
|
|
// 如果是第一页且没有数据,显示空状态
|
if (this.pageNo === 1) {
|
this.allReceivingOrders = [];
|
}
|
}
|
}
|
})
|
.catch((err) => {
|
console.error("请求失败:", err);
|
this.status = "noMore";
|
});
|
},
|
},
|
};
|
</script>
|
|
<style lang="scss">
|
@import "@/common/uni-ui.scss";
|
|
page {
|
display: flex;
|
flex-direction: column;
|
box-sizing: border-box;
|
background-color: #efeff4;
|
min-height: 100%;
|
height: auto;
|
}
|
|
.tips {
|
color: #67c23a;
|
font-size: 14px;
|
line-height: 40px;
|
text-align: center;
|
background-color: #f0f9eb;
|
height: 0;
|
opacity: 0;
|
transform: translateY(-100%);
|
transition: all 0.3s;
|
}
|
|
.tips-ani {
|
transform: translateY(0);
|
height: 40px;
|
opacity: 1;
|
}
|
|
.content {
|
width: 100%;
|
display: flex;
|
}
|
|
.list-picture {
|
width: 100%;
|
height: 145px;
|
}
|
|
.thumb-image {
|
width: 100%;
|
height: 100%;
|
}
|
|
.ellipsis {
|
display: flex;
|
overflow: hidden;
|
}
|
|
.uni-ellipsis-1 {
|
overflow: hidden;
|
white-space: nowrap;
|
text-overflow: ellipsis;
|
}
|
|
.uni-ellipsis-2 {
|
overflow: hidden;
|
text-overflow: ellipsis;
|
display: -webkit-box;
|
-webkit-line-clamp: 2;
|
-webkit-box-orient: vertical;
|
}
|
|
.customcss {
|
display: flex;
|
position: fixed;
|
width: 100%;
|
top: 10px;
|
text-align: center;
|
z-index: 999;
|
left: 30px;
|
height: 20%;
|
}
|
|
.footer {
|
padding-top: 50%;
|
}
|
</style>
|