对应代码:mapPisellReservationRowToFloorRoomCardData →
FloorRoomCardData → ReservationFloorRoomCard(getFloorRoomCardType 决定
cardType 与皮肤 class)。占用态金额高亮仍跟 cardType === 'payed';印章
PaymentStamp单独跟 booking.order.payment_status(经 rawToBooking 写入
order_payment_status,仅 paid 为已付)。下方示意与真实 class(rc-*)一致;左侧图元、右侧为数据说明。
id, code, main_field cardStatus → 映射 status / 分支 capacityLabel → capacity 文案 hostReservedStatus, lateMinutes → reserved.sub_status hostIsTimeout, delayMinutes, isPaid → occupied.sub_status floorMapSourceBookings[] → rawToBooking → bookings[]
main_field, capacity status: empty | reserved | occupied | locked sub_status: not_arrived | late | payed | payment_required | timeout bookings: FloorRoomCardBooking[] Next 行: bookings[0] 进行中 ∧ 后方有未开始 → getFloorRoomCardNextNotStartedBooking(data, now)
start_date, start_time, end_date, end_time number, amount holder.name, holder.phone lateTime, timeoutTime, progressPercent(宿主分钟/进度) order.payment_status → order_payment_status(印章)
remainingReserveTime 分钟,否则本地起止推算;仅 not_arrived)
booking.order_payment_status === 'paid'(数据来自宿主
booking.order.payment_status,rawToBooking 里 trim + 大小写归一为
paid)。getFloorRoomCardNextNotStartedBooking(data, Date.now()) 非空时渲染。bookings[0] 当前在时段内;bookings[1+] 中第一条
now < start。holder.name(示例「下一位客人」)+ start_time - end_time。预留 /
占用标准体均可能出现;compact 行不展示。
| status | empty | reserved | occupied | locked → cardStatus → FloorRoomCardData.status |
|---|---|
| reserved_status | not_arrived | late → row.hostReservedStatus → sub_status(与 lateMinutes 兜底) |
| isTimeout | true → row.hostIsTimeout → occupied sub_status = timeout |
| lateTime(分钟) | raw → booking.lateTime → 预留 late 时「+10m」类(优先于本地推算) |
| timeoutTime(分钟) | raw → booking.timeoutTime → 占用 timeout 时「late 10m」类(优先于本地推算) |
| progressPercent | 0–100 → booking.progressPercent → ProgressBar 宽度(优先于起止时间推算) |
| order.payment_status |
行合并:参与列表侧 isPaid → 占用行
sub_status 为 payed / payment_required(见
mapPisellReservationRowToFloorRoomCardData)。单条 booking: rawToBooking →
FloorRoomCardBooking.order_payment_status → 仅
PaymentStamp:paid 已付,其余未付。
|
| Next 行 |
多段 bookings:bookings[0] 进行中(now ∈ [start, end))且其后存在未开始(now
< start)→ getFloorRoomCardNextNotStartedBooking →
NextBooking(Next · 姓名 · start_time - end_time)。与
late/timeout 无关;时段由 start_date/start_time/end_date/end_time 解析。
|