@pisell/private-materials 6.11.115 → 6.11.117
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/render/default/view.js +1 -1
- package/build/lowcode/view.js +1 -1
- package/es/components/appointmentBooking/components/TimeSlicing/components/SelectDateOS.d.ts +0 -1
- package/es/components/booking/hooks/useClearCart.d.ts +0 -1
- package/es/components/booking/info/notes/index.d.ts +0 -1
- package/es/components/ecocup/components/AddCustomerModal/index.d.ts +1 -0
- package/es/components/ecocup/components/CupActionList/index.d.ts +1 -0
- package/es/components/ecocup/components/CupActionModal/index.d.ts +1 -0
- package/es/components/ecocup/components/CupInfoCard/index.d.ts +1 -0
- package/es/components/ecocup/components/CupStatusModal/index.d.ts +1 -0
- package/es/components/ecocup/components/CustomerAndCupModal/index.d.ts +1 -0
- package/es/components/ecocup/components/CustomerCard/index.d.ts +1 -0
- package/es/components/ecocup/components/MoreDropdown/index.d.ts +1 -0
- package/es/components/ecocup/components/SearchBar/index.d.ts +1 -0
- package/es/components/ecocup/components/SettingModal/index.d.ts +1 -0
- package/es/components/ecocup/cupList/hooks/useColumns.d.ts +1 -0
- package/es/components/ecocup/cupList/hooks/useSummary.d.ts +1 -0
- package/es/components/eftpos/hooks.d.ts +1 -0
- package/es/components/eftpos/index.d.ts +1 -0
- package/es/components/eftposPay/component/fail/network.d.ts +0 -1
- package/es/components/eftposPay/component/fail/unknow.d.ts +0 -1
- package/es/components/eftposPay/component/signature/index.d.ts +0 -1
- package/es/components/eftposPay/store/index.d.ts +1 -1
- package/es/components/eftposPay/tip.d.ts +0 -1
- package/es/components/eftposPay/windcave/receiptAction.d.ts +0 -1
- package/es/components/shoppingCart/hooks/useClearCart.d.ts +0 -1
- package/es/plus/clinetSearch/Add/BirthdayField/index.d.ts +1 -0
- package/es/plus/clinetSearch/Add/GenderField/index.d.ts +1 -0
- package/es/plus/clinetSearch/Add/PhoneField/index.d.ts +1 -0
- package/es/plus/orderList/components/HandleActions.d.ts +1 -0
- package/es/plus/orderList/components/QuickFilter.d.ts +1 -0
- package/es/plus/orderList/components/Reset.d.ts +1 -0
- package/es/plus/orderList/components/Toolbar.d.ts +1 -0
- package/es/plus/pisellReservation/PisellReservation.js +369 -41
- package/es/plus/pisellReservation/components/PisellReservationSubcomponents.d.ts +7 -6
- package/es/plus/pisellReservation/components/PisellReservationSubcomponents.js +25 -12
- package/es/plus/pisellReservation/components/ReservationResourceWallResourceSelect.d.ts +14 -0
- package/es/plus/pisellReservation/components/ReservationResourceWallResourceSelect.js +30 -0
- package/es/plus/pisellReservation/components/bookingDetailModal/ReservationBookingDetailModal.js +5 -5
- package/es/plus/pisellReservation/data/bookingToReservationTables.d.ts +4 -0
- package/es/plus/pisellReservation/data/bookingToReservationTables.js +12 -4
- package/es/plus/pisellReservation/data/mapReservationToVenueWallCards.d.ts +6 -0
- package/es/plus/pisellReservation/data/mapReservationToVenueWallCards.js +171 -0
- package/es/plus/pisellReservation/data/reservationDataUtils.js +1 -1
- package/es/plus/pisellReservation/floorMap/reservationMock.js +160 -0
- package/es/plus/pisellReservation/floorRoomCard/buildCardBodyViewModel.js +4 -4
- package/es/plus/pisellReservation/floorRoomCard/floorRoomCardUtils.d.ts +18 -0
- package/es/plus/pisellReservation/floorRoomCard/floorRoomCardUtils.js +44 -0
- package/es/plus/pisellReservation/hooks/useReservationScheduleDebounced.d.ts +3 -3
- package/es/plus/pisellReservation/locales/locales-ja.d.ts +5 -0
- package/es/plus/pisellReservation/locales/locales-ja.js +5 -0
- package/es/plus/pisellReservation/locales/locales-pt.d.ts +5 -0
- package/es/plus/pisellReservation/locales/locales-pt.js +5 -0
- package/es/plus/pisellReservation/locales/locales.d.ts +17 -0
- package/es/plus/pisellReservation/locales/locales.js +7 -0
- package/es/plus/pisellReservation/reservationConstants.d.ts +23 -5
- package/es/plus/pisellReservation/reservationConstants.js +7 -0
- package/es/plus/pisellReservation/types.d.ts +4 -0
- package/es/plus/saasAttendance/settings/components/membersField/index.d.ts +1 -0
- package/es/plus/skuOptionsSelection/components/OptionsCard/index.d.ts +1 -0
- package/es/plus/walletPassGallery/components/timelineSection/index.d.ts +1 -0
- package/es/pro/Selector/demo.d.ts +1 -0
- package/es/pro/pisellPhoneKeyboard/index.d.ts +1 -0
- package/lib/components/appointmentBooking/components/TimeSlicing/components/SelectDateOS.d.ts +0 -1
- package/lib/components/booking/hooks/useClearCart.d.ts +0 -1
- package/lib/components/booking/info/notes/index.d.ts +0 -1
- package/lib/components/ecocup/components/AddCustomerModal/index.d.ts +1 -0
- package/lib/components/ecocup/components/CupActionList/index.d.ts +1 -0
- package/lib/components/ecocup/components/CupActionModal/index.d.ts +1 -0
- package/lib/components/ecocup/components/CupInfoCard/index.d.ts +1 -0
- package/lib/components/ecocup/components/CupStatusModal/index.d.ts +1 -0
- package/lib/components/ecocup/components/CustomerAndCupModal/index.d.ts +1 -0
- package/lib/components/ecocup/components/CustomerCard/index.d.ts +1 -0
- package/lib/components/ecocup/components/MoreDropdown/index.d.ts +1 -0
- package/lib/components/ecocup/components/SearchBar/index.d.ts +1 -0
- package/lib/components/ecocup/components/SettingModal/index.d.ts +1 -0
- package/lib/components/ecocup/cupList/hooks/useColumns.d.ts +1 -0
- package/lib/components/ecocup/cupList/hooks/useSummary.d.ts +1 -0
- package/lib/components/eftpos/hooks.d.ts +1 -0
- package/lib/components/eftpos/index.d.ts +1 -0
- package/lib/components/eftposPay/component/fail/network.d.ts +0 -1
- package/lib/components/eftposPay/component/fail/unknow.d.ts +0 -1
- package/lib/components/eftposPay/component/signature/index.d.ts +0 -1
- package/lib/components/eftposPay/store/index.d.ts +1 -1
- package/lib/components/eftposPay/tip.d.ts +0 -1
- package/lib/components/eftposPay/windcave/receiptAction.d.ts +0 -1
- package/lib/components/shoppingCart/hooks/useClearCart.d.ts +0 -1
- package/lib/plus/clinetSearch/Add/BirthdayField/index.d.ts +1 -0
- package/lib/plus/clinetSearch/Add/GenderField/index.d.ts +1 -0
- package/lib/plus/clinetSearch/Add/PhoneField/index.d.ts +1 -0
- package/lib/plus/orderList/components/HandleActions.d.ts +1 -0
- package/lib/plus/orderList/components/QuickFilter.d.ts +1 -0
- package/lib/plus/orderList/components/Reset.d.ts +1 -0
- package/lib/plus/orderList/components/Toolbar.d.ts +1 -0
- package/lib/plus/pisellReservation/PisellReservation.js +312 -12
- package/lib/plus/pisellReservation/components/PisellReservationSubcomponents.d.ts +7 -6
- package/lib/plus/pisellReservation/components/PisellReservationSubcomponents.js +18 -5
- package/lib/plus/pisellReservation/components/ReservationResourceWallResourceSelect.d.ts +14 -0
- package/lib/plus/pisellReservation/components/ReservationResourceWallResourceSelect.js +60 -0
- package/lib/plus/pisellReservation/components/bookingDetailModal/ReservationBookingDetailModal.js +1 -1
- package/lib/plus/pisellReservation/data/bookingToReservationTables.d.ts +4 -0
- package/lib/plus/pisellReservation/data/bookingToReservationTables.js +16 -9
- package/lib/plus/pisellReservation/data/mapReservationToVenueWallCards.d.ts +6 -0
- package/lib/plus/pisellReservation/data/mapReservationToVenueWallCards.js +160 -0
- package/lib/plus/pisellReservation/data/reservationDataUtils.js +2 -1
- package/lib/plus/pisellReservation/floorMap/reservationMock.js +151 -0
- package/lib/plus/pisellReservation/floorRoomCard/buildCardBodyViewModel.js +5 -2
- package/lib/plus/pisellReservation/floorRoomCard/floorRoomCardUtils.d.ts +18 -0
- package/lib/plus/pisellReservation/floorRoomCard/floorRoomCardUtils.js +40 -0
- package/lib/plus/pisellReservation/hooks/useReservationScheduleDebounced.d.ts +3 -3
- package/lib/plus/pisellReservation/locales/locales-ja.d.ts +5 -0
- package/lib/plus/pisellReservation/locales/locales-ja.js +5 -0
- package/lib/plus/pisellReservation/locales/locales-pt.d.ts +5 -0
- package/lib/plus/pisellReservation/locales/locales-pt.js +5 -0
- package/lib/plus/pisellReservation/locales/locales.d.ts +17 -0
- package/lib/plus/pisellReservation/locales/locales.js +7 -0
- package/lib/plus/pisellReservation/reservationConstants.d.ts +23 -5
- package/lib/plus/pisellReservation/reservationConstants.js +12 -0
- package/lib/plus/pisellReservation/types.d.ts +4 -0
- package/lib/plus/saasAttendance/settings/components/membersField/index.d.ts +1 -0
- package/lib/plus/skuOptionsSelection/components/OptionsCard/index.d.ts +1 -0
- package/lib/plus/walletPassGallery/components/timelineSection/index.d.ts +1 -0
- package/lib/pro/Selector/demo.d.ts +1 -0
- package/lib/pro/pisellPhoneKeyboard/index.d.ts +1 -0
- package/package.json +4 -4
|
@@ -60,6 +60,7 @@ var import_reservationDensity = require("./data/reservationDensity");
|
|
|
60
60
|
var import_bookingToReservationTables = require("./data/bookingToReservationTables");
|
|
61
61
|
var import_hudDrawerLocalListQuery = require("./data/hudDrawerLocalListQuery");
|
|
62
62
|
var import_reservationTablesMerge = require("./data/reservationTablesMerge");
|
|
63
|
+
var import_formResourceToReservationTables = require("./data/formResourceToReservationTables");
|
|
63
64
|
var import_bookingToReservationTables2 = require("./data/bookingToReservationTables");
|
|
64
65
|
var import_calendarAdapter = require("./data/calendarAdapter");
|
|
65
66
|
var import_reservationDataUtils = require("./data/reservationDataUtils");
|
|
@@ -69,6 +70,8 @@ var import_useReservationFloorPlan = require("./floorMap/useReservationFloorPlan
|
|
|
69
70
|
var import_useReservationFloorMapMerged = require("./floorMap/useReservationFloorMapMerged");
|
|
70
71
|
var import_ReservationCalendarDayBookingRoomCard = require("./components/ReservationCalendarDayBookingRoomCard");
|
|
71
72
|
var import_reservationConstants = require("./reservationConstants");
|
|
73
|
+
var import_mapReservationToVenueWallCards = require("./data/mapReservationToVenueWallCards");
|
|
74
|
+
var import_ReservationResourceWallResourceSelect = require("./components/ReservationResourceWallResourceSelect");
|
|
72
75
|
var import_reservationOperatingDayRange = require("./data/reservationOperatingDayRange");
|
|
73
76
|
var import_useReservationScheduleDebounced = require("./hooks/useReservationScheduleDebounced");
|
|
74
77
|
var import_useReservationSalesHostData = require("./hooks/useReservationSalesHostData");
|
|
@@ -207,6 +210,9 @@ var PisellReservationCore = (props) => {
|
|
|
207
210
|
*/
|
|
208
211
|
subscribeRealtimePush: true
|
|
209
212
|
});
|
|
213
|
+
const [shellBodyView, setShellBodyView] = (0, import_react.useState)(
|
|
214
|
+
() => (0, import_reservationDataUtils.readBodyViewFromStorageKey)(bodyViewStorageKey)
|
|
215
|
+
);
|
|
210
216
|
const { baseFloorConfig, floorPlanRemoteId, setRemoteFloorPlanView } = (0, import_useReservationFloorPlan.useReservationFloorPlan)({
|
|
211
217
|
resolvedFloorPlanId,
|
|
212
218
|
effectiveFloorPlanCode,
|
|
@@ -232,11 +238,44 @@ var PisellReservationCore = (props) => {
|
|
|
232
238
|
),
|
|
233
239
|
[floorConfigForBindings.sceneElements, gridDataSourceKey]
|
|
234
240
|
);
|
|
241
|
+
const resourceWallFilterIdsForFloorBooking = (0, import_react.useMemo)(() => {
|
|
242
|
+
if (!isInternalListData) return [];
|
|
243
|
+
const sp = gridBookingData.searchParams;
|
|
244
|
+
const fv = sp == null ? void 0 : sp.filter;
|
|
245
|
+
if (!fv || typeof fv !== "object" || fv === null) return [];
|
|
246
|
+
const vals = fv.values;
|
|
247
|
+
if (!vals || typeof vals !== "object") return [];
|
|
248
|
+
const raw = vals[import_materials.DEFAULT_RESOURCE_WALL_FILTER_FIELD_KEY];
|
|
249
|
+
if (!Array.isArray(raw)) return [];
|
|
250
|
+
return raw.map(String).filter(Boolean);
|
|
251
|
+
}, [isInternalListData, gridBookingData.searchParams]);
|
|
235
252
|
const floorBookingResourceReady = isInternalListData && !resourceBoardData.loading;
|
|
236
|
-
const floorBookingExtraParams = (0, import_react.useMemo)(
|
|
237
|
-
() =>
|
|
238
|
-
|
|
239
|
-
|
|
253
|
+
const floorBookingExtraParams = (0, import_react.useMemo)(() => {
|
|
254
|
+
const normalizeIds = (ids) => {
|
|
255
|
+
const out = [];
|
|
256
|
+
for (const id of ids) {
|
|
257
|
+
const t = String(id).trim();
|
|
258
|
+
if (!t) continue;
|
|
259
|
+
const n = Number(t);
|
|
260
|
+
if (Number.isFinite(n) && n > 0 && /^\d+$/.test(t)) {
|
|
261
|
+
out.push(Math.trunc(n));
|
|
262
|
+
} else {
|
|
263
|
+
out.push(t);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return out;
|
|
267
|
+
};
|
|
268
|
+
if (shellBodyView === "resourceWall" && resourceWallFilterIdsForFloorBooking.length > 0) {
|
|
269
|
+
return {
|
|
270
|
+
form_record_ids: normalizeIds(resourceWallFilterIdsForFloorBooking)
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
return { form_record_ids: floorBoundFormRecordIds };
|
|
274
|
+
}, [
|
|
275
|
+
shellBodyView,
|
|
276
|
+
resourceWallFilterIdsForFloorBooking,
|
|
277
|
+
floorBoundFormRecordIds
|
|
278
|
+
]);
|
|
240
279
|
const floorDayBookingData = (0, import_usePisellReservationBookingData.usePisellReservationBookingData)(
|
|
241
280
|
floorBookingResourceReady,
|
|
242
281
|
{ listPageSize: 999, extraRequestParams: floorBookingExtraParams }
|
|
@@ -299,6 +338,24 @@ var PisellReservationCore = (props) => {
|
|
|
299
338
|
timeNavigatorPropsProp,
|
|
300
339
|
timelineRange: effectiveTimelineRange
|
|
301
340
|
});
|
|
341
|
+
(0, import_react.useEffect)(() => {
|
|
342
|
+
if (!isInternalListData) return;
|
|
343
|
+
const raw = salesResourceBookings;
|
|
344
|
+
if (raw == null) {
|
|
345
|
+
console.log("[PisellReservation] salesResourceBookings", null);
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
if (!Array.isArray(raw)) {
|
|
349
|
+
console.log("[PisellReservation] salesResourceBookings (non-array)", raw);
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
const head = raw.slice(0, 3);
|
|
353
|
+
console.log("[PisellReservation] salesResourceBookings", {
|
|
354
|
+
length: raw.length,
|
|
355
|
+
head,
|
|
356
|
+
full: raw
|
|
357
|
+
});
|
|
358
|
+
}, [isInternalListData, salesResourceBookings]);
|
|
302
359
|
const tables = (0, import_react.useMemo)(
|
|
303
360
|
() => (0, import_reservationTablesMerge.buildReservationMergedTableRows)({
|
|
304
361
|
dataSourcesProp,
|
|
@@ -320,6 +377,29 @@ var PisellReservationCore = (props) => {
|
|
|
320
377
|
dataProp
|
|
321
378
|
]
|
|
322
379
|
);
|
|
380
|
+
const resourceWallFilterSelectOptions = (0, import_react.useMemo)(() => {
|
|
381
|
+
if (isInternalListData && Array.isArray(resourceBoardData.data) && resourceBoardData.data.length > 0) {
|
|
382
|
+
return (0, import_formResourceToReservationTables.formResourceListToReservationTableRows)(
|
|
383
|
+
resourceBoardData.data
|
|
384
|
+
).map((r) => ({
|
|
385
|
+
label: r.code || r.main_field || String(r.id),
|
|
386
|
+
value: String(r.id)
|
|
387
|
+
}));
|
|
388
|
+
}
|
|
389
|
+
const seen = /* @__PURE__ */ new Set();
|
|
390
|
+
const out = [];
|
|
391
|
+
for (const row of tables) {
|
|
392
|
+
const id = String(row.id);
|
|
393
|
+
if (!id || id === "undefined" || id === "null") continue;
|
|
394
|
+
if (seen.has(id)) continue;
|
|
395
|
+
seen.add(id);
|
|
396
|
+
out.push({
|
|
397
|
+
label: row.code || row.main_field || id,
|
|
398
|
+
value: id
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
return out;
|
|
402
|
+
}, [isInternalListData, resourceBoardData.data, tables]);
|
|
323
403
|
const calendarOrderedResourceIds = (0, import_react.useMemo)(() => {
|
|
324
404
|
const fromScene = (0, import_calendarAdapter.orderedCanvasResourceRecordIdStrings)(
|
|
325
405
|
floorConfigForBindings.sceneElements,
|
|
@@ -369,6 +449,104 @@ var PisellReservationCore = (props) => {
|
|
|
369
449
|
}),
|
|
370
450
|
[floorDayBookingData.data, calendarCanvasIdSet]
|
|
371
451
|
);
|
|
452
|
+
(0, import_react.useEffect)(() => {
|
|
453
|
+
if (shellBodyView !== "calendar") return;
|
|
454
|
+
const summarizeBooking = (b) => ({
|
|
455
|
+
id: b.id,
|
|
456
|
+
courtId: b.courtId,
|
|
457
|
+
date: b.date,
|
|
458
|
+
startHour: b.startHour,
|
|
459
|
+
endHour: b.endHour,
|
|
460
|
+
name: b.name,
|
|
461
|
+
kind: b.kind
|
|
462
|
+
});
|
|
463
|
+
const summarizeResource = (r) => ({
|
|
464
|
+
id: r.id,
|
|
465
|
+
name: r.name,
|
|
466
|
+
groupType: r.groupType
|
|
467
|
+
});
|
|
468
|
+
console.log("[PisellReservation] calendar 展示数据", {
|
|
469
|
+
shellBodyView,
|
|
470
|
+
calendarGranularity,
|
|
471
|
+
anchorDate: schedule.date.toISOString(),
|
|
472
|
+
scheduleAt: (0, import_dayjs.default)(schedule.at).isValid() ? (0, import_dayjs.default)(schedule.at).toISOString() : String(schedule.at),
|
|
473
|
+
timelineRange: effectiveTimelineRange,
|
|
474
|
+
floorDayBookingLoading: floorDayBookingData.loading,
|
|
475
|
+
floorDayBookingCount: Array.isArray(floorDayBookingData.data) ? floorDayBookingData.data.length : 0,
|
|
476
|
+
calendarOrderedResourceIds,
|
|
477
|
+
resourcesCount: calendarResources.length,
|
|
478
|
+
resourcesPreview: calendarResources.slice(0, 12).map(summarizeResource),
|
|
479
|
+
bookingsCount: calendarBookings.length,
|
|
480
|
+
bookingsPreview: calendarBookings.slice(0, 12).map(summarizeBooking),
|
|
481
|
+
resourcesFull: calendarResources,
|
|
482
|
+
bookingsFull: calendarBookings
|
|
483
|
+
});
|
|
484
|
+
}, [
|
|
485
|
+
shellBodyView,
|
|
486
|
+
calendarGranularity,
|
|
487
|
+
schedule.date,
|
|
488
|
+
schedule.at,
|
|
489
|
+
effectiveTimelineRange,
|
|
490
|
+
floorDayBookingData.loading,
|
|
491
|
+
floorDayBookingData.data,
|
|
492
|
+
calendarOrderedResourceIds,
|
|
493
|
+
calendarResources,
|
|
494
|
+
calendarBookings
|
|
495
|
+
]);
|
|
496
|
+
const venueWallCards = (0, import_react.useMemo)(
|
|
497
|
+
() => (0, import_mapReservationToVenueWallCards.mapReservationRowsToVenueWallCards)(tables),
|
|
498
|
+
[tables]
|
|
499
|
+
);
|
|
500
|
+
(0, import_react.useEffect)(() => {
|
|
501
|
+
if (shellBodyView !== "resourceWall") return;
|
|
502
|
+
const filterKey = import_materials.DEFAULT_RESOURCE_WALL_FILTER_FIELD_KEY;
|
|
503
|
+
const sp = searchParams;
|
|
504
|
+
const fv = sp == null ? void 0 : sp.filter;
|
|
505
|
+
const vals = fv && typeof fv === "object" && fv !== null && typeof fv.values === "object" && fv.values !== null ? fv.values : {};
|
|
506
|
+
const selectedRaw = vals[filterKey];
|
|
507
|
+
const selectedIds = Array.isArray(selectedRaw) ? selectedRaw.map((x) => String(x)) : null;
|
|
508
|
+
const allCards = venueWallCards;
|
|
509
|
+
const visibleCards = selectedIds == null || selectedIds.length === 0 ? allCards : (() => {
|
|
510
|
+
const set = new Set(selectedIds);
|
|
511
|
+
return allCards.filter((c) => set.has(String(c.resourceId)));
|
|
512
|
+
})();
|
|
513
|
+
const summarize = (c) => {
|
|
514
|
+
var _a2;
|
|
515
|
+
return {
|
|
516
|
+
resourceId: c.resourceId,
|
|
517
|
+
resource: c.resource,
|
|
518
|
+
area: c.area,
|
|
519
|
+
status: c.status,
|
|
520
|
+
currentTime: c.currentTime,
|
|
521
|
+
currentBooking: c.currentBooking,
|
|
522
|
+
startsInMin: c.startsInMin,
|
|
523
|
+
lateMin: c.lateMin,
|
|
524
|
+
remainingMin: c.remainingMin,
|
|
525
|
+
nextListHead: (_a2 = c.nextList) == null ? void 0 : _a2.slice(0, 2)
|
|
526
|
+
};
|
|
527
|
+
};
|
|
528
|
+
console.log("[PisellReservation] resourceWall 展示数据", {
|
|
529
|
+
shellBodyView,
|
|
530
|
+
filterFieldKey: filterKey,
|
|
531
|
+
searchParamsFilterValues: vals,
|
|
532
|
+
selectedIds,
|
|
533
|
+
floorDayBookingLoading: floorDayBookingData.loading,
|
|
534
|
+
floorBookingExtraParams,
|
|
535
|
+
cardsCount: allCards.length,
|
|
536
|
+
visibleCount: visibleCards.length,
|
|
537
|
+
cardsPreview: allCards.slice(0, 8).map(summarize),
|
|
538
|
+
visiblePreview: visibleCards.slice(0, 8).map(summarize),
|
|
539
|
+
cardsFull: allCards,
|
|
540
|
+
visibleFull: visibleCards
|
|
541
|
+
});
|
|
542
|
+
}, [
|
|
543
|
+
shellBodyView,
|
|
544
|
+
venueWallCards,
|
|
545
|
+
floorDayBookingData.loading,
|
|
546
|
+
searchParams,
|
|
547
|
+
floorBookingExtraParams
|
|
548
|
+
]);
|
|
549
|
+
const resourceWallFilterStorageKey = `${import_reservationConstants.PISELL_RESERVATION_RESOURCE_WALL_FILTER_STORAGE_PREFIX}:${bodyViewStorageKey ?? "default"}`;
|
|
372
550
|
const debouncedScheduleKey = (0, import_react.useMemo)(
|
|
373
551
|
() => `${(0, import_dayjs.default)(debouncedSchedule.date).startOf("day").valueOf()}_${(0, import_dayjs.default)(
|
|
374
552
|
debouncedSchedule.at
|
|
@@ -406,6 +584,7 @@ var PisellReservationCore = (props) => {
|
|
|
406
584
|
const bodyViewRef = (0, import_react.useRef)(
|
|
407
585
|
(0, import_reservationDataUtils.readBodyViewFromStorageKey)(bodyViewStorageKey)
|
|
408
586
|
);
|
|
587
|
+
const resourceWallFilterHydratedRef = (0, import_react.useRef)(false);
|
|
409
588
|
const floorMapLayoutRef = (0, import_react.useRef)(null);
|
|
410
589
|
const [followWallClock, setFollowWallClock] = (0, import_react.useState)(true);
|
|
411
590
|
const [calendarGranularity, setCalendarGranularity] = (0, import_react.useState)("week");
|
|
@@ -442,7 +621,7 @@ var PisellReservationCore = (props) => {
|
|
|
442
621
|
}
|
|
443
622
|
prevCommittedDateRef.current = d;
|
|
444
623
|
}
|
|
445
|
-
if ((bodyViewRef.current === "floorMap" || bodyViewRef.current === "calendar") && !isInternalListData) {
|
|
624
|
+
if ((bodyViewRef.current === "floorMap" || bodyViewRef.current === "calendar" || bodyViewRef.current === "resourceWall") && !isInternalListData) {
|
|
446
625
|
(_a2 = onSearchRef.current) == null ? void 0 : _a2.call(onSearchRef, {
|
|
447
626
|
...searchParamsRefControlled.current ?? {},
|
|
448
627
|
reservationDate: debouncedSchedule.date.toISOString(),
|
|
@@ -736,6 +915,74 @@ var PisellReservationCore = (props) => {
|
|
|
736
915
|
);
|
|
737
916
|
const onSearch = isInternalListData ? onGridBookingSearch : onSearchProp;
|
|
738
917
|
const onReset = isInternalListData ? gridBookingData.onReset : onResetProp;
|
|
918
|
+
(0, import_react.useEffect)(() => {
|
|
919
|
+
if (!isInternalListData) return;
|
|
920
|
+
if (resourceWallFilterHydratedRef.current) return;
|
|
921
|
+
if (calendarOrderedResourceIds.length === 0) return;
|
|
922
|
+
const fv = searchParams == null ? void 0 : searchParams.filter;
|
|
923
|
+
const values = fv && typeof fv === "object" && fv !== null && typeof fv.values === "object" && fv.values !== null ? fv.values : {};
|
|
924
|
+
const maxRw = import_reservationConstants.RESERVATION_RESOURCE_WALL_MAX_RESOURCE_SELECTION;
|
|
925
|
+
const existing = values.resource_wall_resource_ids;
|
|
926
|
+
if (Array.isArray(existing) && existing.length > 0) {
|
|
927
|
+
if (existing.length > maxRw && onSearch) {
|
|
928
|
+
onSearch({
|
|
929
|
+
...searchParams,
|
|
930
|
+
filter: {
|
|
931
|
+
...typeof searchParams.filter === "object" && searchParams.filter !== null ? searchParams.filter : {},
|
|
932
|
+
values: {
|
|
933
|
+
...typeof values === "object" ? values : {},
|
|
934
|
+
resource_wall_resource_ids: existing.slice(0, maxRw).map(String)
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
});
|
|
938
|
+
}
|
|
939
|
+
resourceWallFilterHydratedRef.current = true;
|
|
940
|
+
return;
|
|
941
|
+
}
|
|
942
|
+
let stored;
|
|
943
|
+
try {
|
|
944
|
+
const raw = localStorage.getItem(resourceWallFilterStorageKey);
|
|
945
|
+
if (raw) stored = JSON.parse(raw);
|
|
946
|
+
} catch {
|
|
947
|
+
}
|
|
948
|
+
const all = calendarOrderedResourceIds;
|
|
949
|
+
const storedIds = Array.isArray(stored) && stored.length > 0 ? stored : [];
|
|
950
|
+
const picked = storedIds.length > 0 ? all.filter((id) => storedIds.includes(id)).slice(0, maxRw) : all.slice(0, maxRw);
|
|
951
|
+
const finalList = picked.length > 0 ? picked : all.slice(0, maxRw);
|
|
952
|
+
resourceWallFilterHydratedRef.current = true;
|
|
953
|
+
if (!onSearch) return;
|
|
954
|
+
onSearch({
|
|
955
|
+
...searchParams,
|
|
956
|
+
filter: {
|
|
957
|
+
...typeof searchParams.filter === "object" && searchParams.filter !== null ? searchParams.filter : {},
|
|
958
|
+
values: {
|
|
959
|
+
...typeof values === "object" ? values : {},
|
|
960
|
+
resource_wall_resource_ids: finalList
|
|
961
|
+
}
|
|
962
|
+
}
|
|
963
|
+
});
|
|
964
|
+
}, [
|
|
965
|
+
isInternalListData,
|
|
966
|
+
calendarOrderedResourceIds,
|
|
967
|
+
resourceWallFilterStorageKey,
|
|
968
|
+
onSearch,
|
|
969
|
+
searchParams
|
|
970
|
+
]);
|
|
971
|
+
(0, import_react.useEffect)(() => {
|
|
972
|
+
const fv = searchParams == null ? void 0 : searchParams.filter;
|
|
973
|
+
if (!fv || typeof fv !== "object" || fv === null || typeof fv.values !== "object" || fv.values === null) {
|
|
974
|
+
return;
|
|
975
|
+
}
|
|
976
|
+
const rid = fv.values.resource_wall_resource_ids;
|
|
977
|
+
if (!Array.isArray(rid)) return;
|
|
978
|
+
try {
|
|
979
|
+
localStorage.setItem(
|
|
980
|
+
resourceWallFilterStorageKey,
|
|
981
|
+
JSON.stringify(rid.map(String))
|
|
982
|
+
);
|
|
983
|
+
} catch {
|
|
984
|
+
}
|
|
985
|
+
}, [searchParams == null ? void 0 : searchParams.filter, resourceWallFilterStorageKey]);
|
|
739
986
|
const handleRouteJump = (0, import_ahooks.useMemoizedFn)((routePath) => {
|
|
740
987
|
var _a2, _b2;
|
|
741
988
|
if (!routePath) return;
|
|
@@ -829,6 +1076,26 @@ var PisellReservationCore = (props) => {
|
|
|
829
1076
|
effectiveTimelineRange.end
|
|
830
1077
|
]
|
|
831
1078
|
);
|
|
1079
|
+
const reservationResourceWallQuickFilter = (0, import_react.useMemo)(
|
|
1080
|
+
() => ({
|
|
1081
|
+
filterList: [
|
|
1082
|
+
{
|
|
1083
|
+
type: "custom",
|
|
1084
|
+
key: "resource_wall_resource_ids",
|
|
1085
|
+
name: "resource_wall_resource_ids",
|
|
1086
|
+
label: import_utils.locales.getText(import_reservationConstants.I18N_RESOURCE_WALL_RESOURCES),
|
|
1087
|
+
props: {
|
|
1088
|
+
options: resourceWallFilterSelectOptions
|
|
1089
|
+
},
|
|
1090
|
+
other: {
|
|
1091
|
+
component: import_ReservationResourceWallResourceSelect.ReservationResourceWallResourceSelect
|
|
1092
|
+
}
|
|
1093
|
+
}
|
|
1094
|
+
],
|
|
1095
|
+
hideFilterNamesOnFloorMap: []
|
|
1096
|
+
}),
|
|
1097
|
+
[resourceWallFilterSelectOptions]
|
|
1098
|
+
);
|
|
832
1099
|
const toolBarMerged = (0, import_react.useMemo)(() => {
|
|
833
1100
|
const {
|
|
834
1101
|
tabs: extraTabs,
|
|
@@ -839,6 +1106,7 @@ var PisellReservationCore = (props) => {
|
|
|
839
1106
|
return {
|
|
840
1107
|
...bookingToolBar ?? {},
|
|
841
1108
|
...restToolbar,
|
|
1109
|
+
quickFilter: reservationResourceWallQuickFilter,
|
|
842
1110
|
tabs: /* @__PURE__ */ import_react.default.createElement(
|
|
843
1111
|
import_PisellReservationSubcomponents.PisellReservationToolbarTabs,
|
|
844
1112
|
{
|
|
@@ -871,7 +1139,8 @@ var PisellReservationCore = (props) => {
|
|
|
871
1139
|
mergedTimeNavigatorProps,
|
|
872
1140
|
schedulePropsProp,
|
|
873
1141
|
loadReservationDensity,
|
|
874
|
-
calendarGranularity
|
|
1142
|
+
calendarGranularity,
|
|
1143
|
+
reservationResourceWallQuickFilter
|
|
875
1144
|
]);
|
|
876
1145
|
const recordBoardGrid = (0, import_react.useMemo)(() => {
|
|
877
1146
|
return bookingChildProps.grid;
|
|
@@ -968,6 +1237,19 @@ var PisellReservationCore = (props) => {
|
|
|
968
1237
|
},
|
|
969
1238
|
[tables]
|
|
970
1239
|
);
|
|
1240
|
+
const handleBlockedTimeSave = (0, import_react.useCallback)(
|
|
1241
|
+
async (payload) => {
|
|
1242
|
+
try {
|
|
1243
|
+
await import_utils2.request.getRequest().post("/shop/schedule/blocked-time", payload);
|
|
1244
|
+
import_antd.message.success("保存成功");
|
|
1245
|
+
await floorDayBookingData.refreshAsync();
|
|
1246
|
+
return true;
|
|
1247
|
+
} catch {
|
|
1248
|
+
return false;
|
|
1249
|
+
}
|
|
1250
|
+
},
|
|
1251
|
+
[floorDayBookingData]
|
|
1252
|
+
);
|
|
971
1253
|
const calendarLoadKey = (0, import_react.useMemo)(
|
|
972
1254
|
() => `${calendarGranularity}_${(0, import_dayjs.default)(schedule.date).startOf("day").valueOf()}_${(0, import_dayjs.default)(
|
|
973
1255
|
schedule.at
|
|
@@ -1000,7 +1282,8 @@ var PisellReservationCore = (props) => {
|
|
|
1000
1282
|
persistGuard: reservationCalendarPersist,
|
|
1001
1283
|
resources: calendarResources,
|
|
1002
1284
|
bookings: calendarBookings,
|
|
1003
|
-
loading
|
|
1285
|
+
/** 不套全屏 Spin:数据刷新时仍展示上一帧内容,避免切日历闪 loading */
|
|
1286
|
+
loading: false,
|
|
1004
1287
|
onViewportChange: handleCalendarViewportChange,
|
|
1005
1288
|
onBookingClick: handleCalendarBookingClick,
|
|
1006
1289
|
timelineRange: effectiveTimelineRange,
|
|
@@ -1009,21 +1292,31 @@ var PisellReservationCore = (props) => {
|
|
|
1009
1292
|
anchorDate: schedule.date.toDate(),
|
|
1010
1293
|
onAnchorDateChange: handleCalendarAnchorChange,
|
|
1011
1294
|
slotStepMinutes: 30,
|
|
1012
|
-
renderBooking: renderReservationCalendarBooking
|
|
1295
|
+
renderBooking: renderReservationCalendarBooking,
|
|
1296
|
+
onBlockedTimeSave: handleBlockedTimeSave,
|
|
1297
|
+
blockedTimeSalesChannels: ["online_store"]
|
|
1013
1298
|
};
|
|
1014
1299
|
}, [
|
|
1015
1300
|
reservationCalendarPersist,
|
|
1016
1301
|
calendarResources,
|
|
1017
1302
|
calendarBookings,
|
|
1018
|
-
calendarLoading,
|
|
1019
1303
|
handleCalendarViewportChange,
|
|
1020
1304
|
handleCalendarBookingClick,
|
|
1021
1305
|
calendarGranularity,
|
|
1022
1306
|
schedule.date,
|
|
1023
1307
|
handleCalendarAnchorChange,
|
|
1024
1308
|
effectiveTimelineRange,
|
|
1025
|
-
renderReservationCalendarBooking
|
|
1309
|
+
renderReservationCalendarBooking,
|
|
1310
|
+
handleBlockedTimeSave
|
|
1026
1311
|
]);
|
|
1312
|
+
const reservationResourceWallSlotProps = (0, import_react.useMemo)(
|
|
1313
|
+
() => ({
|
|
1314
|
+
cards: venueWallCards,
|
|
1315
|
+
loading: floorDayBookingData.loading,
|
|
1316
|
+
filterFieldKey: import_materials.DEFAULT_RESOURCE_WALL_FILTER_FIELD_KEY
|
|
1317
|
+
}),
|
|
1318
|
+
[venueWallCards, floorDayBookingData.loading]
|
|
1319
|
+
);
|
|
1027
1320
|
return /* @__PURE__ */ import_react.default.createElement(
|
|
1028
1321
|
import_date_picker.LocalizationProvider,
|
|
1029
1322
|
{
|
|
@@ -1057,20 +1350,27 @@ var PisellReservationCore = (props) => {
|
|
|
1057
1350
|
batchActionBar: bookingChildProps.batchActionBar,
|
|
1058
1351
|
floorMap: floorMapMerged,
|
|
1059
1352
|
calendar: reservationCalendarSlotProps,
|
|
1353
|
+
resourceWall: reservationResourceWallSlotProps,
|
|
1060
1354
|
defaultBodyView: "floorMap",
|
|
1061
1355
|
bodyViewStorageKey,
|
|
1062
1356
|
bodyViewSwitchable,
|
|
1063
1357
|
lockedBodyView,
|
|
1064
1358
|
floorMapLayoutRef
|
|
1065
1359
|
},
|
|
1066
|
-
/* @__PURE__ */ import_react.default.createElement(import_materials.PisellRecordBoard.ShellFrame, null, /* @__PURE__ */ import_react.default.createElement(
|
|
1360
|
+
/* @__PURE__ */ import_react.default.createElement(import_materials.PisellRecordBoard.ShellFrame, null, /* @__PURE__ */ import_react.default.createElement(
|
|
1361
|
+
import_PisellReservationSubcomponents.RecordBoardBodyViewCapture,
|
|
1362
|
+
{
|
|
1363
|
+
bodyViewRef,
|
|
1364
|
+
onBodyViewChange: setShellBodyView
|
|
1365
|
+
}
|
|
1366
|
+
), /* @__PURE__ */ import_react.default.createElement(
|
|
1067
1367
|
import_PisellReservationSubcomponents.ScheduleSyncOnFloorEnter,
|
|
1068
1368
|
{
|
|
1069
1369
|
schedule,
|
|
1070
1370
|
isInternalListData,
|
|
1071
1371
|
patchSearchParams: floorDayBookingData.patchSearchParams
|
|
1072
1372
|
}
|
|
1073
|
-
), /* @__PURE__ */ import_react.default.createElement(import_materials.PisellRecordBoard.GridLayout, null), /* @__PURE__ */ import_react.default.createElement(import_materials.PisellRecordBoard.FloorMap, null), /* @__PURE__ */ import_react.default.createElement(import_materials.PisellRecordBoard.Calendar, null))
|
|
1373
|
+
), /* @__PURE__ */ import_react.default.createElement(import_materials.PisellRecordBoard.GridLayout, null), /* @__PURE__ */ import_react.default.createElement(import_materials.PisellRecordBoard.FloorMap, null), /* @__PURE__ */ import_react.default.createElement(import_materials.PisellRecordBoard.Calendar, null), /* @__PURE__ */ import_react.default.createElement(import_materials.PisellRecordBoard.ResourceWall, null))
|
|
1074
1374
|
),
|
|
1075
1375
|
/* @__PURE__ */ import_react.default.createElement(
|
|
1076
1376
|
import_materials.PisellModal,
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 预约页拆出的轻量子组件(无业务数据请求):
|
|
3
|
-
* - `RecordBoardBodyViewCapture
|
|
3
|
+
* - `RecordBoardBodyViewCapture`:同步 bodyView 到 ref,并可通知宿主;
|
|
4
4
|
* - `ScheduleSyncOnFloorEnter`:从表格回到平面图/日历、或从日历回到平面图时,用当前营业日 patch 列表时间窗口;
|
|
5
|
-
* - `PisellReservationToolbarTabs
|
|
5
|
+
* - `PisellReservationToolbarTabs`:平面图/日历为日程带 + Segmented;表格 / 资源墙不展示日程带,仅 extraTabs;
|
|
6
6
|
* - `ReservationGridTopRight` / `PisellReservationScheduleEndActions` / `ReservationFloorMapCanvasTabsTrailing`:工具栏与画布尾区。
|
|
7
7
|
*/
|
|
8
8
|
import React from 'react';
|
|
9
|
-
import type
|
|
9
|
+
import { type Dayjs } from 'dayjs';
|
|
10
10
|
import type { PisellFloorMapLayoutRef, RecordBoardBodyView, ReservationScheduleBandValue } from '@pisell/materials';
|
|
11
11
|
import type { PisellReservationProps } from '../types';
|
|
12
|
-
/** 无 UI
|
|
12
|
+
/** 无 UI:将 RecordBoard Context 中的 `bodyView` 写入 ref,并可选通知宿主(如预约页按视图切换 booking 的 form_record_ids) */
|
|
13
13
|
export declare function RecordBoardBodyViewCapture(props: {
|
|
14
14
|
bodyViewRef: React.MutableRefObject<RecordBoardBodyView>;
|
|
15
|
+
onBodyViewChange?: (v: RecordBoardBodyView) => void;
|
|
15
16
|
}): null;
|
|
16
17
|
/** 从表格切回平面图/日历,或从日历回到平面图时,用当前日程收敛 `booking_time` 查询窗(与视口逻辑一致) */
|
|
17
18
|
export declare function ScheduleSyncOnFloorEnter(props: {
|
|
@@ -38,8 +39,8 @@ export declare type PisellReservationToolbarTabsProps = {
|
|
|
38
39
|
calendarGranularity?: 'day' | 'week' | 'month';
|
|
39
40
|
};
|
|
40
41
|
/**
|
|
41
|
-
* 顶栏 tabs
|
|
42
|
-
* 切换器由 RecordBoard
|
|
42
|
+
* 顶栏 tabs:**仅平面图、日历**下为日程带 + 时间轴 + 标题旁切换;表格 / 资源墙不展示 ScheduleBand,
|
|
43
|
+
* 切换器由 RecordBoard 工具栏顶行承担(表格态在 Find 左侧;资源墙无 Find 时在顶行左侧),与历史行为一致。
|
|
43
44
|
*/
|
|
44
45
|
export declare function PisellReservationToolbarTabs(props: PisellReservationToolbarTabsProps): JSX.Element | null;
|
|
45
46
|
/** 表格视图时展示工具栏右上角透传;平面图时收起(编辑入口在画布 Tab 行右侧) */
|
|
@@ -48,8 +48,10 @@ var import_reservationConstants = require("../reservationConstants");
|
|
|
48
48
|
function RecordBoardBodyViewCapture(props) {
|
|
49
49
|
const { bodyView } = (0, import_materials.useRecordBoardContext)();
|
|
50
50
|
(0, import_react.useEffect)(() => {
|
|
51
|
+
var _a;
|
|
51
52
|
props.bodyViewRef.current = bodyView;
|
|
52
|
-
|
|
53
|
+
(_a = props.onBodyViewChange) == null ? void 0 : _a.call(props, bodyView);
|
|
54
|
+
}, [bodyView, props.bodyViewRef, props.onBodyViewChange]);
|
|
53
55
|
return null;
|
|
54
56
|
}
|
|
55
57
|
function ScheduleSyncOnFloorEnter(props) {
|
|
@@ -57,12 +59,12 @@ function ScheduleSyncOnFloorEnter(props) {
|
|
|
57
59
|
const prevRef = (0, import_react.useRef)(null);
|
|
58
60
|
(0, import_react.useEffect)(() => {
|
|
59
61
|
const prev = prevRef.current;
|
|
60
|
-
if (props.isInternalListData && (bodyView === "floorMap" || bodyView === "calendar") && prev !== null && prev !== "floorMap" && prev !== "calendar") {
|
|
62
|
+
if (props.isInternalListData && (bodyView === "floorMap" || bodyView === "calendar" || bodyView === "resourceWall") && prev !== null && prev !== "floorMap" && prev !== "calendar" && prev !== "resourceWall") {
|
|
61
63
|
props.patchSearchParams(
|
|
62
64
|
(p) => (0, import_reservationDataUtils.mergeSearchParamsBookingWindow)(p, props.schedule.date)
|
|
63
65
|
);
|
|
64
66
|
}
|
|
65
|
-
if (props.isInternalListData && prev === "calendar" && bodyView === "floorMap") {
|
|
67
|
+
if (props.isInternalListData && (prev === "calendar" || prev === "resourceWall") && bodyView === "floorMap") {
|
|
66
68
|
props.patchSearchParams(
|
|
67
69
|
(p) => (0, import_reservationDataUtils.mergeSearchParamsBookingWindow)(p, props.schedule.date)
|
|
68
70
|
);
|
|
@@ -84,14 +86,19 @@ function PisellReservationToolbarTabs(props) {
|
|
|
84
86
|
const hasGrid = (shellMeta == null ? void 0 : shellMeta.hasGridContent) ?? true;
|
|
85
87
|
const hasFloor = shellMeta == null ? void 0 : shellMeta.hasFloorMapSlot;
|
|
86
88
|
const hasCalendar = shellMeta == null ? void 0 : shellMeta.hasCalendarSlot;
|
|
89
|
+
const hasResourceWall = shellMeta == null ? void 0 : shellMeta.hasResourceWallSlot;
|
|
87
90
|
const floorForToggle = shellMeta == null ? void 0 : shellMeta.effectiveFloorMapProps;
|
|
88
91
|
const canFloor = Boolean(hasFloor && floorForToggle != null);
|
|
89
92
|
const canCalendar = Boolean(hasCalendar);
|
|
90
|
-
const
|
|
93
|
+
const canResourceWall = Boolean(hasResourceWall);
|
|
94
|
+
const bodyViewOptionCount = (hasGrid ? 1 : 0) + (canFloor ? 1 : 0) + (canCalendar ? 1 : 0) + (canResourceWall ? 1 : 0);
|
|
91
95
|
const allowBodyViewToggle = bodyViewOptionCount >= 2 && bodyViewSwitchable !== false;
|
|
92
96
|
if (bodyView === "grid") {
|
|
93
97
|
return props.extraTabs ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, props.extraTabs) : null;
|
|
94
98
|
}
|
|
99
|
+
if (bodyView === "resourceWall") {
|
|
100
|
+
return props.extraTabs ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, props.extraTabs) : null;
|
|
101
|
+
}
|
|
95
102
|
const bodyViewSegmentedOptions = (0, import_react.useMemo)(() => {
|
|
96
103
|
const opts = [];
|
|
97
104
|
if (canFloor) {
|
|
@@ -103,11 +110,17 @@ function PisellReservationToolbarTabs(props) {
|
|
|
103
110
|
value: "calendar"
|
|
104
111
|
});
|
|
105
112
|
}
|
|
113
|
+
if (canResourceWall) {
|
|
114
|
+
opts.push({
|
|
115
|
+
label: import_utils.locales.getText(import_reservationConstants.I18N_VIEW_RESOURCE_WALL),
|
|
116
|
+
value: "resourceWall"
|
|
117
|
+
});
|
|
118
|
+
}
|
|
106
119
|
if (hasGrid) {
|
|
107
120
|
opts.push({ label: import_utils.locales.getText(import_reservationConstants.I18N_VIEW_GRID), value: "grid" });
|
|
108
121
|
}
|
|
109
122
|
return opts;
|
|
110
|
-
}, [canFloor, canCalendar, hasGrid]);
|
|
123
|
+
}, [canFloor, canCalendar, canResourceWall, hasGrid]);
|
|
111
124
|
const bodyViewToggle = allowBodyViewToggle ? /* @__PURE__ */ import_react.default.createElement(
|
|
112
125
|
import_antd.Segmented,
|
|
113
126
|
{
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare type ReservationResourceWallResourceSelectProps = {
|
|
3
|
+
value?: string[];
|
|
4
|
+
onChange?: (v: string[]) => void;
|
|
5
|
+
/** 与日历资源同源:{ label, value } */
|
|
6
|
+
options?: Array<{
|
|
7
|
+
label: string;
|
|
8
|
+
value: string;
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* 大屏快筛:画布资源多选(写入 `searchParams.filter.values.resource_wall_resource_ids`)。
|
|
13
|
+
*/
|
|
14
|
+
export declare function ReservationResourceWallResourceSelect(props: ReservationResourceWallResourceSelectProps): JSX.Element;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/plus/pisellReservation/components/ReservationResourceWallResourceSelect.tsx
|
|
30
|
+
var ReservationResourceWallResourceSelect_exports = {};
|
|
31
|
+
__export(ReservationResourceWallResourceSelect_exports, {
|
|
32
|
+
ReservationResourceWallResourceSelect: () => ReservationResourceWallResourceSelect
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(ReservationResourceWallResourceSelect_exports);
|
|
35
|
+
var import_react = __toESM(require("react"));
|
|
36
|
+
var import_antd = require("antd");
|
|
37
|
+
var import_utils = require("@pisell/utils");
|
|
38
|
+
var import_reservationConstants = require("../reservationConstants");
|
|
39
|
+
function ReservationResourceWallResourceSelect(props) {
|
|
40
|
+
const { value, onChange, options = [] } = props;
|
|
41
|
+
const max = import_reservationConstants.RESERVATION_RESOURCE_WALL_MAX_RESOURCE_SELECTION;
|
|
42
|
+
return /* @__PURE__ */ import_react.default.createElement(
|
|
43
|
+
import_antd.Select,
|
|
44
|
+
{
|
|
45
|
+
mode: "multiple",
|
|
46
|
+
allowClear: true,
|
|
47
|
+
showSearch: true,
|
|
48
|
+
optionFilterProp: "label",
|
|
49
|
+
placeholder: import_utils.locales.getText(import_reservationConstants.I18N_RESOURCE_WALL_RESOURCES),
|
|
50
|
+
value: (value ?? []).slice(0, max),
|
|
51
|
+
onChange: (v) => onChange == null ? void 0 : onChange(v.slice(0, max)),
|
|
52
|
+
options,
|
|
53
|
+
style: { minWidth: 260, maxWidth: 420 }
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
58
|
+
0 && (module.exports = {
|
|
59
|
+
ReservationResourceWallResourceSelect
|
|
60
|
+
});
|
package/lib/plus/pisellReservation/components/bookingDetailModal/ReservationBookingDetailModal.js
CHANGED
|
@@ -70,7 +70,7 @@ function stopUiClick(e) {
|
|
|
70
70
|
}
|
|
71
71
|
function resolveOrderIdForHostActions(bookingRaw) {
|
|
72
72
|
const order = bookingRaw.order;
|
|
73
|
-
const id = (order == null ? void 0 : order.id) ?? bookingRaw.order_id;
|
|
73
|
+
const id = (order == null ? void 0 : order.id) ?? (order == null ? void 0 : order.order_id) ?? bookingRaw.order_id;
|
|
74
74
|
if (id == null || id === "") return void 0;
|
|
75
75
|
if (typeof id === "number" && Number.isFinite(id)) return id;
|
|
76
76
|
const s = String(id).trim();
|