@pisell/private-materials 3.4.5 → 3.4.6
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.css +1 -1
- package/build/lowcode/render/default/view.js +2 -2
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +2 -2
- package/es/businessModel/SalesModel/index.d.ts +0 -1
- package/es/components/Sales/Summary/utils.d.ts +1 -1
- package/es/components/appointmentBooking/components/Cart/utils.js +8 -13
- package/es/components/appointmentBooking/components/Content/index.js +105 -19
- package/es/components/appointmentBooking/components/Footer/index.d.ts +0 -1
- package/es/components/appointmentBooking/components/Guest/components/InformationOptionsModal/index.d.ts +0 -1
- package/es/components/appointmentBooking/components/Services/index.js +7 -2
- package/es/components/appointmentBooking/components/TimeSlicing/index.js +7 -3
- package/es/components/appointmentBooking/components/Voucher/index.js +10 -10
- package/es/components/appointmentBooking/hooks.js +28 -30
- package/es/components/booking/addons/model.d.ts +1 -10
- package/es/components/booking/components/TabProduct/index.d.ts +0 -1
- package/es/components/booking/components/formItemChildrenWrap/index.d.ts +0 -1
- package/es/components/booking/forms/model.d.ts +1 -10
- package/es/components/booking/forms/table/index.d.ts +0 -1
- package/es/components/booking/info/addServiceVariant/index.d.ts +0 -1
- package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +0 -1
- package/es/components/booking/info/dateRange/index.d.ts +0 -1
- package/es/components/booking/info/index.d.ts +0 -1
- package/es/components/booking/info/model.d.ts +1 -10
- package/es/components/booking/info/service/addService/utils.d.ts +1 -1
- package/es/components/booking/info/service/like/index.d.ts +0 -1
- package/es/components/booking/info2/service/addService/utils.d.ts +1 -1
- package/es/components/booking/model.d.ts +1 -9
- package/es/components/booking/notes/model.d.ts +1 -10
- package/es/components/booking/payments/model.d.ts +1 -10
- package/es/components/booking/utils.d.ts +2 -2
- package/es/components/eftpos/deviceList/index.d.ts +0 -1
- package/es/components/eftpos/form/index.d.ts +0 -1
- package/es/components/eftpos/group/index.d.ts +0 -1
- package/es/components/eftpos/hooks.d.ts +0 -1
- package/es/components/eftpos/icon/apiKey.d.ts +0 -1
- package/es/components/eftpos/icon/device.d.ts +0 -1
- package/es/components/eftpos/receipt/index.d.ts +0 -1
- package/es/components/eftpos/surcharge/index.d.ts +0 -1
- package/es/components/eftposPay/amount.d.ts +1 -1
- package/es/components/eftposPay/component/alert/warn.d.ts +0 -1
- package/es/components/eftposPay/component/header/titlebar.d.ts +0 -1
- package/es/components/eftposPay/component/step/index.d.ts +0 -1
- package/es/components/eftposPay/component/step/step.d.ts +0 -1
- package/es/components/eftposPay/device.d.ts +1 -1
- package/es/components/eftposPay/hooks.d.ts +2 -2
- package/es/components/eftposPay/store/index.d.ts +5 -5
- package/es/components/eftposPay/tyro/hooks.d.ts +0 -1
- package/es/components/eventBooking/components/ErrorTip/index.d.ts +0 -1
- package/es/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +0 -1
- package/es/components/eventBooking/components/Provider/InformationOptionsModal/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +0 -1
- package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +0 -1
- package/es/components/eventBooking/components/scheduleCalendar/calendarItem.d.ts +0 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +0 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/SDK.d.ts +0 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +0 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +0 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/PaymentRequestForm.d.ts +0 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/index.d.ts +0 -1
- package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +0 -1
- package/es/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +0 -1
- package/es/components/pay/toC/model.d.ts +1 -9
- package/es/components/pisellSelectCustomerModal/RightPanel/Add/PhoneField/index.d.ts +0 -1
- package/es/components/productExtension/fields/Actor/index.d.ts +0 -1
- package/es/components/productExtension/fields/Forms/index.d.ts +0 -1
- package/es/components/productSelect/components/TabProduct/index.js +103 -39
- package/es/components/productSelect/components/TabProduct/tabs/index.less +1 -0
- package/es/components/productSelect/index.d.ts +2 -0
- package/es/components/schedules/calendar/calendarItem.d.ts +0 -1
- package/es/components/schedules/components/ScheduleList/RenderScheduleItem/index.d.ts +0 -1
- package/es/components/schedules/model.d.ts +1 -9
- package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +0 -1
- package/es/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +0 -1
- package/es/components/schedules/resources/relationProduct/index.d.ts +0 -1
- package/es/components/shoppingCart/components/Cart/Product.d.ts +0 -1
- package/es/components/shoppingCart/components/Empty/index.d.ts +0 -1
- package/es/components/shoppingCart/components/Render/index.d.ts +0 -1
- package/es/components/ticketBooking/components/addServiceVariant/index.d.ts +0 -1
- package/es/components/wallet/Detail/model.d.ts +1 -13
- package/es/components/wallet/DiscountCard/model.d.ts +1 -14
- package/es/components/wallet/PointCard/model.d.ts +1 -13
- package/es/components/wallet/RechargeableCard/model.d.ts +1 -29
- package/es/components/wallet/Voucher/model.d.ts +1 -13
- package/es/components/wallet/model.d.ts +1 -9
- package/es/components/walletList/index.js +4 -4
- package/es/components/workSpaceList/components/Modal/index.d.ts +0 -1
- package/es/components/workSpaceList/components/SearchWorkspaceAndBase/index.d.ts +0 -1
- package/lib/businessModel/SalesModel/index.d.ts +0 -1
- package/lib/components/Sales/Summary/utils.d.ts +1 -1
- package/lib/components/appointmentBooking/components/Cart/utils.js +0 -10
- package/lib/components/appointmentBooking/components/Content/index.js +49 -7
- package/lib/components/appointmentBooking/components/Footer/index.d.ts +0 -1
- package/lib/components/appointmentBooking/components/Guest/components/InformationOptionsModal/index.d.ts +0 -1
- package/lib/components/appointmentBooking/components/Services/index.js +6 -1
- package/lib/components/appointmentBooking/components/TimeSlicing/index.js +7 -3
- package/lib/components/appointmentBooking/components/Voucher/index.js +0 -11
- package/lib/components/appointmentBooking/hooks.js +5 -16
- package/lib/components/booking/addons/model.d.ts +1 -10
- package/lib/components/booking/components/TabProduct/index.d.ts +0 -1
- package/lib/components/booking/components/formItemChildrenWrap/index.d.ts +0 -1
- package/lib/components/booking/forms/model.d.ts +1 -10
- package/lib/components/booking/forms/table/index.d.ts +0 -1
- package/lib/components/booking/info/addServiceVariant/index.d.ts +0 -1
- package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +0 -1
- package/lib/components/booking/info/dateRange/index.d.ts +0 -1
- package/lib/components/booking/info/index.d.ts +0 -1
- package/lib/components/booking/info/model.d.ts +1 -10
- package/lib/components/booking/info/service/addService/utils.d.ts +1 -1
- package/lib/components/booking/info/service/like/index.d.ts +0 -1
- package/lib/components/booking/info2/service/addService/utils.d.ts +1 -1
- package/lib/components/booking/model.d.ts +1 -9
- package/lib/components/booking/notes/model.d.ts +1 -10
- package/lib/components/booking/payments/model.d.ts +1 -10
- package/lib/components/booking/utils.d.ts +2 -2
- package/lib/components/eftpos/deviceList/index.d.ts +0 -1
- package/lib/components/eftpos/form/index.d.ts +0 -1
- package/lib/components/eftpos/group/index.d.ts +0 -1
- package/lib/components/eftpos/hooks.d.ts +0 -1
- package/lib/components/eftpos/icon/apiKey.d.ts +0 -1
- package/lib/components/eftpos/icon/device.d.ts +0 -1
- package/lib/components/eftpos/receipt/index.d.ts +0 -1
- package/lib/components/eftpos/surcharge/index.d.ts +0 -1
- package/lib/components/eftposPay/amount.d.ts +1 -1
- package/lib/components/eftposPay/component/alert/warn.d.ts +0 -1
- package/lib/components/eftposPay/component/header/titlebar.d.ts +0 -1
- package/lib/components/eftposPay/component/step/index.d.ts +0 -1
- package/lib/components/eftposPay/component/step/step.d.ts +0 -1
- package/lib/components/eftposPay/device.d.ts +1 -1
- package/lib/components/eftposPay/hooks.d.ts +2 -2
- package/lib/components/eftposPay/store/index.d.ts +5 -5
- package/lib/components/eftposPay/tyro/hooks.d.ts +0 -1
- package/lib/components/eventBooking/components/ErrorTip/index.d.ts +0 -1
- package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +0 -1
- package/lib/components/eventBooking/components/Provider/InformationOptionsModal/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +0 -1
- package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +0 -1
- package/lib/components/eventBooking/components/scheduleCalendar/calendarItem.d.ts +0 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +0 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/SDK.d.ts +0 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +0 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +0 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/PaymentRequestForm.d.ts +0 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/index.d.ts +0 -1
- package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +0 -1
- package/lib/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +0 -1
- package/lib/components/pay/toC/model.d.ts +1 -9
- package/lib/components/pisellSelectCustomerModal/RightPanel/Add/PhoneField/index.d.ts +0 -1
- package/lib/components/productExtension/fields/Actor/index.d.ts +0 -1
- package/lib/components/productExtension/fields/Forms/index.d.ts +0 -1
- package/lib/components/productSelect/components/TabProduct/index.js +74 -37
- package/lib/components/productSelect/components/TabProduct/tabs/index.less +1 -0
- package/lib/components/productSelect/index.d.ts +2 -0
- package/lib/components/schedules/calendar/calendarItem.d.ts +0 -1
- package/lib/components/schedules/components/ScheduleList/RenderScheduleItem/index.d.ts +0 -1
- package/lib/components/schedules/model.d.ts +1 -9
- package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +0 -1
- package/lib/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +0 -1
- package/lib/components/schedules/resources/relationProduct/index.d.ts +0 -1
- package/lib/components/shoppingCart/components/Cart/Product.d.ts +0 -1
- package/lib/components/shoppingCart/components/Empty/index.d.ts +0 -1
- package/lib/components/shoppingCart/components/Render/index.d.ts +0 -1
- package/lib/components/ticketBooking/components/addServiceVariant/index.d.ts +0 -1
- package/lib/components/wallet/Detail/model.d.ts +1 -13
- package/lib/components/wallet/DiscountCard/model.d.ts +1 -14
- package/lib/components/wallet/PointCard/model.d.ts +1 -13
- package/lib/components/wallet/RechargeableCard/model.d.ts +1 -29
- package/lib/components/wallet/Voucher/model.d.ts +1 -13
- package/lib/components/wallet/model.d.ts +1 -9
- package/lib/components/walletList/index.js +3 -3
- package/lib/components/workSpaceList/components/Modal/index.d.ts +0 -1
- package/lib/components/workSpaceList/components/SearchWorkspaceAndBase/index.d.ts +0 -1
- package/package.json +2 -2
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
export interface FormState {
|
|
3
2
|
amountSymbol: string;
|
|
4
3
|
apis: {
|
|
@@ -105,11 +104,4 @@ export declare const walkInData: {
|
|
|
105
104
|
id: number;
|
|
106
105
|
nickname: string;
|
|
107
106
|
};
|
|
108
|
-
export declare const Provider:
|
|
109
|
-
state: FormState;
|
|
110
|
-
} & {
|
|
111
|
-
dispatch: (params: {
|
|
112
|
-
type: string;
|
|
113
|
-
payload: any;
|
|
114
|
-
}) => void;
|
|
115
|
-
}>;
|
|
107
|
+
export declare const Provider: any, Context: any;
|
|
@@ -1,10 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { FormState } from "../model";
|
|
3
|
-
export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
|
|
4
|
-
state: FormState;
|
|
5
|
-
} & {
|
|
6
|
-
dispatch: (params: {
|
|
7
|
-
type: string;
|
|
8
|
-
payload: any;
|
|
9
|
-
}) => void;
|
|
10
|
-
}>;
|
|
1
|
+
export declare const Provider: any, Context: any;
|
|
@@ -1,10 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { FormState } from "../model";
|
|
3
|
-
export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
|
|
4
|
-
state: FormState;
|
|
5
|
-
} & {
|
|
6
|
-
dispatch: (params: {
|
|
7
|
-
type: string;
|
|
8
|
-
payload: any;
|
|
9
|
-
}) => void;
|
|
10
|
-
}>;
|
|
1
|
+
export declare const Provider: any, Context: any;
|
|
@@ -165,10 +165,10 @@ export declare const getProductTotalPrice: (item: any) => number;
|
|
|
165
165
|
export declare const getDuration: (duration: number | {
|
|
166
166
|
type: string;
|
|
167
167
|
value: number;
|
|
168
|
-
}) => number |
|
|
168
|
+
}) => number | {
|
|
169
169
|
type: string;
|
|
170
170
|
value: number;
|
|
171
|
-
};
|
|
171
|
+
} | "flexible";
|
|
172
172
|
export declare const isWalkIn: (customer_id?: number | string) => boolean;
|
|
173
173
|
export declare const getIsEdit: (state: any) => boolean;
|
|
174
174
|
export {};
|
|
@@ -8,7 +8,7 @@ import { PosProps } from './const';
|
|
|
8
8
|
*/
|
|
9
9
|
declare const _default: ({ className, onChange, onClose, formatAmount, isMobile, net, client }: {
|
|
10
10
|
className?: string | undefined;
|
|
11
|
-
onChange?: ((status: "success" | "page" | "
|
|
11
|
+
onChange?: ((status: "success" | "page" | "fail" | "print" | "mark_tx_processed", params?: string | {
|
|
12
12
|
[keys: string]: unknown;
|
|
13
13
|
} | undefined, other?: any) => void) | undefined;
|
|
14
14
|
onClose: () => void;
|
|
@@ -10,7 +10,7 @@ import './device.less';
|
|
|
10
10
|
declare const _default: ({ api, onChange, onClose, className, device_number, isMobile, net, client, formatAmount, }: {
|
|
11
11
|
api: PayProps['api'];
|
|
12
12
|
className?: string | undefined;
|
|
13
|
-
onChange?: ((status: "success" | "page" | "
|
|
13
|
+
onChange?: ((status: "success" | "page" | "fail" | "print" | "mark_tx_processed", params?: string | {
|
|
14
14
|
[keys: string]: unknown;
|
|
15
15
|
} | undefined, other?: any) => void) | undefined;
|
|
16
16
|
onClose: () => void;
|
|
@@ -15,11 +15,11 @@ export declare const useStoreRef: <T extends {
|
|
|
15
15
|
readonly numRef: React.MutableRefObject<string | number | undefined>;
|
|
16
16
|
readonly orderIdRef: React.MutableRefObject<string | number>;
|
|
17
17
|
readonly modeRef: React.MutableRefObject<ModeEnum>;
|
|
18
|
-
readonly statusRef: React.MutableRefObject<"success" | "
|
|
18
|
+
readonly statusRef: React.MutableRefObject<"success" | "warn" | "loading" | "fail" | "pedding" | "resove" | "reject" | "question">;
|
|
19
19
|
readonly netRef: React.MutableRefObject<boolean | undefined>;
|
|
20
20
|
readonly symbolRef: React.MutableRefObject<string>;
|
|
21
21
|
readonly amountRef: React.MutableRefObject<string | number>;
|
|
22
|
-
readonly eftposRef: React.MutableRefObject<"
|
|
22
|
+
readonly eftposRef: React.MutableRefObject<"payo" | "tyro" | "windcave" | "stripe">;
|
|
23
23
|
readonly clientRef: React.MutableRefObject<ClientEnum>;
|
|
24
24
|
readonly dataRef: React.MutableRefObject<import("./store").State>;
|
|
25
25
|
};
|
|
@@ -174,7 +174,7 @@ export declare const updateCustom: (payload: {
|
|
|
174
174
|
export declare const updateStatus: (status: 'loading' | 'warn' | 'fail' | 'success' | 'question') => {
|
|
175
175
|
type: EActionTypes;
|
|
176
176
|
payload: {
|
|
177
|
-
status: "success" | "
|
|
177
|
+
status: "success" | "warn" | "loading" | "fail" | "question";
|
|
178
178
|
};
|
|
179
179
|
};
|
|
180
180
|
/**
|
|
@@ -295,20 +295,20 @@ export declare const backUpFree: (payload: Partial<State>) => {
|
|
|
295
295
|
name?: string | undefined;
|
|
296
296
|
symbol?: string | undefined;
|
|
297
297
|
amount?: string | number | undefined;
|
|
298
|
-
mode?: "
|
|
298
|
+
mode?: "pay" | "fullPay" | "refund" | "query" | undefined;
|
|
299
299
|
order_id?: string | number | undefined;
|
|
300
|
-
eftpos?: "
|
|
300
|
+
eftpos?: "payo" | "tyro" | "windcave" | "stripe" | undefined;
|
|
301
301
|
action?: "amount" | "pay" | "deviceList" | undefined;
|
|
302
302
|
key?: number | undefined;
|
|
303
303
|
step?: number | undefined;
|
|
304
304
|
title?: string | undefined;
|
|
305
305
|
subTitle?: string | undefined;
|
|
306
|
-
type?: "
|
|
306
|
+
type?: "step" | "unset" | undefined;
|
|
307
307
|
render?: boolean | undefined;
|
|
308
308
|
net?: boolean | undefined;
|
|
309
309
|
component?: string | undefined;
|
|
310
310
|
form?: string | undefined;
|
|
311
|
-
status?: "success" | "
|
|
311
|
+
status?: "success" | "warn" | "loading" | "fail" | "pedding" | "resove" | "reject" | "question" | undefined;
|
|
312
312
|
warn?: string | undefined;
|
|
313
313
|
steps?: {
|
|
314
314
|
/** 用于重置当前步骤 */
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
export interface FormState {
|
|
3
2
|
platform: 'pc' | 'h5' | '' | undefined;
|
|
4
3
|
order: any;
|
|
@@ -29,11 +28,4 @@ export interface PayGroup {
|
|
|
29
28
|
pay_number?: string;
|
|
30
29
|
_order: any;
|
|
31
30
|
}
|
|
32
|
-
export declare const Provider:
|
|
33
|
-
state: FormState;
|
|
34
|
-
} & {
|
|
35
|
-
dispatch: (params: {
|
|
36
|
-
type: string;
|
|
37
|
-
payload: any;
|
|
38
|
-
}) => void;
|
|
39
|
-
}>;
|
|
31
|
+
export declare const Provider: any, Context: any;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["showTab", "layout", "list", "onChange", "amountSymbol", "scrollDom", "value", "loading", "emptyDescription"];
|
|
1
|
+
var _excluded = ["showTab", "layout", "list", "onChange", "amountSymbol", "scrollDom", "offsetDom", "value", "loading", "emptyDescription"];
|
|
2
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
3
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
4
4
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
@@ -16,7 +16,24 @@ import { useMemoizedFn, useDebounceFn } from 'ahooks';
|
|
|
16
16
|
import { locales } from '@pisell/utils';
|
|
17
17
|
import Tabs from "./tabs";
|
|
18
18
|
import ProductGroup, { ProductGroupSkeleton } from "../productGroup";
|
|
19
|
-
|
|
19
|
+
// 获取元素相对于指定滚动容器的偏移量
|
|
20
|
+
var getOffsetTopRelativeToScrollContainer = function getOffsetTopRelativeToScrollContainer(targetElement, scrollContainer) {
|
|
21
|
+
if (!targetElement || !scrollContainer) return 0;
|
|
22
|
+
|
|
23
|
+
// 如果目标元素就是滚动容器本身,返回0
|
|
24
|
+
if (targetElement === scrollContainer) {
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// 使用getBoundingClientRect计算相对偏移量
|
|
29
|
+
var targetRect = targetElement.getBoundingClientRect();
|
|
30
|
+
var containerRect = scrollContainer.getBoundingClientRect();
|
|
31
|
+
|
|
32
|
+
// targetRect.top - containerRect.top 得到目标元素相对于容器顶部的可视距离
|
|
33
|
+
// 考虑容器已经滚动的距离 再加上scrollContainer.scrollTop
|
|
34
|
+
// 这样得到的是目标元素在容器内容中的绝对位置
|
|
35
|
+
return targetRect.top - containerRect.top + scrollContainer.scrollTop;
|
|
36
|
+
};
|
|
20
37
|
var TabProduct = function TabProduct(props) {
|
|
21
38
|
var _props$showTab = props.showTab,
|
|
22
39
|
showTab = _props$showTab === void 0 ? true : _props$showTab,
|
|
@@ -26,6 +43,7 @@ var TabProduct = function TabProduct(props) {
|
|
|
26
43
|
_props$amountSymbol = props.amountSymbol,
|
|
27
44
|
amountSymbol = _props$amountSymbol === void 0 ? '$' : _props$amountSymbol,
|
|
28
45
|
scrollDom = props.scrollDom,
|
|
46
|
+
offsetDom = props.offsetDom,
|
|
29
47
|
currentProductId = props.value,
|
|
30
48
|
loading = props.loading,
|
|
31
49
|
emptyDescription = props.emptyDescription,
|
|
@@ -35,6 +53,8 @@ var TabProduct = function TabProduct(props) {
|
|
|
35
53
|
_useState2 = _slicedToArray(_useState, 2),
|
|
36
54
|
currentGroupId = _useState2[0],
|
|
37
55
|
setCurrentGroupId = _useState2[1];
|
|
56
|
+
var tabLocatingRef = useRef(false);
|
|
57
|
+
var ioRef = useRef(null);
|
|
38
58
|
useEffect(function () {
|
|
39
59
|
if (list !== null && list !== void 0 && list.length) {
|
|
40
60
|
setCurrentGroupId(list[0].id);
|
|
@@ -42,6 +62,11 @@ var TabProduct = function TabProduct(props) {
|
|
|
42
62
|
handleObserver();
|
|
43
63
|
});
|
|
44
64
|
}
|
|
65
|
+
|
|
66
|
+
// 清理函数
|
|
67
|
+
return function () {
|
|
68
|
+
handleUnobserver();
|
|
69
|
+
};
|
|
45
70
|
}, [list]);
|
|
46
71
|
|
|
47
72
|
// 添加防抖的scroll函数
|
|
@@ -56,7 +81,7 @@ var TabProduct = function TabProduct(props) {
|
|
|
56
81
|
var _marginTop = 270;
|
|
57
82
|
var _marginBottom = window.innerHeight - 70 - 200 - 70;
|
|
58
83
|
var _rootMargin = "".concat(_marginTop * -1, "px 0px ").concat(_marginBottom * -1, "px 0px");
|
|
59
|
-
|
|
84
|
+
ioRef.current = new IntersectionObserver(function (entries) {
|
|
60
85
|
var enteringEntries = entries.filter(function (entry) {
|
|
61
86
|
return entry.isIntersecting;
|
|
62
87
|
});
|
|
@@ -66,20 +91,24 @@ var TabProduct = function TabProduct(props) {
|
|
|
66
91
|
var topMostEntry = enteringEntries.reduce(function (top, current) {
|
|
67
92
|
return current.boundingClientRect.top < top.boundingClientRect.top ? current : top;
|
|
68
93
|
});
|
|
69
|
-
var
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
94
|
+
var targetId = topMostEntry === null || topMostEntry === void 0 || (_topMostEntry$target = topMostEntry.target) === null || _topMostEntry$target === void 0 ? void 0 : _topMostEntry$target.id;
|
|
95
|
+
if (targetId) {
|
|
96
|
+
var _targetId$split = targetId.split('-'),
|
|
97
|
+
_targetId$split2 = _slicedToArray(_targetId$split, 2),
|
|
98
|
+
name = _targetId$split2[0],
|
|
99
|
+
id = _targetId$split2[1];
|
|
100
|
+
var newGroupId = Number(id);
|
|
101
|
+
if (!tabLocatingRef.current && !isNaN(newGroupId)) {
|
|
102
|
+
setCurrentGroupId(newGroupId);
|
|
103
|
+
debouncedScroll.run(id);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
77
106
|
}
|
|
78
107
|
}, {
|
|
79
108
|
root: null,
|
|
80
109
|
rootMargin: _rootMargin
|
|
81
110
|
});
|
|
82
|
-
if (list !== null && list !== void 0 && list.length) {
|
|
111
|
+
if (list !== null && list !== void 0 && list.length && ioRef.current) {
|
|
83
112
|
var _iterator = _createForOfIteratorHelper(list),
|
|
84
113
|
_step;
|
|
85
114
|
try {
|
|
@@ -87,7 +116,7 @@ var TabProduct = function TabProduct(props) {
|
|
|
87
116
|
var item = _step.value;
|
|
88
117
|
var _item = document.querySelector("#list-".concat(item.id));
|
|
89
118
|
if (_item) {
|
|
90
|
-
|
|
119
|
+
ioRef.current.observe(_item);
|
|
91
120
|
}
|
|
92
121
|
}
|
|
93
122
|
} catch (err) {
|
|
@@ -98,7 +127,7 @@ var TabProduct = function TabProduct(props) {
|
|
|
98
127
|
}
|
|
99
128
|
});
|
|
100
129
|
var handleUnobserver = useMemoizedFn(function () {
|
|
101
|
-
if (list !== null && list !== void 0 && list.length &&
|
|
130
|
+
if (list !== null && list !== void 0 && list.length && ioRef.current) {
|
|
102
131
|
var _iterator2 = _createForOfIteratorHelper(list),
|
|
103
132
|
_step2;
|
|
104
133
|
try {
|
|
@@ -106,7 +135,7 @@ var TabProduct = function TabProduct(props) {
|
|
|
106
135
|
var item = _step2.value;
|
|
107
136
|
var _item = document.querySelector("#list-".concat(item.id));
|
|
108
137
|
if (_item) {
|
|
109
|
-
|
|
138
|
+
ioRef.current.unobserve(_item);
|
|
110
139
|
}
|
|
111
140
|
}
|
|
112
141
|
} catch (err) {
|
|
@@ -115,6 +144,11 @@ var TabProduct = function TabProduct(props) {
|
|
|
115
144
|
_iterator2.f();
|
|
116
145
|
}
|
|
117
146
|
}
|
|
147
|
+
// 断开观察器连接
|
|
148
|
+
if (ioRef.current) {
|
|
149
|
+
ioRef.current.disconnect();
|
|
150
|
+
ioRef.current = null;
|
|
151
|
+
}
|
|
118
152
|
});
|
|
119
153
|
var renderContent = function renderContent() {
|
|
120
154
|
if (loading) {
|
|
@@ -130,7 +164,7 @@ var TabProduct = function TabProduct(props) {
|
|
|
130
164
|
return list.map(function (item, i) {
|
|
131
165
|
return /*#__PURE__*/React.createElement("div", {
|
|
132
166
|
id: "list-".concat(item.id),
|
|
133
|
-
key:
|
|
167
|
+
key: "list-".concat(item.id)
|
|
134
168
|
}, /*#__PURE__*/React.createElement(ProductGroup, _extends({
|
|
135
169
|
onSelectProduct: onChange,
|
|
136
170
|
currentProductId: currentProductId,
|
|
@@ -157,7 +191,7 @@ var TabProduct = function TabProduct(props) {
|
|
|
157
191
|
shape: 'round'
|
|
158
192
|
})));
|
|
159
193
|
}, []);
|
|
160
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, showTab ? /*#__PURE__*/React.createElement("div", {
|
|
194
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, showTab && list && list.length > 1 ? /*#__PURE__*/React.createElement("div", {
|
|
161
195
|
className: "pisell-product-select-tabs-wrapper"
|
|
162
196
|
}, loading ? tabSkeleton : /*#__PURE__*/React.createElement(Tabs, {
|
|
163
197
|
ref: tabsRef,
|
|
@@ -165,31 +199,61 @@ var TabProduct = function TabProduct(props) {
|
|
|
165
199
|
rowKey: 'id',
|
|
166
200
|
tab: currentGroupId,
|
|
167
201
|
onChange: function onChange(e) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
if (dom && main) {
|
|
179
|
-
var _list$;
|
|
180
|
-
if (e === ((_list$ = list[0]) === null || _list$ === void 0 ? void 0 : _list$.id)) {
|
|
181
|
-
main.scrollTop = 0;
|
|
182
|
-
} else {
|
|
183
|
-
main.scrollTop = dom.offsetTop - top - wrapperOffsetTop;
|
|
202
|
+
try {
|
|
203
|
+
var _document, _document2, _document3;
|
|
204
|
+
// 获取产品选择器包装容器
|
|
205
|
+
var productSelectWrapper = document.querySelector('.pisell-product-select-wrapper');
|
|
206
|
+
// 获取标签页包装容器
|
|
207
|
+
var tabsWrapper = document.querySelector('.pisell-product-select-tabs-wrapper');
|
|
208
|
+
// 计算标签页高度,用于滚动时的偏移
|
|
209
|
+
var tabsHeight = 0;
|
|
210
|
+
if (tabsWrapper) {
|
|
211
|
+
tabsHeight = tabsWrapper.offsetHeight;
|
|
184
212
|
}
|
|
213
|
+
|
|
214
|
+
// 获取目标列表元素和滚动容器
|
|
215
|
+
var targetListElement = (_document = document) === null || _document === void 0 ? void 0 : _document.querySelector('#list-' + e);
|
|
216
|
+
var scrollContainer = scrollDom ? (_document2 = document) === null || _document2 === void 0 ? void 0 : _document2.querySelector(scrollDom) : null;
|
|
217
|
+
// 获取额外偏移元素(如固定头部等)
|
|
218
|
+
var offsetElement = offsetDom ? (_document3 = document) === null || _document3 === void 0 ? void 0 : _document3.querySelector(offsetDom) : null;
|
|
219
|
+
var extraOffset = offsetElement ? offsetElement.clientHeight : 0;
|
|
220
|
+
|
|
221
|
+
// 停止观察器,防止滚动时触发tab切换
|
|
222
|
+
handleUnobserver();
|
|
223
|
+
// 标记正在进行tab定位,避免滚动时的干扰
|
|
224
|
+
tabLocatingRef.current = true;
|
|
225
|
+
if (targetListElement && scrollContainer) {
|
|
226
|
+
var _list$;
|
|
227
|
+
if (e === ((_list$ = list[0]) === null || _list$ === void 0 ? void 0 : _list$.id)) {
|
|
228
|
+
// 如果是第一个tab,滚动到产品选择器包装容器的位置
|
|
229
|
+
if (productSelectWrapper) {
|
|
230
|
+
var wrapperOffsetTop = getOffsetTopRelativeToScrollContainer(productSelectWrapper, scrollContainer);
|
|
231
|
+
scrollContainer.scrollTop = wrapperOffsetTop - extraOffset;
|
|
232
|
+
}
|
|
233
|
+
} else {
|
|
234
|
+
// 其他tab,滚动到对应列表元素位置,需要减去标签页高度
|
|
235
|
+
var listOffsetTop = getOffsetTopRelativeToScrollContainer(targetListElement, scrollContainer);
|
|
236
|
+
scrollContainer.scrollTop = listOffsetTop - tabsHeight - extraOffset;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// 更新当前选中的分组ID
|
|
241
|
+
setCurrentGroupId(e);
|
|
242
|
+
// 触发防抖滚动
|
|
243
|
+
debouncedScroll.run(e);
|
|
244
|
+
// 延迟恢复观察器
|
|
245
|
+
setTimeout(function () {
|
|
246
|
+
tabLocatingRef.current = false;
|
|
247
|
+
handleObserver();
|
|
248
|
+
}, 500);
|
|
249
|
+
} catch (error) {
|
|
250
|
+
console.error('Tab onChange error:', error);
|
|
251
|
+
// 即使出错也要恢复状态
|
|
252
|
+
tabLocatingRef.current = false;
|
|
253
|
+
setCurrentGroupId(e);
|
|
185
254
|
}
|
|
186
|
-
handleUnobserver();
|
|
187
|
-
setCurrentGroupId(e);
|
|
188
|
-
setTimeout(function () {
|
|
189
|
-
handleObserver();
|
|
190
|
-
}, 1000);
|
|
191
255
|
}
|
|
192
|
-
})) : null, /*#__PURE__*/React.createElement("div", {
|
|
256
|
+
})) : /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement("br", null)), /*#__PURE__*/React.createElement("div", {
|
|
193
257
|
className: "pisell-product-select-product-list"
|
|
194
258
|
}, renderContent()));
|
|
195
259
|
};
|