@pisell/pisellos 0.0.567 → 0.0.568
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.js +6 -9
- package/dist/model/strategy/adapter/walletPass/evaluator.js +0 -2
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- package/dist/model/strategy/adapter/walletPass/utils.js +0 -3
- package/dist/model/strategy/strategy-example.js +5 -19
- package/dist/modules/Cart/index.js +0 -3
- package/dist/modules/Cart/utils/cartProduct.js +0 -1
- package/dist/modules/Date/index.js +1 -5
- package/dist/modules/Discount/index.js +1 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +14 -41
- package/dist/modules/Payment/index.js +142 -270
- package/dist/modules/Payment/walletpass.js +4 -5
- package/dist/modules/Rules/index.js +0 -7
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.js +88 -121
- package/dist/server/modules/menu/index.js +32 -41
- package/dist/server/modules/products/index.js +29 -49
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +3 -4
- package/dist/server/modules/schedule/index.js +32 -40
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BookingByStep/index.d.ts +1 -1
- package/dist/solution/BookingByStep/index.js +7 -59
- package/dist/solution/BookingByStep/utils/capacity.js +1 -11
- package/dist/solution/BookingByStep/utils/resources.js +1 -3
- package/dist/solution/BookingByStep/utils/timeslots.js +2 -43
- package/dist/solution/BookingTicket/index.d.ts +1 -1
- package/dist/solution/BookingTicket/index.js +5 -7
- package/dist/solution/BookingTicket/utils/scan/handleScan.js +25 -31
- package/dist/solution/BookingTicket/utils/scan/index.js +6 -10
- package/dist/solution/BuyTickets/index.js +9 -12
- package/dist/solution/Checkout/index.js +177 -246
- package/dist/solution/Checkout/utils/index.js +4 -16
- package/dist/solution/RegisterAndLogin/index.js +30 -76
- package/dist/solution/ScanOrder/index.js +50 -60
- package/dist/solution/ShopDiscount/index.js +2 -7
- package/dist/solution/VenueBooking/index.d.ts +5 -0
- package/dist/solution/VenueBooking/index.js +364 -327
- package/dist/utils/task.js +15 -18
- package/dist/utils/watch.js +0 -1
- package/lib/apis/picoding.js +2 -0
- package/lib/core/index.js +130 -131
- package/lib/effects/index.js +46 -57
- package/lib/index.js +92 -53
- package/lib/model/index.js +14 -21
- package/lib/model/strategy/adapter/dataVariant/adapter.js +38 -50
- package/lib/model/strategy/adapter/dataVariant/evaluator.js +162 -236
- package/lib/model/strategy/adapter/dataVariant/examples.js +229 -237
- package/lib/model/strategy/adapter/dataVariant/index.js +39 -34
- package/lib/model/strategy/adapter/dataVariant/type.js +57 -28
- package/lib/model/strategy/adapter/index.js +100 -64
- package/lib/model/strategy/adapter/itemRule/adapter.js +156 -144
- package/lib/model/strategy/adapter/itemRule/evaluator.js +36 -48
- package/lib/model/strategy/adapter/itemRule/examples.js +295 -225
- package/lib/model/strategy/adapter/itemRule/index.js +83 -57
- package/lib/model/strategy/adapter/itemRule/type.js +97 -36
- package/lib/model/strategy/adapter/promotion/adapter.js +84 -63
- package/lib/model/strategy/adapter/promotion/evaluator.js +381 -231
- package/lib/model/strategy/adapter/promotion/examples.js +139 -159
- package/lib/model/strategy/adapter/promotion/index.js +1 -49
- package/lib/model/strategy/adapter/promotion/type.js +199 -35
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -152
- package/lib/model/strategy/adapter/walletPass/example.js +217 -190
- package/lib/model/strategy/adapter/walletPass/index.js +75 -51
- package/lib/model/strategy/adapter/walletPass/locales.js +36 -58
- package/lib/model/strategy/adapter/walletPass/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/utils.js +652 -402
- package/lib/model/strategy/engine.js +270 -168
- package/lib/model/strategy/index.js +49 -34
- package/lib/model/strategy/strategy-example.js +243 -239
- package/lib/model/strategy/type.js +100 -40
- package/lib/modules/Account/index.js +39 -53
- package/lib/modules/Account/types.js +20 -33
- package/lib/modules/AccountList/index.js +116 -154
- package/lib/modules/AccountList/types.js +30 -31
- package/lib/modules/AccountList/utils.js +18 -30
- package/lib/modules/BaseModule.js +22 -45
- package/lib/modules/Cart/index.js +170 -124
- package/lib/modules/Cart/types.js +46 -51
- package/lib/modules/Cart/utils/cartAccount.js +40 -39
- package/lib/modules/Cart/utils/cartDate.js +56 -61
- package/lib/modules/Cart/utils/cartDiscount.js +28 -33
- package/lib/modules/Cart/utils/cartNote.js +27 -32
- package/lib/modules/Cart/utils/cartProduct.js +306 -241
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +72 -78
- package/lib/modules/Cart/utils/changePrice.js +26 -62
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +216 -153
- package/lib/modules/Customer/types.js +38 -35
- package/lib/modules/Date/index.js +116 -115
- package/lib/modules/Date/types.js +16 -28
- package/lib/modules/Date/utils.js +174 -123
- package/lib/modules/Discount/index.js +117 -113
- package/lib/modules/Discount/types.js +9 -31
- package/lib/modules/Guests/index.js +30 -56
- package/lib/modules/Guests/types.js +23 -33
- package/lib/modules/Holder/index.js +209 -189
- package/lib/modules/Holder/types.js +4 -16
- package/lib/modules/Holder/utils.js +20 -49
- package/lib/modules/OpenData/index.js +63 -74
- package/lib/modules/OpenData/types.js +4 -16
- package/lib/modules/OpenData/utils.js +44 -78
- package/lib/modules/Order/index.d.ts +1 -1
- package/lib/modules/Order/index.js +332 -320
- package/lib/modules/Order/types.js +24 -33
- package/lib/modules/Order/utils.js +350 -284
- package/lib/modules/Payment/cash.js +20 -33
- package/lib/modules/Payment/cashRecommendationAlgorithm.js +145 -76
- package/lib/modules/Payment/eftpos.js +16 -30
- package/lib/modules/Payment/index.js +566 -432
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +216 -107
- package/lib/modules/Payment/utils.js +50 -47
- package/lib/modules/Payment/walletpass.js +221 -203
- package/lib/modules/Product/index.js +51 -46
- package/lib/modules/Product/types.js +4 -16
- package/lib/modules/Product/utils.js +32 -33
- package/lib/modules/ProductList/index.js +111 -110
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.js +60 -82
- package/lib/modules/Quotation/types.js +4 -16
- package/lib/modules/Resource/index.js +27 -59
- package/lib/modules/Resource/types.js +22 -32
- package/lib/modules/Resource/utils.js +30 -38
- package/lib/modules/Rules/index.js +1172 -872
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +59 -68
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +176 -193
- package/lib/modules/ScanOrderLogger/index.js +59 -79
- package/lib/modules/ScanOrderLogger/providers/feishu.js +54 -78
- package/lib/modules/ScanOrderLogger/providers/grafana.js +13 -36
- package/lib/modules/ScanOrderLogger/types.js +4 -16
- package/lib/modules/Schedule/getDateIsInSchedule.js +334 -167
- package/lib/modules/Schedule/index.js +97 -107
- package/lib/modules/Schedule/type.js +4 -16
- package/lib/modules/Schedule/types.js +4 -16
- package/lib/modules/Schedule/utils.js +433 -291
- package/lib/modules/Step/index.js +40 -52
- package/lib/modules/Step/tyeps.js +4 -16
- package/lib/modules/Summary/index.js +66 -70
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +782 -429
- package/lib/modules/index.js +212 -57
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- package/lib/plugins/request.js +137 -126
- package/lib/plugins/shopStore.js +4 -16
- package/lib/plugins/user.js +4 -16
- package/lib/plugins/window.js +171 -179
- package/lib/server/index.js +882 -623
- package/lib/server/modules/index.js +85 -59
- package/lib/server/modules/menu/index.js +146 -122
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.js +195 -231
- package/lib/server/modules/order/types.js +107 -32
- package/lib/server/modules/order/utils/filterBookings.js +174 -140
- package/lib/server/modules/order/utils/filterOrders.js +89 -60
- package/lib/server/modules/products/index.js +430 -335
- package/lib/server/modules/products/types.js +41 -34
- package/lib/server/modules/quotation/index.js +76 -77
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +216 -187
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +134 -119
- package/lib/server/modules/schedule/types.js +14 -21
- package/lib/server/modules/schedule/utils.js +334 -163
- package/lib/server/types.js +4 -16
- package/lib/server/utils/index.js +25 -23
- package/lib/server/utils/product.js +196 -139
- package/lib/server/utils/schedule.js +34 -41
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1530 -1343
- package/lib/solution/BookingByStep/types.js +40 -99
- package/lib/solution/BookingByStep/utils/capacity.js +192 -160
- package/lib/solution/BookingByStep/utils/products.js +42 -52
- package/lib/solution/BookingByStep/utils/resources.js +527 -330
- package/lib/solution/BookingByStep/utils/stock.js +65 -44
- package/lib/solution/BookingByStep/utils/timeslots.js +129 -131
- package/lib/solution/BookingTicket/index.d.ts +1 -1
- package/lib/solution/BookingTicket/index.js +147 -122
- package/lib/solution/BookingTicket/types.js +38 -64
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +64 -80
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +82 -80
- package/lib/solution/BookingTicket/utils/scan/index.js +90 -94
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BuyTickets/index.js +67 -70
- package/lib/solution/BuyTickets/types.js +22 -38
- package/lib/solution/Checkout/index.js +1451 -1158
- package/lib/solution/Checkout/types.js +91 -61
- package/lib/solution/Checkout/utils/index.js +227 -158
- package/lib/solution/PlaceOrder/index.js +55 -0
- package/lib/solution/RegisterAndLogin/config.js +493 -460
- package/lib/solution/RegisterAndLogin/index.js +633 -630
- package/lib/solution/RegisterAndLogin/types.js +189 -76
- package/lib/solution/RegisterAndLogin/utils.js +183 -125
- package/lib/solution/Sales/index.js +218 -200
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +803 -840
- package/lib/solution/ScanOrder/types.js +34 -34
- package/lib/solution/ScanOrder/utils.js +372 -331
- package/lib/solution/ShopDiscount/index.js +230 -236
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +309 -172
- package/lib/solution/VenueBooking/index.d.ts +5 -0
- package/lib/solution/VenueBooking/index.js +886 -929
- package/lib/solution/VenueBooking/types.js +20 -40
- package/lib/solution/VenueBooking/utils/dateSummary.js +22 -54
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +88 -106
- package/lib/solution/VenueBooking/utils/smartPricing.js +112 -100
- package/lib/solution/VenueBooking/utils/timeSlot.js +133 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +102 -37
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -1,38 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
19
2
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
Product: true
|
|
8
|
+
};
|
|
9
|
+
exports.Product = void 0;
|
|
10
|
+
var _BaseModule = require("../BaseModule");
|
|
11
|
+
var _types = require("./types");
|
|
12
|
+
Object.keys(_types).forEach(function (key) {
|
|
13
|
+
if (key === "default" || key === "__esModule") return;
|
|
14
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
15
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
16
|
+
Object.defineProperty(exports, key, {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () {
|
|
19
|
+
return _types[key];
|
|
20
|
+
}
|
|
21
|
+
});
|
|
24
22
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
/**
|
|
24
|
+
* 商品详情模块
|
|
25
|
+
* 除了跟商品列表模块组合外,还会提供单独的商品详情页的一些方法
|
|
26
|
+
*
|
|
27
|
+
* @export
|
|
28
|
+
* @class Product
|
|
29
|
+
* @extends {BaseModule}
|
|
30
|
+
* @implements {Module}
|
|
31
|
+
*/
|
|
32
|
+
class Product extends _BaseModule.BaseModule {
|
|
33
|
+
defaultName = 'product';
|
|
34
|
+
defaultVersion = '1.0.0';
|
|
35
|
+
store;
|
|
36
|
+
otherParams = {
|
|
37
|
+
scheduler: []
|
|
38
|
+
};
|
|
29
39
|
constructor(name, version) {
|
|
30
40
|
super(name, version);
|
|
31
|
-
this.defaultName = "product";
|
|
32
|
-
this.defaultVersion = "1.0.0";
|
|
33
|
-
this.otherParams = {
|
|
34
|
-
scheduler: []
|
|
35
|
-
};
|
|
36
41
|
}
|
|
37
42
|
async initialize(core, options) {
|
|
38
43
|
this.core = core;
|
|
@@ -41,44 +46,49 @@ var Product = class extends import_BaseModule.BaseModule {
|
|
|
41
46
|
updateData(data) {
|
|
42
47
|
Object.assign(this.store, data);
|
|
43
48
|
}
|
|
49
|
+
|
|
44
50
|
/**
|
|
45
51
|
* 获取商品数据
|
|
46
52
|
*/
|
|
47
53
|
getData() {
|
|
48
54
|
return this.store;
|
|
49
55
|
}
|
|
56
|
+
|
|
50
57
|
/**
|
|
51
58
|
* 获取商品ID
|
|
52
59
|
*/
|
|
53
60
|
getId() {
|
|
54
|
-
|
|
55
|
-
return ((_a = this.store) == null ? void 0 : _a.id) ?? null;
|
|
61
|
+
return this.store?.id ?? null;
|
|
56
62
|
}
|
|
63
|
+
|
|
57
64
|
/**
|
|
58
65
|
* 获取商品标题
|
|
59
66
|
*/
|
|
60
67
|
getTitle() {
|
|
61
|
-
|
|
62
|
-
return ((_a = this.store) == null ? void 0 : _a.title) ?? null;
|
|
68
|
+
return this.store?.title ?? null;
|
|
63
69
|
}
|
|
70
|
+
|
|
64
71
|
/**
|
|
65
72
|
* 获取商品捆绑组
|
|
66
73
|
*/
|
|
67
74
|
getBundleGroups() {
|
|
68
75
|
return this.store.bundle_groups;
|
|
69
76
|
}
|
|
77
|
+
|
|
70
78
|
/**
|
|
71
79
|
* 获取商品媒体
|
|
72
80
|
*/
|
|
73
81
|
getMedia() {
|
|
74
82
|
return this.store.media;
|
|
75
83
|
}
|
|
84
|
+
|
|
76
85
|
/**
|
|
77
86
|
* 获取商品标签
|
|
78
87
|
*/
|
|
79
88
|
getTags() {
|
|
80
89
|
return this.store.tags;
|
|
81
90
|
}
|
|
91
|
+
|
|
82
92
|
/**
|
|
83
93
|
* 获取商品分类
|
|
84
94
|
*/
|
|
@@ -92,18 +102,13 @@ var Product = class extends import_BaseModule.BaseModule {
|
|
|
92
102
|
return this.otherParams;
|
|
93
103
|
}
|
|
94
104
|
getProductType() {
|
|
95
|
-
var _a;
|
|
96
105
|
if (this.store.duration) {
|
|
97
|
-
return
|
|
106
|
+
return 'duration';
|
|
98
107
|
}
|
|
99
|
-
if (
|
|
100
|
-
return
|
|
108
|
+
if (this.store['schedule.ids']?.length) {
|
|
109
|
+
return 'session';
|
|
101
110
|
}
|
|
102
|
-
return
|
|
111
|
+
return 'normal';
|
|
103
112
|
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
0 && (module.exports = {
|
|
107
|
-
Product,
|
|
108
|
-
...require("./types")
|
|
109
|
-
});
|
|
113
|
+
}
|
|
114
|
+
exports.Product = Product;
|
|
@@ -1,17 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from))
|
|
8
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
}
|
|
11
|
-
return to;
|
|
12
|
-
};
|
|
13
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
14
2
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
@@ -1,46 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__export(utils_exports, {
|
|
22
|
-
areAllNormalProducts: () => areAllNormalProducts,
|
|
23
|
-
isNormalProduct: () => isNormalProduct
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
24
5
|
});
|
|
25
|
-
|
|
6
|
+
exports.areAllNormalProducts = areAllNormalProducts;
|
|
7
|
+
exports.isNormalProduct = isNormalProduct;
|
|
8
|
+
/**
|
|
9
|
+
* 传入单个商品信息,通过商品上是否有 duration 或者 schedule.ids 来判断是否是普通商品
|
|
10
|
+
*
|
|
11
|
+
* @export
|
|
12
|
+
* @param {ProductData} product
|
|
13
|
+
* @return {*} {boolean}
|
|
14
|
+
*/
|
|
26
15
|
function isNormalProduct(product) {
|
|
27
|
-
|
|
28
|
-
if (product
|
|
16
|
+
// 如果有 duration 配置,则不是普通商品
|
|
17
|
+
if (product?.duration) {
|
|
29
18
|
return false;
|
|
30
19
|
}
|
|
31
|
-
|
|
20
|
+
|
|
21
|
+
// 如果有 schedule.ids 且长度大于0,则不是普通商品
|
|
22
|
+
if (product?.['schedule.ids']?.length) {
|
|
32
23
|
return false;
|
|
33
24
|
}
|
|
25
|
+
|
|
26
|
+
// 既没有 duration 也没有 schedule.ids,则是普通商品
|
|
34
27
|
return true;
|
|
35
28
|
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* 传入多个商品信息,确定这些商品是否都是普通商品
|
|
32
|
+
*
|
|
33
|
+
* @export
|
|
34
|
+
* @param {ProductData[]} products
|
|
35
|
+
* @return {*} {boolean}
|
|
36
|
+
*/
|
|
36
37
|
function areAllNormalProducts(products) {
|
|
38
|
+
// 如果数组为空,返回 true
|
|
37
39
|
if (!products.length) {
|
|
38
40
|
return false;
|
|
39
41
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
areAllNormalProducts,
|
|
45
|
-
isNormalProduct
|
|
46
|
-
});
|
|
42
|
+
|
|
43
|
+
// 检查所有商品是否都是普通商品
|
|
44
|
+
return products.every(product => isNormalProduct(product));
|
|
45
|
+
}
|
|
@@ -1,53 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
19
2
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
__export(ProductList_exports, {
|
|
23
|
-
ProductList: () => ProductList
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
24
5
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
ProductList: true
|
|
8
|
+
};
|
|
9
|
+
exports.ProductList = void 0;
|
|
10
|
+
var _BaseModule = require("../BaseModule");
|
|
11
|
+
var _lodashEs = require("lodash-es");
|
|
12
|
+
var _types = require("./types");
|
|
13
|
+
Object.keys(_types).forEach(function (key) {
|
|
14
|
+
if (key === "default" || key === "__esModule") return;
|
|
15
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
16
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
17
|
+
Object.defineProperty(exports, key, {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () {
|
|
20
|
+
return _types[key];
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
class ProductList extends _BaseModule.BaseModule {
|
|
25
|
+
defaultName = 'productList';
|
|
26
|
+
defaultVersion = '1.0.0';
|
|
27
|
+
store;
|
|
28
|
+
request;
|
|
29
|
+
otherParams = {};
|
|
30
30
|
constructor(name, version) {
|
|
31
31
|
super(name, version);
|
|
32
|
-
this.defaultName = "productList";
|
|
33
|
-
this.defaultVersion = "1.0.0";
|
|
34
|
-
this.otherParams = {};
|
|
35
32
|
}
|
|
36
33
|
async initialize(core, options) {
|
|
37
|
-
var _a;
|
|
38
34
|
this.core = core;
|
|
39
35
|
this.store = options.store;
|
|
40
36
|
this.otherParams = options.otherParams || {};
|
|
41
|
-
if (Array.isArray(
|
|
37
|
+
if (Array.isArray(options.initialState?.list)) {
|
|
42
38
|
this.store.list = options.initialState.list.slice().sort((a, b) => Number(b.sort) - Number(a.sort));
|
|
43
39
|
this.core.effects.emit(`${this.name}:changed`, this.store.list);
|
|
44
40
|
} else {
|
|
45
41
|
this.store.list = [];
|
|
46
42
|
this.store.selectProducts = [];
|
|
47
43
|
}
|
|
48
|
-
this.request = core.getPlugin(
|
|
44
|
+
this.request = core.getPlugin('request');
|
|
49
45
|
}
|
|
50
46
|
async storeChange(path, value) {
|
|
47
|
+
// No longer needed - products are stored as plain objects instead of Product instances
|
|
51
48
|
}
|
|
52
49
|
async loadProducts({
|
|
53
50
|
category_ids = [],
|
|
@@ -62,59 +59,72 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
62
59
|
with_schedule,
|
|
63
60
|
with_extra = []
|
|
64
61
|
}, options) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
// // 如果 schedule_ids 为空,则需要尝试从 schedule 模块里获取
|
|
63
|
+
// if (!schedule_ids?.length) {
|
|
64
|
+
// const schedule_ids_data = this.store.schedule
|
|
65
|
+
// .getScheduleListByIds(schedule_ids)
|
|
66
|
+
// .map((n) => n.id);
|
|
67
|
+
// if (schedule_ids_data.length) {
|
|
68
|
+
// schedule_ids = schedule_ids_data;
|
|
69
|
+
// } else if (schedule_date) {
|
|
70
|
+
// // 后端说如果 schedule_ids 如果为空,需要给[0]
|
|
71
|
+
// schedule_ids = [0];
|
|
72
|
+
// }
|
|
73
|
+
// }
|
|
74
|
+
let userPlugin = this.core.getPlugin('user');
|
|
75
|
+
let customer_id = undefined;
|
|
68
76
|
try {
|
|
69
|
-
customer_id = paramsCustomerId ||
|
|
77
|
+
customer_id = paramsCustomerId || userPlugin?.get()?.id;
|
|
70
78
|
} catch (error) {
|
|
71
79
|
console.error(error);
|
|
72
80
|
}
|
|
73
81
|
const channelMap = {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
82
|
+
'online_store': 'online-store',
|
|
83
|
+
'scan_to_order': 'online-store',
|
|
84
|
+
'scan_to_order_2': 'online-store',
|
|
85
|
+
'scan_to_order_3': 'online-store'
|
|
78
86
|
};
|
|
79
|
-
const saleChannel = channelMap[
|
|
87
|
+
const saleChannel = channelMap[this.otherParams?.channel] || this.otherParams?.channel;
|
|
80
88
|
try {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
open_deposit: 1
|
|
113
|
-
},
|
|
114
|
-
{ osServer: true, callback: options == null ? void 0 : options.callback, subscriberId: options == null ? void 0 : options.subscriberId, useCache: true, customToast: () => {
|
|
115
|
-
} }
|
|
116
|
-
);
|
|
89
|
+
// 如果没传schedule_date,则从
|
|
90
|
+
const productsData = await this.request.post(`/product/query`, {
|
|
91
|
+
open_quotation: 1,
|
|
92
|
+
open_bundle: 0,
|
|
93
|
+
exclude_extension_type: ['product_party', 'product_event', 'product_series_event', 'product_package_ticket', 'ticket', 'event_item'],
|
|
94
|
+
with: ['category', 'collection', 'resourceRelation', ...with_extra],
|
|
95
|
+
status: 'published',
|
|
96
|
+
num: 500,
|
|
97
|
+
skip: 1,
|
|
98
|
+
customer_id,
|
|
99
|
+
category_ids,
|
|
100
|
+
ids: product_ids,
|
|
101
|
+
collection,
|
|
102
|
+
front_end_cache_id: cacheId,
|
|
103
|
+
menu_list_ids,
|
|
104
|
+
with_count,
|
|
105
|
+
// client_schedule_ids: schedule_ids,
|
|
106
|
+
schedule_date,
|
|
107
|
+
schedule_datetime,
|
|
108
|
+
// application_code: this.otherParams?.channel === 'online_store' ? 'online-store' : this.otherParams?.channel,
|
|
109
|
+
application_code: saleChannel,
|
|
110
|
+
with_schedule,
|
|
111
|
+
is_eject: 1,
|
|
112
|
+
open_deposit: 1
|
|
113
|
+
}, {
|
|
114
|
+
osServer: true,
|
|
115
|
+
callback: options?.callback,
|
|
116
|
+
subscriberId: options?.subscriberId,
|
|
117
|
+
useCache: true,
|
|
118
|
+
customToast: () => {}
|
|
119
|
+
});
|
|
117
120
|
const sortedList = (productsData.data.list || []).slice().sort((a, b) => Number(b.sort) - Number(a.sort));
|
|
121
|
+
// if (sortedList.length) {
|
|
122
|
+
// sortedList.forEach((n: any) => {
|
|
123
|
+
// if (n.is_eject !== 1 && n['schedule.ids'] && n['schedule.ids'].length) {
|
|
124
|
+
// n.is_eject = 1
|
|
125
|
+
// }
|
|
126
|
+
// })
|
|
127
|
+
// }
|
|
118
128
|
this.addProduct(sortedList);
|
|
119
129
|
return sortedList;
|
|
120
130
|
} catch (error) {
|
|
@@ -127,72 +137,63 @@ var ProductList = class extends import_BaseModule.BaseModule {
|
|
|
127
137
|
schedule_date,
|
|
128
138
|
channel
|
|
129
139
|
}) {
|
|
130
|
-
const productsData = await this.request.post(
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
{ useCache: true }
|
|
139
|
-
);
|
|
140
|
+
const productsData = await this.request.post(`/product/query/price`, {
|
|
141
|
+
ids,
|
|
142
|
+
customer_id,
|
|
143
|
+
schedule_date,
|
|
144
|
+
channel
|
|
145
|
+
}, {
|
|
146
|
+
useCache: true
|
|
147
|
+
});
|
|
140
148
|
return productsData.data;
|
|
141
149
|
}
|
|
142
150
|
async getProducts() {
|
|
143
|
-
await this.core.effects.emit(
|
|
144
|
-
|
|
145
|
-
this.store.list
|
|
146
|
-
);
|
|
147
|
-
return (0, import_lodash_es.cloneDeep)(this.store.list);
|
|
151
|
+
await this.core.effects.emit(`${this.name}:onGetProducts`, this.store.list);
|
|
152
|
+
return (0, _lodashEs.cloneDeep)(this.store.list);
|
|
148
153
|
}
|
|
149
154
|
async getProduct(id) {
|
|
150
|
-
await this.core.effects.emit(
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
);
|
|
154
|
-
const product = this.store.list.find((product2) => product2.id === id);
|
|
155
|
-
return product ? (0, import_lodash_es.cloneDeep)(product) : void 0;
|
|
155
|
+
await this.core.effects.emit(`${this.name}:onGetProduct`, this.store.list);
|
|
156
|
+
const product = this.store.list.find(product => product.id === id);
|
|
157
|
+
return product ? (0, _lodashEs.cloneDeep)(product) : undefined;
|
|
156
158
|
}
|
|
157
159
|
async addProduct(products) {
|
|
160
|
+
// list 需要根据 id 去重
|
|
158
161
|
if (!this.store.list) {
|
|
159
162
|
this.store.list = [];
|
|
160
163
|
}
|
|
161
|
-
products.forEach(
|
|
162
|
-
const index = this.store.list.findIndex(
|
|
164
|
+
products.forEach(n => {
|
|
165
|
+
const index = this.store.list.findIndex(m => m.id === n.id);
|
|
163
166
|
if (index === -1) {
|
|
164
167
|
this.store.list.push(n);
|
|
165
168
|
} else {
|
|
166
169
|
this.store.list[index] = n;
|
|
167
170
|
}
|
|
168
171
|
});
|
|
172
|
+
// 根据 sort 值做降序排序(数字越大越靠前)
|
|
169
173
|
this.store.list.sort((a, b) => Number(b.sort) - Number(a.sort));
|
|
170
174
|
this.core.effects.emit(`${this.name}:changed`, this.store.list);
|
|
171
175
|
}
|
|
172
176
|
async selectProducts(products) {
|
|
173
177
|
this.store.selectProducts = products;
|
|
174
178
|
}
|
|
179
|
+
|
|
175
180
|
/**
|
|
176
181
|
* 根据商品编码或条码搜索商品
|
|
177
182
|
* @param code 商品编码或条码
|
|
178
183
|
* @returns 匹配的商品列表,如果没有匹配则返回空数组
|
|
179
184
|
*/
|
|
180
185
|
findProductsByCodeOrBarcode(code) {
|
|
181
|
-
if (!code || typeof code !==
|
|
186
|
+
if (!code || typeof code !== 'string') {
|
|
182
187
|
return [];
|
|
183
188
|
}
|
|
184
189
|
const trimmedCode = code.trim();
|
|
185
190
|
if (!trimmedCode) {
|
|
186
191
|
return [];
|
|
187
192
|
}
|
|
188
|
-
const matchingProducts = this.store.list.filter(
|
|
193
|
+
const matchingProducts = this.store.list.filter(product => {
|
|
189
194
|
return product.code && product.code.trim() === trimmedCode || product.barcode && product.barcode.trim() === trimmedCode;
|
|
190
195
|
});
|
|
191
|
-
return (0,
|
|
196
|
+
return (0, _lodashEs.cloneDeep)(matchingProducts);
|
|
192
197
|
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
0 && (module.exports = {
|
|
196
|
-
ProductList,
|
|
197
|
-
...require("./types")
|
|
198
|
-
});
|
|
198
|
+
}
|
|
199
|
+
exports.ProductList = ProductList;
|
|
@@ -1,33 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";
|
|
18
2
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
__export(types_exports, {
|
|
22
|
-
ProductListHooks: () => ProductListHooks
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(types_exports);
|
|
25
|
-
var ProductListHooks = /* @__PURE__ */ ((ProductListHooks2) => {
|
|
26
|
-
ProductListHooks2["onGetProducts"] = "productList:onGetProducts";
|
|
27
|
-
ProductListHooks2["onGetProduct"] = "productList:onGetProduct";
|
|
28
|
-
return ProductListHooks2;
|
|
29
|
-
})(ProductListHooks || {});
|
|
30
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
31
|
-
0 && (module.exports = {
|
|
32
|
-
ProductListHooks
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
33
5
|
});
|
|
6
|
+
exports.ProductListHooks = void 0;
|
|
7
|
+
let ProductListHooks = exports.ProductListHooks = /*#__PURE__*/function (ProductListHooks) {
|
|
8
|
+
ProductListHooks["onGetProducts"] = "productList:onGetProducts";
|
|
9
|
+
ProductListHooks["onGetProduct"] = "productList:onGetProduct";
|
|
10
|
+
return ProductListHooks;
|
|
11
|
+
}({});
|