From 7a12dba8b40506aea2df51b1a694fd1ef7d8acd9 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Thu, 26 Jun 2025 18:43:05 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9C=8D=E5=8A=A1-=E4=BC=9A?= =?UTF-8?q?=E8=AE=AE=E6=A8=A1=E5=9D=97=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages.json | 6 + .../integrated/meeting/booking-detail.vue | 97 +++++++++ src/pages/integrated/meeting/detail.vue | 2 +- src/pages/integrated/meeting/index.vue | 2 +- .../integrated/meeting/my-reservations.vue | 186 +++++++++++------- src/pages/integrated/visitor/myvisitor.vue | 43 +--- src/sheep/api/meetingRoom.ts | 19 ++ 7 files changed, 239 insertions(+), 116 deletions(-) create mode 100644 src/pages/integrated/meeting/booking-detail.vue diff --git a/src/pages.json b/src/pages.json index 426bf83..af8f1ac 100644 --- a/src/pages.json +++ b/src/pages.json @@ -478,6 +478,12 @@ "style": { "navigationBarTitleText": "我的预约" } + }, + { + "path": "meeting/booking-detail", + "style": { + "navigationBarTitleText": "预约详情" + } } ] } diff --git a/src/pages/integrated/meeting/booking-detail.vue b/src/pages/integrated/meeting/booking-detail.vue new file mode 100644 index 0000000..455d9ce --- /dev/null +++ b/src/pages/integrated/meeting/booking-detail.vue @@ -0,0 +1,97 @@ + + + + + \ No newline at end of file diff --git a/src/pages/integrated/meeting/detail.vue b/src/pages/integrated/meeting/detail.vue index d73fcca..f2a6a8d 100644 --- a/src/pages/integrated/meeting/detail.vue +++ b/src/pages/integrated/meeting/detail.vue @@ -221,7 +221,7 @@ async function reserveMeeting() { date, startTime: startSlot.startTime, endTime: endSlot.endTime, - title: '会议', + title: room.value.name || '会议', description: '', attendees: [] }) diff --git a/src/pages/integrated/meeting/index.vue b/src/pages/integrated/meeting/index.vue index aec2f19..cbba6da 100644 --- a/src/pages/integrated/meeting/index.vue +++ b/src/pages/integrated/meeting/index.vue @@ -230,4 +230,4 @@ function goDetail(room) { color: #bbb; font-size: 20rpx; } - + diff --git a/src/pages/integrated/meeting/my-reservations.vue b/src/pages/integrated/meeting/my-reservations.vue index 205c9c5..efa48b8 100644 --- a/src/pages/integrated/meeting/my-reservations.vue +++ b/src/pages/integrated/meeting/my-reservations.vue @@ -11,69 +11,108 @@ v-for="(tab, idx) in tabs" :key="tab" :class="['tab', idx === activeTab ? 'active' : '']" - @tap="activeTab = idx" + @tap="onTabChange(idx)" >{{ tab }} - - - 优惠礼包 - 还未购买过优惠礼包 - > - - - - - - {{ item.roomName }} → {{ item.location }} - {{ item.statusText }} - - - 预约时间:{{ item.time }} - 会议主题:{{ item.subject }} - 参会人:{{ item.attendees }} - - - {{ btn }} + + + + + {{ item.title }} + {{ statusMap[item.checkStatus]?.text }} + + + 预约日期:{{ item.bookingDate }} + 时间:{{ item.startTime }} ~ {{ item.endTime }} + 申请人:{{ item.createBy }} + + + 查看详情 + 取消预约 + + + + 暂无预约 + 您还没有预约会议,快去预约吧! + + - \ No newline at end of file diff --git a/src/pages/integrated/visitor/myvisitor.vue b/src/pages/integrated/visitor/myvisitor.vue index a5ee811..3c67402 100644 --- a/src/pages/integrated/visitor/myvisitor.vue +++ b/src/pages/integrated/visitor/myvisitor.vue @@ -59,16 +59,7 @@ 暂无访客记录 - - - - 首页 - - - - 我的 - - + @@ -489,37 +480,5 @@ onMounted(() => { color: #999; font-size: 26rpx; } - - .tabbar { - position: fixed; - left: 0; - right: 0; - bottom: 0; - height: 100rpx; - background: #fff; - display: flex; - border-top: 1px solid #eee; - z-index: 999; - } - - .tabbar-item { - flex: 1; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - color: #888; - font-size: 24rpx; - } - - .tabbar-icon { - width: 48rpx; - height: 48rpx; - margin-bottom: 4rpx; - } - - .tabbar-item.active { - color: #1777FF; - } } diff --git a/src/sheep/api/meetingRoom.ts b/src/sheep/api/meetingRoom.ts index 1d2e9d8..4e7b56d 100644 --- a/src/sheep/api/meetingRoom.ts +++ b/src/sheep/api/meetingRoom.ts @@ -37,4 +37,23 @@ export default { method: "POST", data, }), + + /** + * 获取我的预约列表 + */ + getMyBookings: (params: { current: number; size: number; checkStatus?: number }) => + request({ + url: '/integrated/meetingRoom/app/my-bookings', + method: 'GET', + params, + }), + + /** + * 获取预约详情 + */ + getBookingDetail: (id: string) => + request({ + url: `/integrated/meetingRoom/app/booking-detail/${id}`, + method: 'GET', + }), } \ No newline at end of file