2023-09-11 14:13:51 +08:00

160 lines
3.6 KiB
Vue

<template>
<view>
<globalPopup ref="globalPopup"></globalPopup>
<u-sticky bgColor="#0122C7" style="width: 100vw">
<u-tabs :list="tabLists" @change="sectionChange" lineColor="#fff" :scrollable="false" lineWidth="40"
inactiveStyle="color:#fff" activeStyle="color:#fff"></u-tabs>
</u-sticky>
<view class="content">
<u-search placeholder="搜索你的订单" @search="getOrderList" :show-action="false" bg-color="white"
v-model="keywords"></u-search>
<view v-if="!orderlist.length">
<u-empty mode="data" icon="../../static/img/empty/data.png"> </u-empty>
</view>
<view v-else @scroll='scrolling'>
<logistiCard ref="logistiCards" v-for="(item, index) in orderlist" @getlist="getOrderList"
@showTost="showToast" @showToast2="showToast2" :goodsInfo="item" :key="index">
</logistiCard>
<u-loadmore :status="status" />
</view>
<!-- -->
<u-toast ref="uToast"></u-toast>
</view>
</view>
</template>
<script>
import {
getList
} from "@/api/logistics.js"
import globalPopup from "@/components/GlobalPopup/GlobalPopup.vue"
import {
informationAdd
} from "@/api/logistics.js"
import logistiCard from "@/components/logistiComptent/logistiCard/logistiCard.vue"
//#ifdef APP-PLUS
var jpushModule = uni.requireNativePlugin("JG-JPush");
// #endif
export default {
components: {
logistiCard,
globalPopup
},
data() {
return {
is_captain: "",
notArr: [],
keywords: "",
tabLists: [{
name: '待配送',
}, {
name: '待送达'
}, {
name: '已送达'
}],
curNow: 0,
orderlist: [],
id: "",
status: "loadmore",
page_num: 1,
flag: false
}
},
methods: {
sectionChange(index) {
this.curNow = index.index;
this.getOrderList()
},
showToast() {
this.$refs.uToast.show({
type: 'success',
title: '成功主题(带图标)',
message: "操作成功",
iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
})
},
showToast2() {
// 6
this.$refs.uToast.show({
type: 'error',
message: "取件码不能为空",
iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/error.png'
}, )
},
getOrderList() {
console.log("列表更新")
this.id = JSON.parse(uni.getStorageSync('USER_INFO')).id
getList({
status: this.curNow,
user_id: this.id,
keywords: this.keywords,
user_type: this.is_captain
}).then(res => {
this.orderlist = []
this.orderlist = res.data.data
if (this.orderlist.length < 15) {
this.status = 'nomore'
}
})
}
},
onLoad() {
this.is_captain = JSON.parse(uni.getStorageSync('USER_INFO')).is_captain
let that = this
//#ifdef APP-PLUS
jpushModule.addNotificationListener(function(result) {
if (!that.notArr.includes(result.messageID)) {
that.$refs.globalPopup.showPopu();
that.getOrderList()
}
that.notArr.push(result.messageID)
})
// #endif
// window.addEventListener("scroll", this.scrolling);
},
onShow() {
this.getOrderList()
},
onReachBottom() {
if (this.flag) return
this.status = "loading"
this.page_num += 1
this.flag = true
getList({
status: this.curNow,
user_id: this.id,
keywords: this.keywords,
user_type: this.is_captain,
page_num: this.page_num
}).then(res => {
this.orderlist = this.orderlist.concat(res.data.data)
this.flag = false
if (!res.data.data.length) {
this.status = "nomore"
this.flag = true
}
})
},
}
</script>
<style lang='scss'>
.content {
margin-top: 2vh;
background-color: #f5f5f5;
padding: 0vh 2vw;
}
</style>