@pisell/materials 6.2.35 → 6.2.37

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 (153) 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 +4 -4
  6. package/build/lowcode/preview.js +148 -164
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +25 -39
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +25 -39
  11. package/es/components/batch-editor/index.d.ts +0 -1
  12. package/es/components/dataSourceComponents/dataSourceForm/formItem.d.ts +0 -1
  13. package/es/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
  14. package/es/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +0 -1
  15. package/es/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +0 -1
  16. package/es/components/dataSourceComponents/dataSourceTable/hooks/useDrawerState.d.ts +1 -0
  17. package/es/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +2 -2
  18. package/es/components/dataSourceComponents/dataSourceWrapper/index.d.ts +0 -1
  19. package/es/components/dataSourceComponents/fields/Select/index.d.ts +1 -2
  20. package/es/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
  21. package/es/components/dataSourceComponents/fields/index.d.ts +19 -20
  22. package/es/components/drag-sort-tree/TreeItem/index.d.ts +1 -0
  23. package/es/components/drag-sort-tree/index.d.ts +1 -0
  24. package/es/components/filter/index.d.ts +0 -1
  25. package/es/components/iconfont/index.js +1 -1
  26. package/es/components/list/index.d.ts +0 -1
  27. package/es/components/page/index.d.ts +0 -1
  28. package/es/components/pisellCardList/index.d.ts +21 -1
  29. package/es/components/pisellCardList/index.js +25 -1
  30. package/es/components/pisellCheckboxGroup/index.d.ts +1 -0
  31. package/es/components/pisellCheckboxGroup/index.js +2 -2
  32. package/es/components/pisellCheckboxGroup/index.less +13 -1
  33. package/es/components/pisellLoading/index.d.ts +0 -1
  34. package/es/components/pisellWalletPassCard/index.d.ts +44 -0
  35. package/es/components/pisellWalletPassCard/index.js +233 -66
  36. package/es/components/pisellWalletPassCard/index.less +37 -7
  37. package/es/components/productCard/cartSkuCard/components/AmountFooter/index.d.ts +0 -1
  38. package/es/components/productCard/cartSkuCard/components/MultiDay/index.d.ts +0 -1
  39. package/es/components/productCard/cartSkuCard/components/Note/index.d.ts +0 -1
  40. package/es/components/productCard/cartSkuCard/components/discountReason/index.d.ts +0 -1
  41. package/es/components/productCard/cartSkuCard/components/holders/index.d.ts +0 -1
  42. package/es/components/productCard/cartSkuCard/components/packages/index.d.ts +0 -1
  43. package/es/components/productCard/cartSkuCard/components/packages/utils.d.ts +1 -1
  44. package/es/components/productCard/cartSkuCard/components/resources/index.d.ts +0 -1
  45. package/es/components/productCard/cartSkuCard/components/sales/index.d.ts +0 -1
  46. package/es/components/productCard/cartSkuCard/components/specs/index.d.ts +0 -1
  47. package/es/components/productCard/cartSkuCard/components/timeRange/index.d.ts +0 -1
  48. package/es/components/productCard/cartSkuCard/index.d.ts +0 -1
  49. package/es/components/productCard/components/Action/index.d.ts +0 -1
  50. package/es/components/productCard/components/Header/EditButton/index.d.ts +0 -1
  51. package/es/components/productCard/components/Header/index.d.ts +0 -1
  52. package/es/components/productCard/components/Packages/utils.d.ts +1 -1
  53. package/es/components/productCard/components/Time/components/SelectHolderModal/index.d.ts +0 -1
  54. package/es/components/productCard/components/Time/components/SelectHolderMultiple/index.d.ts +0 -1
  55. package/es/components/productCard/components/Time/components/SelectResource/index.d.ts +1 -0
  56. package/es/components/table/Actions/component/ExportImport/components/ImportTable/index.d.ts +0 -1
  57. package/es/components/table/Actions/component/GallerySetting/index.d.ts +0 -1
  58. package/es/components/table/Actions/component/Group/index.d.ts +0 -1
  59. package/es/components/table/Actions/index.d.ts +0 -1
  60. package/es/components/table/BasicTable/index.d.ts +0 -1
  61. package/es/components/table/Table/AddFieldModal/index.d.ts +1 -0
  62. package/es/components/table/Table/AddFieldModal/index.js +13 -13
  63. package/es/components/table/Table/AddFieldModal/index.less +11 -11
  64. package/es/components/table/Table/SelectField/index.d.ts +0 -1
  65. package/es/components/table/Table/fields/index.d.ts +0 -1
  66. package/es/components/table/Table/fields/select/index.d.ts +0 -1
  67. package/es/components/table/Table/fields/text/Show/index.d.ts +0 -1
  68. package/es/components/table/Table/fields/text/index.d.ts +0 -1
  69. package/es/components/table/Table/tableConfig/SortRow/index.d.ts +0 -1
  70. package/es/components/table/Table/utils.d.ts +1 -1
  71. package/es/components/table/View/index.d.ts +0 -1
  72. package/es/components/versionSelect/index.d.ts +0 -1
  73. package/es/index.d.ts +1 -0
  74. package/es/locales/en-US.d.ts +3 -0
  75. package/es/locales/en-US.js +6 -2
  76. package/es/locales/zh-CN.d.ts +3 -0
  77. package/es/locales/zh-CN.js +6 -2
  78. package/es/locales/zh-TW.d.ts +3 -0
  79. package/es/locales/zh-TW.js +6 -2
  80. package/es/utils/platform.d.ts +1 -1
  81. package/lib/components/batch-editor/index.d.ts +0 -1
  82. package/lib/components/dataSourceComponents/dataSourceForm/formItem.d.ts +0 -1
  83. package/lib/components/dataSourceComponents/dataSourceForm/utils.d.ts +1 -1
  84. package/lib/components/dataSourceComponents/dataSourceTable/filter/index.d.ts +0 -1
  85. package/lib/components/dataSourceComponents/dataSourceTable/filter/utils.d.ts +0 -1
  86. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useDrawerState.d.ts +1 -0
  87. package/lib/components/dataSourceComponents/dataSourceTable/hooks/useTableProps.d.ts +2 -2
  88. package/lib/components/dataSourceComponents/dataSourceWrapper/index.d.ts +0 -1
  89. package/lib/components/dataSourceComponents/fields/Select/index.d.ts +1 -2
  90. package/lib/components/dataSourceComponents/fields/Upload/utils.d.ts +1 -1
  91. package/lib/components/dataSourceComponents/fields/index.d.ts +19 -20
  92. package/lib/components/drag-sort-tree/TreeItem/index.d.ts +1 -0
  93. package/lib/components/drag-sort-tree/index.d.ts +1 -0
  94. package/lib/components/filter/index.d.ts +0 -1
  95. package/lib/components/iconfont/index.js +1 -1
  96. package/lib/components/list/index.d.ts +0 -1
  97. package/lib/components/page/index.d.ts +0 -1
  98. package/lib/components/pisellCardList/index.d.ts +21 -1
  99. package/lib/components/pisellCardList/index.js +25 -1
  100. package/lib/components/pisellCheckboxGroup/index.d.ts +1 -0
  101. package/lib/components/pisellCheckboxGroup/index.js +2 -1
  102. package/lib/components/pisellCheckboxGroup/index.less +13 -1
  103. package/lib/components/pisellLoading/index.d.ts +0 -1
  104. package/lib/components/pisellWalletPassCard/index.d.ts +44 -0
  105. package/lib/components/pisellWalletPassCard/index.js +187 -48
  106. package/lib/components/pisellWalletPassCard/index.less +37 -7
  107. package/lib/components/productCard/cartSkuCard/components/AmountFooter/index.d.ts +0 -1
  108. package/lib/components/productCard/cartSkuCard/components/MultiDay/index.d.ts +0 -1
  109. package/lib/components/productCard/cartSkuCard/components/Note/index.d.ts +0 -1
  110. package/lib/components/productCard/cartSkuCard/components/discountReason/index.d.ts +0 -1
  111. package/lib/components/productCard/cartSkuCard/components/holders/index.d.ts +0 -1
  112. package/lib/components/productCard/cartSkuCard/components/packages/index.d.ts +0 -1
  113. package/lib/components/productCard/cartSkuCard/components/packages/utils.d.ts +1 -1
  114. package/lib/components/productCard/cartSkuCard/components/resources/index.d.ts +0 -1
  115. package/lib/components/productCard/cartSkuCard/components/sales/index.d.ts +0 -1
  116. package/lib/components/productCard/cartSkuCard/components/specs/index.d.ts +0 -1
  117. package/lib/components/productCard/cartSkuCard/components/timeRange/index.d.ts +0 -1
  118. package/lib/components/productCard/cartSkuCard/index.d.ts +0 -1
  119. package/lib/components/productCard/components/Action/index.d.ts +0 -1
  120. package/lib/components/productCard/components/Header/EditButton/index.d.ts +0 -1
  121. package/lib/components/productCard/components/Header/index.d.ts +0 -1
  122. package/lib/components/productCard/components/Packages/utils.d.ts +1 -1
  123. package/lib/components/productCard/components/Time/components/SelectHolderModal/index.d.ts +0 -1
  124. package/lib/components/productCard/components/Time/components/SelectHolderMultiple/index.d.ts +0 -1
  125. package/lib/components/productCard/components/Time/components/SelectResource/index.d.ts +1 -0
  126. package/lib/components/table/Actions/component/ExportImport/components/ImportTable/index.d.ts +0 -1
  127. package/lib/components/table/Actions/component/GallerySetting/index.d.ts +0 -1
  128. package/lib/components/table/Actions/component/Group/index.d.ts +0 -1
  129. package/lib/components/table/Actions/index.d.ts +0 -1
  130. package/lib/components/table/BasicTable/index.d.ts +0 -1
  131. package/lib/components/table/Table/AddFieldModal/index.d.ts +1 -0
  132. package/lib/components/table/Table/AddFieldModal/index.js +9 -9
  133. package/lib/components/table/Table/AddFieldModal/index.less +11 -11
  134. package/lib/components/table/Table/SelectField/index.d.ts +0 -1
  135. package/lib/components/table/Table/fields/index.d.ts +0 -1
  136. package/lib/components/table/Table/fields/select/index.d.ts +0 -1
  137. package/lib/components/table/Table/fields/text/Show/index.d.ts +0 -1
  138. package/lib/components/table/Table/fields/text/index.d.ts +0 -1
  139. package/lib/components/table/Table/tableConfig/SortRow/index.d.ts +0 -1
  140. package/lib/components/table/Table/utils.d.ts +1 -1
  141. package/lib/components/table/View/index.d.ts +0 -1
  142. package/lib/components/versionSelect/index.d.ts +0 -1
  143. package/lib/index.d.ts +1 -0
  144. package/lib/locales/en-US.d.ts +3 -0
  145. package/lib/locales/en-US.js +6 -2
  146. package/lib/locales/zh-CN.d.ts +3 -0
  147. package/lib/locales/zh-CN.js +6 -2
  148. package/lib/locales/zh-TW.d.ts +3 -0
  149. package/lib/locales/zh-TW.js +6 -2
  150. package/lib/utils/platform.d.ts +1 -1
  151. package/lowcode/pisell-card-list/meta.ts +50 -1
  152. package/lowcode/pisell-wallet-pass-card/actionsMeta.ts +7 -0
  153. package/package.json +11 -10
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ConfigProviderProps } from '../config-provider';
3
2
  interface PageProps extends ConfigProviderProps {
4
3
  }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { PisellCheckboxGroupProps } from '../pisellCheckboxGroup';
