@pisell/materials 1.0.1057 → 1.0.1059

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 (202) 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 +3 -3
  6. package/build/lowcode/preview.js +9 -9
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +20 -20
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +23 -23
  11. package/es/components/PisellCards/index.d.ts +3 -0
  12. package/es/components/PisellCards/index.js +3 -1
  13. package/es/components/PisellContactBrief/PisellContactBrief.d.ts +13 -0
  14. package/es/components/PisellContactBrief/PisellContactBrief.js +223 -0
  15. package/es/components/PisellContactBrief/PisellContactBrief.less +192 -0
  16. package/es/components/PisellContactBrief/PisellContactBrief.stories.d.ts +31 -0
  17. package/es/components/PisellContactBrief/PisellContactBrief.stories.js +196 -0
  18. package/es/components/PisellContactBrief/components/ContactFormModal.d.ts +23 -0
  19. package/es/components/PisellContactBrief/components/ContactFormModal.js +177 -0
  20. package/es/components/PisellContactBrief/components/index.d.ts +5 -0
  21. package/es/components/PisellContactBrief/components/index.js +4 -0
  22. package/es/components/PisellContactBrief/index.d.ts +6 -0
  23. package/es/components/PisellContactBrief/index.js +5 -0
  24. package/es/components/PisellContactBrief/locales.d.ts +55 -0
  25. package/es/components/PisellContactBrief/locales.js +54 -0
  26. package/es/components/PisellContactBrief/types.d.ts +82 -0
  27. package/es/components/PisellContactBrief/types.js +1 -0
  28. package/es/components/dataSourceComponents/fields/Tabs/Tabs.less +8 -0
  29. package/es/components/pisellActionPanel/PisellActionPanel.d.ts +13 -0
  30. package/es/components/pisellActionPanel/PisellActionPanel.js +98 -0
  31. package/es/components/pisellActionPanel/PisellActionPanel.less +69 -0
  32. package/es/components/pisellActionPanel/PisellActionPanel.stories.d.ts +19 -0
  33. package/es/components/pisellActionPanel/PisellActionPanel.stories.js +208 -0
  34. package/es/components/pisellActionPanel/index.d.ts +6 -0
  35. package/es/components/pisellActionPanel/index.js +5 -0
  36. package/es/components/pisellActionPanel/types.d.ts +83 -0
  37. package/es/components/pisellActionPanel/types.js +1 -0
  38. package/es/components/pisellBaseCard/PisellBaseCard.d.ts +8 -0
  39. package/es/components/pisellBaseCard/PisellBaseCard.js +96 -0
  40. package/es/components/pisellBaseCard/PisellBaseCard.less +25 -0
  41. package/es/components/pisellBaseCard/PisellBaseCard.stories.d.ts +19 -0
  42. package/es/components/pisellBaseCard/PisellBaseCard.stories.js +99 -0
  43. package/es/components/pisellBaseCard/index.d.ts +5 -0
  44. package/es/components/pisellBaseCard/index.js +4 -0
  45. package/es/components/pisellBaseCard/types.d.ts +45 -0
  46. package/es/components/pisellBaseCard/types.js +1 -0
  47. package/es/components/pisellCurrency/PisellCurrency.js +18 -12
  48. package/es/components/pisellCurrency/PisellCurrency.less +0 -123
  49. package/es/components/pisellCustomerBrief/PisellCustomerBrief.d.ts +15 -0
  50. package/es/components/pisellCustomerBrief/PisellCustomerBrief.js +145 -0
  51. package/es/components/pisellCustomerBrief/PisellCustomerBrief.less +8 -0
  52. package/es/components/pisellCustomerBrief/PisellCustomerBrief.stories.d.ts +23 -0
  53. package/es/components/pisellCustomerBrief/PisellCustomerBrief.stories.js +193 -0
  54. package/es/components/pisellCustomerBrief/index.d.ts +6 -0
  55. package/es/components/pisellCustomerBrief/index.js +5 -0
  56. package/es/components/pisellCustomerBrief/types.d.ts +82 -0
  57. package/es/components/pisellCustomerBrief/types.js +1 -0
  58. package/es/components/pisellEmail/PisellEmail.js +48 -42
  59. package/es/components/pisellEmail/PisellEmail.less +0 -92
  60. package/es/components/pisellEntityCard/PisellEntityCard.d.ts +8 -0
  61. package/es/components/pisellEntityCard/PisellEntityCard.js +474 -0
  62. package/es/components/pisellEntityCard/PisellEntityCard.less +362 -0
  63. package/es/components/pisellEntityCard/PisellEntityCard.stories.d.ts +47 -0
  64. package/es/components/pisellEntityCard/PisellEntityCard.stories.js +450 -0
  65. package/es/components/pisellEntityCard/index.d.ts +5 -0
  66. package/es/components/pisellEntityCard/index.js +4 -0
  67. package/es/components/pisellEntityCard/types.d.ts +144 -0
  68. package/es/components/pisellEntityCard/types.js +1 -0
  69. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.js +32 -4
  70. package/es/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.js +4 -2
  71. package/es/components/pisellFloorMapLayout/components/ViewControls.d.ts +4 -0
  72. package/es/components/pisellFloorMapLayout/components/ViewControls.js +12 -2
  73. package/es/components/pisellFloorMapLayout/types.d.ts +2 -0
  74. package/es/components/pisellLongText/PisellLongText.js +18 -12
  75. package/es/components/pisellLongText/PisellLongText.less +0 -67
  76. package/es/components/pisellLookup/PisellLookup.js +8 -1
  77. package/es/components/pisellMultipleSelect/PisellMultipleSelect.js +14 -6
  78. package/es/components/pisellMultipleSelect/PisellMultipleSelect.less +18 -139
  79. package/es/components/pisellMultipleSelect/components/EditView.js +1 -0
  80. package/es/components/pisellNumber/PisellNumber.js +18 -12
  81. package/es/components/pisellNumber/PisellNumber.less +0 -103
  82. package/es/components/pisellPhone/PisellPhone.js +18 -12
  83. package/es/components/pisellPhone/PisellPhone.less +0 -119
  84. package/es/components/pisellPhone/components/EditView.js +44 -33
  85. package/es/components/pisellPhone/constants/countryCodes.d.ts +1 -0
  86. package/es/components/pisellPhone/constants/countryCodes.js +26 -25
  87. package/es/components/pisellPhone/types.d.ts +2 -2
  88. package/es/components/pisellPhone/utils/countryCodeHelper.d.ts +4 -4
  89. package/es/components/pisellPhone/utils/countryCodeHelper.js +5 -5
  90. package/es/components/pisellRating/PisellRating.js +7 -3
  91. package/es/components/pisellSingleLineText/PisellSingleLineText.js +27 -20
  92. package/es/components/pisellSingleLineText/PisellSingleLineText.less +58 -201
  93. package/es/components/pisellSingleSelect/PisellSingleSelect.js +14 -5
  94. package/es/components/pisellSingleSelect/PisellSingleSelect.less +5 -106
  95. package/es/components/pisellUrl/PisellUrl.js +48 -42
  96. package/es/components/pisellWalletPassCard/index.js +2 -1
  97. package/es/index.d.ts +15 -4
  98. package/es/index.js +8 -4
  99. package/es/theme/pisell-components.d.ts +14 -0
  100. package/es/theme/pisell-components.js +74 -0
  101. package/lib/components/PisellCards/index.d.ts +3 -0
  102. package/lib/components/PisellCards/index.js +3 -1
  103. package/lib/components/PisellContactBrief/PisellContactBrief.d.ts +13 -0
  104. package/lib/components/PisellContactBrief/PisellContactBrief.js +231 -0
  105. package/lib/components/PisellContactBrief/PisellContactBrief.less +192 -0
  106. package/lib/components/PisellContactBrief/PisellContactBrief.stories.d.ts +31 -0
  107. package/lib/components/PisellContactBrief/PisellContactBrief.stories.js +188 -0
  108. package/lib/components/PisellContactBrief/components/ContactFormModal.d.ts +23 -0
  109. package/lib/components/PisellContactBrief/components/ContactFormModal.js +154 -0
  110. package/lib/components/PisellContactBrief/components/index.d.ts +5 -0
  111. package/lib/components/PisellContactBrief/components/index.js +29 -0
  112. package/lib/components/PisellContactBrief/index.d.ts +6 -0
  113. package/lib/components/PisellContactBrief/index.js +29 -0
  114. package/lib/components/PisellContactBrief/locales.d.ts +55 -0
  115. package/lib/components/PisellContactBrief/locales.js +74 -0
  116. package/lib/components/PisellContactBrief/types.d.ts +82 -0
  117. package/lib/components/PisellContactBrief/types.js +17 -0
  118. package/lib/components/dataSourceComponents/fields/Tabs/Tabs.less +8 -0
  119. package/lib/components/pisellActionPanel/PisellActionPanel.d.ts +13 -0
  120. package/lib/components/pisellActionPanel/PisellActionPanel.js +124 -0
  121. package/lib/components/pisellActionPanel/PisellActionPanel.less +69 -0
  122. package/lib/components/pisellActionPanel/PisellActionPanel.stories.d.ts +19 -0
  123. package/lib/components/pisellActionPanel/PisellActionPanel.stories.js +186 -0
  124. package/lib/components/pisellActionPanel/index.d.ts +6 -0
  125. package/lib/components/pisellActionPanel/index.js +29 -0
  126. package/lib/components/pisellActionPanel/types.d.ts +83 -0
  127. package/lib/components/pisellActionPanel/types.js +17 -0
  128. package/lib/components/pisellBaseCard/PisellBaseCard.d.ts +8 -0
  129. package/lib/components/pisellBaseCard/PisellBaseCard.js +124 -0
  130. package/lib/components/pisellBaseCard/PisellBaseCard.less +25 -0
  131. package/lib/components/pisellBaseCard/PisellBaseCard.stories.d.ts +19 -0
  132. package/lib/components/pisellBaseCard/PisellBaseCard.stories.js +107 -0
  133. package/lib/components/pisellBaseCard/index.d.ts +5 -0
  134. package/lib/components/pisellBaseCard/index.js +29 -0
  135. package/lib/components/pisellBaseCard/types.d.ts +45 -0
  136. package/lib/components/pisellBaseCard/types.js +17 -0
  137. package/lib/components/pisellCurrency/PisellCurrency.js +16 -10
  138. package/lib/components/pisellCurrency/PisellCurrency.less +0 -123
  139. package/lib/components/pisellCustomerBrief/PisellCustomerBrief.d.ts +15 -0
  140. package/lib/components/pisellCustomerBrief/PisellCustomerBrief.js +143 -0
  141. package/lib/components/pisellCustomerBrief/PisellCustomerBrief.less +8 -0
  142. package/lib/components/pisellCustomerBrief/PisellCustomerBrief.stories.d.ts +23 -0
  143. package/lib/components/pisellCustomerBrief/PisellCustomerBrief.stories.js +171 -0
  144. package/lib/components/pisellCustomerBrief/index.d.ts +6 -0
  145. package/lib/components/pisellCustomerBrief/index.js +29 -0
  146. package/lib/components/pisellCustomerBrief/types.d.ts +82 -0
  147. package/lib/components/pisellCustomerBrief/types.js +17 -0
  148. package/lib/components/pisellEmail/PisellEmail.js +16 -10
  149. package/lib/components/pisellEmail/PisellEmail.less +0 -92
  150. package/lib/components/pisellEntityCard/PisellEntityCard.d.ts +8 -0
  151. package/lib/components/pisellEntityCard/PisellEntityCard.js +426 -0
  152. package/lib/components/pisellEntityCard/PisellEntityCard.less +362 -0
  153. package/lib/components/pisellEntityCard/PisellEntityCard.stories.d.ts +47 -0
  154. package/lib/components/pisellEntityCard/PisellEntityCard.stories.js +349 -0
  155. package/lib/components/pisellEntityCard/index.d.ts +5 -0
  156. package/lib/components/pisellEntityCard/index.js +29 -0
  157. package/lib/components/pisellEntityCard/types.d.ts +144 -0
  158. package/lib/components/pisellEntityCard/types.js +17 -0
  159. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.js +22 -3
  160. package/lib/components/pisellFloorMapLayout/PisellFloorMapLayout.stories.js +2 -2
  161. package/lib/components/pisellFloorMapLayout/components/ViewControls.d.ts +4 -0
  162. package/lib/components/pisellFloorMapLayout/components/ViewControls.js +11 -1
  163. package/lib/components/pisellFloorMapLayout/types.d.ts +2 -0
  164. package/lib/components/pisellLongText/PisellLongText.js +16 -10
  165. package/lib/components/pisellLongText/PisellLongText.less +0 -67
  166. package/lib/components/pisellLookup/PisellLookup.js +5 -1
  167. package/lib/components/pisellMultipleSelect/PisellMultipleSelect.js +62 -53
  168. package/lib/components/pisellMultipleSelect/PisellMultipleSelect.less +18 -139
  169. package/lib/components/pisellMultipleSelect/components/EditView.js +42 -30
  170. package/lib/components/pisellNumber/PisellNumber.js +16 -10
  171. package/lib/components/pisellNumber/PisellNumber.less +0 -103
  172. package/lib/components/pisellPhone/PisellPhone.js +16 -10
  173. package/lib/components/pisellPhone/PisellPhone.less +0 -119
  174. package/lib/components/pisellPhone/components/EditView.js +40 -24
  175. package/lib/components/pisellPhone/constants/countryCodes.d.ts +1 -0
  176. package/lib/components/pisellPhone/constants/countryCodes.js +24 -24
  177. package/lib/components/pisellPhone/types.d.ts +2 -2
  178. package/lib/components/pisellPhone/utils/countryCodeHelper.d.ts +4 -4
  179. package/lib/components/pisellPhone/utils/countryCodeHelper.js +1 -1
  180. package/lib/components/pisellRating/PisellRating.js +4 -2
  181. package/lib/components/pisellSingleLineText/PisellSingleLineText.js +16 -10
  182. package/lib/components/pisellSingleLineText/PisellSingleLineText.less +58 -201
  183. package/lib/components/pisellSingleSelect/PisellSingleSelect.js +34 -35
  184. package/lib/components/pisellSingleSelect/PisellSingleSelect.less +5 -106
  185. package/lib/components/pisellUrl/PisellUrl.js +16 -10
  186. package/lib/components/pisellWalletPassCard/index.js +1 -1
  187. package/lib/index.d.ts +15 -4
  188. package/lib/index.js +18 -3
  189. package/lib/theme/pisell-components.d.ts +14 -0
  190. package/lib/theme/pisell-components.js +89 -0
  191. package/lowcode/pisell-action-panel/meta.ts +146 -0
  192. package/lowcode/pisell-action-panel/snippets.ts +42 -0
  193. package/lowcode/pisell-base-card/meta.ts +98 -0
  194. package/lowcode/pisell-base-card/snippets.ts +13 -0
  195. package/lowcode/pisell-contact-brief/meta.ts +178 -0
  196. package/lowcode/pisell-contact-brief/snippets.ts +40 -0
  197. package/lowcode/pisell-customer-brief/meta.ts +262 -0
  198. package/lowcode/pisell-customer-brief/snippets.ts +46 -0
  199. package/lowcode/pisell-entity-card/meta.ts +296 -0
  200. package/lowcode/pisell-entity-card/snippets.ts +41 -0
  201. package/lowcode/pisell-floor-map-layout/meta.ts +37 -1
  202. package/package.json +4 -4
