@pisell/private-materials 3.4.79 → 3.4.80

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.
Files changed (145) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +7 -7
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +8 -8
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +9 -9
  11. package/es/components/booking/addons/model.d.ts +10 -1
  12. package/es/components/booking/forms/model.d.ts +10 -1
  13. package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  14. package/es/components/booking/info/hooks/useInfoHolder.d.ts +0 -1
  15. package/es/components/booking/info/model.d.ts +10 -1
  16. package/es/components/booking/model.d.ts +9 -1
  17. package/es/components/booking/notes/model.d.ts +10 -1
  18. package/es/components/booking/payments/model.d.ts +10 -1
  19. package/es/components/booking/utils.d.ts +2 -2
  20. package/es/components/ecocup/components/AddCustomerModal/index.js +3 -3
  21. package/es/components/ecocup/components/CupInfoCard/index.d.ts +3 -1
  22. package/es/components/ecocup/components/CupInfoCard/index.js +4 -2
  23. package/es/components/ecocup/components/CupStatusModal/hooks.d.ts +32 -1
  24. package/es/components/ecocup/components/CupStatusModal/hooks.js +109 -1
  25. package/es/components/ecocup/components/CupStatusModal/index.js +164 -30
  26. package/es/components/ecocup/components/CupStatusModal/index.less +48 -10
  27. package/es/components/ecocup/components/CustomerAndCupModal/index.js +1 -1
  28. package/es/components/ecocup/components/CustomerCard/index.d.ts +3 -1
  29. package/es/components/ecocup/components/CustomerCard/index.js +9 -6
  30. package/es/components/ecocup/components/PageHeader/index.d.ts +2 -0
  31. package/es/components/ecocup/components/PageHeader/index.js +15 -5
  32. package/es/components/ecocup/components/PageHeader/index.less +16 -4
  33. package/es/components/ecocup/components/SearchBar/index.d.ts +1 -0
  34. package/es/components/ecocup/components/SearchBar/index.js +33 -3
  35. package/es/components/ecocup/components/SettingModal/const.d.ts +6 -0
  36. package/es/components/ecocup/components/SettingModal/const.js +17 -0
  37. package/es/components/ecocup/components/SettingModal/index.d.ts +9 -0
  38. package/es/components/ecocup/components/SettingModal/index.js +253 -0
  39. package/es/components/ecocup/components/SettingModal/index.less +9 -0
  40. package/es/components/ecocup/cupList/const.d.ts +8 -1
  41. package/es/components/ecocup/cupList/const.js +14 -1
  42. package/es/components/ecocup/cupList/hooks/index.d.ts +2 -2
  43. package/es/components/ecocup/cupList/hooks/index.js +2 -2
  44. package/es/components/ecocup/cupList/hooks/useColumns.d.ts +2 -1
  45. package/es/components/ecocup/cupList/hooks/useColumns.js +4 -6
  46. package/es/components/ecocup/cupList/hooks/useCupApi.d.ts +12 -3
  47. package/es/components/ecocup/cupList/hooks/useCupApi.js +148 -8
  48. package/es/components/ecocup/cupList/hooks/useSummary.js +9 -7
  49. package/es/components/ecocup/cupList/index.js +60 -12
  50. package/es/components/ecocup/cupList/index.less +62 -16
  51. package/es/components/ecocup/cupProject/const.js +8 -2
  52. package/es/components/ecocup/cupProject/index.js +10 -1
  53. package/es/components/ecocup/hooks.d.ts +8 -0
  54. package/es/components/ecocup/hooks.js +18 -1
  55. package/es/components/ecocup/locales.d.ts +93 -3
  56. package/es/components/ecocup/locales.js +124 -25
  57. package/es/components/ecocup/utils/download.d.ts +7 -0
  58. package/es/components/ecocup/utils/download.js +34 -0
  59. package/es/components/ecocup/utils/index.d.ts +2 -0
  60. package/es/components/ecocup/utils/index.js +2 -0
  61. package/es/components/eftpos/hooks.d.ts +1 -0
  62. package/es/components/eftposPay/amount.d.ts +1 -1
  63. package/es/components/eftposPay/device.d.ts +1 -1
  64. package/es/components/eftposPay/hooks.d.ts +2 -2
  65. package/es/components/eftposPay/store/index.d.ts +5 -5
  66. package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
  67. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  68. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +0 -1
  69. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  70. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  71. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  72. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  73. package/es/components/pay/toC/model.d.ts +9 -1
  74. package/es/components/schedules/model.d.ts +9 -1
  75. package/es/hooks/usePaymentLogger.d.ts +1 -0
  76. package/es/plus/walletEditor/components/ImageUpload/index.d.ts +1 -1
  77. package/lib/components/booking/addons/model.d.ts +10 -1
  78. package/lib/components/booking/forms/model.d.ts +10 -1
  79. package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  80. package/lib/components/booking/info/hooks/useInfoHolder.d.ts +0 -1
  81. package/lib/components/booking/info/model.d.ts +10 -1
  82. package/lib/components/booking/model.d.ts +9 -1
  83. package/lib/components/booking/notes/model.d.ts +10 -1
  84. package/lib/components/booking/payments/model.d.ts +10 -1
  85. package/lib/components/booking/utils.d.ts +2 -2
  86. package/lib/components/ecocup/components/AddCustomerModal/index.js +2 -2
  87. package/lib/components/ecocup/components/CupInfoCard/index.d.ts +3 -1
  88. package/lib/components/ecocup/components/CupInfoCard/index.js +2 -2
  89. package/lib/components/ecocup/components/CupStatusModal/hooks.d.ts +32 -1
  90. package/lib/components/ecocup/components/CupStatusModal/hooks.js +62 -2
  91. package/lib/components/ecocup/components/CupStatusModal/index.js +103 -22
  92. package/lib/components/ecocup/components/CupStatusModal/index.less +48 -10
  93. package/lib/components/ecocup/components/CustomerAndCupModal/index.js +1 -1
  94. package/lib/components/ecocup/components/CustomerCard/index.d.ts +3 -1
  95. package/lib/components/ecocup/components/CustomerCard/index.js +13 -3
  96. package/lib/components/ecocup/components/PageHeader/index.d.ts +2 -0
  97. package/lib/components/ecocup/components/PageHeader/index.js +10 -3
  98. package/lib/components/ecocup/components/PageHeader/index.less +16 -4
  99. package/lib/components/ecocup/components/SearchBar/index.d.ts +1 -0
  100. package/lib/components/ecocup/components/SearchBar/index.js +15 -2
  101. package/lib/components/ecocup/components/SettingModal/const.d.ts +6 -0
  102. package/lib/components/ecocup/components/SettingModal/const.js +48 -0
  103. package/lib/components/ecocup/components/SettingModal/index.d.ts +9 -0
  104. package/lib/components/ecocup/components/SettingModal/index.js +199 -0
  105. package/lib/components/ecocup/components/SettingModal/index.less +9 -0
  106. package/lib/components/ecocup/cupList/const.d.ts +8 -1
  107. package/lib/components/ecocup/cupList/const.js +18 -0
  108. package/lib/components/ecocup/cupList/hooks/index.d.ts +2 -2
  109. package/lib/components/ecocup/cupList/hooks/index.js +4 -0
  110. package/lib/components/ecocup/cupList/hooks/useColumns.d.ts +2 -1
  111. package/lib/components/ecocup/cupList/hooks/useColumns.js +2 -4
  112. package/lib/components/ecocup/cupList/hooks/useCupApi.d.ts +12 -3
  113. package/lib/components/ecocup/cupList/hooks/useCupApi.js +123 -8
  114. package/lib/components/ecocup/cupList/hooks/useSummary.js +22 -14
  115. package/lib/components/ecocup/cupList/index.js +70 -16
  116. package/lib/components/ecocup/cupList/index.less +62 -16
  117. package/lib/components/ecocup/cupProject/const.js +8 -1
  118. package/lib/components/ecocup/cupProject/index.js +10 -1
  119. package/lib/components/ecocup/hooks.d.ts +8 -0
  120. package/lib/components/ecocup/hooks.js +15 -1
  121. package/lib/components/ecocup/locales.d.ts +93 -3
  122. package/lib/components/ecocup/locales.js +118 -25
  123. package/lib/components/ecocup/utils/download.d.ts +7 -0
  124. package/lib/components/ecocup/utils/download.js +47 -0
  125. package/lib/components/ecocup/utils/index.d.ts +2 -0
  126. package/lib/components/ecocup/utils/index.js +42 -0
  127. package/lib/components/eftpos/hooks.d.ts +1 -0
  128. package/lib/components/eftposPay/amount.d.ts +1 -1
  129. package/lib/components/eftposPay/device.d.ts +1 -1
  130. package/lib/components/eftposPay/hooks.d.ts +2 -2
  131. package/lib/components/eftposPay/store/index.d.ts +5 -5
  132. package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
  133. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  134. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +0 -1
  135. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  136. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  137. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  138. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  139. package/lib/components/pay/toC/model.d.ts +9 -1
  140. package/lib/components/schedules/model.d.ts +9 -1
  141. package/lib/hooks/usePaymentLogger.d.ts +1 -0
  142. package/lib/plus/walletEditor/components/ImageUpload/index.d.ts +1 -1
  143. package/lowcode/eco-cup-list/meta.ts +1 -1
  144. package/lowcode/eco-customer-list/meta.ts +1 -1
  145. package/package.json +3 -3
