@pisell/pisellos 2.3.73 → 2.3.75
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 +111 -71
- package/dist/model/strategy/adapter/promotion/index.js +9 -0
- package/dist/model/strategy/adapter/walletPass/example.js +3 -26
- 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 +2 -4
- package/dist/modules/OpenData/index.js +0 -2
- package/dist/modules/Order/index.d.ts +1 -1
- package/dist/modules/Order/index.js +36 -64
- package/dist/modules/Payment/index.js +97 -162
- package/dist/modules/Quotation/index.d.ts +6 -0
- package/dist/modules/Quotation/index.js +75 -19
- package/dist/modules/Rules/index.js +1 -4
- package/dist/modules/Schedule/index.js +0 -1
- package/dist/modules/Schedule/utils.js +0 -1
- package/dist/modules/Step/index.js +0 -1
- package/dist/plugins/request.d.ts +1 -0
- package/dist/plugins/request.js +1 -4
- package/dist/plugins/window.js +2 -6
- package/dist/server/index.d.ts +8 -2
- package/dist/server/index.js +303 -269
- 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 +75 -59
- package/dist/server/modules/order/index.d.ts +17 -7
- package/dist/server/modules/order/index.js +421 -211
- package/dist/server/modules/products/index.d.ts +8 -2
- package/dist/server/modules/products/index.js +191 -117
- package/dist/server/modules/quotation/index.js +29 -38
- package/dist/server/modules/resource/index.js +24 -17
- package/dist/server/modules/schedule/index.js +27 -35
- package/dist/server/utils/product.js +0 -1
- package/dist/solution/BaseSales/index.js +38 -41
- 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.js +0 -2
- package/dist/solution/BookingTicket/utils/scan/cloudSearch.js +6 -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 -252
- 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.js +45 -55
- 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.d.ts +7 -0
- package/lib/core/index.js +149 -131
- package/lib/effects/index.js +46 -57
- package/lib/index.js +82 -49
- 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 +91 -69
- package/lib/model/strategy/adapter/promotion/evaluator.js +444 -310
- package/lib/model/strategy/adapter/promotion/examples.js +222 -234
- package/lib/model/strategy/adapter/promotion/index.js +1 -0
- package/lib/model/strategy/adapter/promotion/type.js +243 -36
- package/lib/model/strategy/adapter/type.js +4 -16
- package/lib/model/strategy/adapter/walletPass/evaluator.js +180 -150
- 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 +588 -378
- 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 +23 -42
- package/lib/modules/BookingContext/index.js +158 -136
- package/lib/modules/BookingContext/types.js +46 -32
- package/lib/modules/BookingContext/utils/buildCacheItemFromOrderLine.js +138 -146
- package/lib/modules/BookingContext/utils/buildNormalProductCacheItemFromOrderLine.js +78 -83
- package/lib/modules/BookingContext/utils/cacheItemToBookingInput.js +170 -150
- package/lib/modules/BookingContext/utils/flexible.js +38 -55
- package/lib/modules/BookingContext/utils/formatResourceList.js +19 -34
- package/lib/modules/BookingContext/utils/index.js +124 -41
- package/lib/modules/BookingContext/utils/noResource.js +58 -70
- package/lib/modules/BookingContext/utils/orderLineDisplay.js +14 -41
- package/lib/modules/BookingContext/utils/productExtend.js +202 -155
- package/lib/modules/BookingContext/utils/resourceErrors.js +53 -53
- package/lib/modules/BookingContext/utils/resourceSelection.js +19 -41
- package/lib/modules/BookingContext/utils/resources.js +209 -167
- package/lib/modules/BookingContext/utils/serviceTimes.js +115 -116
- package/lib/modules/BookingContext/utils/timeSlices.js +76 -86
- 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 +321 -251
- package/lib/modules/Cart/utils/cartRelationForms.js +29 -35
- package/lib/modules/Cart/utils/cartResource.js +70 -78
- package/lib/modules/Cart/utils/changePrice.js +22 -50
- package/lib/modules/Cart/utils/index.js +106 -48
- package/lib/modules/Customer/constants.js +13 -34
- package/lib/modules/Customer/index.js +235 -172
- 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 +122 -127
- 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 +70 -76
- 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 +1713 -2118
- package/lib/modules/Order/payment-utils.js +77 -120
- package/lib/modules/Order/types.js +88 -35
- package/lib/modules/Order/utils/bundleDiscountHydration.js +41 -74
- package/lib/modules/Order/utils/discountProductLineIdentity.js +142 -100
- package/lib/modules/Order/utils/manualProductDiscount.js +124 -123
- package/lib/modules/Order/utils/orderCollectionIdentity.js +184 -244
- package/lib/modules/Order/utils.js +814 -647
- 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 +532 -399
- package/lib/modules/Payment/mx51.js +1 -0
- package/lib/modules/Payment/types.js +230 -108
- package/lib/modules/Payment/utils.js +52 -51
- package/lib/modules/Payment/walletpass.js +485 -660
- 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 +113 -123
- package/lib/modules/ProductList/types.js +9 -31
- package/lib/modules/Quotation/index.d.ts +6 -0
- package/lib/modules/Quotation/index.js +110 -103
- 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/ResourcePlanner/index.js +25 -23
- package/lib/modules/ResourcePlanner/localClock.js +54 -119
- package/lib/modules/ResourcePlanner/planner.js +589 -770
- package/lib/modules/ResourcePlanner/types.js +10 -29
- package/lib/modules/Rules/index.js +1218 -959
- package/lib/modules/Rules/types.js +17 -40
- package/lib/modules/SalesSummary/index.js +85 -90
- package/lib/modules/SalesSummary/types.js +4 -16
- package/lib/modules/SalesSummary/utils.js +355 -430
- 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 -163
- package/lib/modules/Schedule/index.js +100 -114
- 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 -71
- package/lib/modules/Summary/types.js +4 -16
- package/lib/modules/Summary/utils.js +773 -418
- package/lib/modules/SurchargeList/index.js +46 -60
- package/lib/modules/SurchargeList/types.js +4 -16
- package/lib/modules/index.js +245 -63
- package/lib/plugins/app.js +4 -16
- package/lib/plugins/index.js +36 -25
- package/lib/plugins/request.d.ts +1 -0
- 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.d.ts +8 -2
- package/lib/server/index.js +3083 -2663
- package/lib/server/modules/floor-plan/index.d.ts +4 -0
- package/lib/server/modules/floor-plan/index.js +159 -127
- package/lib/server/modules/floor-plan/types.js +15 -30
- package/lib/server/modules/index.js +106 -68
- package/lib/server/modules/menu/index.js +170 -124
- package/lib/server/modules/menu/types.js +18 -31
- package/lib/server/modules/order/index.d.ts +17 -7
- package/lib/server/modules/order/index.js +916 -977
- package/lib/server/modules/order/types.js +122 -33
- package/lib/server/modules/order/utils/filterBookings.js +219 -194
- package/lib/server/modules/order/utils/filterOrders.js +118 -92
- package/lib/server/modules/payment/index.js +59 -83
- package/lib/server/modules/payment/types.js +4 -16
- package/lib/server/modules/products/index.d.ts +8 -2
- package/lib/server/modules/products/index.js +656 -471
- package/lib/server/modules/products/types.js +44 -34
- package/lib/server/modules/quotation/index.js +137 -172
- package/lib/server/modules/quotation/types.js +21 -31
- package/lib/server/modules/resource/index.js +225 -186
- package/lib/server/modules/resource/types.js +42 -33
- package/lib/server/modules/schedule/index.js +135 -123
- 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/small-ticket.js +479 -456
- package/lib/server/utils/time.js +40 -49
- package/lib/solution/BaseSales/index.js +1186 -1410
- package/lib/solution/BaseSales/types.js +42 -38
- package/lib/solution/BaseSales/utils/cartPromotion.js +642 -498
- package/lib/solution/BaseSales/utils/parseSalesResponse.js +85 -105
- package/lib/solution/BaseSales/utils/quotationPrice.js +56 -114
- package/lib/solution/BaseSales/utils/transformBaseProductToOrderProduct.js +108 -145
- package/lib/solution/BaseSales/utils.js +158 -143
- package/lib/solution/BookingByStep/index.d.ts +1 -1
- package/lib/solution/BookingByStep/index.js +1527 -1340
- 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.js +607 -522
- package/lib/solution/BookingTicket/types.js +99 -77
- package/lib/solution/BookingTicket/utils/addProductDecision.js +226 -189
- package/lib/solution/BookingTicket/utils/addTimeAvailability.js +58 -89
- package/lib/solution/BookingTicket/utils/bookingStatus.js +107 -78
- package/lib/solution/BookingTicket/utils/cartView.js +114 -99
- package/lib/solution/BookingTicket/utils/exampleData.js +185 -0
- package/lib/solution/BookingTicket/utils/orderCustomer.js +18 -41
- package/lib/solution/BookingTicket/utils/resolveBestAddTimePlan.js +219 -86
- package/lib/solution/BookingTicket/utils/scan/applyGlobalScan.js +168 -116
- package/lib/solution/BookingTicket/utils/scan/cloudSearch.js +79 -91
- package/lib/solution/BookingTicket/utils/scan/formatGlobalScan.js +54 -41
- package/lib/solution/BookingTicket/utils/scan/handleScan.js +84 -81
- package/lib/solution/BookingTicket/utils/scan/index.js +98 -104
- package/lib/solution/BookingTicket/utils/scan/scanCache.js +90 -43
- package/lib/solution/BookingTicket/utils/scan/scanProductValues.js +52 -64
- package/lib/solution/BookingTicket/utils/sessionCatalogStale.js +56 -58
- package/lib/solution/BookingTicket/utils/weighingProductSku.js +34 -48
- 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 +228 -156
- 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 +328 -324
- package/lib/solution/Sales/types.js +27 -33
- package/lib/solution/ScanOrder/index.js +832 -864
- package/lib/solution/ScanOrder/types.js +33 -34
- package/lib/solution/ScanOrder/utils.js +409 -374
- package/lib/solution/ShopDiscount/index.js +226 -232
- package/lib/solution/ShopDiscount/types.js +15 -37
- package/lib/solution/ShopDiscount/utils.js +300 -172
- package/lib/solution/UnifiedBookingSales/index.js +1035 -1201
- package/lib/solution/UnifiedBookingSales/remoteOccupancyCache.js +99 -159
- package/lib/solution/UnifiedBookingSales/types.js +10 -32
- package/lib/solution/VenueBooking/index.js +811 -879
- package/lib/solution/VenueBooking/types.js +19 -39
- package/lib/solution/VenueBooking/utils/dateSummary.js +27 -56
- package/lib/solution/VenueBooking/utils/resource.js +31 -54
- package/lib/solution/VenueBooking/utils/slotMerge.js +94 -107
- package/lib/solution/VenueBooking/utils/timeSlot.js +132 -132
- package/lib/solution/VenueBooking/utils.js +130 -67
- package/lib/solution/index.js +124 -41
- package/lib/store/createStore.js +32 -29
- package/lib/types/index.js +4 -16
- package/lib/utils/payment-number.js +26 -46
- package/lib/utils/task.js +36 -36
- package/lib/utils/watch.js +81 -47
- package/package.json +2 -1
|
@@ -1,53 +1,46 @@
|
|
|
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(Customer_exports, {
|
|
23
|
-
CustomerModule: () => CustomerModule
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
24
5
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
var
|
|
30
|
-
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
6
|
+
var _exportNames = {
|
|
7
|
+
CustomerModule: true
|
|
8
|
+
};
|
|
9
|
+
exports.CustomerModule = void 0;
|
|
10
|
+
var _lodashEs = require("lodash-es");
|
|
11
|
+
var _BaseModule = require("../BaseModule");
|
|
12
|
+
var _plugins = require("../../plugins");
|
|
13
|
+
var _constants = require("./constants");
|
|
14
|
+
var _types = require("./types");
|
|
15
|
+
Object.keys(_types).forEach(function (key) {
|
|
16
|
+
if (key === "default" || key === "__esModule") return;
|
|
17
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
18
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
19
|
+
Object.defineProperty(exports, key, {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () {
|
|
22
|
+
return _types[key];
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
class CustomerModule extends _BaseModule.BaseModule {
|
|
27
|
+
defaultName = 'customer';
|
|
28
|
+
defaultVersion = '1.0.0';
|
|
29
|
+
store = {
|
|
30
|
+
customerList: [],
|
|
31
|
+
selectedCustomer: null,
|
|
32
|
+
total: 0,
|
|
33
|
+
currentPage: 1,
|
|
34
|
+
pageSize: _constants.DEFAULT_PAGE_SIZE,
|
|
35
|
+
loading: false,
|
|
36
|
+
error: null,
|
|
37
|
+
hasMore: true,
|
|
38
|
+
loadingMore: false,
|
|
39
|
+
searchParams: {}
|
|
40
|
+
};
|
|
41
|
+
request;
|
|
42
|
+
cacheId;
|
|
43
|
+
|
|
51
44
|
/**
|
|
52
45
|
* 判断两份选中客户的核心展示字段是否一致,用于避免重复 clone / emit。
|
|
53
46
|
*
|
|
@@ -55,65 +48,71 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
55
48
|
* this.isSameSelectedCustomer(currentCustomer, nextCustomer);
|
|
56
49
|
*/
|
|
57
50
|
isSameSelectedCustomer(current, next) {
|
|
58
|
-
const normalizedNext = !next ?
|
|
51
|
+
const normalizedNext = !next ? _constants.DEFAULT_CUSTOMER : next;
|
|
59
52
|
const normalizedCurrent = current || null;
|
|
60
|
-
if (!normalizedCurrent)
|
|
61
|
-
|
|
62
|
-
if (String(
|
|
53
|
+
if (!normalizedCurrent) return false;
|
|
54
|
+
// Walk-In 是默认客户,展示文案 / 默认区号可能来自不同入口;同为 id=1 时视为同一客户。
|
|
55
|
+
if (String(normalizedCurrent?.id ?? '') === '1' && String(normalizedNext?.id ?? '') === '1') {
|
|
63
56
|
return true;
|
|
64
57
|
}
|
|
65
|
-
const keys = [
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
58
|
+
const keys = ['id', 'name', 'phone', 'email', 'country_calling_code'];
|
|
59
|
+
return keys.every(key => String(normalizedCurrent?.[key] ?? '') === String(normalizedNext?.[key] ?? ''));
|
|
60
|
+
}
|
|
61
|
+
openCache = false;
|
|
62
|
+
fatherModule;
|
|
63
|
+
otherParams = {};
|
|
64
|
+
constructor(name, version) {
|
|
65
|
+
super(name, version);
|
|
73
66
|
}
|
|
74
67
|
async initialize(core, options) {
|
|
75
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
76
68
|
this.core = core;
|
|
77
|
-
this.store = options
|
|
78
|
-
this.request = this.core.getPlugin(
|
|
79
|
-
this.otherParams =
|
|
80
|
-
|
|
81
|
-
|
|
69
|
+
this.store = options?.store;
|
|
70
|
+
this.request = this.core.getPlugin('request');
|
|
71
|
+
this.otherParams = options?.otherParams || {};
|
|
72
|
+
|
|
73
|
+
// 初始化状态
|
|
74
|
+
if (Array.isArray(options?.initialState?.customerList)) {
|
|
75
|
+
const customerList = (0, _lodashEs.cloneDeep)(options.initialState.customerList || []);
|
|
82
76
|
this.store.customerList = customerList;
|
|
83
77
|
} else {
|
|
84
78
|
this.store.customerList = [];
|
|
85
79
|
}
|
|
86
|
-
if (
|
|
87
|
-
this.store.selectedCustomer = (0,
|
|
80
|
+
if (options?.initialState?.selectedCustomer) {
|
|
81
|
+
this.store.selectedCustomer = (0, _lodashEs.cloneDeep)(options.initialState.selectedCustomer);
|
|
88
82
|
} else {
|
|
89
83
|
this.store.selectedCustomer = null;
|
|
90
84
|
}
|
|
91
|
-
if (typeof
|
|
85
|
+
if (typeof options?.initialState?.total === 'number') {
|
|
92
86
|
this.store.total = options.initialState.total;
|
|
93
87
|
} else {
|
|
94
88
|
this.store.total = 0;
|
|
95
89
|
}
|
|
96
|
-
if (typeof
|
|
90
|
+
if (typeof options?.initialState?.currentPage === 'number') {
|
|
97
91
|
this.store.currentPage = options.initialState.currentPage;
|
|
98
92
|
} else {
|
|
99
93
|
this.store.currentPage = 1;
|
|
100
94
|
}
|
|
101
|
-
if (typeof
|
|
95
|
+
if (typeof options?.initialState?.pageSize === 'number' && options.initialState.pageSize > 1) {
|
|
102
96
|
this.store.pageSize = options.initialState.pageSize;
|
|
103
97
|
} else {
|
|
104
|
-
this.store.pageSize =
|
|
98
|
+
this.store.pageSize = _constants.DEFAULT_PAGE_SIZE;
|
|
105
99
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
this.store.
|
|
109
|
-
|
|
100
|
+
|
|
101
|
+
// 初始化滚动加载相关状态
|
|
102
|
+
this.store.hasMore = options?.initialState?.hasMore ?? true;
|
|
103
|
+
this.store.loadingMore = options?.initialState?.loadingMore ?? false;
|
|
104
|
+
this.store.searchParams = options?.initialState?.searchParams ?? {};
|
|
105
|
+
|
|
106
|
+
// 缓存配置
|
|
107
|
+
if (options?.otherParams?.cacheId) {
|
|
110
108
|
this.openCache = options.otherParams.openCache;
|
|
111
109
|
this.cacheId = options.otherParams.cacheId;
|
|
112
110
|
}
|
|
113
|
-
if (
|
|
111
|
+
if (options?.otherParams?.fatherModule) {
|
|
114
112
|
this.fatherModule = options.otherParams.fatherModule;
|
|
115
113
|
}
|
|
116
114
|
}
|
|
115
|
+
|
|
117
116
|
/**
|
|
118
117
|
* 更新父级解决方案透传的运行态参数,并刷新客户模块缓存配置。
|
|
119
118
|
*
|
|
@@ -126,54 +125,64 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
126
125
|
this.cacheId = this.otherParams.cacheId;
|
|
127
126
|
this.fatherModule = this.otherParams.fatherModule;
|
|
128
127
|
}
|
|
128
|
+
|
|
129
129
|
/**
|
|
130
130
|
* 获取客户列表数据(内部方法)
|
|
131
131
|
* @param params 查询参数
|
|
132
132
|
* @returns API响应数据
|
|
133
133
|
*/
|
|
134
134
|
async fetchCustomerListData(params = {}) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if (
|
|
138
|
-
url =
|
|
135
|
+
let url = '/customer/select-list';
|
|
136
|
+
// 如果是加盟子店铺,则使用加盟商的客户列表接口
|
|
137
|
+
if (this.otherParams?.isFranchisee) {
|
|
138
|
+
url = '/franchisee/customer/select-list';
|
|
139
139
|
}
|
|
140
|
-
const {
|
|
140
|
+
const {
|
|
141
|
+
skip = 1,
|
|
142
|
+
num = _constants.DEFAULT_PAGE_SIZE,
|
|
143
|
+
search,
|
|
144
|
+
..._otherParams
|
|
145
|
+
} = params;
|
|
141
146
|
const queryParams = {
|
|
142
147
|
skip,
|
|
143
148
|
num,
|
|
144
|
-
sort_by:
|
|
145
|
-
with: [
|
|
149
|
+
sort_by: _constants.SORT_BY,
|
|
150
|
+
with: ['latestWalletDetail.wallet', 'contactsInfo', 'formRecord'],
|
|
146
151
|
search_wallet_flag: 1,
|
|
147
152
|
search_wallet_pass_flag: 1,
|
|
148
|
-
...search && {
|
|
153
|
+
...(search && {
|
|
154
|
+
search
|
|
155
|
+
}),
|
|
149
156
|
..._otherParams
|
|
150
157
|
};
|
|
151
158
|
const res = await this.request.get(url, queryParams, {
|
|
152
159
|
cache: {
|
|
153
|
-
mode:
|
|
160
|
+
mode: _plugins.RequestModeENUM.REMOTE_LOCAL,
|
|
154
161
|
type: "memory"
|
|
155
162
|
}
|
|
156
163
|
});
|
|
157
|
-
if (
|
|
158
|
-
throw new Error(res
|
|
164
|
+
if (res?.code !== 200) {
|
|
165
|
+
throw new Error(res?.message);
|
|
159
166
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
167
|
+
|
|
168
|
+
// 如果是加盟子店铺,查询的接口返回的数据都是总店的客户数据,需要加上标识
|
|
169
|
+
let _customerList = res?.data?.list || [];
|
|
170
|
+
if (this.otherParams?.isFranchisee && _customerList?.length > 0) {
|
|
171
|
+
_customerList = _customerList?.map(item => {
|
|
163
172
|
return {
|
|
164
|
-
...item || {},
|
|
165
|
-
is_franchisor_customer: 1
|
|
166
|
-
// 标识是总店的客户
|
|
173
|
+
...(item || {}),
|
|
174
|
+
is_franchisor_customer: 1 // 标识是总店的客户
|
|
167
175
|
};
|
|
168
176
|
});
|
|
169
177
|
}
|
|
170
178
|
return {
|
|
171
179
|
customerList: _customerList,
|
|
172
|
-
total:
|
|
180
|
+
total: res?.data?.count || 0,
|
|
173
181
|
page: skip,
|
|
174
182
|
pageSize: num
|
|
175
183
|
};
|
|
176
184
|
}
|
|
185
|
+
|
|
177
186
|
/**
|
|
178
187
|
* 处理客户列表操作的错误(内部方法)
|
|
179
188
|
* @param error 错误对象
|
|
@@ -182,18 +191,21 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
182
191
|
async handleCustomerListError(error, operation) {
|
|
183
192
|
console.error(`Failed to ${operation}:`, error);
|
|
184
193
|
this.store.error = error instanceof Error ? error.message : `Failed to ${operation}`;
|
|
185
|
-
await this.core.effects.emit(
|
|
186
|
-
`${this.name}:onCustomerListError`,
|
|
187
|
-
this.store.error
|
|
188
|
-
);
|
|
194
|
+
await this.core.effects.emit(`${this.name}:onCustomerListError`, this.store.error);
|
|
189
195
|
}
|
|
196
|
+
|
|
190
197
|
/**
|
|
191
198
|
* 查询客户列表但不写入 customerList / pagination 状态。
|
|
192
199
|
*
|
|
193
200
|
* 用于按 ID 补齐客户等内部查询,避免把临时的 num/searchParams 污染到滚动列表。
|
|
194
201
|
*/
|
|
195
202
|
async queryCustomerList(params = {}) {
|
|
196
|
-
const {
|
|
203
|
+
const {
|
|
204
|
+
customerList,
|
|
205
|
+
total,
|
|
206
|
+
page,
|
|
207
|
+
pageSize
|
|
208
|
+
} = await this.fetchCustomerListData(params);
|
|
197
209
|
return {
|
|
198
210
|
list: customerList,
|
|
199
211
|
total,
|
|
@@ -201,17 +213,18 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
201
213
|
pageSize
|
|
202
214
|
};
|
|
203
215
|
}
|
|
216
|
+
|
|
204
217
|
/**
|
|
205
218
|
* 查询单个客户详情,不写入 customerList / pagination 状态。
|
|
206
219
|
*/
|
|
207
220
|
async queryCustomerDetail(id) {
|
|
208
|
-
var _a;
|
|
209
221
|
const result = await this.request.get(`/customer/info/${id}`, {
|
|
210
222
|
with_trashed: 1
|
|
211
223
|
});
|
|
212
|
-
const customer =
|
|
213
|
-
return customer && typeof customer ===
|
|
224
|
+
const customer = result?.data?.customer || result?.data || result?.customer || null;
|
|
225
|
+
return customer && typeof customer === 'object' ? customer : null;
|
|
214
226
|
}
|
|
227
|
+
|
|
215
228
|
/**
|
|
216
229
|
* 获取客户列表
|
|
217
230
|
* @param params 查询参数
|
|
@@ -221,14 +234,33 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
221
234
|
try {
|
|
222
235
|
this.store.loading = true;
|
|
223
236
|
this.store.error = null;
|
|
224
|
-
const {
|
|
225
|
-
|
|
226
|
-
|
|
237
|
+
const {
|
|
238
|
+
customerList,
|
|
239
|
+
total,
|
|
240
|
+
page,
|
|
241
|
+
pageSize
|
|
242
|
+
} = await this.fetchCustomerListData(params);
|
|
243
|
+
|
|
244
|
+
// 保存搜索条件(排除skip和num)
|
|
245
|
+
const {
|
|
246
|
+
skip,
|
|
247
|
+
num,
|
|
248
|
+
...searchParams
|
|
249
|
+
} = params;
|
|
250
|
+
this.store.searchParams = (0, _lodashEs.cloneDeep)(searchParams);
|
|
251
|
+
|
|
252
|
+
// 更新分页状态
|
|
227
253
|
this.store.currentPage = page;
|
|
228
254
|
this.store.pageSize = pageSize;
|
|
229
255
|
this.store.total = total;
|
|
256
|
+
|
|
257
|
+
// 计算是否还有更多数据
|
|
230
258
|
this.store.hasMore = page * pageSize < total;
|
|
231
|
-
|
|
259
|
+
|
|
260
|
+
// 设置客户列表(替换模式)
|
|
261
|
+
this.store.customerList = (0, _lodashEs.cloneDeep)(customerList);
|
|
262
|
+
|
|
263
|
+
// 触发分页变化事件
|
|
232
264
|
this.triggerPaginationChange({
|
|
233
265
|
page,
|
|
234
266
|
pageSize,
|
|
@@ -243,29 +275,28 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
243
275
|
};
|
|
244
276
|
return response;
|
|
245
277
|
} catch (error) {
|
|
246
|
-
await this.handleCustomerListError(error,
|
|
278
|
+
await this.handleCustomerListError(error, 'fetch customer list');
|
|
247
279
|
throw error;
|
|
248
280
|
} finally {
|
|
249
281
|
this.store.loading = false;
|
|
250
282
|
this.storeChange();
|
|
251
|
-
await this.core.effects.emit(
|
|
252
|
-
`${this.name}:onCustomerListUpdate`,
|
|
253
|
-
this.store
|
|
254
|
-
);
|
|
283
|
+
await this.core.effects.emit(`${this.name}:onCustomerListUpdate`, this.store);
|
|
255
284
|
}
|
|
256
285
|
}
|
|
286
|
+
|
|
257
287
|
/**
|
|
258
288
|
* 设置客户列表
|
|
259
289
|
* @param customers 客户列表
|
|
260
290
|
* @param total 总数
|
|
261
291
|
*/
|
|
262
292
|
setCustomerList(customers, total) {
|
|
263
|
-
this.store.customerList = (0,
|
|
264
|
-
if (typeof total ===
|
|
293
|
+
this.store.customerList = (0, _lodashEs.cloneDeep)(customers);
|
|
294
|
+
if (typeof total === 'number') {
|
|
265
295
|
this.store.total = total;
|
|
266
296
|
}
|
|
267
297
|
this.storeChange();
|
|
268
298
|
}
|
|
299
|
+
|
|
269
300
|
/**
|
|
270
301
|
* 设置当前选择的客户
|
|
271
302
|
* @param customer 选择的客户
|
|
@@ -274,13 +305,11 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
274
305
|
if (this.isSameSelectedCustomer(this.store.selectedCustomer, customer)) {
|
|
275
306
|
return;
|
|
276
307
|
}
|
|
277
|
-
this.store.selectedCustomer = !customer ?
|
|
278
|
-
this.core.effects.emit(
|
|
279
|
-
`${this.name}:onCustomerSelected`,
|
|
280
|
-
this.store.selectedCustomer
|
|
281
|
-
);
|
|
308
|
+
this.store.selectedCustomer = !customer ? _constants.DEFAULT_CUSTOMER : (0, _lodashEs.cloneDeep)(customer);
|
|
309
|
+
this.core.effects.emit(`${this.name}:onCustomerSelected`, this.store.selectedCustomer);
|
|
282
310
|
this.storeChange();
|
|
283
311
|
}
|
|
312
|
+
|
|
284
313
|
/**
|
|
285
314
|
* 获取当前选择的客户
|
|
286
315
|
* @returns 当前选择的客户
|
|
@@ -288,6 +317,7 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
288
317
|
getSelectedCustomer() {
|
|
289
318
|
return this.store.selectedCustomer;
|
|
290
319
|
}
|
|
320
|
+
|
|
291
321
|
/**
|
|
292
322
|
* 获取客户列表
|
|
293
323
|
* @returns 客户列表
|
|
@@ -295,14 +325,16 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
295
325
|
getCustomers() {
|
|
296
326
|
return [...this.store.customerList];
|
|
297
327
|
}
|
|
328
|
+
|
|
298
329
|
/**
|
|
299
330
|
* 根据ID查找客户
|
|
300
331
|
* @param id 客户ID
|
|
301
332
|
* @returns 客户信息
|
|
302
333
|
*/
|
|
303
334
|
getCustomerById(id) {
|
|
304
|
-
return this.store.customerList.find(
|
|
335
|
+
return this.store.customerList.find(customer => customer.id === id) || null;
|
|
305
336
|
}
|
|
337
|
+
|
|
306
338
|
/**
|
|
307
339
|
* 清空客户列表
|
|
308
340
|
*/
|
|
@@ -311,37 +343,43 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
311
343
|
this.store.selectedCustomer = null;
|
|
312
344
|
this.store.total = 0;
|
|
313
345
|
this.store.currentPage = 1;
|
|
314
|
-
this.store.pageSize =
|
|
346
|
+
this.store.pageSize = _constants.DEFAULT_PAGE_SIZE;
|
|
315
347
|
this.store.hasMore = true;
|
|
316
348
|
this.store.loadingMore = false;
|
|
317
349
|
this.store.searchParams = {};
|
|
318
|
-
this.core.effects.emit(
|
|
319
|
-
`${this.name}:onCustomerListUpdate`,
|
|
320
|
-
this.store
|
|
321
|
-
);
|
|
350
|
+
this.core.effects.emit(`${this.name}:onCustomerListUpdate`, this.store);
|
|
322
351
|
this.storeChange();
|
|
323
352
|
}
|
|
353
|
+
|
|
324
354
|
/**
|
|
325
355
|
* 添加客户到列表第一位
|
|
326
356
|
* @param customer 要添加的客户信息
|
|
327
357
|
*/
|
|
328
358
|
addCustomerToFirst(customer) {
|
|
329
|
-
|
|
359
|
+
// 深拷贝客户对象以避免引用问题
|
|
360
|
+
const newCustomer = (0, _lodashEs.cloneDeep)(customer);
|
|
361
|
+
|
|
362
|
+
// 将客户添加到列表第一位
|
|
330
363
|
this.store.customerList = [newCustomer, ...this.store.customerList];
|
|
364
|
+
|
|
365
|
+
// 更新总数
|
|
331
366
|
this.store.total += 1;
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
367
|
+
|
|
368
|
+
// 触发客户列表更新事件
|
|
369
|
+
this.core.effects.emit(`${this.name}:onCustomerListUpdate`, this.store);
|
|
370
|
+
|
|
371
|
+
// 保存状态变化
|
|
336
372
|
this.storeChange();
|
|
337
373
|
}
|
|
374
|
+
|
|
338
375
|
/**
|
|
339
376
|
* 获取当前状态
|
|
340
377
|
* @returns 当前状态
|
|
341
378
|
*/
|
|
342
379
|
getState() {
|
|
343
|
-
return (0,
|
|
380
|
+
return (0, _lodashEs.cloneDeep)(this.store);
|
|
344
381
|
}
|
|
382
|
+
|
|
345
383
|
/**
|
|
346
384
|
* 获取分页信息
|
|
347
385
|
* @returns 分页信息
|
|
@@ -354,16 +392,15 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
354
392
|
totalPages: Math.ceil(this.store.total / this.store.pageSize)
|
|
355
393
|
};
|
|
356
394
|
}
|
|
395
|
+
|
|
357
396
|
/**
|
|
358
397
|
* 触发分页变化事件
|
|
359
398
|
* @param pagination 分页信息
|
|
360
399
|
*/
|
|
361
400
|
triggerPaginationChange(pagination) {
|
|
362
|
-
this.core.effects.emit(
|
|
363
|
-
`${this.name}:onPaginationChange`,
|
|
364
|
-
pagination
|
|
365
|
-
);
|
|
401
|
+
this.core.effects.emit(`${this.name}:onPaginationChange`, pagination);
|
|
366
402
|
}
|
|
403
|
+
|
|
367
404
|
/**
|
|
368
405
|
* 设置分页信息
|
|
369
406
|
* @param page 页码
|
|
@@ -373,6 +410,8 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
373
410
|
this.store.currentPage = page;
|
|
374
411
|
this.store.pageSize = pageSize;
|
|
375
412
|
this.storeChange();
|
|
413
|
+
|
|
414
|
+
// 触发分页变化事件
|
|
376
415
|
this.triggerPaginationChange({
|
|
377
416
|
page,
|
|
378
417
|
pageSize,
|
|
@@ -380,6 +419,7 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
380
419
|
totalPages: Math.ceil(this.store.total / pageSize)
|
|
381
420
|
});
|
|
382
421
|
}
|
|
422
|
+
|
|
383
423
|
/**
|
|
384
424
|
* 便捷方法:切换分页并自动获取数据
|
|
385
425
|
* @param page 页码
|
|
@@ -388,21 +428,28 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
388
428
|
*/
|
|
389
429
|
async changeCustomerPage(page, pageSize) {
|
|
390
430
|
const targetPageSize = pageSize || this.store.pageSize;
|
|
431
|
+
|
|
432
|
+
// 先更新分页状态
|
|
391
433
|
this.setPaginationInfo(page, targetPageSize);
|
|
434
|
+
|
|
435
|
+
// skip直接使用page,num使用pageSize
|
|
392
436
|
const skip = page;
|
|
393
437
|
const num = targetPageSize;
|
|
438
|
+
|
|
439
|
+
// 自动调用获取客户列表,使用存储的搜索条件
|
|
394
440
|
return await this.getCustomerList({
|
|
395
441
|
skip,
|
|
396
442
|
num,
|
|
397
|
-
...this.store.searchParams
|
|
398
|
-
// 使用存储的搜索条件
|
|
443
|
+
...this.store.searchParams // 使用存储的搜索条件
|
|
399
444
|
});
|
|
400
445
|
}
|
|
446
|
+
|
|
401
447
|
/**
|
|
402
448
|
* 滚动加载更多客户数据 - 数据会追加到现有列表中
|
|
403
449
|
* @returns 客户列表响应
|
|
404
450
|
*/
|
|
405
451
|
async loadMoreCustomers() {
|
|
452
|
+
// 如果没有更多数据或正在加载,直接返回
|
|
406
453
|
if (!this.store.hasMore || this.store.loadingMore) {
|
|
407
454
|
return {
|
|
408
455
|
list: [],
|
|
@@ -411,6 +458,8 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
411
458
|
pageSize: this.store.pageSize
|
|
412
459
|
};
|
|
413
460
|
}
|
|
461
|
+
|
|
462
|
+
// 计算下一页
|
|
414
463
|
const nextPage = this.store.currentPage + 1;
|
|
415
464
|
try {
|
|
416
465
|
this.store.loadingMore = true;
|
|
@@ -418,24 +467,35 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
418
467
|
const loadMoreParams = {
|
|
419
468
|
skip: nextPage,
|
|
420
469
|
num: this.store.pageSize,
|
|
421
|
-
...this.store.searchParams
|
|
422
|
-
// 使用存储的搜索条件
|
|
470
|
+
...this.store.searchParams // 使用存储的搜索条件
|
|
423
471
|
};
|
|
424
|
-
|
|
425
|
-
|
|
472
|
+
|
|
473
|
+
// 使用公共方法获取数据,传入存储的搜索条件
|
|
474
|
+
const {
|
|
475
|
+
customerList: newCustomers,
|
|
476
|
+
total,
|
|
477
|
+
page,
|
|
478
|
+
pageSize
|
|
479
|
+
} = await this.fetchCustomerListData(loadMoreParams);
|
|
480
|
+
|
|
481
|
+
// 将新数据追加到现有列表(追加模式)
|
|
482
|
+
const updatedCustomerList = [...this.store.customerList, ...(0, _lodashEs.cloneDeep)(newCustomers)];
|
|
483
|
+
|
|
484
|
+
// 更新状态
|
|
426
485
|
this.store.customerList = updatedCustomerList;
|
|
427
486
|
this.store.currentPage = page;
|
|
428
487
|
this.store.total = total;
|
|
429
488
|
this.store.hasMore = page * pageSize < total;
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
489
|
+
|
|
490
|
+
// 触发滚动加载特定事件
|
|
491
|
+
await this.core.effects.emit(`${this.name}:onScrollLoadMore`, {
|
|
492
|
+
newCustomers,
|
|
493
|
+
allCustomers: this.store.customerList,
|
|
494
|
+
currentPage: page,
|
|
495
|
+
hasMore: this.store.hasMore
|
|
496
|
+
});
|
|
497
|
+
|
|
498
|
+
// 触发分页变化事件
|
|
439
499
|
this.triggerPaginationChange({
|
|
440
500
|
page,
|
|
441
501
|
pageSize,
|
|
@@ -451,43 +511,46 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
451
511
|
};
|
|
452
512
|
return response;
|
|
453
513
|
} catch (error) {
|
|
454
|
-
await this.handleCustomerListError(error,
|
|
514
|
+
await this.handleCustomerListError(error, 'load more customers');
|
|
455
515
|
throw error;
|
|
456
516
|
} finally {
|
|
457
517
|
this.store.loadingMore = false;
|
|
458
518
|
this.storeChange();
|
|
459
|
-
await this.core.effects.emit(
|
|
460
|
-
`${this.name}:onCustomerListUpdate`,
|
|
461
|
-
this.store
|
|
462
|
-
);
|
|
519
|
+
await this.core.effects.emit(`${this.name}:onCustomerListUpdate`, this.store);
|
|
463
520
|
}
|
|
464
521
|
}
|
|
522
|
+
|
|
465
523
|
/**
|
|
466
524
|
* 重置并重新开始滚动加载
|
|
467
525
|
* @param params 查询参数
|
|
468
526
|
* @returns 客户列表响应
|
|
469
527
|
*/
|
|
470
528
|
async resetAndLoadCustomers(params = {}) {
|
|
529
|
+
// 重置状态
|
|
471
530
|
this.store.customerList = [];
|
|
472
531
|
this.store.currentPage = 1;
|
|
473
532
|
this.store.hasMore = true;
|
|
474
533
|
this.store.loadingMore = false;
|
|
534
|
+
|
|
535
|
+
// 使用第一页参数
|
|
475
536
|
const resetParams = {
|
|
476
537
|
...params,
|
|
477
538
|
skip: 1,
|
|
478
539
|
num: params.num || this.store.pageSize
|
|
479
540
|
};
|
|
541
|
+
|
|
542
|
+
// 调用普通的获取列表方法
|
|
480
543
|
const response = await this.getCustomerList(resetParams);
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
);
|
|
544
|
+
|
|
545
|
+
// 触发滚动加载完成事件
|
|
546
|
+
await this.core.effects.emit(`${this.name}:onScrollLoadComplete`, {
|
|
547
|
+
customers: this.store.customerList,
|
|
548
|
+
total: this.store.total,
|
|
549
|
+
hasMore: this.store.hasMore
|
|
550
|
+
});
|
|
489
551
|
return response;
|
|
490
552
|
}
|
|
553
|
+
|
|
491
554
|
/**
|
|
492
555
|
* 检查是否还有更多数据可以加载
|
|
493
556
|
* @returns 是否还有更多数据
|
|
@@ -495,30 +558,30 @@ var CustomerModule = class extends import_BaseModule.BaseModule {
|
|
|
495
558
|
hasMoreCustomers() {
|
|
496
559
|
return this.store.hasMore && !this.store.loadingMore;
|
|
497
560
|
}
|
|
561
|
+
|
|
498
562
|
/**
|
|
499
563
|
* 获取当前的搜索条件
|
|
500
564
|
* @returns 当前搜索条件
|
|
501
565
|
*/
|
|
502
566
|
getCurrentSearchParams() {
|
|
503
|
-
return (0,
|
|
567
|
+
return (0, _lodashEs.cloneDeep)(this.store.searchParams);
|
|
504
568
|
}
|
|
569
|
+
|
|
505
570
|
/**
|
|
506
571
|
* 缓存状态变化
|
|
507
572
|
*/
|
|
508
573
|
storeChange() {
|
|
509
574
|
if (this.openCache) {
|
|
510
|
-
const store = (0,
|
|
575
|
+
const store = (0, _lodashEs.cloneDeep)(this.store);
|
|
511
576
|
this.checkSaveCache({
|
|
512
577
|
cacheId: this.cacheId,
|
|
513
578
|
fatherModule: this.fatherModule,
|
|
514
579
|
store,
|
|
515
|
-
cacheKey: [
|
|
580
|
+
cacheKey: ['customerList', 'selectedCustomer', 'total', 'currentPage', 'pageSize', 'hasMore', 'loadingMore', 'searchParams']
|
|
516
581
|
});
|
|
517
582
|
}
|
|
518
583
|
}
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
...require("./types")
|
|
524
|
-
});
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
// 导出类型和模块
|
|
587
|
+
exports.CustomerModule = CustomerModule;
|