@@ -8,6 +8,8 @@ export interface ViewControlsApi {
8
8
  resetTransform: () => void;
9
9
  /** 区域定位,可能由主组件基于 items 计算后封装 */
10
10
  fitBounds?: () => void;
11
+ /** 切换全屏(requestFullscreen / exitFullscreen) */
12
+ toggleFullscreen?: () => void;
11
13
  }
12
14
  export interface ViewControlsProps {
13
15
  /** 控制 API */
@@ -16,6 +18,8 @@ export interface ViewControlsProps {
16
18
  config?: FloorMapControlsConfig;
17
19
  /** 当前缩放比例(1 = 100%),用于 Stepper 展示 */
18
20
  scale?: number;
21
+ /** 当前是否处于全屏 */
22
+ isFullscreen?: boolean;
19
23
  className?: string;
20
24
  }
21
25
  export declare function ViewControls(props: ViewControlsProps): JSX.Element;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import React from 'react';
5
5
  import classNames from 'classnames';
6
- import { MinusOutlined, PlusOutlined } from '@ant-design/icons';
6
+ import { MinusOutlined, PlusOutlined, FullscreenOutlined, FullscreenExitOutlined } from '@ant-design/icons';
7
7
  import "./ViewControls.less";
8
8
  var PREFIX = 'pisell-floor-map-layout';
9
9
 
@@ -15,10 +15,13 @@ export function ViewControls(props) {
15
15
  config = _props$config === void 0 ? {} : _props$config,
16
16
  _props$scale = props.scale,
17
17
  scale = _props$scale === void 0 ? 1 : _props$scale,
18
+ _props$isFullscreen = props.isFullscreen,
19
+ isFullscreen = _props$isFullscreen === void 0 ? false : _props$isFullscreen,
18
20
  className = props.className;
19
21
  var showZoom = config.showZoom !== false;
20
22
  var showReset = config.showReset === true;
21
23
  var showFitBounds = config.showFitBounds === true;
24
+ var showFullscreen = config.showFullscreen === true;
22
25
  var scalePercent = Math.round(scale * 100);
23
26
  return /*#__PURE__*/React.createElement("div", {
24
27
  className: classNames("".concat(PREFIX, "-view-controls"), className)
@@ -54,6 +57,13 @@ export function ViewControls(props) {
54
57
  return api.fitBounds();
55
58
  },
56
59
  "aria-label": "\u533A\u57DF\u5B9A\u4F4D"
57
- }, "\u229E"));
60
+ }, "\u229E"), showFullscreen && api.toggleFullscreen && /*#__PURE__*/React.createElement("button", {
61
+ type: "button",
62
+ className: "".concat(PREFIX, "-view-controls-btn"),
63
+ onClick: function onClick() {
64
+ return api.toggleFullscreen();
65
+ },
66
+ "aria-label": isFullscreen ? '退出全屏' : '全屏'
67
+ }, isFullscreen ? /*#__PURE__*/React.createElement(FullscreenExitOutlined, null) : /*#__PURE__*/React.createElement(FullscreenOutlined, null)));
58
68
  }
