H5-ThreeDoorder/components/b-orders/b-order-item-settlement.vue

410 lines
12 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="Order-settlement">
<view class="Order-settlement-left">
<view class="Order-settlement-left-item">
原价: {{RetainDecimalPoint(InforData['original_price'])}}
</view>
<view class="Order-settlement-left-item">
消费补贴卡抵扣{{RetainDecimalPoint(InforData['deduction_amount_total'])}}
</view>
<view class="Order-settlement-left-item">
预估佣金{{InforData['self_commission']}}
</view>
</view>
<view class="Order-settlement-btn-price">
<view class="Order-settlement-btn-price-pay-price">
<text class="text1">{{InforData['status'] | OrderStateText}}</text>
<text class="text2" style="color:#DE2F2C">{{RetainDecimalPoint(InforData['pay_price'])}}</text>
</view>
<!-- 待支付 -->
<view class="Order-settlement-btn-price-operate" v-if="InforData['status'] == OrderStatus0">
<view class="btn btn1" @tap.stop="cancel(InforData['order_sn'],index)">
取消订单
</view>
<view class="btn btn2" :style="[orderStyle]" @tap.stop="payment(InforData['order_sn'],index)">
去支付
</view>
</view>
<!-- 已出餐 -->
<view class="Order-settlement-btn-price-operate" v-if="InforData['status'] == OrderStatus2">
<!-- 瑞幸-已出参订单按钮 -->
<template v-if="Brand_RX">
<view class="btn btn1" @tap.stop="location">
联系客服
</view>
<!-- <navigator hover-class="none" -->
<!-- :url="`/pages/restaurant/order/order-details/rx-orders-details?order=${InforData['order_sn']}`"> -->
<view class="btn btn2" :style="[orderStyle]" @tap.stop="OrderDetails(shopid['RX_brand_id'])">
查看取餐码
</view>
<!-- </navigator> -->
</template>
<!-- 肯德基-已出参订单按钮 -->
<template v-if="Brand_KFC">
<!-- <navigator hover-class="none"
:url="`/pages/restaurant/order/order-details/order-details?order=${InforData['order_sn']}`"> -->
<view class="btn btn1" :style="[orderStyle]" @tap.stop="OrderDetails(shopid['KFC_brand_id'])">
查看取餐码
</view>
<!-- </navigator> -->
</template>
<!-- 麦当劳-已出参订单按钮 -->
<template v-if="Brand_MDL">
<!-- <navigator hover-class="none" -->
<!-- :url="`/pages/restaurant/order/order-details/xbk-orders-details?order=${InforData['order_sn']}`"> -->
<view class="btn btn1" :class="`theme-Union-Class-${BrandInfor['brand_id']}-1`" :style="[orderStyle]" @tap.stop="OrderDetails(shopid['XBK_brand_id'])">
查看取餐码
</view>
<!-- </navigator> -->
</template>
<!-- 星巴克-已出参订单按钮 -->
<template v-if="Brand_XBK">
<!-- <navigator hover-class="none" -->
<!-- :url="`/pages/restaurant/order/order-details/xbk-orders-details?order=${InforData['order_sn']}`"> -->
<view class="btn btn1" :style="[orderStyle]" @tap.stop="OrderDetails(shopid['XBK_brand_id'])">
取餐口令
</view>
<!-- </navigator> -->
</template>
</view>
<!-- 已出餐(部分退款) -->
<view class="Order-settlement-btn-price-operate" v-if="InforData['status'] == OrderStatus4">
<!-- 瑞幸-已出参(部分退款)订单按钮 -->
<template v-if="Brand_RX">
<!-- <navigator hover-class="none" -->
<!-- :url="`/pages/restaurant/order/order-details/rx-orders-details?order=${InforData['order_sn']}`"> -->
<view class="btn btn1" :style="[orderStyle]" @tap.stop="OrderDetails(shopid['RX_brand_id'])">
查看取餐码
</view>
<!-- </navigator> -->
</template>
<!-- 肯德基-已出参(部分退款)订单按钮 -->
<template v-if="Brand_KFC">
<!-- <navigator hover-class="none" -->
<!-- :url="`/pages/restaurant/order/order-details/order-details?order=${InforData['order_sn']}`"> -->
<view class="btn btn1" :style="[orderStyle]" @tap.stop="OrderDetails(shopid['KFC_brand_id'])">
查看取餐码
</view>
<!-- </navigator> -->
</template>
<!-- 麦当劳-已出参订单按钮 -->
<template v-if="Brand_MDL">
<!-- <navigator hover-class="none" -->
<!-- :url="`/pages/restaurant/order/order-details/xbk-orders-details?order=${InforData['order_sn']}`"> -->
<view class="btn btn1" :style="[orderStyle]" @tap.stop="OrderDetails(shopid['XBK_brand_id'])">
查看取餐码
</view>
<!-- </navigator> -->
</template>
<!-- 星巴克-已出参(部分退款)订单按钮 -->
<template v-if="Brand_XBK">
<!-- <navigator hover-class="none" -->
<!-- :url="`/pages/restaurant/order/order-details/xbk-orders-details?order=${InforData['order_sn']}`"> -->
<view class="btn btn1" :style="[orderStyle]" @tap.stop="OrderDetails(shopid['XBK_brand_id'])">
查看口令
</view>
<!-- </navigator> -->
</template>
</view>
<!-- 待出餐/已退款(订单失败就会退款) -->
<view class="Order-settlement-btn-price-operate"
v-if="InforData['status'] == OrderStatus1 || InforData['status'] == OrderStatus3">
<!-- 瑞幸-待出餐/已退款订单按钮 -->
<template v-if="Brand_RX">
<view class="btn btn1" @tap.stop="location">
联系客服
</view>
<!-- <navigator hover-class="none" -->
<!-- :url="`/pages/restaurant/order/order-details/rx-orders-details?order=${InforData['order_sn']}`"> -->
<view class="btn btn1 btn2" @tap.stop="OrderDetails(shopid['RX_brand_id'])">
查看订单
</view>
<!-- </navigator> -->
</template>
<!-- 肯德基-待出餐/已退款订单按钮 -->
<template v-if="Brand_KFC">
<view class="btn btn1" @tap.stop="location">
联系客服
</view>
</template>
<!-- 麦当劳-待出餐/已退款订单按钮 -->
<template v-if="Brand_MDL">
<view class="btn btn1" :class="`theme-Union-Class-${BrandInfor['brand_id']}-1`" @tap.stop="location">
联系客服
</view>
</template>
<!-- 星巴克-待出餐/已退款订单按钮 -->
<template v-if="Brand_XBK">
<!-- <navigator hover-class="none" -->
<!-- :url="`/pages/restaurant/order/order-details/xbk-orders-details?order=${InforData['order_sn']}`"> -->
<view class="btn btn1 btn2" @tap.stop="OrderDetails(shopid['XBK_brand_id'])">
查看订单
</view>
<!-- </navigator> -->
</template>
</view>
<!-- 已取消 -->
<view class="Order-settlement-btn-price-operate" v-if="InforData['status'] == OrderStatus5">
<!-- 瑞幸-已取消订单按钮 -->
<template v-if="Brand_RX">
<view class="btn btn1" @tap.stop="location">
联系客服
</view>
<view class="btn btn1 btn2" @tap.stop="OrderReorder">
再来一单
</view>
</template>
<!-- 肯德基-已取消订单按钮 -->
<template v-if="Brand_KFC">
<view class="btn btn1 btn2" @tap.stop="OrderReorder">
重新下单
</view>
</template>
<!-- 肯德基-已取消订单按钮 -->
<template v-if="Brand_MDL">
<view class="btn btn1 btn2" :class="`theme-Union-Class-${BrandInfor['brand_id']}-1`" @tap.stop="OrderReorder">
重新下单
</view>
</template>
<!-- 星巴克-已取消订单按钮 -->
<template v-if="Brand_XBK">
<view class="btn btn1" @tap.stop="location">
联系客服
</view>
<view class="btn btn1 btn2" @tap.stop="OrderReorder">
重新下单
</view>
</template>
</view>
</view>
</view>
</template>
<script>
import {
RXSERVICE
} from '@/static/js/serviceurl.js'
import mixin from '@/static/js/mixin/mixin.js';
import restaurantmixins from '@/static/js/mixin/restaurantmixins.js';
import {
mapGetters,
} from 'vuex'
export default {
name: 'b-order-item-settlement',
mixins: [mixin, restaurantmixins],
// 取消订单,再次支付,重新下单
inject: ["cancel", "Reorder", "payments"],
props: {
index: {
type: Number,
default: 0
},
infor: {
type: Object,
default: () => {}
}
},
computed: {
InforData() {
return this['infor']
},
// 各品牌主体色不一样
orderStyle() {
let style = {};
switch (this['BrandInfor']['brand_id']) {
case 1:
style['color'] = uni.$u.addUnit('#C63836');
style['border'] = uni.$u.addUnit('1px solid #DC7473');
break;
case 5:
style['color'] = uni.$u.addUnit('#000000');
style['background-color'] = uni.$u.addUnit('#FFBC0D');
break;
case 10:
style['color'] = uni.$u.addUnit('#ffffff');
style['background-color'] = uni.$u.addUnit('#00AF66');
// style['border'] = uni.$u.addUnit('1px solid #00AF66');
break;
case 13:
style['color'] = uni.$u.addUnit('#4A6FE7');
style['border'] = uni.$u.addUnit('1px solid #4A6FE7');
break;
};
return style;
},
Brand_RX() {
return this['BrandInfor']['brand_id'] == 13;
},
Brand_KFC() {
return this['BrandInfor']['brand_id'] == 1;
},
Brand_XBK() {
return this['BrandInfor']['brand_id'] == 10;
},
Brand_MDL() {
return this['BrandInfor']['brand_id'] == 5;
},
Brand_DYP() {
return this['BrandInfor']['brand_id'] == 19;
}
},
data() {
return {
}
},
methods: {
// 重新下单前数据重构
OrderReorder() {
let arr = this['InforData']['goods'].map(item => {
console.log(this['InforData'],'InforData')
item['restaurant_id'] = this['InforData']['restaurant_id'];
// 以下数据用于重新下单时保存当前店铺信息
item['restaurant_address'] = this['InforData']['restaurant_address'];
item['restaurant_name'] = this['InforData']['restaurant_name'];
item['latitude'] = this['InforData']['lat'];
item['longitude'] = this['InforData']['lng'];
// 因为前端记录商品数量使用的是num,而重新加入购物车时后台代表数量的则是amount
item['num'] = item['amount'];
item['pay'] = item['original_price'] / item['amount'];
// item['pay_price'] = item['original_price'];
return item;
});
this.Reorder(arr);
},
OrderDetails(type) {
let url;
switch (type) {
case this['shopid']['KFC_brand_id']:
url =
`/pages/restaurant/order/order-details/order-details?order=${this['InforData']['order_sn']}`;
break;
case this['shopid']['XBK_brand_id']:
url =
`/pages/restaurant/order/order-details/xbk-orders-details?order=${this['InforData']['order_sn']}`;
break;
case this['shopid']['RX_brand_id']:
url =
`/pages/restaurant/order/order-details/rx-orders-details?order=${this['InforData']['order_sn']}`;
break;
};
uni.navigateTo({url})
},
/**
* @跳转客服
* */
service() {
uni.openCustomerServiceChat({
extInfo: {
url: RXSERVICE,
},
corpId: 'ww4f46b491a045158c',
success(e) {
console.log(e)
},
fail(e) {
console.log(e)
}
})
},
}
}
</script>
<style lang="scss">
.Order-settlement {
padding: 0 32rpx 21rpx 32rpx;
margin-top: 48rpx;
display: flex;
justify-content: space-between;
&-left {
color: #333333;
font-size: $FONTSIZE24;
&-item:nth-of-type(1) {
margin-bottom: 12rpx;
}
&-item:nth-of-type(2) {
margin-bottom: 12rpx;
}
}
&-btn-price {
display: flex;
align-items: flex-end;
flex-direction: column;
justify-content: space-between;
&-pay-price {
.text1 {
color: #333333;
font-size: $FONTSIZE24;
}
.text2 {
// color: #CE211F;
font-size: $FONTSIZE36;
}
}
&-operate {
display: flex;
.btn {
width: 160rpx;
height: 58rpx;
font-size: $FONTSIZE22;
text-align: center;
// line-height: 58rpx;
display: flex;
align-items: center;
justify-content: center;
}
.btn1 {
border: 2rpx solid #E3E3E3;
border-radius: 50rpx;
color: #666666;
}
.btn2 {
// border: 2rpx solid #C63836;
border-radius: 50rpx;
// color: #C63836;
margin-left: 20rpx;
}
}
}
}
</style>