hookehuyr

生成订单API联调

/*
* @Date: 2023-12-22 10:29:37
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2023-12-26 16:09:24
* @LastEditTime: 2023-12-27 14:08:21
* @FilePath: /meihuaApp/src/api/index.js
* @Description: 文件描述
*/
......@@ -15,6 +15,7 @@ const Api = {
SYS_PARAM: '/srv/?a=room_order&t=sys_param',
GET_LIST: '/srv/?a=room_data&t=get_list',
GET_ROOM: '/srv/?a=room_data&t=get_room',
ADD_ORDER: '/srv/?a=room_data&t=add_order',
}
/**
......@@ -69,3 +70,17 @@ export const getListAPI = (params) => fn(fetch.get(Api.GET_LIST, params));
* @returns
*/
export const getRoomAPI = (params) => fn(fetch.get(Api.GET_ROOM, params));
/**
* @description: 预定房间
* @param id ID
* @param num 预定房间数量
* @param plan_in 入住时间
* @param plan_out 离店时间
* @param contact_name 联系人
* @param contact_phone 联系电话
* @param order_remark 备注
* @param room_type floor/room
* @returns
*/
export const addOrderAPI = (params) => fn(fetch.post(Api.ADD_ORDER, params));
......
<!--
* @Date: 2022-09-19 14:11:06
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2023-12-27 10:55:11
* @LastEditTime: 2023-12-27 14:20:17
* @FilePath: /meihuaApp/src/pages/confirm/index.vue
* @Description: 确认订单页面
-->
......@@ -79,7 +79,7 @@
</view>
<view class="space-line"></view>
<view class="select-user">
<nut-radio-group v-model="use_type" direction="horizontal">
<nut-radio-group v-model="use_type" direction="horizontal" @change="onChange">
<nut-radio label="1">
本人入住
<template #icon><IconFont name="checked" color="gray"></IconFont></template>
......@@ -149,7 +149,7 @@ import { ref, reactive, onMounted, computed } from "vue";
import { getCurrentPageParam } from "@/utils/weapp";
import { IconFont } from '@nutui/icons-vue-taro';
import payCard from '@/components/payCard.vue'
import { getRoomAPI, showMyInfoAPI, sysParamAPI } from '@/api/index'
import { getRoomAPI, showMyInfoAPI, sysParamAPI, addOrderAPI } from '@/api/index'
const booking_info = ref({
days: 1, // 入住天数
......@@ -193,6 +193,16 @@ const onBookCountChange = (count) => {
const use_type = ref('1'); // 本人入住或者帮别人订
const onChange = (v) => {
if (v === '2') {
formData = {
name: '',
tel: '',
note: ''
}
}
};
const formData = reactive({
name: '',
tel: '',
......@@ -247,7 +257,7 @@ onMounted(async () => {
}
});
const goPay = () => {
const goPay = async () => {
if (!formData.name) {
Taro.showToast({
title: '请填写联系人',
......@@ -263,17 +273,15 @@ const goPay = () => {
});
return;
} else {
// TODO: 先保存订房信息
console.warn('保存订房信息', formData);
// TODO: 订房成功后,弹出支付页面
// let params = getCurrentPageParam();
setTimeout(() => {
let params = getCurrentPageParam();
// 保存订房信息
const { code, data } = await addOrderAPI({ id: params.id, contact_name: formData.name, contact_phone: formData.tel, order_remark: formData.note, plan_in: params.start_date, plan_out: params.end_date, room_type: params.room_type })
if (code) {
show_pay.value = true;
payData.value.id = '订单ID';
payData.value.price = room_price_info.value.discount * book_count.value * booking_info.value.days;
// TODO: 数据从哪里过去?
payData.value.remain_time = '1000'; // 支付失效秒数
}, 1000);
payData.value.id = data.order_id;
payData.value.price = data.order_total;
payData.value.remain_time = data.pay_time; // 支付失效秒数
}
}
}
......