hz-zhhq-app/pages/today-order2/today-order2.vue

359 lines
7.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="container" v-if="loading">
<view class="totle">
<view class="server">
<text class="line"></text>
<text class="text">售买概览</text>
<text class="line"></text>
</view>
<view class="num_wrap">
<view class="num-box">
<view class="num">
<text>{{ statisticsData.num || 0 }}</text>
</view>
<view class="text"><text>当日订单数量</text></view>
</view>
<view class="num-box">
<view class="num">
<text>{{ statisticsData.price || 0 }}</text>
</view>
<view class="text"><text>当日销售金额</text></view>
</view>
</view>
</view>
<view class="server">
<text class="line"></text>
<text class="text">订单列表</text>
<text class="line"></text>
</view>
<view class="food-list" v-if="orderList.length > 0">
<view class="main" v-for="(item, index) in orderList" :key="index">
<view class="top">
<view class="dining">{{ item.userName }}</view>
<view class="status" v-if="item.status == 1">预定成功</view>
<view class="status" v-if="item.status == 0">已取消</view>
</view>
<view class="list-item" v-for="(it, index) in item.foodList" :key="index">
<view class="img-box"><image :src="it.picture" mode=""></image></view>
<view class="fr-content">
<view class="name">
{{ it.food_name }}
<text class="ct">x{{ it.count }}</text>
</view>
<view class="price">&yen;{{ it.price }}/{{ it.company }}</view>
</view>
</view>
<view class="bottom">
<text class="price">
共计:&yen;
<span>{{ item.price }}</span>
</text>
<text class="order-time">{{ item.order_time }}</text>
</view>
</view>
</view>
<!-- <view class="list" v-if="orders.length > 0">
<view class="main" v-for="(item,i) in orders" :key="i">
<view class="top">
<view class="dining">{{item.buyer_name}}</view>
<view class="status" v-if="item.order_status == 1">预定成功</view>
<view class="status" v-if="item.order_status == 0">已取消</view>
</view>
<view class="middle">
<view class="foodList" v-for="(item1, index) in item.orderDetails" :key="index">
<image mode="" :src="item1.goods_icon" />
<text >{{item1.goods_name}} {{item1.goods_num}}份</text>
</view>
</view>
<view class="bottom">
<text class="price">金额:¥<span>{{item.pay_price}}</span></text>
<text class="order-time">{{item.order_time}}</text>
</view>
</view>
</view> -->
<content-none v-else :padTop="20"></content-none>
<load-more :loadingType="loadingType" :contentText="contentText"></load-more>
</view>
</template>
<script>
import { toDaylist } from '@/common/api.js';
import { callbackRequest, getStorage, alertTip } from '@/common/util.js';
import loadMore from '@/components/loadMore.vue';
import contentNone from '@/components/contentNone.vue';
export default {
data() {
return {
loading: false,
userId: getStorage('userInfo').id, //用户id
page: 1,
pageSize: 10,
loadingType: 0, //0-loading前1-loading中2-没有更多了
contentText: {
contentdown: '上拉加载更多',
contentrefresh: '正在加载...',
contentnomore: '没有更多数据了'
},
statisticsData: {}, //统计数据
orderList: [
{
userName: '刘晓明',
status: 1,
order_time: '2020-01-10 09:00',
price: 100,
foodList: [
{
price: '20',
company: '斤',
picture: 'http://47.99.190.179:80/appImageDir/a68b13fe0bcf4ee1992ee32623055639.jpg',
food_name: '猪蹄',
count: 2
},
{
price: '30',
company: '份',
picture: 'http://47.99.190.179:80/appImageDir/42d0a21e68804c398ca3abb4bdc20314.jpg',
food_name: '鱿鱼圈',
count: 2
}
]
}
] //订单列表
};
},
components: {
loadMore,
contentNone
},
onLoad() {
this.initData();
},
methods: {
initData() {
let params = {
method: toDaylist,
data: {
userId: this.userId,
// userId:'8a0621e158f611250159675bfc6d054f',
pageSize: this.pageSize,
pageNum: this.page
}
};
callbackRequest(params).then(res => {
if (res.data.returnCode == 1) {
let result = res.data.returnData || {};
result.orderList = result.orderList || [];
if (this.page == 1) {
let numList = result.numList || [];
this.statisticsData = numList[0] || {};
this.orders = result.orderList || [];
} else {
if (result.orderList.length > 0) {
this.orders = [...this.orders, ...result.orderList];
this.loadingType = 0;
} else {
this.loadingType = 2;
}
}
this.loading = true;
} else {
alertTip(res.data.returnMsg);
}
});
}
},
onReachBottom() {
if (this.loadingType !== 0) {
return;
}
this.loadingType = 1;
this.page = this.page + 1;
this.initData();
}
};
</script>
<style lang="scss">
@import '@/static/css/common.scss';
.container {
min-height: 100vh;
background: #f8f8f8;
.server {
text-align: center;
line-height: 70upx;
text {
display: inline-block;
vertical-align: middle;
}
.line {
width: 70upx;
height: 3upx;
background: #999;
}
.text {
font-size: 30upx;
padding: 0 20upx;
font-weight: bold;
}
}
.totle {
background: #ffffff;
border-radius: 10upx;
.num_wrap {
overflow: hidden;
padding: 30upx 0;
.num-box {
float: left;
width: 50%;
height: 100upx;
text-align: center;
font-size: 26upx;
}
.num {
text-align: center;
text {
font-size: 40upx;
color: $themeColor;
}
}
.text {
text-align: center;
text {
font-size: 28upx;
color: #666;
}
}
}
}
}
.food-list {
height: 100%;
overflow: auto;
background: #fff;
margin: 15upx;
.main {
background: #ffffff;
margin: 10upx;
border-radius: 10upx;
.top {
border-bottom: 1px solid #eee;
padding: 20upx 30upx;
overflow: hidden;
.dining {
float: left;
font-size: 28upx;
line-height: 40upx;
color: #555;
}
.status {
float: right;
font-size: 24upx;
color: #00c277;
line-height: 40upx;
}
}
.bottom {
padding: 5upx 5upx 0upx 5upx;
border-top: 1px solid #eee;
line-height: 50upx;
overflow: hidden;
.order-time {
font-size: 26rpx;
color: #666;
}
.price {
float: right;
font-size: 28upx;
color: #666;
}
}
}
.list-item {
overflow: hidden;
padding: 10upx 10upx 0upx 5upx;
border-bottom: 1px solid #f8f8f8;
.img-box {
border-radius: 10upx;
float: left;
width: 200upx;
height: 200upx;
image {
display: block;
width: 100%;
height: 100%;
border-radius: 6px;
}
}
.fr-content {
margin-left: 220upx;
.name {
font-size: 30upx;
color: #333;
font-weight: bold;
@include overstepOne;
line-height: 40upx;
margin-bottom: 6upx;
}
.num {
font-size: 26upx;
color: #666;
line-height: 40upx;
margin-bottom: 6upx;
}
.quota-num {
min-height: 50rpx;
}
.buy-num {
display: inline-block;
border: 1px solid #ff0000;
font-size: 24upx;
color: #ff0000;
border-radius: 8upx;
line-height: 32upx;
padding: 0 10upx;
vertical-align: top;
}
.choose-num {
float: right;
image {
width: 40upx;
height: 40upx;
vertical-align: top;
}
text {
display: inline-block;
font-size: 28upx;
color: #666;
width: 80upx;
text-align: center;
line-height: 40upx;
vertical-align: top;
}
.fl {
float: right;
padding: 10upx 20upx;
font-size: 24upx;
color: $assistColor;
line-height: 32upx;
border: 1px solid $assistColor;
border-radius: 8upx;
margin-left: 10upx;
}
}
.price {
font-size: 32upx;
color: #ff0000;
margin-top: 116upx;
}
.ct {
margin-left: 20upx;
color: #ff00009c;
}
}
}
}
</style>