@@ -11,7 +11,7 @@ import './device.less';
11
11
  declare const _default: ({ api, onChange, onClose, className, device_number, isMobile, net, client, formatAmount, }: {
12
12
  api: PayProps['api'];
13
13
  className?: string | undefined;
14
- onChange?: ((status: "page" | "success" | "fail" | "print" | "mark_tx_processed", params?: string | {
14
+ onChange?: ((status: "success" | "page" | "print" | "fail" | "mark_tx_processed", params?: string | {
15
15
  [keys: string]: unknown;
16
16
  } | undefined, other?: any) => void) | undefined;
17
17
  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<"loading" | "success" | "warn" | "fail" | "pedding" | "resove" | "reject" | "question">;
18
+ readonly statusRef: React.MutableRefObject<"warn" | "success" | "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<"payo" | "tyro" | "windcave" | "stripe" | "linkly">;
22
+ readonly eftposRef: React.MutableRefObject<"stripe" | "payo" | "tyro" | "windcave" | "linkly">;
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: "loading" | "success" | "warn" | "fail" | "question";
177
+ status: "warn" | "success" | "loading" | "fail" | "question";
178
178
  };
179
179
  };
180
180
  /**
@@ -295,10 +295,10 @@ 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?: "pay" | "fullPay" | "refund" | "query" | undefined;
298
+ mode?: "refund" | "pay" | "fullPay" | "query" | undefined;
299
299
  order_id?: string | number | undefined;
300
- eftpos?: "payo" | "tyro" | "windcave" | "stripe" | "linkly" | undefined;
301
- action?: "pay" | "amount" | "deviceList" | undefined;
300
+ eftpos?: "stripe" | "payo" | "tyro" | "windcave" | "linkly" | undefined;
301
+ action?: "amount" | "pay" | "deviceList" | undefined;
302
302
  key?: number | undefined;
303
303
  step?: number | undefined;
304
304
  title?: string | undefined;
@@ -308,7 +308,7 @@ export declare const backUpFree: (payload: Partial<State>) => {
308
308
  net?: boolean | undefined;
309
309
  component?: string | undefined;
310
310
  form?: string | undefined;
311
- status?: "loading" | "success" | "warn" | "fail" | "pedding" | "resove" | "reject" | "question" | undefined;
311
+ status?: "warn" | "success" | "loading" | "fail" | "pedding" | "resove" | "reject" | "question" | undefined;
312
312
  warn?: string | undefined;
313
313
  steps?: {
314
314
  /** 用于重置当前步骤 */
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  /**
2
3
  * @title: 获取 Tyro 资源
3
4
  * @description:
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  declare const Status: (props: any) => import("react").JSX.Element;
3
4
  export default Status;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare type CallToBookProps = {
3
2
  show: boolean;
4
3
  type: string;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  declare const DayItem: (props: any) => import("react").JSX.Element;
3
4
  export default DayItem;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  import { CalendarItemProps } from '../../../../../type';
3
4
  declare const Item: (props: CalendarItemProps) => import("react").JSX.Element;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import './index.less';
2
3
  declare const Status: (props: any) => import("react").JSX.Element;
3
4
  export default Status;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  declare const StripeSDK: ({ public_key, client_secret, children, lang, }: {
2
3
  public_key: string;
3
4
  client_secret?: string | undefined;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export interface FormState {
2
3
  platform: 'pc' | 'h5' | '' | undefined;
3
4
  order: any;
@@ -29,4 +30,11 @@ export interface PayGroup {
29
30
  _order: any;
30
31
  front_order_uuid?: string;
31
32
  }
32
- export declare const Provider: any, Context: any;
33
+ export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
34
+ state: FormState;
35
+ } & {
36
+ dispatch: (params: {
37
+ type: string;
38
+ payload: any;
39
+ }) => void;
40
+ }>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { CalendarDataItem, ScheduleItem } from "./type";
2
3
  import dayjs from "dayjs";
3
4
  export interface FormState {
@@ -68,4 +69,11 @@ export interface FormState {
68
69
  };
69
70
  setGlobalState: Function | null;
70
71
  }
71
- export declare const Provider: any, Context: any;
72
+ export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
73
+ state: FormState;
74
+ } & {
75
+ dispatch: (params: {
76
+ type: string;
77
+ payload: any;
78
+ }) => void;
79
+ }>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  interface LogData {
2
3
  key: string;
3
4
  value: any;
@@ -3,6 +3,6 @@ export interface ImageUploadProps {
3
3
  value?: string;
4
4
  onChange?: (val: string) => void;
5
5
  }
6
- export declare const getBaseTime: (size: number) => 1000 | 2000 | 4000 | 8000;
6
+ export declare const getBaseTime: (size: number) => 2000 | 1000 | 4000 | 8000;
7
7
  declare const ImageUpload: React.FC<ImageUploadProps>;
8
8
  export default ImageUpload;
@@ -1 +1,10 @@
1
- export declare const Provider: any, Context: any;
1
+ /// <reference types="react" />
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 +1,10 @@
1
- export declare const Provider: any, Context: any;
1
+ /// <reference types="react" />
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,2 +1,3 @@
1
+ /// <reference types="react" />
1
2
  declare const useIsLowSpeedNetwork: () => import("react").MutableRefObject<boolean>;
2
3
  export default useIsLowSpeedNetwork;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { EditServiceRef } from "../service/editService";
3
2
  declare const useInfoHolder: (state: any, dispatch: any) => {
4
3
  detailRef: import("react").MutableRefObject<EditServiceRef | undefined>;
@@ -1,5 +1,14 @@
1
+ /// <reference types="react" />
2
+ import { FormState } from '../model';
1
3
  export declare const walkInData: {
2
4
  id: number;
3
5
  nickname: string;
4
6
  };
5
- export declare const Provider: any, Context: any;
7
+ export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
8
+ state: FormState;
9
+ } & {
10
+ dispatch: (params: {
11
+ type: string;
12
+ payload: any;
13
+ }) => void;
14
+ }>;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  export interface FormState {
2
3
  amountSymbol: string;
3
4
  apis: {
@@ -108,4 +109,11 @@ export declare const walkInData: {
108
109
  id: number;
109
110
  nickname: string;
110
111
  };
111
- export declare const Provider: any, Context: any;
112
+ export declare const Provider: (ComponentUi: any) => any, Context: import("react").Context<{
113
+ state: FormState;
114
+ } & {
115
+ dispatch: (params: {
116
+ type: string;
117
+ payload: any;
118
+ }) => void;
119
+ }>;
@@ -1 +1,10 @@
1
- export declare const Provider: any, Context: any;
1
+ /// <reference types="react" />
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 +1,10 @@
1
- export declare const Provider: any, Context: any;
1
+ /// <reference types="react" />
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
+ }>;
@@ -166,10 +166,10 @@ export declare const getProductTotalPrice: (item: any) => number;
166
166
  export declare const getDuration: (duration: number | {
167
167
  type: string;
168
168
  value: number;
169
- }) => number | {
169
+ }) => number | "flexible" | {
170
170
  type: string;
171
171
  value: number;
172
- } | "flexible";
172
+ };
173
173
  export declare const isWalkIn: (customer_id?: number | string) => boolean;
174
174
  export declare const getIsEdit: (state: any) => boolean;
175
175
  export {};
@@ -199,9 +199,9 @@ var AddCustomerModal = (props) => {
199
199
  label: import_utils.locales.getText(
200
200
  "pisell2.text.ecocup.add-customer-modal.membership"
201
201
  ),
202
- defaultValue: "normal",
202
+ defaultValue: "regular",
203
203
  options: [
204
- { label: "Normal", value: "normal" },
204
+ { label: "Regular", value: "regular" },
205
205
  { label: "Business", value: "business" },
206
206
  { label: "Admin", value: "admin" }
207
207
  ]
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  import './index.less';
3
3
  interface IProps {
4
- type: 'rentInfo' | 'markInfo' | 'belongInfo';
4
+ type: 'rentInfo' | 'markInfo' | 'belongInfo' | 'otherBelongInfo';
5
5
  data: Record<string, any>;
6
+ isMultipleShop?: boolean;
7
+ isMultipleTime?: boolean;
6
8
  }
7
9
  declare const CupInfoCard: (props: IProps) => React.JSX.Element;
8
10
  export default CupInfoCard;
@@ -37,7 +37,7 @@ var import_utils = require("@pisell/utils");
37
37
  var import_dayjs = __toESM(require("dayjs"));
38
38
  var import_index = require("./index.less");
39
39
  var CupInfoCard = (props) => {
40
- const { type, data } = props;
41
- return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-info-card" }, /* @__PURE__ */ import_react.default.createElement("div", null, import_utils.locales.getText(`pisell2.text.ecocup.cup-info-card.title.${type}`)), /* @__PURE__ */ import_react.default.createElement("div", null, (data == null ? void 0 : data.shop) || "-"), /* @__PURE__ */ import_react.default.createElement("div", null, (data == null ? void 0 : data.time) ? (0, import_dayjs.default)(data == null ? void 0 : data.time).format("HH:mm DD/MM/YYYY") : "-"));
40
+ const { type, data, isMultipleShop, isMultipleTime } = props;
41
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-info-card" }, /* @__PURE__ */ import_react.default.createElement("div", null, import_utils.locales.getText(`pisell2.text.ecocup.cup-info-card.title.${type}`)), isMultipleShop ? import_utils.locales.getText("pisell2.text.ecocup.cup-info-card.title.multiple-shop") : /* @__PURE__ */ import_react.default.createElement("div", null, (data == null ? void 0 : data.shop) || "-"), isMultipleTime ? import_utils.locales.getText("pisell2.text.ecocup.cup-info-card.title.multiple-time") : /* @__PURE__ */ import_react.default.createElement("div", null, (data == null ? void 0 : data.time) ? (0, import_dayjs.default)(data == null ? void 0 : data.time).format("HH:mm DD/MM/YYYY") : "-"));
42
42
  };
43
43
  var CupInfoCard_default = CupInfoCard;
@@ -1,5 +1,36 @@
1
- import { ECupActionType } from '../../types';
1
+ import { ECupActionType, ICup } from '../../types';
2
2
  export declare const useCupAction: () => {
3
3
  run: (this: unknown, cupId: string, action: ECupActionType) => Promise<boolean>;
4
4
  loading: boolean;
5
5
  };
6
+ /**
7
+ * @description: 批量归还杯子
8
+ * @return {*}
9
+ */
10
+ export declare const useBatchCupAction: () => {
11
+ run: (this: unknown, eco_cup_ids: number[] | string[]) => Promise<boolean>;
12
+ loading: boolean;
13
+ };
14
+ /**
15
+ * @description: 统计杯子列表中的客户、店铺、时间数量
16
+ * @param {ICup[]} cupList - 杯子列表
17
+ * @return {object} 返回统计信息和是否为多个的标识
18
+ */
19
+ export declare const useCupListStatistics: (cupList: ICup[]) => {
20
+ hasMultipleCustomers: boolean;
21
+ hasMultipleShops: boolean;
22
+ hasMultipleTimes: boolean;
23
+ uniqueCustomer: import("../../types").ICustomer | undefined;
24
+ uniqueShop: {
25
+ id: string;
26
+ name: string;
27
+ } | undefined;
28
+ uniqueTime: string | undefined;
29
+ } | {
30
+ hasMultipleCustomers: boolean;
31
+ hasMultipleShops: boolean;
32
+ hasMultipleTimes: boolean;
33
+ uniqueCustomer: null;
34
+ uniqueShop: null;
35
+ uniqueTime: null;
36
+ };
@@ -19,7 +19,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  // src/components/ecocup/components/CupStatusModal/hooks.ts
20
20
  var hooks_exports = {};
21
21
  __export(hooks_exports, {
22
- useCupAction: () => useCupAction
22
+ useBatchCupAction: () => useBatchCupAction,
23
+ useCupAction: () => useCupAction,
24
+ useCupListStatistics: () => useCupListStatistics
23
25
  });
24
26
  module.exports = __toCommonJS(hooks_exports);
25
27
  var import_react = require("react");
@@ -49,7 +51,65 @@ var useCupAction = () => {
49
51
  loading
50
52
  };
51
53
  };
