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

1637 lines
38 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="hzIndex">
<hzHeader title="外卖受理"></hzHeader>
<view class="container hzContent" v-if="loading">
<view class="main">
<view class="tab-box">
<view class="tab-item" :class="currentTabIndex == 0 ? 'active_tab' : ''"
@click="currentTabIndex = 0">
取货订单
<view class="tabBottom" v-if="currentTabIndex == 0"></view>
</view>
<view class="tab-item" :class="currentTabIndex == 1 ? 'active_tab' : ''"
@click="currentTabIndex = 1">
所有订单
<view class="tabBottom" v-if="currentTabIndex == 1"></view>
</view>
</view>
<view class="reservation-box" v-if="currentTabIndex == 0 ">
<view class="totle">
<view class="num_wrap">
<view class="flex-text">
<view class="todayName">外卖订单概览</view>
<view class="todayTime">{{takeDay}}</view>
</view>
<view class="flex-num-box">
<view class="num-box">
<view class="num">
<text>{{statisticsData.num}}</text>
</view>
<view class="text">
<text>订单数量</text>
</view>
</view>
<view class="num-box">
<view class="num">
<text>{{statisticsData.price}}</text>
</view>
<view class="text">
<text>销售金额</text>
</view>
</view>
</view>
</view>
</view>
<view class="search-box">
<!-- <view class="form-item searchv">
<picker class="time-data" mode="date" @change="startDateChange">
<view class="">{{ startDate }}</view>
</picker>
<text class="timecenter">至</text>
<picker class="time-data" mode="date" @change="endDateChange">
<view class="">{{ endDate }}</view>
</picker>
</view> -->
<view class="todaytitlebox">
<image class="leftIcon" src="../../static/haircut/leftTitle.png" mode=""></image>
<text class="todaytitle">订单列表</text>
<image class="rightIcon" src="../../static/haircut/leftTitle.png" mode=""></image>
</view>
<view class="barber">
<!-- <view style="font-size: 14px;color:#666">取货地点:</view> -->
<view class="barber-box">
<view class="barber-item" v-for="(item, index) in takeFoodPlace"
:class="takeFoodPlaceIndex == index ? 'barberactive' : ''" :key="index"
@click="choosePlace(index)">
{{item}}
</view>
</view>
</view>
</view>
<view class="list_box">
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-empty :description="descriptionVal" v-if="orders.length==0 "></van-empty>
<view class="item_card" v-for="(i,index) in orders" :key="index">
<view class="card_top">
<view class="card_top_left">
<img :src="require('@/static/takeaway/rest_img.png')" alt="">
<view class="st">{{i.take_food_place}}</view>
<view class="order_num">
{{i.buyer_name + ' ' + i.buyer_phone}}
</view>
</view>
<view v-if='i.order_status == 0' class="card_top_right yd">已取消</view>
<!-- <view v-if='i.order_status == 3' class="card_top_right qx">已备货</view> -->
<view v-if='i.order_status == 1' class="card_top_right yd">预订成功</view>
</view>
<view class="card_con">
<view class="foodbox">
<view v-for="(k,dex) in i.orderDetails" class="onefood" :key="dex">
<image class="food_img" :src="k.goods_icon" alt="">
<view class="flex_name">
<view class="food_name">{{k.goods_name}}</view>
<view class="spec">
<view class="s-text">&yen; <text
class="s-t-price">{{ k.price }}</text>/{{ k.unit }}
</view>
<view class="s-num">x{{ k.goods_num }}</view>
</view>
</view>
</view>
<!-- <view v-else class="morefood">
<view v-for="(k,dex) in i.orderDetails" :key="dex">
<img class="food_img" :src="k.goods_icon" alt="">
<view class="food_name">{{k.goods_name}}</view>
</view>
</view> -->
</view>
<!-- <view class="allNum">共{{i.allNum}}件</view> -->
</view>
<view class="card_bon">
<view>
{{i.order_time}}
</view>
<view>
<span>总金额:¥ </span><span class="pic">{{i.pay_price}}</span>
</view>
</view>
<!-- <view class="flex-btn-box">
<view class="comment-btn" v-if="i.order_status==1" @click="marketPickUp(item)">取货通知
</view>
</view> -->
</view>
<view v-if="loadingType == 2"
style="text-align: center;padding: 5px 0;font-size: 15px;color: #a8a8a8;">
没有更多了
</view>
</van-pull-refresh>
</view>
</view>
<view class="reservation-box" v-if="currentTabIndex == 1 ">
<view class="totle">
<view class="num_wrap">
<view class="flex-text">
<view class="todayName">外卖订单概览</view>
<!-- <view class="todayTime">{{takeDay}}</view> -->
</view>
<view class="flex-num-box">
<view class="num-box">
<view class="num">
<text>{{statisticsDataHistory.num}}</text>
</view>
<view class="text">
<text>订单数量</text>
</view>
</view>
<view class="num-box">
<view class="num">
<text>{{statisticsDataHistory.price}}</text>
</view>
<view class="text">
<text>销售金额</text>
</view>
</view>
</view>
</view>
</view>
<view class="search-box">
<view class="form-item searchv">
<picker class="time-data" mode="date" @change="startDateChange">
<view class="">{{ startDate }}</view>
</picker>
<text class="timecenter">至</text>
<picker class="time-data" mode="date" @change="endDateChange">
<view class="">{{ endDate }}</view>
</picker>
</view>
<view class="barber">
<!-- <view style="font-size: 14px;color:#666">取货地点:</view> -->
<view class="barber-box">
<view class="barber-item" v-for="(item, index) in takeFoodPlace"
:class="takeFoodPlaceIndex == index ? 'barberactive' : ''" :key="index"
@click="choosePlace(index)">
{{item}}
</view>
</view>
</view>
</view>
<view class="list_box">
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
<van-empty :description="descriptionVal" v-if="ordersHistory.length==0 "></van-empty>
<view class="item_card" v-for="(i,index) in ordersHistory" :key="index">
<view class="card_top">
<view class="card_top_left">
<img :src="require('@/static/takeaway/rest_img.png')" alt="">
<view class="st">{{i.take_food_place}}</view>
<view class="order_num">
{{i.buyer_name + ' ' + i.buyer_phone}}
</view>
</view>
<view v-if='i.order_status == 0' class="card_top_right yd">已取消</view>
<!-- <view v-if='i.order_status == 3' class="card_top_right qx">已备货</view> -->
<view v-if='i.order_status == 1' class="card_top_right yd">预订成功</view>
</view>
<view class="card_con">
<view class="foodbox">
<view v-for="(k,dex) in i.orderDetails" class="onefood" :key="dex">
<image class="food_img" :src="k.goods_icon" alt="">
<view class="flex_name">
<view class="food_name">{{k.goods_name}}</view>
<view class="spec">
<view class="s-text">&yen; <text
class="s-t-price">{{ k.price }}</text>/{{ k.unit }}
</view>
<view class="s-num">x{{ k.goods_num }}</view>
</view>
</view>
</view>
<!-- <view v-else class="morefood">
<view v-for="(k,dex) in i.orderDetails" :key="dex">
<img class="food_img" :src="k.goods_icon" alt="">
<view class="food_name">{{k.goods_name}}</view>
</view>
</view> -->
</view>
<!-- <view class="allNum">共{{i.allNum}}件</view> -->
</view>
<view class="card_bon">
<view>
{{i.order_time}}
</view>
<view>
<span>总金额:¥ </span><span class="pic">{{i.pay_price}}</span>
</view>
</view>
<!-- <view class="flex-btn-box">
<view class="comment-btn" v-if="i.order_status==1" @click="marketPickUp(item)">取货通知
</view>
</view> -->
</view>
<view v-if="loadingTypeHistory==2"
style="text-align: center;padding: 5px 0;font-size: 15px;color: #a8a8a8;">
没有更多了
</view>
</van-pull-refresh>
</view>
</view>
</view>
<!-- <load-more :loadingType="loadingTypeHistory" :contentText="contentTextHistory"></load-more> -->
<uni-popup ref="popup" type="center" style="white-space: pre-wrap;">
<view
style="background: white;width: 600upx;position: relative;border-radius: 2upx;overflow-y: scroll;">
<view class="box box-between" style="border-bottom: 1px solid #E5E5E5;">
<view
style="width: 33%;text-align: center;font-size: 32upx;border-right: 1upx solid #E5E5E5;padding: 20upx 0upx;">
菜品</view>
<view
style="width: 34%;text-align: center;font-size: 32upx;border-right: 1upx solid #E5E5E5;padding: 20upx 0upx;">
数量</view>
<view style="width: 33%;text-align: center;font-size: 32upx;padding: 20upx 0upx;">单位</view>
</view>
<scroll-view scroll-y="true" style="height: 660upx;">
<view v-for="(item,f) in allFoodList" :key="f" class="box box-between"
style="border-bottom: 1px solid #E5E5E5;">
<view
style="width: 33%;text-align: center;font-size: 28upx;border-right: 1upx solid #E5E5E5;padding: 14upx 0upx;">
{{item.food_name}}
</view>
<view
style="width: 34%;text-align: center;font-size: 28upx;border-right: 1upx solid #E5E5E5;padding: 14upx 0upx;">
{{item.food_num}}
</view>
<view style="width: 33%;text-align: center;font-size: 28upx;padding: 10upx 0upx;">
{{item.unit}}
</view>
</view>
</scroll-view>
</view>
</uni-popup>
</view>
</view>
<!-- <view class="container" >
<view class="banner-box"><image src="/static/imgs/meal-0.png" mode=""></image></view>
<view class="main">
<view class="tab-box">
<view class="tab-item" :class="currentTabIndex == 0 ? 'active_tab' : ''" @click="currentTabIndex = 0">取货订单</view>
<view class="tab-item" :class="currentTabIndex == 1 ? 'active_tab' : ''" @click="currentTabIndex = 1">所有订单</view>
</view>
<view v-if="currentTabIndex == 0" >
<view class="totle">
<view class="server">
<text class="line"></text>
<text class="text">取货日期:{{takeDay}}</text>
<text class="line"></text>
</view>
<view class="num_wrap">
<view class="num-box" @click="circulation">
<view class="num">
<text>{{statisticsData.num}}</text>
</view>
<view class="text">
<text>订单数量</text>
</view>
</view>
<view class="num-box">
<view class="num">
<text>{{statisticsData.price}}</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="barber" style="border-radius: 10upx; margin-bottom: 20upx;">
<text style="font-size: 14px;color:#666">取货地点:</text>
<view class="barber-item" v-for="(item, index) in takeFoodPlace" :key="index" @click="choosePlace(index)">
<text class="round" :class="takeFoodPlaceIndex == index ? 'barberactive' : ''"></text>
<text class="input_left">{{ item}}</text>
</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+" "}} <text @click="callPhone(item.buyer_phone)" style="color: #00C277;">{{item.buyer_phone}}</text></view>
<view class="status" v-if="item.order_status == 1">预定成功</view>
<view class="status" v-if="item.order_status == 0" style="color: red;">已取消</view>
</view>
<view class="middle">
<view class="foodList" v-for="(item1, index) in item.orderDetails" :key="index">
<image mode="" :src="formatImgUrl(item1.goods_icon)" />
<text >{{item1.goods_name}} {{item1.goods_num}}{{item1.unit}}</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>
<view v-if="currentTabIndex == 1">
<view class="totle" style="margin-bottom: 20upx;">
<view class="num_wrap" style="padding: 10upx;">
<view class="num-box" >
<view class="num">
<text>{{statisticsDataHistory.num}}</text>
</view>
<view class="text">
<text>订单数量</text>
</view>
</view>
<view class="num-box">
<view class="num">
<text>{{statisticsDataHistory.price}}</text>
</view>
<view class="text">
<text>销售金额</text>
</view>
</view>
</view>
</view>
<view style="background-color: white;padding: 20upx 0upx">
<view class="form-item searchv">
<picker style="width: 33%;float: left;" class="time " mode="date" @change="startDateChange">
<view class="">{{ startDate }}</view>
</picker>
<text class="timecenter">至</text>
<picker style="width: 33%;float: right;" class="time " mode="date" @change="endDateChange">
<view class="">{{ endDate }}</view>
</picker>
</view>
</view>
<view class="barber" style="border-radius: 10upx; margin-bottom: 20upx;">
<text style="font-size: 14px;color:#666;">取货地点:</text>
<view class="barber-item" v-for="(item, index) in takeFoodPlace" :key="index" @click="choosePlace(index)">
<text class="round" :class="takeFoodPlaceIndex == index ? 'barberactive' : ''"></text>
<text class="input_left">{{ item}}</text>
</view>
</view>
<view class="list" v-if="ordersHistory.length > 0">
<view class="main" v-for="(item,i) in ordersHistory" :key="i">
<view class="top">
<view class="dining">{{item.buyer_name+" "}} <text @click="callPhone(item.buyer_phone)" style="color: #00C277;">{{item.buyer_phone}}</text></view>
<view class="status" v-if="item.order_status == 1">预定成功</view>
<view class="status" v-if="item.order_status == 0" style="color: red;">已取消</view>
</view>
<view class="bottom" style="border: none;padding:10upx 30upx">
<text class="order-time">取货日期:{{item.take_food_time}}</text>
</view>
<view v-if="item.remarks" class="bottom" style="border: none;padding:10upx 30upx">
<text class="order-time">备  注:{{item.remarks}}</text>
</view>
<view class="middle">
<view class="foodList" v-for="(item1, index) in item.orderDetails" :key="index">
<image mode="" :src="formatImgUrl(item1.goods_icon)" />
<text >{{item1.goods_name}} {{item1.goods_num}}{{item1.unit}}</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="loadingTypeHistory" :contentText="contentTextHistory"></load-more>
</view>
</view>
<uni-popup ref="popup" type="center" style="white-space: pre-wrap;">
<view style="background: white;width: 600upx;position: relative;border-radius: 2upx;overflow-y: scroll;">
<view class="box box-between" style="border-bottom: 1px solid #E5E5E5;">
<view style="width: 33%;text-align: center;font-size: 32upx;border-right: 1upx solid #E5E5E5;padding: 20upx 0upx;">菜品</view>
<view style="width: 34%;text-align: center;font-size: 32upx;border-right: 1upx solid #E5E5E5;padding: 20upx 0upx;">数量</view>
<view style="width: 33%;text-align: center;font-size: 32upx;padding: 20upx 0upx;">单位</view>
</view>
<scroll-view scroll-y="true" style="height: 660upx;">
<view v-for="(item,f) in allFoodList" :key="f" class="box box-between" style="border-bottom: 1px solid #E5E5E5;">
<view style="width: 33%;text-align: center;font-size: 28upx;border-right: 1upx solid #E5E5E5;padding: 14upx 0upx;">{{item.food_name}}</view>
<view style="width: 34%;text-align: center;font-size: 28upx;border-right: 1upx solid #E5E5E5;padding: 14upx 0upx;">{{item.food_num}}</view>
<view style="width: 33%;text-align: center;font-size: 28upx;padding: 10upx 0upx;">{{item.unit}}</view>
</view>
</scroll-view>
</view>
</uni-popup>
</view -->
</template>
<script>
import {
toDaylist,
getAllFoodList
} from '@/common/api.js';
import {
callbackRequest,
getStorage,
alertTip,
callPhone,
formatImgUrl
} from '@/common/util.js';
import loadMore from '@/components/loadMore.vue';
import contentNone from '@/components/contentNone.vue';
import UniPopup from '@/components/uni-popup/uni-popup2.vue';
export default {
data() {
return {
callPhone: callPhone,
formatImgUrl: formatImgUrl,
loading: false,
userId: getStorage('userInfo').id, //用户id
page: 1,
pageSize: 10,
loadingType: 0, //0-loading前1-loading中2-没有更多了
pageHistory: 1,
pageSizeHistory: 10,
loadingTypeHistory: 0,
contentText: {
contentdown: "上拉加载更多",
contentrefresh: "正在加载...",
contentnomore: "没有更多数据了"
},
contentTextHistory: {
contentdown: "上拉加载更多",
contentrefresh: "正在加载...",
contentnomore: "没有更多数据了"
},
statisticsData: {
num: 0,
price: 0
}, //统计数据
statisticsDataHistory: {
num: 0,
price: 0
},
orders: [], //订单列表
takeDay: "",
currentTabIndex: 0,
ordersHistory: [], //历史订单列表
takeFoodPlace: ['全部', '梨园', '科技楼'],
takeFoodPlaceIndex: 0,
allFoodList: [],
startDate: this.getDay(-30),
endDate: this.getDay(0),
// 新样式 新增
descriptionVal: '暂无订单',
activeKey: 0, //左边菜品类型key值
finished: false,
refreshing: false,
}
},
components: {
loadMore,
contentNone,
UniPopup
},
onLoad(option) {
this.currentTabIndex = option.currentTabIndex || 0;
if (this.currentTabIndex == 0) {
this.chooseFoodList = [];
this.initData(0);
} else {
this.page = 1;
this.loadingType = 0;
this.initData(1);
}
},
watch: {
currentTabIndex: function(newVal, oldVal) {
this.takeFoodPlaceIndex = 0;
if (newVal == 1) {
this.pageHistory = 1;
this.loadingTypeHistory = 0;
this.initData(1);
} else {
this.page = 1;
this.loadingType = 0;
this.initData(0);
}
}
},
methods: {
initData(type) {
let params = {};
if (type == 0) {
params = {
"method": toDaylist,
data: {
userId: this.userId,
// userId:'8a0621e158f611250159675bfc6d054f',
pageSize: this.pageSize,
pageNum: this.page,
takeFoodPlace: this.takeFoodPlaceIndex == 0 ? '' : this.takeFoodPlace[this
.takeFoodPlaceIndex],
queryType: "0",
}
}
} else {
params = {
"method": toDaylist,
data: {
userId: this.userId,
// userId:'8a0621e158f611250159675bfc6d054f',
pageSize: this.pageSizeHistory,
pageNum: this.pageHistory,
takeFoodPlace: this.takeFoodPlaceIndex == 0 ? '' : this.takeFoodPlace[this
.takeFoodPlaceIndex],
queryType: "1",
startDate: this.startDate,
endDate: this.endDate
}
}
}
callbackRequest(params)
.then(res => {
if (res.data.returnCode == 1) {
if (type == 0) {
let result = res.data.returnData || {};
result.orderList = result.orderList || [];
if (this.page == 1) {
this.takeDay = res.data.returnData.takeDay || '';
if (result.numList.length > 0) {
this.statisticsData = result.numList[0];
} else {
this.statisticsData = {
num: 0,
price: 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 {
let result = res.data.returnData || {};
result.orderList = result.orderList || [];
if (this.pageHistory == 1) {
this.ordersHistory = result.orderList;
if (result.numList.length > 0) {
this.statisticsDataHistory = result.numList[0];
} else {
this.statisticsDataHistory = {
num: 0,
price: 0
}
}
} else {
if (result.orderList.length > 0) {
this.ordersHistory = [...this.ordersHistory, ...result.orderList];
this.loadingTypeHistory = 0;
} else {
this.loadingTypeHistory = 2;
}
}
this.loading = true;
}
} else {
alertTip(res.data.returnMsg);
}
})
},
circulation() {
this.getAllFoodList();
this.$refs.popup.open();
//this.closeButPopup();
},
closeCirculation() {
this.$refs.popup.close()
},
getAllFoodList() {
let params = {
"method": getAllFoodList,
data: {
userId: this.userId,
takeFoodPlace: this.takeFoodPlaceIndex == 0 ? '' : this.takeFoodPlace[this.takeFoodPlaceIndex],
queryType: "0",
}
}
callbackRequest(params)
.then(res => {
if (res.data.returnCode == 1) {
this.allFoodList = res.data.returnData;
console.log(this.allFoodList);
} else {
alertTip(res.data.returnMsg);
}
})
},
choosePlace(index) {
this.takeFoodPlaceIndex = index;
if (this.currentTabIndex == 1) {
this.pageHistory = 1;
this.loadingTypeHistory = 0;
this.initData(1);
} else {
this.page = 1;
this.loadingType = 0;
this.initData(0);
}
},
getDay(i) {
var date1 = new Date(new Date().getTime() + i * 24 * 60 * 60 * 1000);
var year = date1.getFullYear();
var month = date1.getMonth() + 1;
if (month < 10) {
month = "0" + month;
}
var day = date1.getDate();
if (day < 10) {
day = "0" + day;
}
return year + '-' + month + '-' + day;
},
startDateChange: function(e) {
this.pageHistory = 1;
this.loadingTypeHistory = 0;
this.startDate = e.target.value;
this.ordersHistory = [];
this.initData(1);
},
endDateChange: function(e) {
this.pageHistory = 1;
this.loadingTypeHistory = 0;
this.endDate = e.target.value;
this.ordersHistory = [];
this.initData(1);
},
},
onReachBottom() {
if (this.currentTabIndex == 0) {
if (this.loadingType !== 0) {
return;
}
this.loadingType = 1;
this.page = this.page + 1;
this.initData(0);
} else {
if (this.loadingTypeHistory !== 0) {
return;
}
this.loadingTypeHistory = 1;
this.pageHistory = this.pageHistory + 1;
this.initData(1);
}
}
}
</script>
<style lang="scss">
@import '@/static/css/common.scss';
.searchv {
text-align: center;
width: 90%;
height: 78upx;
margin-left: 5%;
}
.jlsearch {
width: 90%;
margin-left: 5%;
border: 1px solid #e5e5e5;
color: #666;
border-radius: 10upx;
font-size: 28upx;
padding: 20upx 20upx;
}
.time {
font-size: 28upx;
display: inline-block;
border: 1px solid #e5e5e5;
border-radius: 10upx;
color: #666;
padding: 20upx;
}
.box {
display: flex;
display: -webkit-flex;
}
.box-row-reverse {
flex-direction: row;
}
/*水平排列*/
.box-column {
flex-direction: column;
}
/*上下排列*/
.box-left {
justify-content: flex-start;
}
/*居右*/
.box-right {
justify-content: flex-end;
}
/*居左*/
.box-center {
justify-content: center;
}
.box-between {
justify-content: space-between;
}
.box-align-center {
align-items: center;
}
.box-wrap {
flex-wrap: wrap;
margin-left: 28upx;
}
.container {
// position: relative;
// min-height: 100vh;
// overflow: hidden;
.banner-box {
width: 100%;
height: 240upx;
position: absolute;
top: 0;
left: 0;
image {
width: 100%;
height: 100%;
}
}
.main {
.tab-box {
width: 80%;
display: flex;
font-size: 36upx;
color: #555555;
.active_tab {
font-weight: 800;
}
.tab-item {
width: 40%;
.tabBottom {
width: 28%;
height: 6upx;
border-radius: 5px;
background-image: linear-gradient(to right, #64E182, #1CA7B2);
}
}
}
.form-box {
// padding: 20upx 30upx 50upx;
background: #fff;
.time-box {
overflow: hidden;
padding-top: 20rpx;
.bg-gray {
background-color: #c5c5c5;
}
.time-item {
float: left;
width: 196rpx;
margin: 0 0rpx 20rpx 20rpx;
font-size: 26rpx;
text-align: center;
line-height: 32rpx;
padding: 10rpx 0;
position: relative;
border: 1px solid #ccc;
box-sizing: border-box;
.time-text {
color: #666;
text {
padding: 0 6rpx;
color: #00c277;
}
.color-666 {}
}
.icon {
position: absolute;
right: 0;
bottom: 0;
width: 36rpx;
height: 36rpx;
display: none;
}
}
.active {
border: 1px solid #00c277;
.icon {
display: block;
}
}
}
.form-item {
overflow: hidden;
border-bottom: 1px solid #eee;
padding: 30upx 0;
.label {
float: left;
width: 150upx;
font-size: 28upx;
color: #333;
font-weight: bold;
line-height: 50upx;
}
.ipt-box {
margin-left: 160upx;
input {
width: 100%;
height: 50upx;
line-height: 50upx;
font-size: 26upx;
color: #666;
}
}
.select {
.arrow {
float: right;
width: 16upx;
height: 29upx;
margin-top: 10upx;
}
.picker {
height: 50upx;
line-height: 50upx;
font-size: 26upx;
color: #666;
}
}
}
.sure-btn {
width: 100%;
height: 80upx;
font-size: 28upx;
color: #fff;
text-align: center;
line-height: 80upx;
border-radius: 8upx;
background: #0066cc;
background: linear-gradient(to right, #ffc200, #ff9000);
/*设置按钮为渐变颜色*/
margin-top: 50upx;
}
}
.list-box {
.list-item {
background: #fff;
margin-bottom: 10upx;
.title {
border-bottom: 1px solid #eee;
padding: 20upx 10upx;
overflow: hidden;
line-height: 40upx;
.line {
display: inline-block;
width: 10upx;
height: 32upx;
background: $assistColor;
margin-top: 4upx;
}
.text {
display: inline-block;
font-size: 28upx;
color: #444;
font-weight: bold;
margin-left: 10upx;
vertical-align: top;
}
.status {
font-size: 26upx;
color: $assistColor;
float: right;
}
}
.content {
padding: 5upx 5upx;
.info-item {
overflow: hidden;
padding-bottom: 10upx;
.fl-text {
float: left;
font-size: 26upx;
color: #444;
font-weight: bold;
line-height: 40upx;
}
.fr-text {
float: right;
font-size: 26upx;
color: #666;
line-height: 40upx;
}
}
}
}
}
}
.my-code {
background: #fff;
padding-top: 80rpx;
.code-box {
background: #fff;
overflow: hidden;
.code-img {
display: block;
width: 350rpx;
height: 350rpx;
margin: 70rpx auto 100rpx;
}
}
.money {
height: 60rpx;
text-align: center;
line-height: 60rpx;
font-size: 28rpx;
}
.tip {
font-size: 26rpx;
color: #666;
line-height: 40rpx;
padding: 0 0 30rpx;
text-align: center;
}
}
}
.list {
.main {
background: #FFFFFF;
margin: 0px;
margin-bottom: 20upx;
.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;
}
}
.middle {
// height: 300upx;
overflow-x: scroll;
display: flex;
overflow: auto;
margin: 10upx 30upx 0;
.foodList {
width: 200upx;
flex-direction: column;
float: left;
text-align: center;
margin: 0upx 20upx 0upx 0upx;
image {
display: block;
width: 200upx;
height: 200upx;
}
text {
display: block;
font-size: 24upx;
color: #777;
line-height: 60upx;
@include overstepOne;
}
}
}
.bottom {
padding: 20upx 30upx;
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;
}
}
}
}
.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;
}
}
// 搜索 分界线
.search-box {
margin-top: 36upx;
padding: 24upx;
background-color: #fff;
border-radius: 20upx;
.todaytitlebox {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
.leftIcon {
width: 19*2upx;
height: 30upx;
}
.todaytitle {
font-weight: 800;
font-size: 16*2upx;
color: #333333;
margin: 0 24upx;
}
.rightIcon {
width: 19*2upx;
height: 30upx;
transform: rotateY(180deg);
}
}
.form-item {
overflow: hidden;
}
.searchv {
text-align: center;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
.timecenter {
font-size: 26upx;
margin-left: 10upx;
margin-right: 10upx;
line-height: 30upx;
}
.time-data {
width: 300upx;
height: 60upx;
font-size: 28upx;
display: inline-block;
border: 1px solid #0DB0A7;
border-radius: 8upx;
color: #555555;
line-height: 60upx;
}
}
.barber {
margin-top: 32upx;
// margin-left: 24upx;
border-bottom: 1px solid #eee;
.barber-box {
display: flex;
flex-direction: row;
align-items: center;
margin-top: 24upx;
.barber-item {
width: 100*2upx;
height: 38*2upx;
background: #F2F6FA;
border-radius: 4*2upx;
border: 1px solid #F2F6FA;
line-height: 38*2upx;
color: #555555;
text-align: center;
font-size: 28upx;
margin-left: 28upx;
}
.barber-item:first-child {
margin-left: 0;
}
.barberactive {
background: #EDFCF7;
border: 1px solid #00ADA6;
color: #0DB0A7;
}
}
}
}
.box {
display: flex;
display: -webkit-flex;
}
.box-row-reverse {
flex-direction: row;
}
/*水平排列*/
.box-column {
flex-direction: column;
}
/*上下排列*/
.box-left {
justify-content: flex-start;
}
/*居右*/
.box-right {
justify-content: flex-end;
}
/*居左*/
.box-center {
justify-content: center;
}
.box-between {
justify-content: space-between;
}
.box-align-center {
align-items: center;
}
.box-wrap {
flex-wrap: wrap;
margin-left: 28upx;
}
.container {
padding: 22upx;
margin-top: 150upx;
.main {
// margin: 24upx;
// position: relative;
// z-index: 10;
}
}
.totle {
background: #FFFFFF;
border-radius: 20upx;
overflow: hidden;
margin-top: 24upx;
.num_wrap {
width: 327*2upx;
height: 99*2upx;
background-image: url('@/static/haircut/mkbg.png');
background-repeat: no-repeat;
background-size: cover;
margin: 24upx;
position: relative;
overflow: hidden;
.flex-text {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
margin: 24upx;
.todayName {
font-weight: bold;
font-size: 16*2upx;
color: #FFFFFF;
}
.todayTime {
font-size: 12*2upx;
color: #FFFFFF;
}
}
.flex-num-box {
width: 100%;
position: absolute;
bottom: 24upx;
.num-box {
float: left;
width: 50%;
height: 80upx;
text-align: center;
color: #fff;
}
.num {
text-align: center;
text {
font-weight: bold;
line-height: 40upx;
font-size: 32upx;
}
}
.text {
text-align: center;
text {
font-size: 28upx;
}
}
}
}
}
.list-item {
overflow: hidden;
padding: 10upx 10upx 20upx 5upx;
.img-box {
border-radius: 10upx;
float: left;
width: 120upx;
height: 120upx;
image {
display: block;
width: 100%;
height: 100%;
border-radius: 6px;
margin-left: 20upx;
}
}
.fr-content {
margin-left: 160upx;
.name {
font-size: 32upx;
color: #333;
@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: 28upx;
margin-top: 52upx;
}
.ct {
margin-left: 20upx;
color: #ff00009c;
}
}
}
// 预定列表 样式
.list_box {
margin-top: 24upx;
}
.item_card {
background-color: #fff;
border-radius: 20upx;
padding: 24upx;
margin-bottom: 24upx;
}
.card_top {
display: flex;
align-items: center;
justify-content: space-between;
}
.card_top_left {
display: flex;
align-items: center;
}
.card_top_left>img {
width: 0.427*37*2upx;
height: 0.427*37*2upx;
margin-right: 0.2*37*2upx;
}
.st {
font-size: 16px;
font-weight: 600;
color: #0e1a24;
}
.card_top_left>span:nth-of-type(1) {
font-size: 0.427*37*2upx;
font-weight: 600;
}
.order_num {
font-size: 14*2upx;
color: #555555;
margin-left: 36upx;
}
.card_top_right {
width: 160upx;
height: 56upx;
font-size: 28upx;
text-align: center;
line-height: 56upx;
border-radius: 30upx;
}
.yd {
background-color: #E0F6F5;
color: #00ADA6;
}
.qx {
background-color: #FFF3E7;
color: #FB8107;
}
.card_con {
width: 100%;
box-sizing: border-box;
display: flex;
margin-bottom: 24upx;
justify-content: space-between;
}
.foodbox {
width: 100%;
}
.food_img {
display: flex;
flex-shrink: 0;
width: 66*2upx;
height: 66*2upx;
border-radius: 10*2upx;
// background: #97A5B1;
}
.flex_name {
width: 100%;
display: flex;
flex-direction: column;
justify-content: space-around;
margin-left: 18upx;
.food_name {
font-size: 0.374*37*2upx;
color: #0e1a24;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 2.35*37*2upx;
}
.spec {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
font-size: 10*2upx;
.s-text {
font-size: 12*2upx;
.s-t-price {
font-weight: bold;
font-size: 16*2upx;
color: #555555;
}
}
.s-num {
font-size: 14*2upx;
}
}
}
.allNum {
font-size: 0.32*37*2upx;
color: #4b5b6b;
display: flex;
align-items: center;
}
.onefood {
display: flex;
margin-top: 24upx;
// align-items: center;
}
.onefood>img {
margin-right: 0.32*37*2upx;
}
.morefood {
display: flex;
}
.morefood>view {
margin-right: 0.2*37*2upx;
}
.card_bon {
display: flex;
align-items: flex-end;
font-size: 28upx;
justify-content: space-between;
}
.card_bon>view:first-child {
font-size: 0.32*37*2upx;
color: #999999;
}
.flex-btn-box {
display: grid;
.comment-btn {
margin-top: 24upx;
width: 84*2upx;
height: 32*2upx;
border-radius: 16*2upx;
border: 1px solid #0DB0A7;
font-size: 28upx;
color: #0DB0A7;
line-height: 32*2upx;
text-align: center;
min-width: 140upx;
justify-self: end;
}
}
.pic {
font-size: 18*2upx;
color: #333333;
font-weight: 600
}
.van-tab {
color: #4b5b6b;
}
.van-tab--active {
color: #04aea5 !important;
font-weight: 600;
}
</style>