59
69
  export default ViewControls;
@@ -92,6 +92,8 @@ export interface FloorMapControlsConfig {
92
92
  showReset?: boolean;
93
93
  /** 是否显示区域定位(fitBounds)按钮,默认 false */
94
94
  showFitBounds?: boolean;
95
+ /** 是否显示全屏按钮,默认 false */
96
+ showFullscreen?: boolean;
95
97
  }
96
98
  /**
97
99
  * 布局模式(规则网格 vs 完全自由坐标)
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
+ import { ConfigProvider } from 'antd';
2
3
  import { getDisplayState } from '@pisell/utils';
3
4
  import ReadOnlyView from "./components/ReadOnlyView";
4
5
  import EditView from "./components/EditView";
5
6
  import DisabledView from "./components/DisabledView";
7
+ import { getPisellComponentsThemeConfig } from "../../theme/pisell-components";
6
8
  import "./PisellLongText.less";
7
9
 
8
10
  /**
@@ -46,18 +48,22 @@ export var PisellLongText = function PisellLongText(props) {
46
48
 
47
49
  // 计算显示状态
48
50
  var displayState = getDisplayState(mode, disabled);
49
-
50
- // 根据状态渲染对应子组件
51
- switch (displayState) {
52
- case 'read':
53
- return /*#__PURE__*/React.createElement(ReadOnlyView, props);
54
- case 'edit':
55
- return /*#__PURE__*/React.createElement(EditView, props);
56
- case 'disabled':
57
- return /*#__PURE__*/React.createElement(DisabledView, props);
58
- default:
59
- return null;
60
- }
51
+ var render = function render() {
52
+ switch (displayState) {
53
+ case 'read':
54
+ return /*#__PURE__*/React.createElement(ReadOnlyView, props);
55
+ case 'edit':
56
+ return /*#__PURE__*/React.createElement(EditView, props);
57
+ case 'disabled':
58
+ return /*#__PURE__*/React.createElement(DisabledView, props);
59
+ default:
60
+ return null;
61
+ }
62
+ };
63
+ var theme = getPisellComponentsThemeConfig();
64
+ return /*#__PURE__*/React.createElement(ConfigProvider, {
65
+ theme: theme
66
+ }, render());
61
67
  };