54
+ var useBatchCupAction = () => {
55
+ const { post } = (0, import_hooks.useRequest)();
56
+ const [loading, setLoading] = (0, import_react.useState)(false);
57
+ const run = (0, import_ahooks.useMemoizedFn)(async (eco_cup_ids) => {
58
+ try {
59
+ setLoading(true);
60
+ const res = await post("/shop/wallet/eco/cups-return", { eco_cup_ids });
61
+ if ((res == null ? void 0 : res.code) == 200) {
62
+ return true;
63
+ }
64
+ return false;
65
+ } catch (error) {
66
+ console.error(error);
67
+ return false;
68
+ } finally {
69
+ setLoading(false);
70
+ }
71
+ });
72
+ return {
73
+ run,
74
+ loading
75
+ };
76
+ };
77
+ var useCupListStatistics = (cupList) => {
78
+ return (0, import_react.useMemo)(() => {
79
+ var _a, _b, _c;
80
+ if (cupList.length === 0) {
81
+ return {
82
+ hasMultipleCustomers: false,
83
+ hasMultipleShops: false,
84
+ hasMultipleTimes: false,
85
+ uniqueCustomer: null,
86
+ uniqueShop: null,
87
+ uniqueTime: null
88
+ };
89
+ }
90
+ const customerIds = new Set(
91
+ cupList.map((cup) => cup == null ? void 0 : cup.customer_id).filter((id) => id)
92
+ );
93
+ const shopIds = new Set(
94
+ cupList.map((cup) => cup == null ? void 0 : cup.current_shop_id).filter((id) => id)
95
+ );
96
+ const times = new Set(
97
+ cupList.map((cup) => cup == null ? void 0 : cup.operated_at).filter((time) => time)
98
+ );
99
+ const result = {
100
+ hasMultipleCustomers: customerIds.size > 1,
101
+ hasMultipleShops: shopIds.size > 1,
102
+ hasMultipleTimes: times.size > 1,
103
+ uniqueCustomer: (_a = cupList[0]) == null ? void 0 : _a.customer,
104
+ uniqueShop: (_b = cupList[0]) == null ? void 0 : _b.current_shop,
105
+ uniqueTime: (_c = cupList[0]) == null ? void 0 : _c.operated_at
106
+ };
107
+ return result;
108
+ }, [cupList]);
109
+ };
52
110
  // Annotate the CommonJS export names for ESM import in node:
53
111
  0 && (module.exports = {
54
- useCupAction
112
+ useBatchCupAction,
113
+ useCupAction,
114
+ useCupListStatistics
55
115
  });
@@ -40,12 +40,28 @@ var import_index = require("./index.less");
40
40
  var import_CupInfoCard = __toESM(require("../CupInfoCard"));
41
41
  var import_CustomerCard = __toESM(require("../CustomerCard"));
42
42
  var import_hooks = require("./hooks");
43
+ var import_SearchBar = __toESM(require("../SearchBar"));
44
+ var SCAN_LISTENER_KEY = "eco-cup-status-modal-scan-listener";
43
45
  var CupStatusModal = (props) => {
44
- var _a;
46
+ var _a, _b, _c;
45
47
  const { visible, onCancel, onOk, data } = props;
46
48
  const { scanStatus, cupData } = data || {};
47
49
  const cupAction = (0, import_hooks.useCupAction)();
48
- const isRed = scanStatus !== import_types.ECupScanStatus.OTHER_IN_STOCK && scanStatus !== import_types.ECupScanStatus.OTHER_RENT;
50
+ const [cupList, setCupList] = (0, import_react.useState)([]);
51
+ const batchCupAction = (0, import_hooks.useBatchCupAction)();
52
+ (0, import_react.useEffect)(() => {
53
+ if (!cupData) {
54
+ setCupList([]);
55
+ return;
56
+ }
57
+ const initialCups = Array.isArray(cupData) ? cupData : [cupData];
58
+ setCupList(initialCups);
59
+ }, [cupData]);
60
+ const otherRentStatus = (0, import_react.useMemo)(() => {
61
+ return scanStatus === import_types.ECupScanStatus.OTHER_RENT;
62
+ }, [scanStatus]);
63
+ const isRed = !otherRentStatus;
64
+ const cupStatistics = (0, import_hooks.useCupListStatistics)(cupList);
49
65
  const lineStyle = (0, import_react.useMemo)(() => {
50
66
  if (isRed) {
51
67
  return {
@@ -59,10 +75,13 @@ var CupStatusModal = (props) => {
59
75
  };
60
76
  }, [isRed]);
61
77
  const cupInfoCardType = (0, import_react.useMemo)(() => {
62
- if (scanStatus === import_types.ECupScanStatus.OTHER_IN_STOCK || scanStatus === import_types.ECupScanStatus.IN_STOCK) {
78
+ if (scanStatus === import_types.ECupScanStatus.OTHER_IN_STOCK) {
79
+ return "otherBelongInfo";
80
+ }
81
+ if (scanStatus === import_types.ECupScanStatus.IN_STOCK) {
63
82
  return "belongInfo";
64
83
  }
65
- if (scanStatus === import_types.ECupScanStatus.OTHER_RENT || scanStatus === import_types.ECupScanStatus.RENT) {
84
+ if (otherRentStatus || scanStatus === import_types.ECupScanStatus.RENT) {
66
85
  return "rentInfo";
67
86
  }
68
87
  if (scanStatus === import_types.ECupScanStatus.MISSING || scanStatus === import_types.ECupScanStatus.BROKEN) {
@@ -76,15 +95,18 @@ var CupStatusModal = (props) => {
76
95
  };
77
96
  const _onOk = async () => {
78
97
  if (cupAction == null ? void 0 : cupAction.loading) return;
79
- const type = scanStatus === import_types.ECupScanStatus.OTHER_IN_STOCK ? import_types.ECupActionType.TRANSFER : scanStatus === import_types.ECupScanStatus.OTHER_RENT ? import_types.ECupActionType.RETURN : "";
98
+ const type = otherRentStatus ? import_types.ECupActionType.RETURN : "";
80
99
  if (!type) {
81
100
  onOk == null ? void 0 : onOk();
82
101
  return;
83
102
  }
84
- const result = await cupAction.run(
85
- (cupData == null ? void 0 : cupData.eco_cup_id) || (cupData == null ? void 0 : cupData.id),
86
- type
87
- );
103
+ let result;
104
+ if (otherRentStatus) {
105
+ const ids = cupList.map((cup) => (cup == null ? void 0 : cup.eco_cup_id) || (cup == null ? void 0 : cup.id));
106
+ result = await batchCupAction.run(ids);
107
+ } else {
108
+ result = await cupAction.run((cupData == null ? void 0 : cupData.eco_cup_id) || (cupData == null ? void 0 : cupData.id), type);
109
+ }
88
110
  if (result) {
89
111
  (0, import_materials.PisellToast)({
90
112
  content: import_utils.locales.getText(`pisell2.text.ecocup.toast.success-${type}`)
@@ -92,6 +114,39 @@ var CupStatusModal = (props) => {
92
114
  onOk == null ? void 0 : onOk();
93
115
  }
94
116
  };
117
+ const onSearchResult = (result) => {
118
+ var _a2;
119
+ if (cupList.find((c) => {
120
+ var _a3;
121
+ return (c == null ? void 0 : c.id) === ((_a3 = result == null ? void 0 : result.data) == null ? void 0 : _a3.id);
122
+ })) {
123
+ return;
124
+ }
125
+ if (((_a2 = result == null ? void 0 : result.data) == null ? void 0 : _a2.status) !== import_types.ECupStatus.RENT) {
126
+ return;
127
+ }
128
+ setCupList([...cupList, result == null ? void 0 : result.data]);
129
+ };
130
+ const removeCupFromList = (cupId) => {
131
+ setCupList(cupList.filter((cup) => (cup == null ? void 0 : cup.id) !== cupId));
132
+ };
133
+ const renderSearchBar = () => {
134
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-customer-first-modal-search-bar" }, /* @__PURE__ */ import_react.default.createElement(
135
+ import_SearchBar.default,
136
+ {
137
+ scanListenerKey: SCAN_LISTENER_KEY,
138
+ searchType: "cup",
139
+ placeholder: import_utils.locales.getText(
140
+ "pisell2.text.ecocup.customer-first-modal.search-bar.placeholder"
141
+ ),
142
+ onSearchResult,
143
+ onCupStatusValidate: onSearchResult
144
+ }
145
+ ));
146
+ };
147
+ const showRemove = (0, import_react.useMemo)(() => {
148
+ return (cupList == null ? void 0 : cupList.length) > 1 && otherRentStatus;
149
+ }, [cupList.length, otherRentStatus]);
95
150
  return /* @__PURE__ */ import_react.default.createElement(
96
151
  import_materials.PisellModal,
97
152
  {
@@ -99,23 +154,30 @@ var CupStatusModal = (props) => {
99
154
  open: visible,
100
155
  onCancel: _onCancel,
101
156
  onOk: _onOk,
102
- title: import_utils.locales.getText(
157
+ title: otherRentStatus ? import_utils.locales.getText(
158
+ `pisell2.text.ecocup.cup-status-modal.title-${scanStatus}`
159
+ )(cupList.length) : import_utils.locales.getText(
103
160
  `pisell2.text.ecocup.cup-status-modal.title-${scanStatus}`
104
161
  ),
105
- cancelText: import_utils.locales.getText("pisell2.text.ecocup.button.dismiss"),
106
- okText: isRed ? import_utils.locales.getText("pisell2.text.ecocup.button.confirm") : scanStatus === import_types.ECupScanStatus.OTHER_IN_STOCK ? import_utils.locales.getText("pisell2.text.ecocup.button.transfer") : import_utils.locales.getText("pisell2.text.ecocup.button.mark-as-return"),
162
+ cancelText: otherRentStatus ? import_utils.locales.getText("pisell2.text.ecocup.button.cancel") : import_utils.locales.getText("pisell2.text.ecocup.button.dismiss"),
163
+ okText: isRed ? import_utils.locales.getText("pisell2.text.ecocup.button.confirm") : import_utils.locales.getText("pisell2.text.ecocup.button.return"),
107
164
  okButtonProps: { loading: cupAction == null ? void 0 : cupAction.loading },
108
165
  cancelVisible: !isRed,
109
166
  width: 580
110
167
  },
111
- /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-status-modal-content" }, /* @__PURE__ */ import_react.default.createElement(
168
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-status-modal-content", style: { gap: otherRentStatus ? "20px" : "32px" } }, otherRentStatus ? /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-status-modal-content-search" }, /* @__PURE__ */ import_react.default.createElement("span", { className: "tip-text" }, import_utils.locales.getText(
169
+ "pisell2.text.ecocup.cup-status-modal.search-bar.title"
170
+ )), renderSearchBar()) : null, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-status-modal-content-cup-lists" }, cupList.map((cup, index) => /* @__PURE__ */ import_react.default.createElement(
112
171
  "div",
113
172
  {
173
+ key: (cup == null ? void 0 : cup.id) || index,
114
174
  className: "pisell2-ecocup-cup-status-modal-content-cup",
115
- style: { ...lineStyle }
175
+ style: {
176
+ ...lineStyle,
177
+ justifyContent: showRemove ? "space-between" : "center"
178
+ }
116
179
  },
117
- /* @__PURE__ */ import_react.default.createElement(import_materials.Icon, { type: "RestOutlined", size: 24 }),
118
- /* @__PURE__ */ import_react.default.createElement(
180
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-status-modal-content-cup-info" }, /* @__PURE__ */ import_react.default.createElement(import_materials.Icon, { type: "RestOutlined", size: 24 }), /* @__PURE__ */ import_react.default.createElement(
119
181
  "span",
120
182
  {
121
183
  style: {
@@ -123,18 +185,37 @@ var CupStatusModal = (props) => {
123
185
  }
124
186
  },
125
187
  import_utils.locales.getText("pisell2.text.ecocup.cup-id")
126
- ),
127
- /* @__PURE__ */ import_react.default.createElement("span", null, (cupData == null ? void 0 : cupData.eco_cup_code) || (cupData == null ? void 0 : cupData.code) || "")
128
- ), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-status-modal-content-info" }, /* @__PURE__ */ import_react.default.createElement("div", { style: { flex: 1 } }, (cupData == null ? void 0 : cupData.current_shop) && cupInfoCardType ? /* @__PURE__ */ import_react.default.createElement(
188
+ ), /* @__PURE__ */ import_react.default.createElement("span", null, (cup == null ? void 0 : cup.eco_cup_code) || (cup == null ? void 0 : cup.code) || "")),
189
+ showRemove && /* @__PURE__ */ import_react.default.createElement(
190
+ import_materials.Button,
191
+ {
192
+ type: "primary",
193
+ icon: /* @__PURE__ */ import_react.default.createElement(import_materials.Icon, { type: "pisell2-trash-01", size: 24, color: "#7F56DA" }),
194
+ onClick: () => removeCupFromList(cup == null ? void 0 : cup.id),
195
+ className: "info-remove"
196
+ },
197
+ import_utils.locales.getText("pisell2.text.ecocup.button.remove")
198
+ )
199
+ ))), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-status-modal-content-info" }, /* @__PURE__ */ import_react.default.createElement("div", { style: { flex: 1 } }, ((cupStatistics == null ? void 0 : cupStatistics.uniqueShop) || (cupStatistics == null ? void 0 : cupStatistics.hasMultipleShops)) && cupInfoCardType ? /* @__PURE__ */ import_react.default.createElement(
129
200
  import_CupInfoCard.default,
130
201
  {
131
202
  type: cupInfoCardType,
132
203
  data: {
133
- shop: (_a = cupData == null ? void 0 : cupData.current_shop) == null ? void 0 : _a.name,
134
- time: cupData == null ? void 0 : cupData.operated_at
204
+ shop: (_a = cupStatistics == null ? void 0 : cupStatistics.uniqueShop) == null ? void 0 : _a.name,
205
+ time: cupStatistics == null ? void 0 : cupStatistics.uniqueTime,
206
+ isMultipleTime: cupStatistics == null ? void 0 : cupStatistics.hasMultipleTimes,
207
+ isMultipleShop: cupStatistics == null ? void 0 : cupStatistics.hasMultipleShops
135
208
  }
136
209
  }
137
- ) : null), /* @__PURE__ */ import_react.default.createElement("div", { style: { flex: 1 } }, (cupData == null ? void 0 : cupData.status) === import_types.ECupStatus.RENT ? (cupData == null ? void 0 : cupData.customer) ? /* @__PURE__ */ import_react.default.createElement(import_CustomerCard.default, { ...(cupData == null ? void 0 : cupData.customer) || {} }) : null : (cupData == null ? void 0 : cupData.status) === import_types.ECupStatus.IN_STOCK ? null : /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-status-modal-content-info-tip" }, import_utils.locales.getText("pisell2.text.ecocup.cup-status-modal.tip")))))
210
+ ) : null), /* @__PURE__ */ import_react.default.createElement("div", { style: { flex: 1 } }, ((_b = cupList == null ? void 0 : cupList[0]) == null ? void 0 : _b.status) === import_types.ECupStatus.RENT ? (cupStatistics == null ? void 0 : cupStatistics.uniqueCustomer) || (cupStatistics == null ? void 0 : cupStatistics.hasMultipleCustomers) ? /* @__PURE__ */ import_react.default.createElement(
211
+ import_CustomerCard.default,
212
+ {
213
+ ...(cupStatistics == null ? void 0 : cupStatistics.uniqueCustomer) || {},
214
+ isMultiple: cupStatistics == null ? void 0 : cupStatistics.hasMultipleCustomers
215
+ }
216
+ ) : null : /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell2-ecocup-cup-status-modal-content-info-tip" }, ((_c = cupList == null ? void 0 : cupList[0]) == null ? void 0 : _c.status) === import_types.ECupStatus.IN_STOCK ? import_utils.locales.getText(
217
+ "pisell2.text.ecocup.cup-status-modal.tip-in-stock"
218
+ ) : import_utils.locales.getText("pisell2.text.ecocup.cup-status-modal.tip")))))
138
219
  );
139
220
  };
140
221
  var CupStatusModal_default = CupStatusModal;