3
3
  import { PisellContextType } from '../pisell-config-provider/context';
4
- import { PisellWalletPassCardProps } from '../pisellWalletPassCard';
4
+ import { PisellWalletPassCardProps, FormatOption } from '../pisellWalletPassCard';
5
5
  import './index.less';
6
6
  export interface PisellCardListProps extends Omit<PisellCheckboxGroupProps, 'options'> {
7
7
  platform?: PisellContextType['platform'];
@@ -68,6 +68,26 @@ export interface PisellCardListProps extends Omit<PisellCheckboxGroupProps, 'opt
68
68
  beforeEdit?: (value: any, index: number) => Promise<any> | boolean | void;
69
69
  /** 编辑弹窗点击提交 */
70
70
  onConfirmEdit?: (value: any, index: number) => void;
71
+ /** 是否展示状态标识 */
72
+ showStatus?: boolean;
73
+ /** 名称标题字号字重颜色配置 */
74
+ nameTitleStyle?: {
75
+ fontSize: number;
76
+ fontWeight: number;
77
+ color: string;
78
+ };
79
+ /** 开启编辑金额 */
80
+ enableEditAmount?: boolean;
81
+ /** 编辑金额事件 */
82
+ onConfirmEditAmount?: (value: string, index: number) => void;
83
+ /** 是否使用外部详情处理 */
84
+ useExternalDetail?: boolean;
85
+ /** 详情事件 */
86
+ onDetail?: (value: any, index: number) => void;
87
+ /** 自定义余额格式化函数,如果提供则优先使用 */
88
+ formatBalance?: (balance?: number, option?: FormatOption) => React.ReactNode;
89
+ /** 自定义余额标题格式化函数,如果提供则优先使用 */
90
+ formatBalanceTitle?: (balanceTitle?: string, option?: FormatOption) => React.ReactNode;
71
91
  }
