diff --git a/server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs b/server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs index bbfdb73..908f7ce 100644 --- a/server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs +++ b/server/CoreCms.Net.Web.WebApi/Controllers/SQController.cs @@ -146,7 +146,21 @@ public class SQController : ControllerBase { var userId = _user.ID; - var list = await _dbBase.Ado.SqlQueryAsync($"SELECT r.*, p.role AS Role, p.is_arrive, CASE WHEN r.status = 1 THEN 0 WHEN r.status = 2 THEN 1 WHEN r.status = 0 THEN 2 WHEN r.status = 3 THEN 3 END AS orderid FROM SQReservations r LEFT JOIN SQReservationParticipants p ON r.id = p.reservation_id WHERE r.status < 4 AND p.user_id = {userId} AND p.status = 0 AND DATEADD(day,2, end_time) > GETDATE() ORDER BY orderid asc, r.start_time Desc "); + var list = await _dbBase.Ado.SqlQueryAsync($@" + SELECT r.*, p.role AS Role, p.is_arrive, + CASE WHEN r.status = 1 THEN 0 WHEN r.status = 2 THEN 1 WHEN r.status = 0 THEN 2 WHEN r.status = 3 THEN 3 END AS orderid + FROM SQReservations r + LEFT JOIN SQReservationParticipants p ON r.id = p.reservation_id + WHERE r.status < 4 + AND p.user_id = {userId} + AND p.status = 0 + AND DATEADD(day,2, end_time) > GETDATE() + AND NOT EXISTS ( + SELECT 1 FROM SQReservationEvaluate e + WHERE e.reservation_id = r.id AND e.user_id = {userId} + ) + ORDER BY orderid asc, r.start_time Desc + "); if (list != null && list.Count > 0) { var roomList = await _SQRoomsServices.GetRoomList(); diff --git a/uniapp/mahjong_group/components/com/page/reservation-evaluate.vue b/uniapp/mahjong_group/components/com/page/reservation-evaluate.vue index d859019..61d84fb 100644 --- a/uniapp/mahjong_group/components/com/page/reservation-evaluate.vue +++ b/uniapp/mahjong_group/components/com/page/reservation-evaluate.vue @@ -103,6 +103,15 @@ const submitEvaluate = async (evaluate) => { if (ok) { uni.showToast({ title: '评价提交成功', icon: 'success' }) evaluate.is_evaluate = true + + // 评价成功后,通知父组件刷新数据 + // 延迟一下确保toast显示完成 + setTimeout(() => { + // 触发全局事件,通知我的页面刷新数据 + uni.$emit('evaluateSuccess') + // 关闭评价弹窗 + close() + }, 1500) } else { uni.showToast({ title: '评价提交失败', icon: 'none' }) } diff --git a/uniapp/mahjong_group/pages/me/me-page.vue b/uniapp/mahjong_group/pages/me/me-page.vue index 73976a1..07ed137 100644 --- a/uniapp/mahjong_group/pages/me/me-page.vue +++ b/uniapp/mahjong_group/pages/me/me-page.vue @@ -132,7 +132,7 @@ import { reactive, onMounted } from 'vue' -import { onShareAppMessage } from '@dcloudio/uni-app'; +import { onShareAppMessage, onShow, onLoad, onUnload } from '@dcloudio/uni-app'; import { getShareConfig } from '@/common/server/config' import ReservationItem from '@/components/com/page/reservation-item.vue' @@ -336,10 +336,20 @@ onShow(async () => { await loadUserInfo(); await loadUnreadCount(); }) -onLoad(async () => { +onLoad(async () => { + // 监听评价成功事件 + uni.$on('evaluateSuccess', () => { + console.log('收到评价成功事件,刷新预约数据') + loadCurrentAppointment() + }) //loadCurrentAppointment(); }); + +// 页面卸载时移除事件监听 +onUnload(() => { + uni.$off('evaluateSuccess') +})