230 lines
5.0 KiB
Vue
230 lines
5.0 KiB
Vue
<template>
|
|
<view class="b-orders-rx" @tap.stop="OrderDetails">
|
|
<!-- 顶部店铺名称/状态栏 -->
|
|
<view class="Order-infor">
|
|
<view class="Order-infor-Img">
|
|
<image :src="qnyurl('rxlogo.png','rx')" class="img"></image>
|
|
</view>
|
|
<view class="Order-infor-Shop">
|
|
<view class="Order-infor-Shop-Name">
|
|
{{InforData['restaurant_name']}}
|
|
</view>
|
|
<view class="Order-infor-Shop-Createtime">
|
|
{{InforData['create_time']}}
|
|
</view>
|
|
</view>
|
|
<view class="Order-infor-State">
|
|
<view class="State">{{ InforData['status'] | OrderState}}</view>
|
|
<view class="time" v-if="InforData['status'] == OrderStatus0">{{wait_for}}</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="Order-Code">
|
|
<view class="Order-Code-Content">
|
|
<view class="Order-Code-Content-Number">
|
|
自提订单:{{order_no}}
|
|
</view>
|
|
<view class="Order-Code-Content-Copy" @tap.stop="Copy(order_no)">
|
|
复制
|
|
</view>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<view class="Order-Commodity">
|
|
<template v-for="(commodity,index) in InforData['goods']">
|
|
<view class="Order-Commodity-item">
|
|
<!-- 商品样式 -->
|
|
<b-rx-commodity-item :item="commodity" :key="index"></b-rx-commodity-item>
|
|
</view>
|
|
</template>
|
|
</view>
|
|
|
|
<!-- 订单底部结算组件 -->
|
|
<b-order-item-settlement :infor="InforData" :index="index"></b-order-item-settlement>
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import mixin from '@/static/js/mixin/mixin.js';
|
|
import restaurantmixins from '@/static/js/mixin/restaurantmixins.js';
|
|
// 商品样式组件引入
|
|
import bRxCommodityItem from '@/components/b-rx-commodity-item/b-rx-commodity-item.vue'
|
|
import bOrderItemSettlement from './b-order-item-settlement.vue'
|
|
export default {
|
|
name: 'b-orders-rx',
|
|
mixins: [mixin,restaurantmixins],
|
|
props: {
|
|
index:{
|
|
type:Number,
|
|
default:0
|
|
},
|
|
item: {
|
|
type: Object,
|
|
default: () => {}
|
|
}
|
|
},
|
|
components: {
|
|
bRxCommodityItem,
|
|
bOrderItemSettlement
|
|
},
|
|
data() {
|
|
return {
|
|
// status:0,
|
|
}
|
|
},
|
|
computed: {
|
|
InforData() {
|
|
// 重新下单时需要
|
|
return this['item'];
|
|
},
|
|
order_no(){
|
|
return this['InforData']['order_no']?this['InforData']['order_no']:this['InforData']['order_sn']
|
|
},
|
|
status(){
|
|
return this['InforData']['status']
|
|
}
|
|
},
|
|
|
|
watch:{
|
|
// 状态改变再次调用
|
|
status(v){
|
|
if(v != 0){
|
|
clearTimeout(this['countDown']);
|
|
}
|
|
},
|
|
|
|
},
|
|
|
|
mounted() {
|
|
if (this['status'] == this['OrderStatus0']) {
|
|
this.tiem(this['status'], this['InforData']['createtime'])
|
|
};
|
|
},
|
|
|
|
methods:{
|
|
|
|
/**
|
|
* @点击订单整体时
|
|
* */
|
|
OrderDetails() {
|
|
// 正常逻辑>从品牌进入点餐是会经行一步设置品牌ID的操作(用户进入的品牌)
|
|
// 订单逻辑>从我的tab点击进入订单,然后再进入点餐订单,此时是需要看到所有品牌的订单,所以不会设置品牌ID,此时点击订单不可进入详情
|
|
if(!this['BrandInfor']['brand_id']) return;
|
|
console.log(this['InforData']['status'],this['OrderStatus0']);
|
|
if (this['InforData']['status'] == this['OrderStatus0'] ||
|
|
this['InforData']['status'] == this['OrderStatus1'] ||
|
|
this['InforData']['status'] == this['OrderStatus2'] ||
|
|
this['InforData']['status'] == this['OrderStatus5']) {
|
|
uni.navigateTo({
|
|
url: `/pages/restaurant/order/order-details/rx-orders-details?order=${this['InforData']['order_sn']}`
|
|
})
|
|
}
|
|
},
|
|
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.b-orders-rx {
|
|
width: 100%;
|
|
background: #FFFFFF;
|
|
border-radius: 20rpx;
|
|
margin-bottom: 20rpx;
|
|
|
|
.Order-infor {
|
|
width: 100%;
|
|
padding: 30rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
|
|
&-Img {
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
max-width: 60rpx;
|
|
max-height: 60rpx;
|
|
min-width: 60rpx;
|
|
min-height: 60rpx;
|
|
margin-right: 17rpx;
|
|
|
|
.img {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
}
|
|
|
|
&-Shop {
|
|
flex: 1;
|
|
|
|
&-Name {
|
|
color: #333333;
|
|
font-size: 30rpx;
|
|
margin-bottom: 10rpx;
|
|
max-width: 460rpx;
|
|
word-break: break-all;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 1;
|
|
-webkit-box-orient: vertical;
|
|
overflow: hidden;
|
|
}
|
|
|
|
&-Createtime {
|
|
color: #999999;
|
|
font-size: 24rpx;
|
|
}
|
|
}
|
|
|
|
&-State {
|
|
color: #83ACFE;
|
|
text-align: center;
|
|
|
|
.State {
|
|
font-size: 26rpx;
|
|
margin-bottom: 12rpx;
|
|
}
|
|
|
|
.time {
|
|
font-size: 24rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.Order-Code {
|
|
padding: 0 30rpx;
|
|
font-size: 28rpx;
|
|
|
|
&-Content {
|
|
background-color: #F7F9FC;
|
|
width: 100%;
|
|
padding: 20rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: flex-start;
|
|
|
|
&-Number {
|
|
color: #333333;
|
|
}
|
|
|
|
&-Copy {
|
|
color: #4B6FE7;
|
|
padding-left:20rpx;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.Order-Commodity {
|
|
padding: 32rpx;
|
|
|
|
&-item {
|
|
margin-bottom: 20rpx;
|
|
}
|
|
}
|
|
|
|
}
|
|
</style>
|