72
92
  declare const _default: React.NamedExoticComponent<PisellCardListProps>;
73
93
  export default _default;
@@ -62,7 +62,14 @@ var PisellCardList = (props) => {
62
62
  showValidDate,
63
63
  empty,
64
64
  showEmpty,
65
- showBalanceSymbol
65
+ showBalanceSymbol,
66
+ showStatus,
67
+ nameTitleStyle,
68
+ enableEditAmount,
69
+ useExternalDetail,
70
+ onDetail,
71
+ formatBalance,
72
+ formatBalanceTitle
66
73
  } = props;
67
74
  return data.length ? /* @__PURE__ */ import_react.default.createElement(
68
75
  import_pisellCheckboxGroup.default,
@@ -82,6 +89,11 @@ var PisellCardList = (props) => {
82
89
  {
83
90
  ...item,
84
91
  active,
92
+ mode,
93
+ showActiveIcon: true,
94
+ showStatus: showStatus || (item == null ? void 0 : item.showStatus),
95
+ cardStatus: item == null ? void 0 : item.cardStatus,
96
+ nameTitleStyle: nameTitleStyle || (item == null ? void 0 : item.nameTitleStyle),
85
97
  showName: showName || (item == null ? void 0 : item.showName),
86
98
  showBalance: showBalance || (item == null ? void 0 : item.showBalance),
87
99
  showCode: showCode || (item == null ? void 0 : item.showCode),
@@ -94,14 +106,26 @@ var PisellCardList = (props) => {
94
106
  showBalanceSymbol: showBalanceSymbol || (item == null ? void 0 : item.showBalanceSymbol),
95
107
  showActions: props.showActions || (item == null ? void 0 : item.showActions),
96
108
  actions: props.actions || (item == null ? void 0 : item.actions),
109
+ enableEditAmount: enableEditAmount || (item == null ? void 0 : item.enableEditAmount),
110
+ useExternalDetail: useExternalDetail || (item == null ? void 0 : item.useExternalDetail),
111
+ onDetail: (record) => {
112
+ var _a;
113
+ return (_a = props == null ? void 0 : props.onDetail) == null ? void 0 : _a.call(props, record, index);
114
+ },
97
115
  beforeEdit: (record) => {
98
116
  var _a;
99
117
  return (_a = props == null ? void 0 : props.beforeEdit) == null ? void 0 : _a.call(props, record, index);
100
118
  },
119
+ onConfirmEditAmount: (value2) => {
120
+ var _a;
121
+ (_a = props.onConfirmEditAmount) == null ? void 0 : _a.call(props, value2, index);
122
+ },
101
123
  onConfirmEdit: (newVal) => {
102
124
  var _a;
103
125
  (_a = props.onConfirmEdit) == null ? void 0 : _a.call(props, newVal, index);
104
126
  },
127
+ formatBalance: formatBalance || (item == null ? void 0 : item.formatBalance),
128
+ formatBalanceTitle: formatBalanceTitle || (item == null ? void 0 : item.formatBalanceTitle),
105
129
  type,
106
130
  style: direction === "vertical" || direction === "horizontal" && fullWidth ? { width: "100%" } : {}
107
131
  }
@@ -5,6 +5,7 @@ export interface PisellCheckboxGroupOption {
5
5
  label: string;
6
6
  value: string;
7
7
  disabled?: boolean;
8
+ error?: boolean;
8
9
  [key: string]: any;
9
10
  }
10
11
  declare type PisellCheckboxGroupValue = string | string[] | any;
@@ -138,7 +138,8 @@ var PisellCheckboxGroup = (props) => {
138
138
  optionClassName,
139
139
  {
140
140
  "pisell-checkbox-group-item-active": active,
141
- [optionActiveClassName]: active
141
+ [optionActiveClassName]: active,
142
+ "pisell-checkbox-group-item-error": option.error
142
143
  }
143
144
  ),
144
145
  key: option[rowKey],
@@ -24,11 +24,23 @@
24
24
 
25
25
  &.pisell-checkbox-group-item-active {
26
26
  &::before {
27
- border-width: 2px;
27
+ border-width: 4px;
28
28
  border-color: var(--theme-color);
29
+ background: var(--Primary-50, #F9F5FF);
30
+ z-index: 1;
31
+ box-sizing: border-box;
29
32
  }
30
33
 
31
34
  }
35
+
36
+ &.pisell-checkbox-group-item-error {
37
+ &::before {
38
+ border-color: var(--Error-500, #F04438);
39
+ border-width: 2px;
40
+ background: var(--Error-50, #FEF3F2);
41
+ z-index: 1;
42
+ }
43
+ }
32
44
  }
33
45
  }
34
46
 
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { SpinProps } from 'antd';
3
2
  import './index.less';
4
3
  declare type MaskType = {
@@ -1,4 +1,13 @@
1
+ import React from 'react';
1
2
  import './index.less';
3
+ export interface FormatOption {
4
+ /** 原始 DOM 元素 */
5
+ originDom: React.ReactNode;
6
+ /** 是否选中状态 */
7
+ active: boolean;
8
+ /** 完整的组件数据 */
9
+ data: PisellWalletPassCardProps;
10
+ }
2
11
  export interface PisellWalletPassCardProps {
3
12
  id: number;
4
13
  /** 卡片样式 */
@@ -78,6 +87,41 @@ export interface PisellWalletPassCardProps {
78
87
  beforeEdit?: (value: any) => Promise<any> | boolean | void;
79
88
  /** 编辑弹窗点击提交 */
80
89
  onConfirmEdit?: (value: any) => void;
90
+ /** 编辑金额事件 */
91
+ onConfirmEditAmount?: (value: string) => void;
92
+ /** 详情按钮点击事件 */
93
+ onDetail?: (data: {
94
+ id: number;
95
+ name: string;
96
+ storeName: string;
97
+ balance?: number;
98
+ redeem?: number;
99
+ code: string;
100
+ validDate: string;
101
+ originData?: any;
102
+ }) => void;
103
+ /** 是否使用外部详情处理(当为 true 且提供了 onDetail 时,不显示内部模态框) */
104
+ useExternalDetail?: boolean;
105
+ /** 单选或者多选 */
106
+ mode?: 'multiple' | 'single';
107
+ /** 是否展示选中图标 */
108
+ showActiveIcon?: boolean;
109
+ /** 开启编辑金额 */
110
+ enableEditAmount?: boolean;
111
+ /** 显示状态标识 */
112
+ showStatus?: boolean;
113
+ /** 名称标题字号字重颜色配置 */
114
+ nameTitleStyle?: {
115
+ fontSize: number;
116
+ fontWeight: number;
117
+ color: string;
118
+ };
119
+ /** 卡片状态 */
120
+ cardStatus?: 'used' | 'expired' | 'disabled';
121
+ /** 自定义余额格式化函数,如果提供则优先使用 */
122
+ formatBalance?: (balance?: number, option?: FormatOption) => React.ReactNode;
123
+ /** 自定义余额标题格式化函数,如果提供则优先使用 */
124
+ formatBalanceTitle?: (balanceTitle?: string, option?: FormatOption) => React.ReactNode;
81
125
  [key: string]: any;
82
126
  }
83
127
  declare const PisellWalletPassCard: (props: PisellWalletPassCardProps) => JSX.Element;
@@ -33,21 +33,30 @@ __export(pisellWalletPassCard_exports, {
33
33
  });
34
34
  module.exports = __toCommonJS(pisellWalletPassCard_exports);
35
35
  var import_react = __toESM(require("react"));
36
+ var import_ahooks = require("ahooks");
36
37
  var import_classnames = __toESM(require("classnames"));
37
38
  var import_icons = require("@ant-design/icons");
38
39
  var import_antd = require("antd");
39
40
  var import_dayjs = __toESM(require("dayjs"));
40
41
  var import_iconfont = __toESM(require("../iconfont"));
41
42
  var import__ = require("../../index");
43
+ var import_pisellTags = __toESM(require("../pisellTags"));
42
44
  var import_Amount = __toESM(require("../pisellText/components/Amount"));
43
45
  var import_index = require("./index.less");
44
46
  var import_locales = require("../../locales");
45
47
  var import_pisellQrcode = __toESM(require("./../pisellQrcode"));
48
+ var cardStatusMap = {
49
+ used: "warning",
50
+ expired: "error",
51
+ disabled: "gray"
52
+ };
46
53
  var PisellWalletPassCard = (props) => {
47
54
  const [isShowDetail, setIsShowDetail] = import_react.default.useState(false);
48
55
  const [isShowEdit, setIsShowEdit] = import_react.default.useState(false);
49
56
  const [form] = import_antd.Form.useForm();
50
57
  const [form2] = import_antd.Form.useForm();
58
+ const [tempAmount, setTempAmount] = import_react.default.useState("");
59
+ const [isKeyboardOpen, setIsKeyboardOpen] = import_react.default.useState(false);
51
60
  const [lastTap, setLastTap] = import_react.default.useState(0);
52
61
  const [pressTimer, setPressTimer] = import_react.default.useState(
53
62
  null
@@ -92,27 +101,69 @@ var PisellWalletPassCard = (props) => {
92
101
  actions,
93
102
  beforeEdit,
94
103
  onConfirmEdit,
104
+ onConfirmEditAmount,
105
+ onDetail,
106
+ useExternalDetail = false,
95
107
  originData,
96
- style = {}
108
+ style = {},
109
+ mode = "multiple",
110
+ showActiveIcon,
111
+ enableEditAmount,
112
+ showStatus,
113
+ cardStatus,
114
+ nameTitleStyle,
115
+ formatBalance,
116
+ formatBalanceTitle
97
117
  } = props;
98
118
  (0, import_react.useEffect)(() => {
99
119
  document.body.id = "body";
100
120
  }, []);
121
+ const actionsWrapperRef = (0, import_react.useRef)(null);
122
+ const actionsWrapperSize = (0, import_ahooks.useSize)(actionsWrapperRef);
101
123
  const isMini = (0, import_react.useMemo)(() => {
102
124
  return "mini" === type;
103
125
  }, [type]);
104
- const onDetail = () => {
126
+ const dynamicNameWrapStyle = (0, import_react.useMemo)(() => {
127
+ const actionsWidth = (actionsWrapperSize == null ? void 0 : actionsWrapperSize.width) || 0;
128
+ const baseStyle = nameTitleStyle || {};
129
+ if (actionsWidth > 0) {
130
+ return {
131
+ ...baseStyle,
132
+ width: `calc(100% - ${actionsWidth + 8}px)`
133
+ // 添加8px的边距
134
+ };
135
+ }
136
+ return {
137
+ ...baseStyle,
138
+ width: isMini ? "calc(100% - 96px)" : "calc(100% - 80px)"
139
+ // 使用默认宽度
140
+ };
141
+ }, [nameTitleStyle, actionsWrapperSize == null ? void 0 : actionsWrapperSize.width, isMini]);
142
+ const handleDetail = () => {
105
143
  var _a;
106
144
  if (disabled || disabledReason || !((_a = actions == null ? void 0 : actions.detail) == null ? void 0 : _a.visible)) return;
107
- form2.setFieldsValue({
108
- name,
109
- storeName,
110
- balance,
111
- redeem,
112
- code,
113
- validDate
114
- });
115
- setIsShowDetail(true);
145
+ if (useExternalDetail && onDetail) {
146
+ onDetail({
147
+ id,
148
+ name,
149
+ storeName,
150
+ balance,
151
+ redeem,
152
+ code,
153
+ validDate,
154
+ originData
155
+ });
156
+ } else {
157
+ form2.setFieldsValue({
158
+ name,
159
+ storeName,
160
+ balance,
161
+ redeem,
162
+ code,
163
+ validDate
164
+ });
165
+ setIsShowDetail(true);
166
+ }
116
167
  };
117
168
  const onEdit = async () => {
118
169
  var _a, _b;
@@ -178,7 +229,7 @@ var PisellWalletPassCard = (props) => {
178
229
  const now = Date.now();
179
230
  const DOUBLE_TAP_DELAY = 300;
180
231
  if (now - lastTap < DOUBLE_TAP_DELAY) {
181
- onDetail();
232
+ handleDetail();
182
233
  }
183
234
  setLastTap(now);
184
235
  };
@@ -202,11 +253,12 @@ var PisellWalletPassCard = (props) => {
202
253
  e.stopPropagation();
203
254
  };
204
255
  const renderActions = () => {
256
+ var _a, _b, _c, _d;
205
257
  if (disabled || disabledReason) return null;
206
- if (!showActions || !actions) return null;
207
- if ("collapsed" === actions.layout) {
258
+ if ((!showActions || !actions) && !showStatus) return null;
259
+ if ("collapsed" === (actions == null ? void 0 : actions.layout)) {
208
260
  const items = [];
209
- if (actions.detail && actions.detail.visible) {
261
+ if ((actions == null ? void 0 : actions.detail) && ((_a = actions == null ? void 0 : actions.detail) == null ? void 0 : _a.visible)) {
210
262
  items.push({
211
263
  key: "detail",
212
264
  label: /* @__PURE__ */ import_react.default.createElement(
@@ -215,14 +267,14 @@ var PisellWalletPassCard = (props) => {
215
267
  className: "pisell-card-actions-dropdown-detail",
216
268
  onClick: (e) => {
217
269
  stop(e);
218
- onDetail();
270
+ handleDetail();
219
271
  }
220
272
  },
221
273
  /* @__PURE__ */ import_react.default.createElement("span", null, (0, import_locales.getText)("pisell-wallet-pass-card-detail"))
222
274
  )
223
275
  });
224
276
  }
225
- if (actions.edit && actions.edit.visible) {
277
+ if ((actions == null ? void 0 : actions.edit) && ((_b = actions == null ? void 0 : actions.edit) == null ? void 0 : _b.visible)) {
226
278
  items.push({
227
279
  key: "edit",
228
280
  label: /* @__PURE__ */ import_react.default.createElement(
@@ -249,14 +301,22 @@ var PisellWalletPassCard = (props) => {
249
301
  /* @__PURE__ */ import_react.default.createElement("div", { className: "actions-dropdown-trigger", onClick: stop }, /* @__PURE__ */ import_react.default.createElement(import_icons.MoreOutlined, { style: { fontSize: 24 } }))
250
302
  );
251
303
  }
252
- if ("expanded" === actions.layout) {
253
- return /* @__PURE__ */ import_react.default.createElement("div", { className: "actions-btn-wrapper" }, actions.detail && actions.detail.visible && /* @__PURE__ */ import_react.default.createElement(
304
+ if ("expanded" === (actions == null ? void 0 : actions.layout) || showStatus) {
305
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "actions-btn-wrapper", ref: actionsWrapperRef }, showStatus && cardStatus && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-status-icon" }, /* @__PURE__ */ import_react.default.createElement(
306
+ import_pisellTags.default,
307
+ {
308
+ style: { borderRadius: "6px", padding: "2px 8px" },
309
+ type: "pill_color",
310
+ color: cardStatusMap[cardStatus]
311
+ },
312
+ (0, import_locales.getText)(`pisell-wallet-pass-card-status-${cardStatus}`)
313
+ )), (actions == null ? void 0 : actions.detail) && ((_c = actions == null ? void 0 : actions.detail) == null ? void 0 : _c.visible) && /* @__PURE__ */ import_react.default.createElement(
254
314
  "div",
255
315
  {
256
316
  className: "pisell-card-actions-detail-btn",
257
317
  onClick: (e) => {
258
318
  stop(e);
259
- onDetail();
319
+ handleDetail();
260
320
  }
261
321
  },
262
322
  /* @__PURE__ */ import_react.default.createElement(
@@ -268,7 +328,7 @@ var PisellWalletPassCard = (props) => {
268
328
  }
269
329
  }
270
330
  )
271
- ), actions.edit && actions.edit.visible && /* @__PURE__ */ import_react.default.createElement(
331
+ ), (actions == null ? void 0 : actions.edit) && ((_d = actions == null ? void 0 : actions.edit) == null ? void 0 : _d.visible) && /* @__PURE__ */ import_react.default.createElement(
272
332
  "div",
273
333
  {
274
334
  className: "pisell-card-actions-edit-btn",
@@ -290,25 +350,57 @@ var PisellWalletPassCard = (props) => {
290
350
  }
291
351
  };
292
352
  const renderNameInfo = () => {
293
- return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-name-wrap" }, showName && name), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-store-name" }, showStoreName && storeName));
353
+ return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-name-wrap", style: dynamicNameWrapStyle }, showName && name), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-store-name" }, showStoreName && storeName));
354
+ };
355
+ const handleEditAmount = (e) => {
356
+ e.stopPropagation();
357
+ if (enableEditAmount && !disabled) {
358
+ setIsKeyboardOpen(true);
359
+ setTempAmount((redeem == null ? void 0 : redeem.toString()) || "");
360
+ }
294
361
  };
362
+ const createOriginalBalanceTitleDom = () => /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item-label" }, formatBalanceTitle ? formatBalanceTitle(balanceTitle, {
363
+ originDom: /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, balanceTitle || (0, import_locales.getText)("pisell-wallet-pass-card-balance")),
364
+ active,
365
+ data: props
366
+ }) : balanceTitle || (0, import_locales.getText)("pisell-wallet-pass-card-balance"), disabled || isMini ? ": " : "");
367
+ const createOriginalBalanceDom = () => /* @__PURE__ */ import_react.default.createElement(
368
+ import_Amount.default,
369
+ {
370
+ className: "pisell-card-amount-item-value",
371
+ useThousandsSeparator: true,
372
+ value: balance,
373
+ showCurrencySymbol: showBalanceSymbol
374
+ }
375
+ );
295
376
  const renderBalanceInfo = () => {
296
- return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-wrap" }, showRedeem && !disabled && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item pisell-wallet-pass-card-redeem" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item-label" }, redeemTitle || (0, import_locales.getText)("pisell-wallet-pass-card-redeem"), isMini ? ": " : ""), /* @__PURE__ */ import_react.default.createElement(
297
- import_Amount.default,
377
+ return /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-wrap" }, showRedeem && !disabled && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item pisell-wallet-pass-card-redeem" }, /* @__PURE__ */ import_react.default.createElement(
378
+ "div",
298
379
  {
299
- className: "pisell-card-amount-item-value",
300
- useThousandsSeparator: true,
301
- value: redeem
302
- }
303
- )), showBalance && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item pisell-wallet-pass-card-balance" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item-label" }, balanceTitle || (0, import_locales.getText)("pisell-wallet-pass-card-balance"), disabled || isMini ? ": " : ""), /* @__PURE__ */ import_react.default.createElement(
380
+ className: "pisell-card-amount-item-label",
381
+ onClick: handleEditAmount
382
+ },
383
+ enableEditAmount && /* @__PURE__ */ import_react.default.createElement(
384
+ import_iconfont.default,
385
+ {
386
+ type: "pisell2-edit-05",
387
+ className: "pisell-card-amount-item-label-icon"
388
+ }
389
+ ),
390
+ /* @__PURE__ */ import_react.default.createElement("span", { className: "pisell-card-amount-item-label-text" }, redeemTitle || (0, import_locales.getText)("pisell-wallet-pass-card-redeem"), isMini ? ": " : "")
391
+ ), /* @__PURE__ */ import_react.default.createElement(
304
392
  import_Amount.default,
305
393
  {
306
394
  className: "pisell-card-amount-item-value",
307
395
  useThousandsSeparator: true,
308
- value: balance,
309
- showCurrencySymbol: showBalanceSymbol
396
+ value: redeem,
397
+ onClick: handleEditAmount
310
398
  }
311
- )), showDiscount && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item-label" }, (0, import_locales.getText)("pisell-discount-card-title")), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item-value" }, discount, "% ", (0, import_locales.getText)("pisell-discount-card-unit")))), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-code-wrap" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-code" }, showCode && !isMini && /* @__PURE__ */ import_react.default.createElement("div", null, code), showValidDate && /* @__PURE__ */ import_react.default.createElement("div", null, (0, import_locales.getText)("pisell-wallet-pass-card-valid-to"), " ", !!validDate ? validDate : (0, import_locales.getText)("pisell-wallet-pass-card-expireDate")))));
399
+ )), showBalance && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item pisell-wallet-pass-card-balance" }, createOriginalBalanceTitleDom(), formatBalance ? formatBalance(balance, {
400
+ originDom: createOriginalBalanceDom(),
401
+ active,
402
+ data: props
403
+ }) : createOriginalBalanceDom()), showDiscount && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item-label" }, (0, import_locales.getText)("pisell-discount-card-title")), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-amount-item-value" }, discount, "% ", (0, import_locales.getText)("pisell-discount-card-unit")))), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-code-wrap" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-code" }, showCode && !isMini && /* @__PURE__ */ import_react.default.createElement("div", null, code), showValidDate && /* @__PURE__ */ import_react.default.createElement("div", null, (0, import_locales.getText)("pisell-wallet-pass-card-valid-to"), " ", !!validDate ? validDate : (0, import_locales.getText)("pisell-wallet-pass-card-expireDate")))));
312
404
  };