62
68
 
63
69
  // 性能优化:使用 memo 避免不必要的重渲染
@@ -7,73 +7,6 @@
7
7
  &-edit {
8
8
  position: relative;
9
9
  width: 100%;
10
-
11
- // TextArea 样式(Figma 设计规范,覆盖时使用 pisell-lowcode-xxx)
12
- .pisell-lowcode-input {
13
- // 基础样式
14
- font-size: 16px !important;
15
- line-height: 24px !important;
16
-
17
- // 边框和圆角
18
- border-radius: 8px !important;
19
- border: 1px solid #d0d5dd !important; // Gray/300
20
-
21
- // 内边距(Figma: 垂直 12px,水平 14px)
22
- padding: 12px 14px !important;
23
- min-height: 80px !important; // 多行最小高度,由 rows 进一步控制
24
-
25
- // 颜色
26
- color: #101828 !important; // Gray/900
27
- background-color: #ffffff !important;
28
-
29
- &::placeholder {
30
- color: #667085 !important; // Gray/500
31
- }
32
-
33
- // 聚焦态
34
- &:focus,
35
- &:focus-within {
36
- border-color: #d6bbfb !important; // Primary/300
37
- box-shadow: 0 0 0 4px #f4ebff !important; // Primary/100
38
- outline: none !important;
39
- }
40
-
41
- // Hover 态
42
- &:hover:not(:focus):not(:focus-within):not([disabled]) {
43
- border-color: #b692f6 !important; // Primary/400
44
- }
45
-
46
- // 禁用态
47
- &[disabled],
48
- &.pisell-lowcode-input-disabled {
49
- background-color: #f9fafb !important; // Gray/50
50
- color: #98a2b3 !important; // Gray/400
51
- border-color: #d0d5dd !important;
52
- cursor: not-allowed !important;
53
- }
54
- }
55
-
56
- // 字数统计样式(TextArea showCount)
57
- .pisell-lowcode-input-data-count,
58
- .pisell-lowcode-input-show-count-suffix {
59
- color: #667085 !important; // Gray/500
60
- font-size: 14px !important;
61
- }
62
-
63
- // 错误状态
64
- .pisell-lowcode-input-status-error {
65
- border-color: #fda29b !important; // Error/300
66
-
67
- &:focus,
68
- &:focus-within {
69
- border-color: #f97066 !important; // Error/400
70
- box-shadow: 0 0 0 4px #fee4e2 !important; // Error/100
71
- }
72
-
73
- &:hover:not(:focus):not(:focus-within) {
74
- border-color: #f97066 !important; // Error/400
75
- }
76
- }
77
10
  }
