@pisell/pisellos 2.3.68 → 2.3.69
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/dist/core/index.d.ts +7 -0
- package/dist/core/index.js +109 -65
- package/dist/modules/Quotation/index.d.ts +6 -0
- package/dist/modules/Quotation/index.js +75 -19
- package/dist/plugins/request.d.ts +1 -0
- package/dist/server/index.d.ts +8 -2
- package/dist/server/index.js +206 -140
- package/dist/server/modules/floor-plan/index.d.ts +4 -0
- package/dist/server/modules/floor-plan/index.js +240 -98
- package/dist/server/modules/menu/index.js +48 -23
- package/dist/server/modules/order/index.d.ts +17 -7
- package/dist/server/modules/order/index.js +419 -207
- package/dist/server/modules/products/index.d.ts +8 -2
- package/dist/server/modules/products/index.js +167 -75
- package/dist/server/modules/resource/index.js +21 -13
- package/dist/solution/BaseSales/index.d.ts +10 -0
- package/dist/solution/BaseSales/index.js +861 -806
- package/dist/solution/BookingTicket/index.d.ts +3 -1
- package/dist/solution/BookingTicket/index.js +187 -149
- package/lib/core/index.d.ts +7 -0
- package/lib/core/index.js +20 -2
- package/lib/modules/Quotation/index.d.ts +6 -0
- package/lib/modules/Quotation/index.js +49 -5
- package/lib/plugins/request.d.ts +1 -0
- package/lib/server/index.d.ts +8 -2
- package/lib/server/index.js +52 -17
- package/lib/server/modules/floor-plan/index.d.ts +4 -0
- package/lib/server/modules/floor-plan/index.js +54 -6
- package/lib/server/modules/menu/index.js +31 -5
- package/lib/server/modules/order/index.d.ts +17 -7
- package/lib/server/modules/order/index.js +197 -40
- package/lib/server/modules/products/index.d.ts +8 -2
- package/lib/server/modules/products/index.js +97 -24
- package/lib/server/modules/resource/index.js +7 -2
- package/lib/solution/BaseSales/index.d.ts +10 -0
- package/lib/solution/BaseSales/index.js +32 -2
- package/lib/solution/BookingTicket/index.d.ts +3 -1
- package/lib/solution/BookingTicket/index.js +12 -0
- package/package.json +1 -1
|
@@ -327,7 +327,7 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
327
327
|
key: "loadMenuFromIndexDB",
|
|
328
328
|
value: (function () {
|
|
329
329
|
var _loadMenuFromIndexDB = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
|
|
330
|
-
var _menuList$length, menuList, errorMessage;
|
|
330
|
+
var startedAt, _menuList$length, menuList, errorMessage;
|
|
331
331
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
332
332
|
while (1) switch (_context5.prev = _context5.next) {
|
|
333
333
|
case 0:
|
|
@@ -338,29 +338,32 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
338
338
|
this.logWarning('loadMenuFromIndexDB: dbManager 不可用');
|
|
339
339
|
return _context5.abrupt("return", []);
|
|
340
340
|
case 3:
|
|
341
|
-
|
|
342
|
-
_context5.
|
|
341
|
+
startedAt = performance.now();
|
|
342
|
+
_context5.prev = 4;
|
|
343
|
+
_context5.next = 7;
|
|
343
344
|
return this.dbManager.getAll(INDEXDB_STORE_NAME);
|
|
344
|
-
case
|
|
345
|
+
case 7:
|
|
345
346
|
menuList = _context5.sent;
|
|
346
347
|
this.logInfo('从 IndexDB 加载餐牌数据', {
|
|
347
|
-
menuCount: (_menuList$length = menuList === null || menuList === void 0 ? void 0 : menuList.length) !== null && _menuList$length !== void 0 ? _menuList$length : 0
|
|
348
|
+
menuCount: (_menuList$length = menuList === null || menuList === void 0 ? void 0 : menuList.length) !== null && _menuList$length !== void 0 ? _menuList$length : 0,
|
|
349
|
+
durationMs: +(performance.now() - startedAt).toFixed(2)
|
|
348
350
|
});
|
|
349
351
|
return _context5.abrupt("return", menuList || []);
|
|
350
|
-
case
|
|
351
|
-
_context5.prev =
|
|
352
|
-
_context5.t0 = _context5["catch"](
|
|
352
|
+
case 12:
|
|
353
|
+
_context5.prev = 12;
|
|
354
|
+
_context5.t0 = _context5["catch"](4);
|
|
353
355
|
errorMessage = _context5.t0 instanceof Error ? _context5.t0.message : String(_context5.t0);
|
|
354
356
|
console.error('[Menu] 从 IndexDB 读取数据失败:', _context5.t0);
|
|
355
357
|
this.logError('从 IndexDB 读取数据失败', {
|
|
358
|
+
durationMs: +(performance.now() - startedAt).toFixed(2),
|
|
356
359
|
error: errorMessage
|
|
357
360
|
});
|
|
358
361
|
return _context5.abrupt("return", []);
|
|
359
|
-
case
|
|
362
|
+
case 18:
|
|
360
363
|
case "end":
|
|
361
364
|
return _context5.stop();
|
|
362
365
|
}
|
|
363
|
-
}, _callee5, this, [[
|
|
366
|
+
}, _callee5, this, [[4, 12]]);
|
|
364
367
|
}));
|
|
365
368
|
function loadMenuFromIndexDB() {
|
|
366
369
|
return _loadMenuFromIndexDB.apply(this, arguments);
|
|
@@ -377,7 +380,7 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
377
380
|
value: (function () {
|
|
378
381
|
var _saveMenuToIndexDB = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(menuList) {
|
|
379
382
|
var _this2 = this;
|
|
380
|
-
var savePromises, errorMessage;
|
|
383
|
+
var startedAt, clearDurationMs, writeDurationMs, clearStartedAt, writeStartedAt, savePromises, errorMessage;
|
|
381
384
|
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
382
385
|
while (1) switch (_context6.prev = _context6.next) {
|
|
383
386
|
case 0:
|
|
@@ -388,40 +391,62 @@ export var MenuModule = /*#__PURE__*/function (_BaseModule) {
|
|
|
388
391
|
this.logWarning('saveMenuToIndexDB: dbManager 不可用');
|
|
389
392
|
return _context6.abrupt("return");
|
|
390
393
|
case 3:
|
|
394
|
+
startedAt = performance.now();
|
|
395
|
+
clearDurationMs = 0;
|
|
396
|
+
writeDurationMs = 0;
|
|
391
397
|
this.logInfo('开始保存餐牌数据到 IndexDB', {
|
|
392
398
|
menuCount: menuList.length
|
|
393
399
|
});
|
|
394
|
-
_context6.prev =
|
|
395
|
-
|
|
400
|
+
_context6.prev = 7;
|
|
401
|
+
// 先清空现有的餐牌数据
|
|
402
|
+
clearStartedAt = performance.now();
|
|
403
|
+
_context6.prev = 9;
|
|
404
|
+
_context6.next = 12;
|
|
396
405
|
return this.dbManager.clear(INDEXDB_STORE_NAME);
|
|
397
|
-
case
|
|
406
|
+
case 12:
|
|
407
|
+
_context6.prev = 12;
|
|
408
|
+
clearDurationMs = +(performance.now() - clearStartedAt).toFixed(2);
|
|
409
|
+
return _context6.finish(12);
|
|
410
|
+
case 15:
|
|
398
411
|
// 逐个保存餐牌(每个餐牌是独立的记录)
|
|
412
|
+
writeStartedAt = performance.now();
|
|
399
413
|
savePromises = menuList.map(function (menu) {
|
|
400
414
|
return _this2.dbManager.add(INDEXDB_STORE_NAME, menu);
|
|
401
415
|
});
|
|
402
|
-
_context6.
|
|
416
|
+
_context6.prev = 17;
|
|
417
|
+
_context6.next = 20;
|
|
403
418
|
return Promise.all(savePromises);
|
|
404
|
-
case
|
|
419
|
+
case 20:
|
|
420
|
+
_context6.prev = 20;
|
|
421
|
+
writeDurationMs = +(performance.now() - writeStartedAt).toFixed(2);
|
|
422
|
+
return _context6.finish(20);
|
|
423
|
+
case 23:
|
|
405
424
|
console.log("[Menu] \u5DF2\u5C06 ".concat(menuList.length, " \u6761\u9910\u724C\u6570\u636E\u4FDD\u5B58\u5230 IndexDB"));
|
|
406
425
|
this.logInfo('餐牌数据已保存到 IndexDB', {
|
|
407
|
-
menuCount: menuList.length
|
|
426
|
+
menuCount: menuList.length,
|
|
427
|
+
clearDurationMs: clearDurationMs,
|
|
428
|
+
writeDurationMs: writeDurationMs,
|
|
429
|
+
totalDurationMs: +(performance.now() - startedAt).toFixed(2)
|
|
408
430
|
});
|
|
409
|
-
_context6.next =
|
|
431
|
+
_context6.next = 32;
|
|
410
432
|
break;
|
|
411
|
-
case
|
|
412
|
-
_context6.prev =
|
|
413
|
-
_context6.t0 = _context6["catch"](
|
|
433
|
+
case 27:
|
|
434
|
+
_context6.prev = 27;
|
|
435
|
+
_context6.t0 = _context6["catch"](7);
|
|
414
436
|
errorMessage = _context6.t0 instanceof Error ? _context6.t0.message : String(_context6.t0);
|
|
415
437
|
console.error('[Menu] 保存数据到 IndexDB 失败:', _context6.t0);
|
|
416
438
|
this.logError('保存数据到 IndexDB 失败', {
|
|
417
439
|
menuCount: menuList.length,
|
|
440
|
+
clearDurationMs: clearDurationMs,
|
|
441
|
+
writeDurationMs: writeDurationMs,
|
|
442
|
+
totalDurationMs: +(performance.now() - startedAt).toFixed(2),
|
|
418
443
|
error: errorMessage
|
|
419
444
|
});
|
|
420
|
-
case
|
|
445
|
+
case 32:
|
|
421
446
|
case "end":
|
|
422
447
|
return _context6.stop();
|
|
423
448
|
}
|
|
424
|
-
}, _callee6, this, [[
|
|
449
|
+
}, _callee6, this, [[7, 27], [9,, 12, 15], [17,, 20, 23]]);
|
|
425
450
|
}));
|
|
426
451
|
function saveMenuToIndexDB(_x4) {
|
|
427
452
|
return _saveMenuToIndexDB.apply(this, arguments);
|
|
@@ -119,14 +119,23 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
119
119
|
payment: Record<string, any>;
|
|
120
120
|
previousPayment: Record<string, any>;
|
|
121
121
|
} | null>;
|
|
122
|
-
loadOrdersByServer(
|
|
122
|
+
loadOrdersByServer(options?: {
|
|
123
|
+
trigger?: string;
|
|
124
|
+
}): Promise<OrderData[]>;
|
|
123
125
|
/**
|
|
124
126
|
* 静默全量刷新:后台重新拉取全量 SSE 订单数据并更新本地
|
|
125
127
|
* 拿到完整数据后一次性替换 store,触发订单变更与同步完成事件
|
|
126
128
|
* @returns 刷新后的订单列表
|
|
127
129
|
*/
|
|
128
|
-
silentRefresh(
|
|
130
|
+
silentRefresh(options?: {
|
|
131
|
+
trigger?: string;
|
|
132
|
+
}): Promise<OrderData[]>;
|
|
129
133
|
private normalizeOrderForMemoryList;
|
|
134
|
+
/**
|
|
135
|
+
* 将已经完成集合规范化的订单转换为内存身份,不重复扫描 products/bookings/payments。
|
|
136
|
+
*/
|
|
137
|
+
private prepareNormalizedOrderForMemoryList;
|
|
138
|
+
private prepareNormalizedOrdersForMemoryList;
|
|
130
139
|
private normalizeOrdersForMemoryList;
|
|
131
140
|
private hasRealOrderId;
|
|
132
141
|
private shouldKeepOrderInMemory;
|
|
@@ -291,13 +300,14 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
291
300
|
private logDuplicateOrders;
|
|
292
301
|
private compactOrderListByIdentity;
|
|
293
302
|
/**
|
|
294
|
-
*
|
|
295
|
-
*
|
|
296
|
-
* - 无法解析时退化为自然日窗口
|
|
303
|
+
* 当前订单缓存可复用窗口。
|
|
304
|
+
* start_time 模式使用精确的营业日起止时间;配置缺失或异常时退化为自然日。
|
|
297
305
|
*/
|
|
298
|
-
private
|
|
306
|
+
private getCurrentOrderCacheWindow;
|
|
299
307
|
private hasPulledOrdersToday;
|
|
300
308
|
private markOrderPulledAtNow;
|
|
309
|
+
private clearOrderSnapshotMarker;
|
|
310
|
+
private getCurrentShopId;
|
|
301
311
|
private getStorageItem;
|
|
302
312
|
private setStorageItem;
|
|
303
313
|
private loadOrdersFromSQLite;
|
|
@@ -335,7 +345,7 @@ export declare class OrderModule extends BaseModule implements Module {
|
|
|
335
345
|
* 用于 SSE 全量拉取与营业日窗口裁剪。
|
|
336
346
|
*
|
|
337
347
|
* @example
|
|
338
|
-
* await this.replaceOrdersSnapshotInSQLite(orderList)
|
|
348
|
+
* const { orders, persisted } = await this.replaceOrdersSnapshotInSQLite(orderList, 'refresh')
|
|
339
349
|
*/
|
|
340
350
|
private replaceOrdersSnapshotInSQLite;
|
|
341
351
|
/**
|