Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Hooke
/
xysBooking
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
hookehuyr
2024-01-22 15:38:28 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
74c78d4856274a67d3ac7c8ad11c17cfabfe57ab
74c78d48
1 parent
aedf3b2c
预约日历显示逻辑调整
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
11 deletions
src/views/booking.vue
src/views/booking.vue
View file @
74c78d4
<!--
* @Date: 2024-01-15 13:35:51
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2024-01-22 1
0:24:44
* @LastEditTime: 2024-01-22 1
5:35:03
* @FilePath: /xysBooking/src/views/booking.vue
* @Description: 预约页面
-->
...
...
@@ -19,18 +19,19 @@
<div v-for="(week, index) in weeks" :key="week" class="weeks">
<div v-for="date in week" :key="date"
@click="chooseDay(date)"
:class="['item', checked_day === findDatesInfo(date).date ? 'checked' : '', findDatesInfo(date).reserve_full ? 'disabled' : '']"
:class="['item', checked_day === findDatesInfo(date).date ? 'checked' : '', findDatesInfo(date).reserve_full
=== 0
? 'disabled' : '']"
>
<div v-if="findDatesInfo(date).date">
<p class="day-text">{{ findDatesInfo(date).text }}</p>
<p v-if="!findDatesInfo(date).reserve_full" class="day-price">¥{{ findDatesInfo(date).price }}</p>
<!-- <p v-else class="day-no-booking">已约满</p> -->
<p v-else class="day-no-booking">¥{{ findDatesInfo(date).price }}</p>
<p v-if="findDatesInfo(date).reserve_full === 1" class="day-price">¥{{ findDatesInfo(date).price }}</p>
<p v-else-if="findDatesInfo(date).reserve_full === -1" class="day-price"></p>
<p v-else-if="findDatesInfo(date).reserve_full === 0" class="day-no-booking">约满</p>
<!-- <p v-else class="day-no-booking">¥{{ findDatesInfo(date).price }}</p> -->
</div>
</div>
</div>
</div>
<div v-if="checked_day" class="choose-time">
<div v-if="checked_day
&& checked_day_reserve_full === 1
" class="choose-time">
<div class="title">
<div class="text">选择参访时间段</div>
</div>
...
...
@@ -54,9 +55,14 @@
</div>
</div>
</div>
<div v-if="checked_day_reserve_full === -1" class="choose-time">
<div class="title">
<div class="text">无需预约</div>
</div>
</div>
</div>
<div style="height: 5rem;"></div>
<div class="next">
<div
v-if="checked_day && checked_day_reserve_full === 1"
class="next">
<div @click="nextBtn" class="button" style="background-color: #A67939;">下一步</div>
</div>
...
...
@@ -113,7 +119,7 @@ onMounted(async () => {
// 今日之前都不可约
dates_list.value.forEach((date) => {
if (dayjs(date.month_date).isBefore(dayjs())) {
date.reserve_full =
1
;
date.reserve_full =
0
;
}
});
dates.value = dates_list.value.map(item => item.month_date);
...
...
@@ -123,7 +129,7 @@ onMounted(async () => {
/**
* @description: 根据日期获取信息
* @param {string} date
* @return {object} {text: 日期, date: 日期, price: 价格, reserve_ful
l
: 是否可约}
* @return {object} {text: 日期, date: 日期, price: 价格, reserve_ful
l: 是否可约 1=可约,0=约满,
-1=无需预约 }
*/
const findDatesInfo = (date) => {
const result = dates_list.value.find((item) => item.month_date === date);
...
...
@@ -180,6 +186,7 @@ const weeks = computed(() => {
const checked_day = ref('');
const checked_day_price = ref(0);
const checked_day_reserve_full = ref(null);
const checked_time = ref(-1);
const timePeriod = ref([]); // 当前时间段信息
...
...
@@ -190,9 +197,11 @@ const chooseTime = (item, index) => { // 畾萄
};
const chooseDay = async (date) => { // 点击日期回调
if (
!findDatesInfo(date).reserve_full) { // 日期
可约状态
if (
findDatesInfo(date).reserve_full !== 0) { // 状态 1可约 ||
-1不限制
checked_day.value = date; // 当前日期
checked_day_price.value = findDatesInfo(date).price; // 当前价格
checked_day_reserve_full.value = findDatesInfo(date).reserve_full; // 当前状态
if (findDatesInfo(date).reserve_full === 1) {
// 选择日期后,查询时间段信息
const { code, data } = await canReserveTimeListAPI({ month_date: checked_day.value});
if (code) {
...
...
@@ -201,6 +210,7 @@ const chooseDay = async (date) => { //
checked_time.value = -1; // 重置已选择的时间段
}
}
}
};
const showPicker = ref(false);
...
...
@@ -221,6 +231,7 @@ const onConfirm = async ({ selectedValues, selectedOptions }) => { //
// 清空选择
checked_day.value = '';
checked_time.value = -1;
checked_day_reserve_full.value = null;
// 选择日期后,查询月份信息
const { code, data } = await canReserveDateListAPI({ month: `${selectedValues[0]}-${selectedValues[1]}` });
if (code) {
...
...
@@ -229,7 +240,7 @@ const onConfirm = async ({ selectedValues, selectedOptions }) => { //
// 今日之前都不可约
dates_list.value.forEach((date) => {
if (dayjs(date.month_date).isBefore(dayjs())) {
date.reserve_full =
1
;
date.reserve_full =
0
;
}
});
dates.value = dates_list.value.map(item => item.month_date);
...
...
Please
register
or
login
to post a comment