78
11
 
79
12
  &-error {
@@ -428,15 +428,22 @@ var PisellLookupComponent = /*#__PURE__*/forwardRef(function (props, ref) {
428
428
 
429
429
  /**
430
430
  * 处理扫码
431
+ * 标记为手动操作,避免 setKeyword 触发的重渲染时防抖 effect 仍用旧的 debouncedKeyword('') 再触发一次 onSearch('')
431
432
  */
432
433
  var handleScan = useCallback(function (code) {
434
+ // 标记为手动操作,阻止实时搜索防抖在本次更新后误触 onSearch('')
435
+ isManualSelectRef.current = true;
433
436
  // 将扫码结果填入关键词
434
437
  setKeyword(code);
435
438
  // 触发搜索并保存历史记录
436
439
  handleConfirmSearch(code);
437
440
  // 触发扫码回调
438
441
  onScan === null || onScan === void 0 || onScan(code);
439
- }, [setKeyword, handleConfirmSearch, onScan]);
442
+ // 延迟重置标记(与 handleClear 一致,等待防抖周期结束)
443
+ setTimeout(function () {
444
+ isManualSelectRef.current = false;
445
+ }, debounceTime + 100);
446
+ }, [setKeyword, handleConfirmSearch, onScan, debounceTime]);
440
447
 
441
448
  /**
442
449
  * 处理选择辅助项(历史/联想词/热门搜索)
@@ -5,12 +5,13 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
5
5
  */
6
6
 
7
7
  import React, { forwardRef, useRef, useImperativeHandle, useCallback } from 'react';
8
- import { message } from 'antd';
8
+ import { ConfigProvider, message } from 'antd';
9
9
  import { useMultipleSelectState } from '@pisell/utils';
10
10
  import EditView from "./components/EditView";
11
11
  import DisabledView from "./components/DisabledView";
12
12
  import ReadOnlyView from "./components/ReadOnlyView";
13
13
  import "./PisellMultipleSelect.less";
14
+ import { getPisellComponentsThemeConfig } from "../../theme/pisell-components";
14
15
  var PisellMultipleSelect = /*#__PURE__*/forwardRef(function (props, ref) {
15
16
  var value = props.value,
16
17
  defaultValue = props.defaultValue,
@@ -78,22 +79,29 @@ var PisellMultipleSelect = /*#__PURE__*/forwardRef(function (props, ref) {
78
79
  }
79
80
  };
80
81
  });
82
+ var theme = getPisellComponentsThemeConfig();
81
83
 
82
84
  // 根据不同状态渲染不同视图
83
85
  if (disabled) {
84
- return /*#__PURE__*/React.createElement(DisabledView, _extends({}, props, {
86
+ return /*#__PURE__*/React.createElement(ConfigProvider, {
87
+ theme: theme
88
+ }, /*#__PURE__*/React.createElement(DisabledView, _extends({}, props, {
85
89
  ref: selectRef
86
- }));
90
+ })));
87
91
  }
88
92
  if (readOnly) {
89
- return /*#__PURE__*/React.createElement(ReadOnlyView, props);
93
+ return /*#__PURE__*/React.createElement(ConfigProvider, {
94
+ theme: theme
95
+ }, /*#__PURE__*/React.createElement(ReadOnlyView, props));
90
96
  }
91
- return /*#__PURE__*/React.createElement(EditView, _extends({}, props, {
97
+ return /*#__PURE__*/React.createElement(ConfigProvider, {
98
+ theme: theme
99
+ }, /*#__PURE__*/React.createElement(EditView, _extends({}, props, {
92
100
  value: state.value,
93
101
  state: state,
94
102
  onChangeInternal: handleChange,
95
103
  ref: selectRef
96
- }));
104
+ })));
97
105
  });