313
405
  const getInputItem = (name2) => {
314
406
  if ("validDate" === name2) {
@@ -446,7 +538,30 @@ var PisellWalletPassCard = (props) => {
446
538
  )
447
539
  );
448
540
  };
449
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", { onClick: (e) => e.stopPropagation() }, renderDetailModal(), renderEditModal()), /* @__PURE__ */ import_react.default.createElement(
541
+ const checkedDom = (0, import_react.useMemo)(() => {
542
+ if (!isMini || disabled) return null;
543
+ if (showActiveIcon && !active) {
544
+ return /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-checked-icon" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Radio, { checked: false }));
545
+ }
546
+ return active && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-checked-icon" }, mode === "multiple" ? /* @__PURE__ */ import_react.default.createElement(
547
+ import_icons.CheckCircleFilled,
548
+ {
549
+ style: { fontSize: 20, color: "var(--Primary-600, #7F56D9)" }
550
+ }
551
+ ) : /* @__PURE__ */ import_react.default.createElement(import_antd.Radio, { checked: true }));
552
+ }, [showActiveIcon, isMini, active, disabled]);
553
+ const handleKeyboardClose = () => {
554
+ setIsKeyboardOpen(false);
555
+ setTempAmount("");
556
+ };
557
+ const handleKeyboardChange = (value) => {
558
+ setTempAmount(value.toString() || "");
559
+ };
560
+ const handleKeyboardEnter = () => {
561
+ setIsKeyboardOpen(false);
562
+ onConfirmEditAmount == null ? void 0 : onConfirmEditAmount(tempAmount);
563
+ };
564
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("div", null, renderDetailModal(), renderEditModal()), /* @__PURE__ */ import_react.default.createElement(
450
565
  "div",
451
566
  {
452
567
  className: (0, import_classnames.default)("pisell-wallet-pass-card", {
@@ -461,27 +576,51 @@ var PisellWalletPassCard = (props) => {
461
576
  } : style
462
577
  },
463
578
  renderActions(),
464
- /* @__PURE__ */ import_react.default.createElement(
465
- "div",
466
- { className: "pisell-wallet-pass-card-body" },
467
- renderNameInfo(),
468
- renderBalanceInfo(),
469
- showQrCode && !isMini && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-qr-code" }, /* @__PURE__ */ import_react.default.createElement(import_pisellQrcode.default, { value: qrCode, size: 60 })),
470
- // mini卡片选中模式
471
- isMini && active && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-checked-icon" }, /* @__PURE__ */ import_react.default.createElement(
472
- import_icons.CheckCircleFilled,
473
- {
474
- style: { fontSize: 20, color: "var(--Primary-600, #7F56D9)" }
475
- }
476
- ))
477
- ),
579
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-wallet-pass-card-body" }, renderNameInfo(), renderBalanceInfo(), showQrCode && !isMini && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-qr-code" }, /* @__PURE__ */ import_react.default.createElement(import_pisellQrcode.default, { value: qrCode, size: 60 })), checkedDom),
478
580
  (disabled || disabledReason) && showDisabledReason && /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-card-warn-message" }, /* @__PURE__ */ import_react.default.createElement(
