@next-bricks/presentational-bricks 1.339.1 → 1.339.2

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.
@@ -0,0 +1,240 @@
1
+ ---
2
+ tagName: presentational-bricks.brick-value-mapping
3
+ displayName: WrappedPresentationalBricksBrickValueMapping
4
+ description: 适用于将基本类型的数值转换成有意义的文本进行展示
5
+ category: data-transform
6
+ source: "@next-bricks/presentational-bricks"
7
+ ---
8
+
9
+ # presentational-bricks.brick-value-mapping
10
+
11
+ > 适用于将基本类型的数值转换成有意义的文本进行展示
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ----------------- | ---------------------------------------------------- | ---- | ------- | ----------------------------------------------------------------- |
17
+ | value | `string \| number` | - | - | 原始值 |
18
+ | fields | `{ value: string; }` | - | - | [已废弃]字段映射, 跟 dataSource 一起使用来获得运行时 value |
19
+ | mapping | `Record< string \| number, MappingValue >` | 是 | - | 映射规则 |
20
+ | showTagCircle | `boolean` | - | - | 显示文字旁边的小圈圈,按照平台规范通常表示状态的标签可设置为 true |
21
+ | dataSource | `Record<string, any>` | - | - | 替代 `data` 属性,click 事件时传出的数据 |
22
+ | triggerClickEvent | `boolean` | - | `false` | 是否触发点击事件 |
23
+ | isTextEllipsis | `boolean` | - | `false` | 文案超出时是否隐藏溢出文本并在鼠标悬停时显示 Tooltip |
24
+ | link | `LinkProps` | - | - | 配置跳转链接,在 `triggerClickEvent` 为 false 生效 |
25
+ | data | `any` | - | - | [已废弃]可用于接收 useBrick 传递过来的数据 |
26
+
27
+ ## Events
28
+
29
+ | 事件 | detail | 说明 |
30
+ | ------------------------- | ---------------------------------------- | ----------------------------------------------------- |
31
+ | brick-value-mapping.click | `{ data: any; value: string \| number }` | 点击事件,需设置 `triggerClickEvent` 为 true 才会触发 |
32
+
33
+ ## Memo
34
+
35
+ ### 注意
36
+
37
+ > 如果需要区间的条件规则映射,比如大于、小于等,请使用[条件展示](developers/brick-book/brick/presentational-bricks.brick-conditional-display)
38
+
39
+ ### MappingValue
40
+
41
+ ```typescript
42
+ interface MappingValue {
43
+ text?: string;
44
+ color?: Color;
45
+ icon?: MenuIcon;
46
+ iconSize?: number;
47
+ }
48
+ ```
49
+
50
+ ### LinkProps
51
+
52
+ ```typescript
53
+ interface LinkProps {
54
+ to?: string;
55
+ href?: string;
56
+ innerRef?: string;
57
+ replace?: boolean;
58
+ target?: string;
59
+ }
60
+ ```
61
+
62
+ ### 映射规则说明
63
+
64
+ 映射支持正则匹配,匹配规则如下:
65
+
66
+ 1. 首先以 `value` 为 key 来获取映射,若成功匹配则使用该规则来展示;若不成功,则走下一步
67
+ 2. 将 `映射规则` 中的 key 作为正则,来匹配 `value`, 使用成功匹配的第一个规则
68
+
69
+ 例如
70
+
71
+ ```typescript
72
+ // 以下将展示 `hi`
73
+ const mapping = { hello: { text: "hi" }, ".*": { text: "anything else" } };
74
+ const value = "hello";
75
+
76
+ // 以下将展示 `anything else`
77
+ const mapping = {
78
+ www: { text: "world wide web" },
79
+ ".*": { text: "anything else" },
80
+ };
81
+ const value = "hello";
82
+ ```
83
+
84
+ ## Examples
85
+
86
+ ### 基本用法 - 映射为多彩标签(带圆点)
87
+
88
+ 使用 `showTagCircle` 显示状态圆点,通过 `mapping` 将不同值映射为对应的颜色标签。
89
+
90
+ ```yaml
91
+ brick: presentational-bricks.brick-value-mapping
92
+ properties:
93
+ showTagCircle: true
94
+ value: success
95
+ mapping:
96
+ failed:
97
+ color: red
98
+ text: 失败
99
+ success:
100
+ color: green
101
+ text: 正常
102
+ warning:
103
+ color: orange
104
+ text: 异常
105
+ ```
106
+
107
+ ### 触发点击事件(填充色标签)
108
+
109
+ 设置 `triggerClickEvent` 为 true 并监听 `brick-value-mapping.click` 事件,同时通过 `dataSource` 传递附加数据。
110
+
111
+ ```yaml
112
+ brick: presentational-bricks.brick-value-mapping
113
+ properties:
114
+ triggerClickEvent: true
115
+ showTagCircle: false
116
+ value: warning
117
+ dataSource:
118
+ id: 1001
119
+ name: 示例数据
120
+ mapping:
121
+ warning:
122
+ color: red-inverse
123
+ text: 紧急
124
+ safe:
125
+ color: green-inverse
126
+ text: 正常
127
+ events:
128
+ brick-value-mapping.click:
129
+ - action: console.log
130
+ args:
131
+ - "<% EVENT.detail %>"
132
+ ```
133
+
134
+ ### 映射为 icon 加文字
135
+
136
+ 映射结果可以包含图标和文字,通过 `icon` 和 `text` 字段配置。
137
+
138
+ ```yaml
139
+ brick: presentational-bricks.brick-value-mapping
140
+ properties:
141
+ value: 1
142
+ mapping:
143
+ 1:
144
+ text: mapping-text
145
+ color: green
146
+ icon:
147
+ lib: fa
148
+ icon: link
149
+ ```
150
+
151
+ ### 仅映射为 icon(自定义图标大小)
152
+
153
+ 不设置 `text` 时仅展示图标,通过 `iconSize` 自定义图标大小。
154
+
155
+ ```yaml
156
+ brick: presentational-bricks.brick-value-mapping
157
+ properties:
158
+ value: 2
159
+ mapping:
160
+ 2:
161
+ iconSize: 36
162
+ color: red
163
+ icon:
164
+ lib: fa
165
+ icon: bell
166
+ ```
167
+
168
+ ### 正则匹配
169
+
170
+ 当精确匹配不到时,会将 mapping 的 key 作为正则进行匹配,使用第一个匹配成功的规则。
171
+
172
+ ```yaml
173
+ brick: presentational-bricks.brick-value-mapping
174
+ properties:
175
+ value: hello
176
+ mapping:
177
+ ".*":
178
+ color: orange
179
+ text: remapping
180
+ icon:
181
+ lib: fa
182
+ icon: star
183
+ 2:
184
+ iconSize: 36
185
+ color: red
186
+ icon:
187
+ lib: fa
188
+ icon: bell
189
+ ```
190
+
191
+ ### 配置跳转链接
192
+
193
+ 通过 `link` 配置跳转链接,点击标签时会跳转到指定地址。注意 `link` 在 `triggerClickEvent` 为 false 时才生效。
194
+
195
+ ```yaml
196
+ brick: presentational-bricks.brick-value-mapping
197
+ properties:
198
+ style:
199
+ display: inline-block
200
+ value: hello
201
+ link:
202
+ to: /developers/brick-book
203
+ mapping:
204
+ ".*":
205
+ color: orange
206
+ text: remapping
207
+ icon:
208
+ lib: fa
209
+ icon: star
210
+ ```
211
+
212
+ ### 文案超出隐藏
213
+
214
+ 设置 `isTextEllipsis` 为 true 时,文案超出容器会隐藏并在鼠标悬停时显示 Tooltip。
215
+
216
+ ```yaml
217
+ brick: presentational-bricks.brick-value-mapping
218
+ properties:
219
+ style:
220
+ width: 80px
221
+ isTextEllipsis: true
222
+ value: longText
223
+ mapping:
224
+ longText:
225
+ color: blue
226
+ text: 这是一段非常非常长的文案用于演示超出隐藏效果
227
+ ```
228
+
229
+ ### 无匹配时显示原始值
230
+
231
+ 当 value 无法匹配到任何映射规则时,直接显示原始值。
232
+
233
+ ```yaml
234
+ brick: presentational-bricks.brick-value-mapping
235
+ properties:
236
+ value: 1
237
+ mapping:
238
+ 0:
239
+ text: error
240
+ ```
@@ -0,0 +1,181 @@
1
+ ---
2
+ tagName: presentational-bricks.brick-value-mapping
3
+ displayName: WrappedPresentationalBricksBrickValueMapping
4
+ description: 适用于将基本类型的数值转换成有意义的文本进行展示
5
+ category: data-transform
6
+ source: "@next-bricks/presentational-bricks"
7
+ ---
8
+
9
+ # WrappedPresentationalBricksBrickValueMapping
10
+
11
+ > 适用于将基本类型的数值转换成有意义的文本进行展示
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedPresentationalBricksBrickValueMapping } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ----------------- | ---------------------------------------------------- | ---- | ------- | ----------------------------------------------------------------- |
23
+ | value | `string \| number` | - | - | 原始值 |
24
+ | fields | `{ value: string; }` | - | - | [已废弃]字段映射, 跟 dataSource 一起使用来获得运行时 value |
25
+ | mapping | `Record< string \| number, MappingValue >` | 是 | - | 映射规则 |
26
+ | showTagCircle | `boolean` | - | - | 显示文字旁边的小圈圈,按照平台规范通常表示状态的标签可设置为 true |
27
+ | dataSource | `Record<string, any>` | - | - | 替代 `data` 属性,click 事件时传出的数据 |
28
+ | triggerClickEvent | `boolean` | - | `false` | 是否触发点击事件 |
29
+ | isTextEllipsis | `boolean` | - | `false` | 文案超出时是否隐藏溢出文本并在鼠标悬停时显示 Tooltip |
30
+ | link | `LinkProps` | - | - | 配置跳转链接,在 `triggerClickEvent` 为 false 生效 |
31
+ | data | `any` | - | - | [已废弃]可用于接收 useBrick 传递过来的数据 |
32
+
33
+ ## Events
34
+
35
+ | 事件 | detail | 说明 |
36
+ | -------------------------- | ---------------------------------------- | ----------------------------------------------------- |
37
+ | onBrick-value-mappingClick | `{ data: any; value: string \| number }` | 点击事件,需设置 `triggerClickEvent` 为 true 才会触发 |
38
+
39
+ ## Examples
40
+
41
+ ### 基本用法 - 映射为多彩标签(带圆点)
42
+
43
+ 使用 `showTagCircle` 显示状态圆点,通过 `mapping` 将不同值映射为对应的颜色标签。
44
+
45
+ ```tsx
46
+ <WrappedPresentationalBricksBrickValueMapping
47
+ showTagCircle={true}
48
+ value="success"
49
+ mapping={{
50
+ failed: { color: "red", text: "失败" },
51
+ success: { color: "green", text: "正常" },
52
+ warning: { color: "orange", text: "异常" },
53
+ }}
54
+ />
55
+ ```
56
+
57
+ ### 触发点击事件(填充色标签)
58
+
59
+ 设置 `triggerClickEvent` 为 true 并监听点击事件,同时通过 `dataSource` 传递附加数据。
60
+
61
+ ```tsx
62
+ <WrappedPresentationalBricksBrickValueMapping
63
+ triggerClickEvent={true}
64
+ showTagCircle={false}
65
+ value="warning"
66
+ dataSource={{ id: 1001, name: "示例数据" }}
67
+ mapping={{
68
+ warning: { color: "red-inverse", text: "紧急" },
69
+ safe: { color: "green-inverse", text: "正常" },
70
+ }}
71
+ onBrick-value-mappingClick={(e) => {
72
+ console.log(e.detail);
73
+ }}
74
+ />
75
+ ```
76
+
77
+ ### 映射为 icon 加文字
78
+
79
+ 映射结果可以包含图标和文字,通过 `icon` 和 `text` 字段配置。
80
+
81
+ ```tsx
82
+ <WrappedPresentationalBricksBrickValueMapping
83
+ value={1}
84
+ mapping={{
85
+ 1: {
86
+ text: "mapping-text",
87
+ color: "green",
88
+ icon: { lib: "fa", icon: "link" },
89
+ },
90
+ }}
91
+ />
92
+ ```
93
+
94
+ ### 仅映射为 icon(自定义图标大小)
95
+
96
+ 不设置 `text` 时仅展示图标,通过 `iconSize` 自定义图标大小。
97
+
98
+ ```tsx
99
+ <WrappedPresentationalBricksBrickValueMapping
100
+ value={2}
101
+ mapping={{
102
+ 2: {
103
+ iconSize: 36,
104
+ color: "red",
105
+ icon: { lib: "fa", icon: "bell" },
106
+ },
107
+ }}
108
+ />
109
+ ```
110
+
111
+ ### 正则匹配
112
+
113
+ 当精确匹配不到时,会将 mapping 的 key 作为正则进行匹配,使用第一个匹配成功的规则。
114
+
115
+ ```tsx
116
+ <WrappedPresentationalBricksBrickValueMapping
117
+ value="hello"
118
+ mapping={{
119
+ ".*": {
120
+ color: "orange",
121
+ text: "remapping",
122
+ icon: { lib: "fa", icon: "star" },
123
+ },
124
+ 2: {
125
+ iconSize: 36,
126
+ color: "red",
127
+ icon: { lib: "fa", icon: "bell" },
128
+ },
129
+ }}
130
+ />
131
+ ```
132
+
133
+ ### 配置跳转链接
134
+
135
+ 通过 `link` 配置跳转链接,点击标签时会跳转到指定地址。注意 `link` 在 `triggerClickEvent` 为 false 时才生效。
136
+
137
+ ```tsx
138
+ <WrappedPresentationalBricksBrickValueMapping
139
+ style={{ display: "inline-block" }}
140
+ value="hello"
141
+ link={{ to: "/developers/brick-book" }}
142
+ mapping={{
143
+ ".*": {
144
+ color: "orange",
145
+ text: "remapping",
146
+ icon: { lib: "fa", icon: "star" },
147
+ },
148
+ }}
149
+ />
150
+ ```
151
+
152
+ ### 文案超出隐藏
153
+
154
+ 设置 `isTextEllipsis` 为 true 时,文案超出容器会隐藏并在鼠标悬停时显示 Tooltip。
155
+
156
+ ```tsx
157
+ <WrappedPresentationalBricksBrickValueMapping
158
+ style={{ width: 80 }}
159
+ isTextEllipsis={true}
160
+ value="longText"
161
+ mapping={{
162
+ longText: {
163
+ color: "blue",
164
+ text: "这是一段非常非常长的文案用于演示超出隐藏效果",
165
+ },
166
+ }}
167
+ />
168
+ ```
169
+
170
+ ### 无匹配时显示原始值
171
+
172
+ 当 value 无法匹配到任何映射规则时,直接显示原始值。
173
+
174
+ ```tsx
175
+ <WrappedPresentationalBricksBrickValueMapping
176
+ value={1}
177
+ mapping={{
178
+ 0: { text: "error" },
179
+ }}
180
+ />
181
+ ```
@@ -0,0 +1,58 @@
1
+ ---
2
+ tagName: presentational-bricks.cost-time
3
+ displayName: WrappedPresentationalBricksCostTime
4
+ description: 耗时展示构件,将毫秒级时间自动转换为人类可读的时间文本(如"15秒"、"1天"),支持直接传入耗时或通过起止时间自动计算
5
+ category:
6
+ source: "@next-bricks/presentational-bricks"
7
+ ---
8
+
9
+ # presentational-bricks.cost-time
10
+
11
+ > 耗时展示构件,将毫秒级时间自动转换为人类可读的时间文本(如"15 秒"、"1 天"),支持直接传入耗时或通过起止时间自动计算
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ---------- | ------------------------------------------------------------------------ | ---- | ------ | ---------------------------------------------------------------------------- |
17
+ | cost | `number` | - | - | 消耗时间(毫秒级) |
18
+ | startTime | `string \| number` | - | - | 起始时间,与 endTime 配合使用,当未传入 cost 时自动计算耗时 |
19
+ | endTime | `string \| number` | - | - | 结束时间,与 startTime 配合使用,当未传入 cost 时自动计算耗时 |
20
+ | unitStyle | `React.CSSProperties` | - | - | 时间单位文本的自定义样式,设置后将使用自定义渲染逻辑而非默认的 costTime 函数 |
21
+ | dataSource | `any` | - | - | [已废弃]数据源 |
22
+ | fields | `{ cost?: string; startTime?: string; endTime?: string; }` | - | - | [已废弃]字段映射, 跟 dataSource 一起使用来获得运行时对应字段 |
23
+
24
+ ## Examples
25
+
26
+ ### Basic
27
+
28
+ 直接传入毫秒级耗时,自动转换为可读文本
29
+
30
+ ```yaml
31
+ brick: presentational-bricks.cost-time
32
+ properties:
33
+ cost: 123456
34
+ ```
35
+
36
+ ### 通过起止时间计算耗时
37
+
38
+ 传入起始时间和结束时间,构件自动计算并展示耗时
39
+
40
+ ```yaml
41
+ brick: presentational-bricks.cost-time
42
+ properties:
43
+ startTime: 1593603641000
44
+ endTime: 1593603798000
45
+ ```
46
+
47
+ ### Styling
48
+
49
+ 自定义时间单位文本的样式
50
+
51
+ ```yaml
52
+ brick: presentational-bricks.cost-time
53
+ properties:
54
+ cost: 7265000
55
+ unitStyle:
56
+ color: "#999"
57
+ fontSize: "12px"
58
+ ```
@@ -0,0 +1,60 @@
1
+ ---
2
+ tagName: presentational-bricks.cost-time
3
+ displayName: WrappedPresentationalBricksCostTime
4
+ description: 耗时展示构件,将毫秒级时间自动转换为人类可读的时间文本(如"15秒"、"1天"),支持直接传入耗时或通过起止时间自动计算
5
+ category:
6
+ source: "@next-bricks/presentational-bricks"
7
+ ---
8
+
9
+ # WrappedPresentationalBricksCostTime
10
+
11
+ > 耗时展示构件,将毫秒级时间自动转换为人类可读的时间文本(如"15 秒"、"1 天"),支持直接传入耗时或通过起止时间自动计算
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedPresentationalBricksCostTime } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ---------- | ------------------------------------------------------------------------ | ---- | ------ | ---------------------------------------------------------------------------- |
23
+ | cost | `number` | - | - | 消耗时间(毫秒级) |
24
+ | startTime | `string \| number` | - | - | 起始时间,与 endTime 配合使用,当未传入 cost 时自动计算耗时 |
25
+ | endTime | `string \| number` | - | - | 结束时间,与 startTime 配合使用,当未传入 cost 时自动计算耗时 |
26
+ | unitStyle | `React.CSSProperties` | - | - | 时间单位文本的自定义样式,设置后将使用自定义渲染逻辑而非默认的 costTime 函数 |
27
+ | dataSource | `any` | - | - | [已废弃]数据源 |
28
+ | fields | `{ cost?: string; startTime?: string; endTime?: string; }` | - | - | [已废弃]字段映射, 跟 dataSource 一起使用来获得运行时对应字段 |
29
+
30
+ ## Examples
31
+
32
+ ### Basic
33
+
34
+ 直接传入毫秒级耗时,自动转换为可读文本
35
+
36
+ ```tsx
37
+ <WrappedPresentationalBricksCostTime cost={123456} />
38
+ ```
39
+
40
+ ### 通过起止时间计算耗时
41
+
42
+ 传入起始时间和结束时间,构件自动计算并展示耗时
43
+
44
+ ```tsx
45
+ <WrappedPresentationalBricksCostTime
46
+ startTime={1593603641000}
47
+ endTime={1593603798000}
48
+ />
49
+ ```
50
+
51
+ ### Styling
52
+
53
+ 自定义时间单位文本的样式
54
+
55
+ ```tsx
56
+ <WrappedPresentationalBricksCostTime
57
+ cost={7265000}
58
+ unitStyle={{ color: "#999", fontSize: "12px" }}
59
+ />
60
+ ```