98
106
  PisellMultipleSelect.displayName = 'PisellMultipleSelect';
99
107
  export default PisellMultipleSelect;
@@ -4,7 +4,6 @@
4
4
  */
5
5
 
6
6
  .pisell-multiple-select {
7
- height: 48px !important;
8
7
  width: 100%;
9
8
 
10
9
  .pisell-lowcode-select-clear {
@@ -22,88 +21,11 @@
22
21
  }
23
22
  }
24
23
 
25
- // Select 触发器(Figma 设计规范,与 SingleSelect / Input 体系一致)
26
- .pisell-lowcode-select:not(.pisell-lowcode-select-disabled):not(.pisell-lowcode-select-customize-input) {
27
- .pisell-lowcode-select-selector {
28
- font-size: 16px !important;
29
- line-height: 24px !important;
30
- border-radius: 8px !important;
31
- border: 1px solid #d0d5dd !important; // Gray/300
32
- padding: 12px 16px !important;
33
- min-height: 48px !important;
34
- color: #101828 !important; // Gray/900
35
- background-color: #ffffff !important;
36
- }
37
-
38
- // 多选模式:内边距适配标签,高度保持 48px
39
- &.pisell-lowcode-select-multiple .pisell-lowcode-select-selector {
40
- padding: 6px 16px !important;
41
- min-height: 48px !important;
42
- }
43
-
44
- &.pisell-lowcode-select-open .pisell-lowcode-select-selector {
45
- border-color: #d6bbfb !important; // Primary/300
46
- box-shadow: 0 0 0 4px #f4ebff !important; // Primary/100
47
- }
48
-
49
- &:not(.pisell-lowcode-select-open):not(.pisell-lowcode-select-disabled)
50
- .pisell-lowcode-select-selector:hover {
51
- border-color: #b692f6 !important; // Primary/400
52
- }
53
-
54
- &.pisell-lowcode-select-disabled .pisell-lowcode-select-selector {
55
- background-color: #f9fafb !important; // Gray/50
56
- color: #98a2b3 !important; // Gray/400
57
- border-color: #d0d5dd !important;
58
- cursor: not-allowed !important;
59
- }
60
-
61
- .pisell-lowcode-select-selection-placeholder {
62
- color: #667085 !important; // Gray/500
63
- }
64
-
65
- .pisell-lowcode-select-arrow {
66
- color: #667085;
67
- }
68
-
69
-
70
- // 多选标签(选择后展示的 item)高度 36px
71
- .pisell-lowcode-select-selection-item {
72
- border-radius: 6px !important;
73
- padding: 0 10px !important;
74
- margin-inline-end: 4px !important;
75
- height: 36px !important;
76
- min-height: 36px !important;
77
- line-height: 36px !important;
78
-
79
- &-content {
80
- line-height: 36px !important;
81
- }
82
-
83
- &-remove {
84
- margin-left: 4px !important;
85
-
86
- &:hover {
87
- background-color: transparent !important;
88
- }
89
- }
90
- }
91
- }
92
-
93
24
  &-wrapper {
94
25
  display: flex;
95
26
  flex-direction: column;
96
27
  gap: 8px;
97
28
  position: relative;
98
-
99
- // 下拉选项高度 48px(通过 getPopupContainer 挂到 wrapper 内,无需 :global)
100
- .pisell-multiple-select-dropdown .pisell-lowcode-select-item {
101
- min-height: 48px !important;
102
- height: 48px !important;
103
- line-height: 48px !important;
104
- padding: 0 16px !important;
105
- font-size: 16px !important;
106
- }
107
29
  }
108
30
 
109
31
  &-label {
@@ -147,42 +69,25 @@
147
69
  margin-left: 8px;
148
70
  }
149
71
 