479
581
  import_iconfont.default,
480
582
  {
481
583
  className: "pisell-card-icon",
482
584
  type: "pisell2-alert-circle"
483
585
  }
484
- ), /* @__PURE__ */ import_react.default.createElement("span", null, disabledReason))
586
+ ), /* @__PURE__ */ import_react.default.createElement("span", null, disabledReason)),
587
+ /* @__PURE__ */ import_react.default.createElement("div", { onClick: (e) => e.stopPropagation() }, /* @__PURE__ */ import_react.default.createElement(
588
+ import__.PisellModal,
589
+ {
590
+ open: isKeyboardOpen,
591
+ onCancel: handleKeyboardClose,
592
+ title: null,
593
+ footer: null,
594
+ header: null,
595
+ closable: false,
596
+ mask: false,
597
+ maskClosable: true,
598
+ centered: true,
599
+ width: "auto",
600
+ wrapClassName: "keyboard-modal-wrapper",
601
+ bodyStyle: { padding: 0 },
602
+ styles: {
603
+ content: {
604
+ padding: 0,
605
+ boxShadow: "none",
606
+ background: "transparent"
607
+ },
608
+ body: { padding: 0 }
609
+ }
610
+ },
611
+ /* @__PURE__ */ import_react.default.createElement(
612
+ import__.PisellNumberKeyboard,
613
+ {
614
+ value: tempAmount,
615
+ defaultValue: redeem,
616
+ onChange: handleKeyboardChange,
617
+ onEnter: handleKeyboardEnter,
618
+ allowDecimal: true,
619
+ decimalPlaces: 2,
620
+ selectType: "dark"
621
+ }
622
+ )
623
+ ))
485
624
  ));
