Files
sykl-sm/pages/user/censusOrder.vue

255 lines
5.9 KiB
Vue
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="content">
<view class="list" v-if="orderList.length > 0">
<view class="item" v-for="(item, index) in orderList" :key="index">
<view class="item-name">
{{item.order_no}}
</view>
<view class="grey">
<view class="label" v-if="item.state != null">
<view class="label-name">
订单状态
</view>
<view class="label-text label-color">
{{item.state}}
</view>
</view>
<view class="label" v-if="item.express.name != null">
<view class="label-name">
收件人
</view>
<view class="label-text">
{{item.express.name}}
</view>
</view>
<view class="label" v-if="item.express.mobile != null">
<view class="label-name">
手机号
</view>
<view class="label-text label-tel">
<view class="label-tel-number">{{item.express.mobile}}</view>
<view class="label-tel-dial" @click="clickCall(item.express.mobile)">拨打</view>
</view>
</view>
<view class="label" v-if="item.qty != null">
<view class="label-name">
捐献数量
</view>
<view class="label-text">
{{item.qty}}
</view>
</view>
<view class="label" v-if="item.total != null">
<view class="label-name">
捐献金额
</view>
<view class="label-text label-price">
<text></text>{{item.total}}
</view>
</view>
<view class="label" v-if="item.express.receive_at != null">
<view class="label-name">
签收时间
</view>
<view class="label-text">
{{item.express.receive_at}}
</view>
</view>
<view class="label" v-if="item.express.deliver_at != null">
<view class="label-name">
发货时间
</view>
<view class="label-text">
{{item.express.deliver_at}}
</view>
</view>
<view class="label" v-if="item.express.deliver_at != null">
<view class="label-name">
物流名称
</view>
<view class="label-text">
{{item.express.express_name}}
</view>
</view>
<view class="label" v-if="item.express.express_no != null">
<view class="label-name">
物流编号
</view>
<view class="label-text">
{{item.express.express_no}}
</view>
</view>
<view class="label" v-if="item.express.full_address != null">
<view class="label-name">
收货地址
</view>
<view class="label-text">
{{item.express.full_address}}
</view>
</view>
</view>
</view>
<view class="pagesLoding" v-if="lodingStats">
<block v-if="page.has_more">
<image class="pagesLodingIcon" src="/static/icons/refresh_loding.gif" mode="widthFix"></image>加载中...
</block>
<block v-else>
没有更多了~
</block>
</view>
</view>
<view class="pack-center pages-hint" v-else>
<image src="/static/imgs/coupon_null.png"></image>
<view>暂无数据</view>
</view>
</view>
</template>
<script>
import { dataOrder } from '@/apis/interfaces/user'
export default {
data() {
return {
orderList : [],
page : {}, //分页信息
lodingStats : false //加载状态
};
},
onShow() {
// 数据-订单列表
this.censusInfo();
uni.setNavigationBarTitle({
  title: this.$Route.query.newTitle
})
},
methods:{
// 查看数据-订单列表
censusInfo(page) {
dataOrder({
status: this.$Route.query.state,
page : page || 1
}).then(res => {
let listArr = this.orderList,
newData = []
if(page == 1 || page == undefined) listArr = []
newData = listArr.concat(res.data)
this.orderList = newData
this.page = res.page
this.lodingStats= false
uni.stopPullDownRefresh()
}).catch(err => {
uni.showToast({
title: err.message,
icon: "none"
})
})
},
// 拨打电话
clickCall (tel) {
uni.makePhoneCall({
phoneNumber: tel,//电话号码
success: res => {
console.log(res);
},
fail: err =>{
console.log(err);
}
})
},
// 页面相关事件处理函数--监听用户下拉动作
onPullDownRefresh() {
// 数据-订单列表
this.censusInfo();
},
// 上拉加载
onReachBottom(){
this.lodingStats = true
let pageNumber = this.page.current
if(this.page.has_more){
pageNumber++
// 数据-订单列表
this.censusInfo(pageNumber);
}
}
}
}
</script>
<style lang="scss" scoped>
.content {
overflow: hidden;
background-color: #f5f5f5;
height: 100vh;
overflow-y: scroll;
}
.pack-center {
z-index: 9;
}
.list {
padding: 30rpx;
box-sizing: border-box;
.item {
background-color: #ffffff;
margin-bottom: 30rpx;
border-radius: 10rpx;
padding: 30rpx;
box-sizing: border-box;
.item-name {
font-weight: 600;
margin-bottom: 30rpx;
}
.grey {
background-color: #fcfcfc;
border-radius: 10rpx;
padding: 30rpx;
box-sizing: border-box;
.label {
display: flex;
padding-bottom: 30rpx;
font-size: 28rpx;
line-height: 48rpx;
&:last-child {
padding-bottom: 0;
}
.label-name {
width: 170rpx;
color: #a9a9a9;
}
.label-text {
width: calc(100% - 170rpx);
text-align: justify;
&.label-color {
color: #6884fc;
}
&.label-price {
color: red;
font-weight: 600;
}
}
.label-tel {
display: flex;
.label-tel-number {
flex: 1;
}
.label-tel-dial {
background-color: #edf4ff;
color: #5370eb;
height: 44rpx;
line-height: 44rpx;
padding: 0 15rpx;
font-size: 26rpx;
border-radius: 4rpx;
}
}
}
}
}
}
</style>