150
- // 错误状态(Figma 设计体系 Error 色)
151
- &-error {
152
- .pisell-lowcode-select .pisell-lowcode-select-selector {
153
- border-color: #fda29b !important; // Error/300
154
-
155
- &:hover {
156
- border-color: #f97066 !important; // Error/400
157
- }
158
- }
159
-
160
- .pisell-lowcode-select.pisell-lowcode-select-focused .pisell-lowcode-select-selector,
161
- .pisell-lowcode-select.pisell-lowcode-select-open .pisell-lowcode-select-selector {
162
- border-color: #f97066 !important; // Error/400
163
- box-shadow: 0 0 0 4px #fee4e2 !important; // Error/100
164
- }
165
- }
166
-
167
72
  // 聚合标签(maxTagPlaceholder)
168
- &-more-tag {
169
- display: inline-flex;
170
- align-items: center;
171
- background-color: #eaecf0;
172
- color: #344054; // Gray/700
173
- border: none;
174
- border-radius: 6px;
175
- padding: 6px 10px;
176
- font-size: 16px;
177
- font-weight: 500;
178
- line-height: 24px;
179
- cursor: pointer;
180
- transition: background-color 0.2s ease;
181
-
182
- &:hover {
183
- background-color: #d0d5dd; // Gray/300
184
- }
185
- }
73
+ //&-more-tag {
74
+ // display: inline-flex;
75
+ // align-items: center;
76
+ // background-color: #eaecf0;
77
+ // color: #344054; // Gray/700
78
+ // border: none;
79
+ // border-radius: 6px;
80
+ // padding: 6px 10px;
81
+ // font-size: 16px;
82
+ // font-weight: 500;
83
+ // line-height: 24px;
84
+ // cursor: pointer;
85
+ // transition: background-color 0.2s ease;
86
+ //
87
+ // &:hover {
88
+ // background-color: #d0d5dd; // Gray/300
89
+ // }
90
+ //}
186
91
 
187
92
  // 只读状态
188
93
  &-readonly {
@@ -228,32 +133,6 @@
228
133
  }
229
134
  }
230
135
 