486
625
  };
487
626
  var pisellWalletPassCard_default = PisellWalletPassCard;
@@ -25,15 +25,25 @@
25
25
 
26
26
  .actions-btn-wrapper {
27
27
  position: absolute;
28
- top: 16px;
29
- right: 16px;
28
+ top: 0px;
29
+ right: 0px;
30
30
  z-index: 2;
31
31
  display: flex;
32
- gap: 16px;
32
+ gap: 0px;
33
+ z-index: 3;
33
34
 
34
35
  & > div {
35
36
  cursor: pointer;
36
37
  }
38
+ .pisell-card-status-icon {
39
+ padding: 12px 8px;
40
+ }
41
+ .pisell-card-actions-edit-btn {
42
+ padding: 12px 8px 20px;
43
+ }
44
+ .pisell-card-actions-detail-btn {
45
+ padding: 12px 8px 20px;
46
+ }
37
47
  }
38
48
 
39
49
  .pisell-wallet-pass-card-body {
@@ -47,12 +57,13 @@
47
57
  display: flex;
48
58
  flex-direction: column;
49
59
  justify-content: space-between;
60
+ position: relative;
61
+ z-index: 2;
50
62
  }
51
63
 
52
64
  .pisell-card-name-wrap {
53
65
  font-weight: 500;
54
66
  line-height: 20px;
55
-
56
67
  white-space: nowrap;
57
68
  overflow: hidden;
58
69
  text-overflow: ellipsis;
@@ -95,7 +106,7 @@
95
106
  .pisell-card-amount-item-value {
96
107
  font-size: 20px;
97
108
  font-weight: 600;
98
- line-height: 30px;
109
+ line-height: 20px;
99
110
  overflow: hidden;
100
111
  text-overflow: ellipsis;
101
112
  }
@@ -188,10 +199,10 @@
188
199
  .pisell-card-name-wrap {
189
200
  font-weight: 600;
190
201
  font-size: 16px;
191
- max-width: calc(100% - 96px);
192
202
  white-space: nowrap;
193
203
  overflow: hidden;
194
204
  text-overflow: ellipsis;
205
+ min-width: 12px;
195
206
  }
196
207
 
197
208
  .pisell-card-store-name {
@@ -208,14 +219,26 @@
208
219
  visibility: hidden;
209
220
  flex-direction: row;
210
221
  align-items: center;
222
+ margin-bottom: 4px;
223
+
224
+ .pisell-card-amount-item-label-icon {
225
+ font-size: 20px;
226
+ margin-right: 8px;
227
+ }
211
228
 
212
229
  .pisell-card-amount-item-label,
213
230
  .pisell-card-amount-item-value {
214
231
  color: var(--Primary-600, #7f56d9);
215
- font-size: 20px;
216
232
  font-style: normal;
217
233
  font-weight: 600;
218
234
  }
235
+ .pisell-card-amount-item-label {
236
+ font-size: 14px;
237
+ }
238
+ .pisell-card-amount-item-value {
239
+ font-size: 20px;
240
+ text-decoration: underline;
241
+ }
219
242
  }
220
243
 
221
244
  &.active {
@@ -241,6 +264,13 @@
241
264
  position: absolute;
242
265
  bottom: 16px;
243
266
  right: 16px;
267
+ .pisell-lowcode-radio-wrapper {
268
+ margin: 0;
269
+ }
270
+ .pisell-lowcode-radio-inner {
271
+ width: 20px;
272
+ height: 20px;
273
+ }
244
274
  }
245
275
  }
246
276