@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
@@ -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 "./PisellCurrency.less";
7
9
 
8
10
  /**
@@ -46,18 +48,22 @@ export var PisellCurrency = function PisellCurrency(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 避免不必要的重渲染
@@ -10,129 +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: none !important;
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; // Gray/500
70
- font-size: 16px;
71
- }
72
-
73
- // 货币符号:后置(addonAfter)
74
- .pisell-lowcode-input-number-suffix {
75
- margin-left: 8px;
76
- margin-right: 16px;
77
- color: #667085;
78
- font-size: 16px;
79
- }
80
-
81
- // addonBefore / addonAfter 包裹(InputNumber 后置符号可能用 addon 渲染)
82
- .pisell-lowcode-input-number-group-addon {
83
- background-color: #ffffff !important;
84
- border: 1px solid #d0d5dd !important;
85
- color: #344054; // Gray/700
86
- font-size: 16px !important;
87
- padding: 12px 16px !important;
88
-
89
- &:first-child {
90
- border-right: none !important;
91
- border-radius: 8px 0 0 8px !important;
92
- }
93
-
94
- &:last-child {
95
- border-left: none !important;
96
- border-radius: 0 8px 8px 0 !important;
97
- }
98
- }
99
-
100
- // 步进器按钮(controls)
101
- .pisell-lowcode-input-number-handler-wrap {
102
- border-left: 1px solid #d0d5dd !important;
103
- background: #ffffff !important;
104
-
105
- .pisell-lowcode-input-number-handler {
106
- color: #667085;
107
- border-color: #d0d5dd;
108
-
109
- &:hover {
110
- color: #344054;
111
- }
112
-
113
- &.pisell-lowcode-input-number-handler-up-disabled,
114
- &.pisell-lowcode-input-number-handler-down-disabled {
115
- color: #98a2b3;
116
- cursor: not-allowed;
117
- }
118
- }
119
- }
120
-
121
- // 错误状态
122
- &.pisell-lowcode-input-number-status-error {
123
- border-color: #fda29b !important; // Error/300
124
-
125
- &.pisell-lowcode-input-number-focused,
126
- &:focus-within {
127
- border-color: #f97066 !important; // Error/400
128
- box-shadow: 0 0 0 4px #fee4e2 !important; // Error/100
129
- }
130
-
131
- &:hover:not(:focus-within) {
132
- border-color: #f97066 !important;
133
- }
134
- }
135
- }
136
13
  }
137
14
 
138
15
  // 错误提示(与设计体系一致)
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import type { PisellCustomerBriefProps } from './types';
3
+ import './PisellCustomerBrief.less';
4
+ /**
5
+ * PisellCustomerBrief 客户简要卡片
6
+ * 基于 PisellEntityCard,用于展示客户(Customer)实体的核心识别信息与客户级属性。
7
+ * 设计文档:Customer Info (pcl_customerInfon_V1.0)
8
+ *
9
+ * - 无头像时显示默认占位 Avatar
10
+ * - 文本过长按配置省略
11
+ * - Actions 为空时不占位
12
+ *
13
+ * @param props 组件 Props
14
+ */
15
+ export declare function PisellCustomerBrief({ name, subtitle, avatar, email, address, company, date, extendedFields, tags, actions, showActions, showAvatar, showPrimaryText, showSubtitle, showExtended, showTags, density, layout, width, swipeToDelete, onDelete, tagPosition, contentGap, primaryLineClamp, secondaryLineClamp, renderMedia, renderPrimary, renderSubtitle, renderSecondary, renderTags, renderActions, className, style, hoverStyle, activeStyle, disabledStyle, clickable, disabled, onClick, }: PisellCustomerBriefProps): JSX.Element;
@@ -0,0 +1,145 @@
1
+ import React, { useMemo } from 'react';
2
+ import { PisellEntityCard } from "../pisellEntityCard";
3
+ import "./PisellCustomerBrief.less";
4
+
5
+ /**
6
+ * PisellCustomerBrief 客户简要卡片
7
+ * 基于 PisellEntityCard,用于展示客户(Customer)实体的核心识别信息与客户级属性。
8
+ * 设计文档:Customer Info (pcl_customerInfon_V1.0)
9
+ *
10
+ * - 无头像时显示默认占位 Avatar
11
+ * - 文本过长按配置省略
12
+ * - Actions 为空时不占位
13
+ *
14
+ * @param props 组件 Props
15
+ */
16
+ export function PisellCustomerBrief(_ref) {
17
+ var name = _ref.name,
18
+ subtitle = _ref.subtitle,
19
+ avatar = _ref.avatar,
20
+ email = _ref.email,
21
+ address = _ref.address,
22
+ company = _ref.company,
23
+ date = _ref.date,
24
+ _ref$extendedFields = _ref.extendedFields,
25
+ extendedFields = _ref$extendedFields === void 0 ? [] : _ref$extendedFields,
26
+ _ref$tags = _ref.tags,
27
+ tags = _ref$tags === void 0 ? [] : _ref$tags,
28
+ _ref$actions = _ref.actions,
29
+ actions = _ref$actions === void 0 ? [] : _ref$actions,
30
+ _ref$showActions = _ref.showActions,
31
+ showActions = _ref$showActions === void 0 ? false : _ref$showActions,
32
+ _ref$showAvatar = _ref.showAvatar,
33
+ showAvatar = _ref$showAvatar === void 0 ? true : _ref$showAvatar,
34
+ _ref$showPrimaryText = _ref.showPrimaryText,
35
+ showPrimaryText = _ref$showPrimaryText === void 0 ? true : _ref$showPrimaryText,
36
+ _ref$showSubtitle = _ref.showSubtitle,
37
+ showSubtitle = _ref$showSubtitle === void 0 ? true : _ref$showSubtitle,
38
+ _ref$showExtended = _ref.showExtended,
39
+ showExtended = _ref$showExtended === void 0 ? true : _ref$showExtended,
40
+ _ref$showTags = _ref.showTags,
41
+ showTags = _ref$showTags === void 0 ? true : _ref$showTags,
42
+ _ref$density = _ref.density,
43
+ density = _ref$density === void 0 ? 'B2' : _ref$density,
44
+ _ref$layout = _ref.layout,
45
+ layout = _ref$layout === void 0 ? 'horizontal' : _ref$layout,
46
+ _ref$width = _ref.width,
47
+ width = _ref$width === void 0 ? 'content' : _ref$width,
48
+ _ref$swipeToDelete = _ref.swipeToDelete,
49
+ swipeToDelete = _ref$swipeToDelete === void 0 ? false : _ref$swipeToDelete,
50
+ onDelete = _ref.onDelete,
51
+ _ref$tagPosition = _ref.tagPosition,
52
+ tagPosition = _ref$tagPosition === void 0 ? 'below' : _ref$tagPosition,
53
+ contentGap = _ref.contentGap,
54
+ primaryLineClamp = _ref.primaryLineClamp,
55
+ secondaryLineClamp = _ref.secondaryLineClamp,
56
+ renderMedia = _ref.renderMedia,
57
+ renderPrimary = _ref.renderPrimary,
58
+ renderSubtitle = _ref.renderSubtitle,
59
+ renderSecondary = _ref.renderSecondary,
60
+ renderTags = _ref.renderTags,
61
+ renderActions = _ref.renderActions,
62
+ className = _ref.className,
63
+ style = _ref.style,
64
+ hoverStyle = _ref.hoverStyle,
65
+ activeStyle = _ref.activeStyle,
66
+ disabledStyle = _ref.disabledStyle,
67
+ _ref$clickable = _ref.clickable,
68
+ clickable = _ref$clickable === void 0 ? true : _ref$clickable,
69
+ _ref$disabled = _ref.disabled,
70
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
71
+ onClick = _ref.onClick;
72
+ /** 媒体区:头像,无 src 时 EntityCard 会显示默认占位 */
73
+ var media = useMemo(function () {
74
+ if (!showAvatar) return undefined;
75
+ return {
76
+ type: 'avatar',
77
+ src: avatar,
78
+ alt: name,
79
+ size: 40,
80
+ shape: 'circle'
81
+ };
82
+ }, [showAvatar, avatar, name]);
83
+
84
+ /** 扩展信息 → 次级文案列表,顺序:email、address、company、date、extendedFields */
85
+ var secondaryTexts = useMemo(function () {
86
+ if (!showExtended) return [];
87
+ var list = [];
88
+ if (email) list.push({
89
+ text: email
90
+ });
91
+ if (address) list.push({
92
+ text: address
93
+ });
94
+ if (company) list.push({
95
+ text: company
96
+ });
97
+ if (date) list.push({
98
+ text: date
99
+ });
100
+ extendedFields.forEach(function (f) {
101
+ return list.push({
102
+ text: f.text,
103
+ showTooltip: f.showTooltip
104
+ });
105
+ });
106
+ return list;
107
+ }, [showExtended, email, address, company, date, extendedFields]);
108
+ return /*#__PURE__*/React.createElement(PisellEntityCard, {
109
+ className: "pisell-customer-brief-root ".concat(className !== null && className !== void 0 ? className : '').trim(),
110
+ style: style,
111
+ hoverStyle: hoverStyle,
112
+ activeStyle: activeStyle,
113
+ disabledStyle: disabledStyle,
114
+ clickable: clickable,
115
+ disabled: disabled,
116
+ onClick: onClick,
117
+ media: media,
118
+ primaryText: name,
119
+ subtitleText: subtitle,
120
+ secondaryTexts: secondaryTexts,
121
+ tags: tags,
122
+ actions: actions,
123
+ showMedia: showAvatar,
124
+ showPrimaryText: showPrimaryText,
125
+ showSubtitle: showSubtitle,
126
+ showSecondaryText: showExtended,
127
+ showTags: showTags,
128
+ showActions: showActions,
129
+ density: density,
130
+ layout: layout,
131
+ width: width,
132
+ swipeToDelete: swipeToDelete,
133
+ onDelete: onDelete,
134
+ tagPosition: tagPosition,
135
+ contentGap: contentGap,
136
+ primaryLineClamp: primaryLineClamp,
137
+ secondaryLineClamp: secondaryLineClamp,
138
+ renderMedia: renderMedia,
139
+ renderPrimary: renderPrimary,
140
+ renderSubtitle: renderSubtitle,
141
+ renderSecondary: renderSecondary,
142
+ renderTags: renderTags,
143
+ renderActions: renderActions
144
+ });
145
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * PisellCustomerBrief 组件样式
3
+ * 基于 Entity Card 结构,仅做根类名作用域;具体样式由 PisellEntityCard 提供
4
+ */
5
+
6
+ .pisell-customer-brief-root {
7
+ /* 客户卡片根节点,扩展时可在此追加样式 */
8
+ }
@@ -0,0 +1,23 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { PisellCustomerBrief } from './PisellCustomerBrief';
3
+ declare const meta: Meta<typeof PisellCustomerBrief>;
4
+ export default meta;
5
+ declare type Story = StoryObj<typeof PisellCustomerBrief>;
6
+ /** 默认:客户名称 + 副标题 + 扩展信息 + 标签 */
7
+ export declare const Default: Story;
8
+ /** 无头像(默认占位) */
9
+ export declare const NoAvatar: Story;
10
+ /** 有头像 */
11
+ export declare const WithAvatar: Story;
12
+ /** B5 密度:扩展信息多行 */
13
+ export declare const B5Extended: Story;
14
+ /** 带操作区:图标 + 文本 + 按钮 */
15
+ export declare const WithActions: Story;
16
+ /** 竖向布局 */
17
+ export declare const VerticalLayout: Story;
18
+ /** 左滑删除 */
19
+ export declare const SwipeToDelete: Story;
20
+ /** 可点击卡片 */
21
+ export declare const Clickable: Story;
22
+ /** 禁用态 */
23
+ export declare const Disabled: Story;
@@ -0,0 +1,193 @@
1
+ import { EditOutlined } from '@ant-design/icons';
2
+ import { PisellCustomerBrief } from "./PisellCustomerBrief";
3
+ var meta = {
4
+ title: 'Data Display/PisellCustomerBrief',
5
+ component: PisellCustomerBrief,
6
+ tags: ['autodocs'],
7
+ decorators: [function (Story) {
8
+ return /*#__PURE__*/React.createElement("div", {
9
+ style: {
10
+ width: 340
11
+ }
12
+ }, /*#__PURE__*/React.createElement(Story, null));
13
+ }],
14
+ argTypes: {
15
+ density: {
16
+ description: '信息密度',
17
+ control: 'select',
18
+ options: ['B1', 'B2', 'B5', 'B9']
19
+ },
20
+ layout: {
21
+ description: '布局方向',
22
+ control: 'radio',
23
+ options: ['horizontal', 'vertical']
24
+ },
25
+ showAvatar: {
26
+ description: '显示头像',
27
+ control: 'boolean'
28
+ },
29
+ showExtended: {
30
+ description: '显示扩展信息',
31
+ control: 'boolean'
32
+ },
33
+ showTags: {
34
+ description: '显示标签',
35
+ control: 'boolean'
36
+ },
37
+ showActions: {
38
+ description: '显示操作区',
39
+ control: 'boolean'
40
+ }
41
+ },
42
+ args: {
43
+ name: '某某科技有限公司'
44
+ }
45
+ };
46
+ export default meta;
47
+ /** 默认:客户名称 + 副标题 + 扩展信息 + 标签 */
48
+ export var Default = {
49
+ args: {
50
+ name: '某某科技有限公司',
51
+ subtitle: '+86 138 0000 0000',
52
+ email: 'contact@company.com',
53
+ company: '某某科技有限公司',
54
+ tags: [{
55
+ text: 'VIP'
56
+ }, {
57
+ text: '已签约'
58
+ }],
59
+ density: 'B2',
60
+ layout: 'horizontal'
61
+ }
62
+ };
63
+
64
+ /** 无头像(默认占位) */
65
+ export var NoAvatar = {
66
+ args: {
67
+ name: '新客户',
68
+ subtitle: '待完善信息'
69
+ }
70
+ };
71
+
72
+ /** 有头像 */
73
+ export var WithAvatar = {
74
+ args: {
75
+ name: '某某科技有限公司',
76
+ subtitle: '客户编号 C001',
77
+ avatar: 'https://ui-avatars.com/api/?name=Company&background=4a90d9&color=fff&size=40',
78
+ email: 'contact@company.com',
79
+ company: '某某科技有限公司',
80
+ tags: [{
81
+ text: 'VIP'
82
+ }]
83
+ }
84
+ };
85
+
86
+ /** B5 密度:扩展信息多行 */
87
+ export var B5Extended = {
88
+ args: {
89
+ name: '某某科技有限公司',
90
+ subtitle: '+86 138 0000 0000',
91
+ email: 'contact@company.com',
92
+ address: '浙江省杭州市余杭区',
93
+ company: '某某科技有限公司',
94
+ date: '2024-01-15 创建',
95
+ extendedFields: [{
96
+ text: '自定义属性 A'
97
+ }, {
98
+ text: '自定义属性 B',
99
+ showTooltip: true
100
+ }],
101
+ tags: [{
102
+ text: 'VIP'
103
+ }, {
104
+ text: '已签约'
105
+ }],
106
+ density: 'B5',
107
+ layout: 'horizontal'
108
+ }
109
+ };
110
+
111
+ /** 带操作区:图标 + 文本 + 按钮 */
112
+ export var WithActions = {
113
+ args: {
114
+ name: '某某科技有限公司',
115
+ subtitle: 'contact@company.com',
116
+ email: 'contact@company.com',
117
+ company: '某某科技有限公司',
118
+ tags: [{
119
+ text: 'VIP'
120
+ }],
121
+ showActions: true,
122
+ actions: [{
123
+ type: 'icon',
124
+ icon: /*#__PURE__*/React.createElement(EditOutlined, null),
125
+ onClick: function onClick() {
126
+ return console.log('编辑');
127
+ }
128
+ }, {
129
+ type: 'text',
130
+ label: '查看详情',
131
+ onClick: function onClick() {
132
+ return console.log('查看详情');
133
+ }
134
+ }, {
135
+ type: 'button',
136
+ label: '选择',
137
+ onClick: function onClick() {
138
+ return console.log('选择');
139
+ }
140
+ }]
141
+ }
142
+ };
143
+
144
+ /** 竖向布局 */
145
+ export var VerticalLayout = {
146
+ args: {
147
+ name: '某某科技有限公司',
148
+ subtitle: '客户编号 C001',
149
+ avatar: 'https://ui-avatars.com/api/?name=Company&background=4a90d9&color=fff&size=64',
150
+ email: 'contact@company.com',
151
+ company: '某某科技有限公司',
152
+ tags: [{
153
+ text: 'VIP'
154
+ }],
155
+ density: 'B2',
156
+ layout: 'vertical'
157
+ }
158
+ };
159
+
160
+ /** 左滑删除 */
161
+ export var SwipeToDelete = {
162
+ args: {
163
+ name: '某某科技有限公司',
164
+ subtitle: '+86 138 0000 0000',
165
+ email: 'contact@company.com',
166
+ swipeToDelete: true,
167
+ onDelete: function onDelete() {
168
+ return console.log('onDelete');
169
+ }
170
+ }
171
+ };
172
+
173
+ /** 可点击卡片 */
174
+ export var Clickable = {
175
+ args: {
176
+ name: '某某科技有限公司',
177
+ subtitle: '点击整卡',
178
+ email: 'contact@company.com',
179
+ onClick: function onClick() {
180
+ return console.log('卡片被点击');
181
+ }
182
+ }
183
+ };
184
+
185
+ /** 禁用态 */
186
+ export var Disabled = {
187
+ args: {
188
+ name: '某某科技有限公司',
189
+ subtitle: '+86 138 0000 0000',
190
+ email: 'contact@company.com',
191
+ disabled: true
192
+ }
193
+ };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * PisellCustomerBrief 组件导出
3
+ * 客户简要卡片,基于 PisellEntityCard
4
+ */
5
+ export { PisellCustomerBrief } from './PisellCustomerBrief';
6
+ export type { PisellCustomerBriefProps, CustomerBriefExtendedField } from './types';
@@ -0,0 +1,5 @@
1
+ /**
2
+ * PisellCustomerBrief 组件导出
3
+ * 客户简要卡片,基于 PisellEntityCard
4
+ */
5
+ export { PisellCustomerBrief } from "./PisellCustomerBrief";
@@ -0,0 +1,82 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { PisellBaseCardProps } from '../pisellBaseCard/types';
3
+ import type { EntityCardActionItem, EntityCardDensity, EntityCardLayout, EntityCardTagItem, EntityCardWidth } from '../pisellEntityCard/types';
4
+ /**
5
+ * 客户简要卡片扩展字段项(用于 B5/B9 等多行展示)
6
+ * 与 Entity Card 的 secondaryTexts 对应,语义为客户领域
7
+ */
8
+ export interface CustomerBriefExtendedField {
9
+ /** 展示文案(如 Email、Address、Company、Date、自定义属性) */
10
+ text: string;
11
+ /** 是否显示提示图标 */
12
+ showTooltip?: boolean;
13
+ }
14
+ /**
15
+ * PisellCustomerBrief 组件 Props
16
+ * 基于 PisellEntityCard,用于展示客户(Customer)实体的核心识别信息与客户级属性
17
+ * 设计文档:Customer Info (pcl_customerInfon_V1.0)
18
+ */
19
+ export interface PisellCustomerBriefProps extends Pick<PisellBaseCardProps, 'className' | 'style' | 'hoverStyle' | 'activeStyle' | 'disabledStyle' | 'clickable' | 'disabled' | 'onClick'> {
20
+ /** 客户名称(主文案) */
21
+ name: string;
22
+ /** 副标题,与主标题同行(如电话、客户编号) */
23
+ subtitle?: string;
24
+ /** 头像图片地址;不传则显示默认占位 Avatar */
25
+ avatar?: string;
26
+ /** 邮箱 */
27
+ email?: string;
28
+ /** 地址 */
29
+ address?: string;
30
+ /** 公司 */
31
+ company?: string;
32
+ /** 日期类信息(如创建日期、跟进日期) */
33
+ date?: string;
34
+ /** 自定义扩展字段,顺序即展示顺序 */
35
+ extendedFields?: CustomerBriefExtendedField[];
36
+ /** 标签列表(如等级、状态) */
37
+ tags?: EntityCardTagItem[];
38
+ /** 操作项:仅图标 / 图标+文本 / 按钮 */
39
+ actions?: EntityCardActionItem[];
40
+ /** 是否显示操作区 @default false */
41
+ showActions?: boolean;
42
+ /** 是否显示头像 @default true */
43
+ showAvatar?: boolean;
44
+ /** 是否显示主文案 @default true */
45
+ showPrimaryText?: boolean;
46
+ /** 是否显示副标题 @default true */
47
+ showSubtitle?: boolean;
48
+ /** 是否显示扩展信息(email/address/company/date/extendedFields) @default true */
49
+ showExtended?: boolean;
50
+ /** 是否显示标签 @default true */
51
+ showTags?: boolean;
52
+ /** 信息密度 @default 'B2' */
53
+ density?: EntityCardDensity;
54
+ /** 布局方向 @default 'horizontal' */
55
+ layout?: EntityCardLayout;
56
+ /** 卡片宽度 @default 'content' */
57
+ width?: EntityCardWidth;
58
+ /** 是否开启左滑删除 @default false */
59
+ swipeToDelete?: boolean;
60
+ /** 左滑删除回调 */
61
+ onDelete?: () => void;
62
+ /** 标签位置 @default 'below' */
63
+ tagPosition?: 'inline' | 'below';
64
+ /** 内容区间距 */
65
+ contentGap?: number | string;
66
+ /** 主文案行数限制 */
67
+ primaryLineClamp?: number;
68
+ /** 扩展信息行数限制(按密度有默认值) */
69
+ secondaryLineClamp?: number;
70
+ /** 自定义渲染媒体区 */
71
+ renderMedia?: () => ReactNode;
72
+ /** 自定义渲染主文案区 */
73
+ renderPrimary?: () => ReactNode;
74
+ /** 自定义渲染副标题区 */
75
+ renderSubtitle?: () => ReactNode;
76
+ /** 自定义渲染扩展信息区 */
77
+ renderSecondary?: () => ReactNode;
78
+ /** 自定义渲染标签区 */
79
+ renderTags?: () => ReactNode;
80
+ /** 自定义渲染操作区 */
81
+ renderActions?: () => ReactNode;
82
+ }
@@ -0,0 +1 @@
1
+ export {};