231
- // 下拉内搜索框(在 dropdown 内)
232
- .pisell-select-search-wrapper {
233
- padding: 6px;
234
- border-bottom: 1px solid #eaecf0;
235
- }
236
-
237
- .pisell-select-search-input {
238
- padding: 9px 10px !important;
239
- font-size: 14px;
240
-
241
- .pisell-lowcode-input {
242
- font-size: 14px !important;
243
- color: #344054 !important;
244
-
245
- &::placeholder {
246
- color: #98a2b3 !important;
247
- font-size: 12px !important;
248
- }
249
- }
250
-
251
- &:hover,
252
- &:focus-within {
253
- background-color: transparent !important;
254
- }
255
- }
256
-
257
136
  @keyframes pisell-multiple-select-fadeIn {
258
137
  from {
259
138
  opacity: 0;
@@ -152,6 +152,7 @@ var EditView = /*#__PURE__*/forwardRef(function (props, ref) {
152
152
  })
153
153
  }, label), /*#__PURE__*/React.createElement(Select, _extends({}, restProps, {
154
154
  ref: ref,
155
+ open: true,
155
156
  mode: "multiple",
156
157
  value: value,
157
158
  options: filteredAntdOptions,
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
+ import { ConfigProvider } from 'antd';
2
3
  import { getDisplayState } from '@pisell/utils';
3
4
  import ReadOnlyView from "./components/ReadOnlyView";
4
5
  import EditView from "./components/EditView";
5
6
  import DisabledView from "./components/DisabledView";
7
+ import { getPisellComponentsThemeConfig } from "../../theme/pisell-components";
6
8
  import "./PisellNumber.less";
7
9
 
8
10
  /**
@@ -49,18 +51,22 @@ export var PisellNumber = function PisellNumber(props) {
49
51
 
50
52
  // 计算显示状态
51
53
  var displayState = getDisplayState(mode, disabled);
52
-
53
- // 根据状态渲染对应子组件
54
- switch (displayState) {
55
- case 'read':
56
- return /*#__PURE__*/React.createElement(ReadOnlyView, props);
57
- case 'edit':
58
- return /*#__PURE__*/React.createElement(EditView, props);
59
- case 'disabled':
60
- return /*#__PURE__*/React.createElement(DisabledView, props);
61
- default:
62
- return null;
63
- }
54
+ var render = function render() {
55
+ switch (displayState) {
56
+ case 'read':
57
+ return /*#__PURE__*/React.createElement(ReadOnlyView, props);
58
+ case 'edit':
59
+ return /*#__PURE__*/React.createElement(EditView, props);
60
+ case 'disabled':
61
+ return /*#__PURE__*/React.createElement(DisabledView, props);
62
+ default:
63
+ return null;
64
+ }
65
+ };
66
+ var theme = getPisellComponentsThemeConfig();
67
+ return /*#__PURE__*/React.createElement(ConfigProvider, {
68
+ theme: theme
69
+ }, render());
64
70
  };
65
71
 
66
72
  // 性能优化:使用 memo 避免不必要的重渲染
@@ -10,109 +10,6 @@
10
10
  &-edit {
11
11
  position: relative;
12
12
  width: 100%;
13
-
14
- // InputNumber 外层(Figma 设计规范)
15
- .pisell-lowcode-input-number {
16
- width: 100% !important;
17
- font-size: 16px !important;
18
- line-height: 24px !important;
19
- border-radius: 8px !important;
20
- border: 1px solid #d0d5dd !important; // Gray/300
21
- color: #101828 !important; // Gray/900
22
- background-color: #ffffff !important;
23
-
24
- // 内层 input
25
- .pisell-lowcode-input-number-input {
26
- height: 46px !important; // 48 - 2px border
27
- padding: 12px 16px !important;
28
- font-size: 16px !important;
29
- line-height: 24px !important;
30
- color: #101828 !important;
31
- background: transparent !important;
32
- border: none !important;
33
-
34
- &::placeholder {
35
- color: #667085 !important; // Gray/500
36
- }
37
- }
38
-
39
- // 聚焦态
40
- &.pisell-lowcode-input-number-focused,
41
- &:focus,
42
- &:focus-within {
43
- border-color: #d6bbfb !important; // Primary/300
44
- box-shadow: 0 0 0 4px #f4ebff !important; // Primary/100
45
- outline: none !important;
46
- }
47
-
48
- // Hover 态
49
- &:hover:not(.pisell-lowcode-input-number-disabled):not(.pisell-lowcode-input-number-focused) {
50
- border-color: #b692f6 !important; // Primary/400
51
- }
52
-
53
- // 禁用态
54
- &.pisell-lowcode-input-number-disabled {
55
- background-color: #f9fafb !important; // Gray/50
56
- border-color: #d0d5dd !important;
57
- cursor: not-allowed !important;
58
-
59
- .pisell-lowcode-input-number-input {
60
- color: #98a2b3 !important; // Gray/400
61
- cursor: not-allowed !important;
62
- }
63
- }
64
-
65
- // 前后缀
66
- .pisell-lowcode-input-number-prefix {
67
- margin-right: 8px;
68
- margin-left: 16px;
69
- color: #667085;
70
- font-size: 16px;
71
- }
72
-
73
- .pisell-lowcode-input-number-suffix {
74
- margin-left: 8px;
75
- margin-right: 16px;
76
- color: #667085;
77
- font-size: 16px;
78
- }
79
-
80
- // 步进器按钮(controls)
81
- .pisell-lowcode-input-number-handler-wrap {
82
- border-left: 1px solid #d0d5dd !important;
83
- background: #ffffff !important;
84
-
85
- .pisell-lowcode-input-number-handler {
86
- color: #667085;
87
- border-color: #d0d5dd;
88
-
89
- &:hover {
90
- color: #344054;
91
- }
92
-
93
- &.pisell-lowcode-input-number-handler-up-disabled,
94
- &.pisell-lowcode-input-number-handler-down-disabled {
95
- color: #98a2b3;
96
- cursor: not-allowed;
97
- }
98
- }
99
- }
100
-
101
- // 错误状态
102
- &.pisell-lowcode-input-number-status-error {
103
- border-color: #fda29b !important; // Error/300
104
-
105
- &.pisell-lowcode-input-number-focused,
106
- &:focus-within {
107
- border-color: #f97066 !important; // Error/400
108
- box-shadow: 0 0 0 4px #fee4e2 !important; // Error/100
109
- }
110
-
111
- &:hover:not(:focus-within) {
112
- border-color: #f97066 !important;
113
- }
114
- }
115
- }
116
13
  }
117
14
 
118
15
  // 错误提示(与设计体系一致)
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
+ import { ConfigProvider } from 'antd';
2
3
  import { getDisplayState } from '@pisell/utils';
3
4
  import ReadOnlyView from "./components/ReadOnlyView";
4
5
  import EditView from "./components/EditView";
5
6
  import DisabledView from "./components/DisabledView";
7
+ import { getPisellComponentsThemeConfig } from "../../theme/pisell-components";
6
8
  import "./PisellPhone.less";
7
9
 
8
10
  /**
@@ -43,18 +45,22 @@ export var PisellPhone = function PisellPhone(props) {
43
45
 
44
46
  // 计算显示状态
45
47
  var displayState = getDisplayState(mode, disabled);
46
-
47
- // 根据状态渲染对应子组件
48
- switch (displayState) {
49
- case 'read':
50
- return /*#__PURE__*/React.createElement(ReadOnlyView, props);
51
- case 'edit':
52
- return /*#__PURE__*/React.createElement(EditView, props);
53
- case 'disabled':
54
- return /*#__PURE__*/React.createElement(DisabledView, props);
55
- default:
56
- return null;
57
- }
48
+ var render = function render() {
49
+ switch (displayState) {
50
+ case 'read':
51
+ return /*#__PURE__*/React.createElement(ReadOnlyView, props);
52
+ case 'edit':
53
+ return /*#__PURE__*/React.createElement(EditView, props);
54
+ case 'disabled':
55
+ return /*#__PURE__*/React.createElement(DisabledView, props);
56
+ default:
57
+ return null;
58
+ }
59
+ };
60
+ var theme = getPisellComponentsThemeConfig();
61
+ return /*#__PURE__*/React.createElement(ConfigProvider, {
62
+ theme: theme
63
+ }, render());
58
64
  };
59
65
 
60
66
  // 性能优化:使用 memo 避免不必要的重渲染