You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

286 lines
6.2 KiB

<template>
<!-- <view class="dis_col_evenly" :style="{'width': windowWidth + 'px'}"> -->
<view class="dis_col_evenly" style="width: 100%;">
<text class="t_1">
选择套餐
</text>
<view class="info_item">
<text @click="handle_choose(reservetion_list[0].id)" class="com_info ischeck_choose">
{{reservetion_list[0].name}}
</text>
</view>
<view>
<text style="font-size: 13px">租车定价规则:</text>
<view style="flex-direction: row; width: 100%;">
<view class="" style="margin-right: 10px;">
<text style="font-size: 12px">起步价: {{billing_info.startingFare}} </text>
<!-- <text style="font-size: 12px"></text> -->
</view>
<view class="" style="margin-right: 10px;">
<text style="font-size: 12px">起步时间设置: {{billing_info.startingTime}} 分钟</text>
<!-- <text style="font-size: 12px"></text> -->
</view>
<text style="font-size: 12px; ">每分钟计费: {{billing_info.billingPerMinute}} </text>
</view>
<view style="flex-direction: row; width: 100%;">
<view class="" style="margin-right: 10px;">
<text style="font-size: 12px">保险费用: {{billing_info.insuranceExpense}} </text>
<!-- <text style="font-size: 12px"></text> -->
</view>
<view class="" style="margin-right: 10px;">
<text style="font-size: 12px">vip折扣: {{billing_info.vipPrice}}</text>
<!-- <text style="font-size: 12px"></text> -->
</view>
<text style="font-size: 12px; ">超出还车范围调度费: {{billing_info.dispatchingCost}} </text>
</view>
</view>
<!-- <text class="icon iconfont icon-diandongche" style="font-size: 20px;"></text> -->
<view class="t_3">
<!-- <input type="text" placeholder="请输入车牌号" class="style_input" v-model="input_value" /> -->
<!-- <text class="btn_now" style="background: #eff0f4; color: #000;" @click="handlegoback">
返回上一级
</text> -->
<text class="btn_now" style="width: 120px;" @click="no_commodity">
不选择套餐直接骑行
</text>
<text class="btn_now" @click="made_car" style="width: 120px;">
</text>
</view>
</view>
</template>
<script setup>
import {
ref,
toRefs,
defineProps,
defineEmits
} from 'vue'
import {
onLoad,
onShow,
onReady
} from '@dcloudio/uni-app';
import {
baseUrl,
apiPath
} from '@/sheep/config';
import sheep from '@/sheep';
import mapnvueApi from '@/sheep/api/home/mapnvue';
const props = defineProps({
reservetion_list: Array,
rideOrderId: Number,
check_number: String
})
const emit = defineEmits(['active', 'ride_id'])
const all_props = toRefs(props)
const info = uni.getSystemInfoSync()
const windowWidth = info.windowWidth
// console.log(windowWidth, 'windowWidth')
const windowHeight = info.windowHeight
const input_value = ref('')
const style_input = ref({
color: '#2979FF',
borderColor: '#2979FF'
})
const isactive = ref(0)
onShow(() => {
getbilling()
handle_choose()
})
//
const billing_info = ref({})
async function getbilling() {
const {
data,
code
} = await mapnvueApi.riding_billing()
if (code == 0) {
billing_info.value = data
} else {
// console.log(res, '租车信息获取失败')
}
}
//
async function made_car() {
let val = {
items: [{
skuId: skus_id.value,
count: 1
}],
pointStatus: false,
deliveryType: 2,
// rideId: all_props.rideOrderId.value
rideId: uni.getStorageSync('rideOrderId')
}
// console.log(data,'data')
const {
data,
code
} = await mapnvueApi.order_create(val)
if (code == 0) {
// emit('active', 3)
sheep.$router.go('/pages/pay/index', {
id: data.payOrderId,
type: '套餐支付'
})
} else {
uni.showToast({
icon: 'error',
title: '骑行失败'
})
}
}
//
function must_go() {
}
//
//
const skus_id = ref(0)
async function handle_payment(val) {
const {
data,
code
} = await mapnvueApi.spu_get_detail(val)
if (code == 0) {
skus_id.value = data.skus[0].id
} else {
// 商品 SPU【{}】不处于上架状态
}
}
//
const fault_choose = ref(false)
// const check_id = ref(0)
function handle_choose() {
let data = all_props.reservetion_list.value[0].id
// fault_choose.value = !fault_choose.value
// check_id.value = data
handle_payment(data)
}
//
function handlegoback() {
emit('active', 5)
}
// 不选套餐直接骑行
async function no_commodity() {
let ride_ids = uni.getStorageSync('rideOrderId')
const {
data,
code,
msg
} = await mapnvueApi.startRide(ride_ids)
if (code == 0) {
uni.setStorageSync('pay_type', '不支付直接骑行')
emit('active', 3)
} else {
uni.showModal({
title: '错误',
content: msg,
success: (res) => {}
});
}
}
</script>
<style lang="scss" scoped>
.dis_col_evenly {
// width: 100%;
height: 200px;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: space-between;
padding: 10px 20px;
box-sizing: border-box;
}
.t_1 {
width: 100%;
font-weight: 600;
font-size: 14px;
text-align: center;
}
.t_2 {
font-size: 12px;
color: #999999;
margin-top: 5px;
}
.info_item {
flex-direction: row;
align-items: center;
justify-content: space-between;
}
.com_info {
line-height: 30px;
padding: 0 5px;
font-size: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
.t_3 {
// width: 500px;
// padding: 10px 40px;
flex-direction: row;
width: 100%;
justify-content: space-between;
}
.operate {
// margin-top: 10px;
flex-direction: row;
height: 30px;
// align-items: center;
justify-content: space-between;
align-items: center;
// background: skyblue;
padding: 0 60px;
}
.operate_item_text {
font-size: 12px;
// margin-top: 10px;
// width: 50px;
}
.style_input {
border: 1px solid #ccc;
color: #000;
font-size: 12px;
border-radius: 3px;
height: 40px;
text-align: center;
}
.btn_now {
width: 80px;
// margin: 0 10px;
height: 40px;
background: #4f918d;
color: #fff;
font-size: 12px;
border-radius: 3px;
line-height: 40px;
text-align: center;
// margin-top: 10px;
}
.ischeck_choose {
background: #00aaff;
color: #fff;
opacity: 0.8;
border-color: #00aaff;
}
</style>