neo-cmp-cli 1.13.22 → 1.13.23

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 (83) hide show
  1. package/README.md +3 -0
  2. package/package.json +1 -1
  3. package/template/antd-custom-cmp-template/package.json +1 -1
  4. package/template/antd-custom-cmp-template/src/components/dataDashboard__c/model.ts +1 -1
  5. package/template/antd-custom-cmp-template/src/components/dataDashboard__c/style.scss +11 -11
  6. package/template/antd-custom-cmp-template/src/components/searchWidget__c/model.ts +1 -1
  7. package/template/asset-manage-template/package.json +1 -1
  8. package/template/asset-manage-template/src/components/assetManage__c/style.scss +4 -4
  9. package/template/asset-manage-template/src/components/bidList__c/style.scss +2 -2
  10. package/template/asset-manage-template/src/components/bidPackage__c/style.scss +2 -2
  11. package/template/echarts-custom-cmp-template/package.json +1 -1
  12. package/template/echarts-custom-cmp-template/src/components/chartWidget__c/model.ts +1 -1
  13. package/template/echarts-custom-cmp-template/src/components/chartWidget__c/style.scss +1 -1
  14. package/template/empty-custom-cmp-template/package.json +1 -1
  15. package/template/map-custom-cmp-template/package.json +1 -1
  16. package/template/map-custom-cmp-template/src/components/mapWidget__c/model.ts +1 -1
  17. package/template/map-custom-cmp-template/src/components/mapWidget__c/style.scss +2 -2
  18. package/template/neo-bi-cmps/package.json +1 -1
  19. package/template/neo-bi-cmps/public/demo.html +10 -10
  20. package/template/neo-bi-cmps/src/components/filterBar__c/model.ts +2 -1
  21. package/template/neo-bi-cmps/src/components/targetNumber__c/index.tsx +13 -8
  22. package/template/neo-bi-cmps/src/components/targetNumber__c/model.ts +10 -4
  23. package/template/neo-bi-cmps/src/components/targetNumber__c/style.scss +13 -5
  24. package/template/neo-custom-cmp-template/package.json +1 -1
  25. package/template/neo-custom-cmp-template/src/components/customApi__c/model.ts +1 -1
  26. package/template/neo-custom-cmp-template/src/components/customApi__c/style.scss +5 -3
  27. package/template/neo-custom-cmp-template/src/components/entityDetail__c/index.tsx +25 -54
  28. package/template/neo-custom-cmp-template/src/components/entityDetail__c/model.ts +1 -1
  29. package/template/neo-custom-cmp-template/src/components/entityDetail__c/style.scss +111 -68
  30. package/template/neo-custom-cmp-template/src/components/entityForm__c/index.tsx +0 -1
  31. package/template/neo-custom-cmp-template/src/components/entityForm__c/model.ts +1 -1
  32. package/template/neo-custom-cmp-template/src/components/entityTable__c/index.tsx +0 -1
  33. package/template/neo-custom-cmp-template/src/components/entityTable__c/model.ts +11 -11
  34. package/template/neo-custom-cmp-template/src/components/entityTable__c/style.scss +4 -4
  35. package/template/neo-custom-cmp-template/src/components/simpleCmp__c/index.tsx +2 -2
  36. package/template/neo-custom-cmp-template/src/components/simpleCmp__c/model.ts +1 -1
  37. package/template/neo-h5-cmps/package.json +1 -1
  38. package/template/neo-h5-cmps/src/components/chatPage__c/model.ts +1 -1
  39. package/template/neo-h5-cmps/src/components/entityList__c/model.ts +1 -1
  40. package/template/neo-h5-cmps/src/components/entityTabs__c/model.ts +2 -2
  41. package/template/neo-h5-cmps/src/components/entityTabs__c/style.scss +15 -6
  42. package/template/neo-h5-cmps/src/components/globalSearchInput__c/model.ts +1 -1
  43. package/template/neo-h5-cmps/src/components/openChatPageBtn__c/model.ts +1 -1
  44. package/template/neo-order-cmps/src/components/entityInfoCard__c/index.tsx +4 -12
  45. package/template/neo-order-cmps/src/components/entityInfoCard__c/model.ts +3 -3
  46. package/template/neo-order-cmps/src/components/entityInfoCard__c/style.scss +6 -5
  47. package/template/neo-order-cmps/src/components/simpleTable__c/index.tsx +71 -20
  48. package/template/neo-order-cmps/src/components/simpleTable__c/model.ts +15 -11
  49. package/template/neo-order-cmps/src/components/simpleTable__c/style.scss +39 -29
  50. package/template/neo-pipeline-cmps/package.json +1 -1
  51. package/template/neo-pipeline-cmps/public/demo.html +10 -10
  52. package/template/neo-pipeline-cmps/src/components/pipelineFunnel__c/style.scss +1 -1
  53. package/template/neo-pipeline-cmps/src/components/showHealthResult__c/style.scss +1 -1
  54. package/template/neo-pipeline-cmps/src/components/simpleTable__c/common.scss +3 -3
  55. package/template/neo-pipeline-cmps/src/components/simpleTable__c/style.scss +2 -2
  56. package/template/neo-pipeline-cmps/src/components/stageSwitch__c/style.scss +1 -1
  57. package/template/neo-pipeline-cmps/src/components/stageTimeChart__c/style.scss +2 -2
  58. package/template/neo-web-entity-grid/package.json +1 -1
  59. package/template/neo-web-entity-grid/src/components/createForm__c/model.ts +1 -1
  60. package/template/neo-web-entity-grid/src/components/entityGrid2__c/model.ts +1 -1
  61. package/template/neo-web-entity-grid/src/components/entityGrid3__c/model.ts +1 -1
  62. package/template/neo-web-entity-grid/src/components/entityGrid4__c/model.ts +1 -1
  63. package/template/neo-web-entity-grid/src/components/entityGrid__c/model.ts +1 -1
  64. package/template/neo-web-entity-grid/src/components/searchForm__c/model.ts +1 -1
  65. package/template/neo-web-form/package.json +1 -1
  66. package/template/neo-web-form/src/components/batchAddTable__c/model.ts +1 -1
  67. package/template/neo-web-form/src/components/batchAddTable__c/tableModal.scss +1 -1
  68. package/template/neo-web-form/src/components/listSummary__c/model.ts +1 -1
  69. package/template/neo-web-form/src/components/listSummary__c/style.scss +2 -2
  70. package/template/react-custom-cmp-template/package.json +1 -1
  71. package/template/react-custom-cmp-template/src/components/infoCard__c/model.js +1 -1
  72. package/template/react-ts-custom-cmp-template/package.json +1 -1
  73. package/template/react-ts-custom-cmp-template/src/components/listWidget__c/model.ts +1 -1
  74. package/template/react-ts-custom-cmp-template/src/components/listWidget__c/style.scss +1 -1
  75. package/template/vue2-custom-cmp-template/package.json +1 -1
  76. package/template/vue2-custom-cmp-template/src/components/vueInfoCard__c/model.js +1 -1
  77. package/template/antd-custom-cmp-template/src/components/infoCard__c/index.tsx +0 -89
  78. package/template/antd-custom-cmp-template/src/components/infoCard__c/model.ts +0 -76
  79. package/template/antd-custom-cmp-template/src/components/infoCard__c/style.scss +0 -105
  80. package/template/neo-custom-cmp-template/src/components/entityCardList__c/README.md +0 -61
  81. package/template/neo-custom-cmp-template/src/components/entityCardList__c/index.tsx +0 -226
  82. package/template/neo-custom-cmp-template/src/components/entityCardList__c/model.ts +0 -89
  83. package/template/neo-custom-cmp-template/src/components/entityCardList__c/style.scss +0 -260
@@ -1,19 +1,7 @@
1
1
  import * as React from 'react';
2
- import {
3
- Card,
4
- Row,
5
- Col,
6
- Spin,
7
- Empty,
8
- Descriptions,
9
- Button,
10
- Tag,
11
- Divider,
12
- Typography,
13
- } from 'antd';
2
+ import { Spin, Empty, Button, Tag, Divider, Typography } from 'antd';
14
3
  import {
15
4
  ReloadOutlined,
16
- InfoCircleOutlined,
17
5
  CheckCircleOutlined,
18
6
  CloseCircleOutlined,
19
7
  } from '@ant-design/icons';
@@ -21,7 +9,7 @@ import {
21
9
  import { xObject } from 'neo-open-api'; // Neo OpenAPI SDK
22
10
  import './style.scss';
23
11
 
24
- const { Title, Text } = Typography;
12
+ const { Title } = Typography;
25
13
 
26
14
  interface EntityDetailProps {
27
15
  title?: string;
@@ -165,7 +153,7 @@ export default class EntityDetail extends React.PureComponent<
165
153
 
166
154
  renderFieldValue(value: any, fieldType: string) {
167
155
  if (value === null || value === undefined || value === '') {
168
- return <Text type="secondary">-</Text>;
156
+ return <span className="info-value-empty">-</span>;
169
157
  }
170
158
 
171
159
  // 根据字段类型渲染不同的值
@@ -245,39 +233,28 @@ export default class EntityDetail extends React.PureComponent<
245
233
  }
246
234
 
247
235
  return (
248
- <Row gutter={[24, 24]}>
249
- {columnGroups.map((fields, colIndex) => (
250
- <Col xs={24} sm={24} md={24 / columnCount} key={colIndex}>
251
- <Card className="detail-column-card" bordered={false} size="small">
252
- <Descriptions
253
- column={1}
254
- size="middle"
255
- bordered
256
- labelStyle={{
257
- fontWeight: 500,
258
- backgroundColor: '#fafafa',
259
- width: '35%',
260
- }}
261
- contentStyle={{
262
- backgroundColor: '#ffffff',
263
- }}
264
- >
265
- {fields.map((fieldKey) => {
266
- const fieldType = this.getFieldType(fieldKey);
267
- const fieldLabel = this.getFieldLabel(fieldKey);
268
- const fieldValue = detailData[fieldKey];
269
-
270
- return (
271
- <Descriptions.Item label={fieldLabel} key={fieldKey}>
236
+ <div className="detail-info-body">
237
+ <div className="info-grid">
238
+ {columnGroups.map((fields, colIndex) => (
239
+ <div key={colIndex} className="info-column">
240
+ {fields.map((fieldKey) => {
241
+ const fieldType = this.getFieldType(fieldKey);
242
+ const fieldLabel = this.getFieldLabel(fieldKey);
243
+ const fieldValue = detailData[fieldKey];
244
+
245
+ return (
246
+ <div key={fieldKey} className="info-item">
247
+ <div className="info-label">{fieldLabel}</div>
248
+ <div className="info-value">
272
249
  {this.renderFieldValue(fieldValue, fieldType)}
273
- </Descriptions.Item>
274
- );
275
- })}
276
- </Descriptions>
277
- </Card>
278
- </Col>
279
- ))}
280
- </Row>
250
+ </div>
251
+ </div>
252
+ );
253
+ })}
254
+ </div>
255
+ ))}
256
+ </div>
257
+ </div>
281
258
  );
282
259
  }
283
260
 
@@ -294,13 +271,7 @@ export default class EntityDetail extends React.PureComponent<
294
271
  <div className="detail-header">
295
272
  <div className="header-content">
296
273
  <Title level={4} className="header-title">
297
- <InfoCircleOutlined className="title-icon" />
298
- {title || '实体数据详情'}
299
- {systemInfo.tenantName ? (
300
- <Tag color="blue" style={{ marginLeft: 8 }}>
301
- {systemInfo.tenantName}
302
- </Tag>
303
- ) : null}
274
+ {title || '实体详情数据'}
304
275
  </Title>
305
276
  <Button
306
277
  type="primary"
@@ -14,7 +14,7 @@ export class EntityDetailModel {
14
14
  label: string = '实体数据详情';
15
15
 
16
16
  /** 组件描述,用于设置在编辑器左侧组件面板中展示的描述 */
17
- description: string = '展示实体数据详情信息,支持多列布局和字段类型识别';
17
+ description: string = '实体详情信息展示,支持多列布局';
18
18
 
19
19
  /** 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示 */
20
20
  // tags: string[] = ['自定义组件'];
@@ -12,7 +12,6 @@
12
12
 
13
13
  .detail-header {
14
14
  flex-shrink: 0;
15
- margin-bottom: 16px;
16
15
 
17
16
  .header-content {
18
17
  display: flex;
@@ -28,14 +27,14 @@
28
27
  font-size: 18px;
29
28
  font-weight: 500;
30
29
  line-height: 1.4;
31
- color: #434343;
30
+ color: #333;
32
31
  flex: 1;
33
32
  display: flex;
34
33
  align-items: center;
35
34
  gap: 8px;
36
35
 
37
36
  &.ant-typography {
38
- color: #434343;
37
+ color: #333;
39
38
  }
40
39
 
41
40
  .title-icon {
@@ -110,49 +109,79 @@
110
109
  display: flex;
111
110
  justify-content: center;
112
111
  align-items: center;
113
- min-height: 300px;
112
+ min-height: 50px;
114
113
  padding: 20px;
115
114
  }
116
115
 
117
- .detail-column-card {
118
- height: 100%;
119
- background: #fafafa;
120
- border-radius: 8px;
121
- border: 1px solid #f0f0f0;
122
-
123
- .ant-card-body {
124
- padding: 0;
125
- }
116
+ // 与 entityInfoCard__c 一致的详情区块:灰底、标签在上、值在下
117
+ .detail-info-body {
118
+ position: relative;
119
+ box-sizing: border-box;
120
+ width: 100%;
121
+ padding: 12px 16px;
122
+
123
+ .info-grid {
124
+ display: flex;
125
+ gap: 20px;
126
+ flex-wrap: wrap;
127
+
128
+ .info-column {
129
+ flex: 1;
130
+ min-width: 0;
131
+ display: flex;
132
+ flex-direction: column;
133
+ gap: 15px;
134
+
135
+ @media (max-width: 768px) {
136
+ flex: 1 1 100%;
137
+ min-width: 100%;
138
+ }
139
+ }
126
140
 
127
- .ant-descriptions {
128
- background: transparent;
141
+ .info-item {
142
+ display: flex;
143
+ flex-direction: column;
144
+ gap: 5px;
145
+ margin-bottom: 10px;
129
146
 
130
- &.ant-descriptions-bordered {
131
- .ant-descriptions-item-label {
132
- font-weight: 500;
133
- background-color: #f5f5f5;
134
- color: #262626;
135
- font-size: 14px;
136
- padding: 12px 16px;
137
- border-right: 1px solid #e8e8e8;
138
- width: 35%;
139
- vertical-align: middle;
147
+ .info-label {
148
+ font-size: 12px;
149
+ color: #666;
150
+ line-height: 1.4;
140
151
  }
141
152
 
142
- .ant-descriptions-item-content {
143
- background-color: #ffffff;
144
- color: #595959;
153
+ .info-value {
145
154
  font-size: 14px;
146
- padding: 12px 16px;
155
+ font-weight: 500;
156
+ color: #333;
157
+ line-height: 1.4;
147
158
  word-break: break-word;
148
- vertical-align: middle;
149
- }
150
159
 
151
- .ant-descriptions-row {
152
- border-bottom: 1px solid #e8e8e8;
160
+ .info-value-empty {
161
+ color: #999;
162
+ }
153
163
 
154
- &:last-child {
155
- border-bottom: none;
164
+ .ant-tag {
165
+ margin: 0;
166
+ border-radius: 4px;
167
+ font-size: 12px;
168
+ padding: 2px 6px;
169
+ line-height: 18px;
170
+ }
171
+
172
+ a {
173
+ color: #1890ff;
174
+ text-decoration: none;
175
+ transition: color 0.3s;
176
+
177
+ &:hover {
178
+ color: #40a9ff;
179
+ text-decoration: underline;
180
+ }
181
+
182
+ &:active {
183
+ color: #096dd9;
184
+ }
156
185
  }
157
186
  }
158
187
  }
@@ -161,7 +190,7 @@
161
190
  }
162
191
 
163
192
  .ant-empty {
164
- padding: 60px 20px;
193
+ padding: 40px 20px;
165
194
 
166
195
  .ant-empty-description {
167
196
  color: #8c8c8c;
@@ -170,7 +199,7 @@
170
199
  }
171
200
 
172
201
  .ant-spin-nested-loading {
173
- min-height: 200px;
202
+ min-height: 20px;
174
203
 
175
204
  > div > .ant-spin {
176
205
  max-height: none;
@@ -180,9 +209,9 @@
180
209
  .ant-tag {
181
210
  margin: 0;
182
211
  border-radius: 4px;
183
- font-size: 13px;
184
- padding: 2px 8px;
185
- line-height: 20px;
212
+ font-size: 12px;
213
+ padding: 2px 6px;
214
+ line-height: 18px;
186
215
  }
187
216
 
188
217
  a {
@@ -201,17 +230,27 @@
201
230
  }
202
231
 
203
232
  @media (max-width: 1200px) {
233
+ padding: 12px;
234
+ margin: 15px 15px 0 15px;
235
+
204
236
  .detail-content {
205
- .ant-col-md-8 {
206
- max-width: 50%;
207
- flex: 0 0 50%;
237
+ .detail-info-body {
238
+ padding: 12px;
239
+
240
+ .info-grid {
241
+ gap: 15px;
242
+
243
+ .info-column {
244
+ gap: 12px;
245
+ }
246
+ }
208
247
  }
209
248
  }
210
249
  }
211
250
 
212
251
  @media (max-width: 768px) {
213
- margin: 4px 8px;
214
- padding: 12px;
252
+ margin: 10px 10px 0 10px;
253
+ padding: 10px;
215
254
 
216
255
  .detail-header {
217
256
  margin-bottom: 12px;
@@ -240,21 +279,24 @@
240
279
  }
241
280
 
242
281
  .detail-content {
243
- .ant-col-md-8,
244
- .ant-col-md-12 {
245
- max-width: 100%;
246
- flex: 0 0 100%;
247
- }
282
+ .detail-info-body {
283
+ padding: 10px;
248
284
 
249
- .detail-column-card {
250
- margin-bottom: 16px;
285
+ .info-grid {
286
+ gap: 12px;
287
+ flex-direction: column;
251
288
 
252
- .ant-descriptions {
253
- &.ant-descriptions-bordered {
254
- .ant-descriptions-item-label,
255
- .ant-descriptions-item-content {
289
+ .info-column {
290
+ gap: 10px;
291
+ }
292
+
293
+ .info-item {
294
+ .info-label {
295
+ font-size: 11px;
296
+ }
297
+
298
+ .info-value {
256
299
  font-size: 13px;
257
- padding: 10px 12px;
258
300
  }
259
301
  }
260
302
  }
@@ -263,7 +305,7 @@
263
305
  }
264
306
 
265
307
  @media (max-width: 480px) {
266
- margin: 2px 4px;
308
+ margin: 8px 8px 0 8px;
267
309
  padding: 8px;
268
310
 
269
311
  .detail-header {
@@ -274,7 +316,8 @@
274
316
  }
275
317
 
276
318
  .header-title {
277
- font-size: 15px;
319
+ font-size: 13px;
320
+ margin-bottom: 10px;
278
321
  }
279
322
 
280
323
  .refresh-button {
@@ -284,17 +327,17 @@
284
327
  }
285
328
 
286
329
  .detail-content {
287
- .detail-column-card {
288
- .ant-descriptions {
289
- &.ant-descriptions-bordered {
290
- .ant-descriptions-item-label,
291
- .ant-descriptions-item-content {
292
- font-size: 12px;
293
- padding: 8px 10px;
330
+ .detail-info-body {
331
+ padding: 8px;
332
+
333
+ .info-grid {
334
+ .info-item {
335
+ .info-label {
336
+ font-size: 10px;
294
337
  }
295
338
 
296
- .ant-descriptions-item-label {
297
- width: 30%;
339
+ .info-value {
340
+ font-size: 12px;
298
341
  }
299
342
  }
300
343
  }
@@ -583,7 +583,6 @@ export default class EntityForm extends React.PureComponent<
583
583
  <div className="form-header">
584
584
  <h3 className="form-title">
585
585
  {displayTitle}
586
- {systemInfo.tenantName ? `【${systemInfo.tenantName}】` : ''}
587
586
  </h3>
588
587
  </div>
589
588
 
@@ -16,7 +16,7 @@ export class EntityFormModel {
16
16
  label: string = '实体表单';
17
17
 
18
18
  /** 组件描述,用于设置在编辑器左侧组件面板中展示的描述 */
19
- description: string = '基于 XObject 的对象表单组件,用于新增数据';
19
+ description: string = '基于 XObject 的实现的对象表单组件,可用于新增实体业务数据';
20
20
 
21
21
  /** 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示 */
22
22
  // tags: string[] = ['自定义组件'];
@@ -778,7 +778,6 @@ export default class EntityTable extends BaseCmp<
778
778
  <div className="panel-header">
779
779
  <div className="panel-header-text">
780
780
  <h3>
781
- {systemInfo.tenantName ? `${systemInfo.tenantName} / ` : ''}
782
781
  {title || '数据表格'}
783
782
  </h3>
784
783
  </div>
@@ -16,7 +16,7 @@ export class EntityTableModel {
16
16
  label: string = '实体数据表格';
17
17
 
18
18
  /** 组件描述,用于设置在编辑器左侧组件面板中展示的描述 */
19
- description: string = '基于 XObject 的数据表格组件,支持增删改查操作';
19
+ description: string = '基于 XObject 实现的实体数据表格组件,支持实体数据的增删改查操作';
20
20
 
21
21
  /** 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示 */
22
22
  // tags: string[] = ['自定义组件'];
@@ -50,17 +50,17 @@ export class EntityTableModel {
50
50
  showEditButton: true,
51
51
  showDeleteButton: true,
52
52
  xObjectDataApi: {
53
- xObjectApiKey: "contact",
53
+ xObjectApiKey: 'contact',
54
54
  fields: [
55
- "contactName",
56
- "accountId",
57
- "depart",
58
- "post",
59
- "phone",
60
- "email",
61
- "wxPosition",
62
- "comment"
63
- ],
55
+ 'contactName',
56
+ 'accountId',
57
+ 'depart',
58
+ 'post',
59
+ 'phone',
60
+ 'email',
61
+ 'wxPosition',
62
+ 'comment',
63
+ ],
64
64
  },
65
65
  };
66
66
 
@@ -10,7 +10,7 @@
10
10
  }
11
11
 
12
12
  .panel-header {
13
- padding: 12px 0 8px 0;
13
+ padding: 8px 0;
14
14
  background: #fff;
15
15
  display: flex;
16
16
  justify-content: space-between;
@@ -24,7 +24,7 @@
24
24
  h3 {
25
25
  margin: 0;
26
26
  font-size: 16px;
27
- font-weight: 600;
27
+ font-weight: 500;
28
28
  color: #434343;
29
29
  }
30
30
 
@@ -96,7 +96,7 @@
96
96
  .ant-table {
97
97
  .ant-table-thead > tr > th {
98
98
  background-color: #f9f9f9;
99
- font-weight: 600;
99
+ font-weight: 500;
100
100
  color: #262626;
101
101
  border-bottom: 1px solid #eee;
102
102
  padding: 10px;
@@ -318,7 +318,7 @@
318
318
 
319
319
  .ant-modal-title {
320
320
  font-size: 16px;
321
- font-weight: 600;
321
+ font-weight: 500;
322
322
  color: #434343;
323
323
  }
324
324
  }
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  // 引入 neo-ui-common / BaseCmp
3
3
  // @ts-ignore
4
- import { BaseCmp } from 'neo-ui-common';
4
+ // import { BaseCmp } from 'neo-ui-common';
5
5
 
6
6
  import './style.scss'; // 组件内容样式
7
7
 
@@ -16,7 +16,7 @@ interface CustomCmpStates {
16
16
  [key: string]: any;
17
17
  }
18
18
 
19
- export default class CustomCmp extends BaseCmp<
19
+ export default class CustomCmp extends React.PureComponent<
20
20
  CustomCmpProps,
21
21
  CustomCmpStates
22
22
  > {
@@ -6,7 +6,7 @@ export class CmpModel {
6
6
  label: string = '简单示例组件';
7
7
 
8
8
  // 组件描述,用于设置在编辑器左侧组件面板中展示的描述
9
- description: string = '暂无描述';
9
+ description: string = '简单示例组件';
10
10
 
11
11
  // 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示
12
12
  // tags: string[] = ['自定义组件'];
@@ -49,7 +49,7 @@
49
49
  "@types/react": "^16.9.11",
50
50
  "@types/react-dom": "^16.9.15",
51
51
  "@types/axios": "^0.14.0",
52
- "neo-cmp-cli": "^1.13.22",
52
+ "neo-cmp-cli": "^1.13.23",
53
53
  "husky": "^4.2.5",
54
54
  "lint-staged": "^10.2.9",
55
55
  "prettier": "^2.0.5"
@@ -6,7 +6,7 @@ export class chatPageModel {
6
6
  label: string = 'chatPage';
7
7
 
8
8
  // 组件描述,用于设置在编辑器左侧组件面板中展示的描述
9
- description: string = '暂无描述';
9
+ description: string = 'chatPage 智能对话组件';
10
10
 
11
11
  // 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示
12
12
  // tags: string[] = ['自定义组件'];
@@ -12,7 +12,7 @@ export class EntityListModel {
12
12
  label: string = '数据列表';
13
13
 
14
14
  // 组件描述,用于设置在编辑器左侧组件面板中展示的描述
15
- description: string = '数据列表';
15
+ description: string = '基于平台 entityList 实现的实体数据列表组件';
16
16
 
17
17
  // 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示
18
18
  // tags: string[] = ['自定义组件'];
@@ -12,7 +12,7 @@ export class EntityListTabsModel {
12
12
  label: string = '数据列表Tabs';
13
13
 
14
14
  // 组件描述,用于设置在编辑器左侧组件面板中展示的描述
15
- description: string = '展示多个数据列表';
15
+ description: string = '基于平台 H5端 entityList 实现的数据列表 Tabs 组件';
16
16
 
17
17
  // 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示
18
18
  // tags: string[] = ['自定义组件'];
@@ -43,7 +43,7 @@ export class EntityListTabsModel {
43
43
  // 初次插入页面的默认属性数据
44
44
  defaultComProps = {
45
45
  showHeader: true,
46
- headerTitle: '>> 待跟进项',
46
+ headerTitle: '待跟进项',
47
47
  showAiChatBtn: true,
48
48
  aiQuery: '请总结一下本周数据变化',
49
49
  agentApiKey: 'sales_assistant_agent',
@@ -8,19 +8,28 @@
8
8
  padding: 6px var(--padding-bottom);
9
9
  background-color: #fff;
10
10
 
11
- // Header 区域 - 字体放大并加粗,标题左侧,AI 按钮右侧
11
+ // Header:标题左、AI 按钮右,系统字体与层次清晰
12
12
  .title-header {
13
13
  display: flex;
14
14
  align-items: center;
15
15
  justify-content: space-between;
16
- padding: 8px 12px;
17
- font-size: 18px;
18
- font-weight: 700;
19
- color: #333;
20
- background-color: #eaf3fc;
16
+ padding: 8px 16px 8px 14px;
17
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
18
+ 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
19
+ font-size: 16px;
20
+ font-weight: 500;
21
+ line-height: 1.4;
22
+ letter-spacing: 0.08em;
23
+ color: #1f1f1f;
24
+ background: linear-gradient(180deg, #fafbfd 0%, #f4f7fb 100%);
25
+ border-left: 4px solid #1677ff;
21
26
 
22
27
  .title-header-text {
23
28
  flex: 1;
29
+ min-width: 0;
30
+ overflow: hidden;
31
+ text-overflow: ellipsis;
32
+ white-space: nowrap;
24
33
  }
25
34
  }
26
35
 
@@ -12,7 +12,7 @@ export class GlobalSearchInputModel {
12
12
  label: string = '全局搜索组件';
13
13
 
14
14
  // 组件描述,用于设置在编辑器左侧组件面板中展示的描述
15
- description: string = '全局搜索组件';
15
+ description: string = '基于平台 GlobalSearchInput 实现的全局搜索组件';
16
16
 
17
17
  // 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示
18
18
  // tags: string[] = ['自定义组件'];
@@ -6,7 +6,7 @@ export class openChatPageBtnModel {
6
6
  label: string = '打开AI对话框';
7
7
 
8
8
  // 组件描述,用于设置在编辑器左侧组件面板中展示的描述
9
- description: string = '用于打开AI对话页的按钮';
9
+ description: string = '可用于打开 AI 对话页的按钮';
10
10
 
11
11
  // 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示
12
12
  // tags: string[] = ['自定义组件'];
@@ -1,13 +1,6 @@
1
1
  import * as React from 'react';
2
- import {
3
- Spin,
4
- Empty,
5
- Tag,
6
- } from 'antd';
7
- import {
8
- CheckCircleOutlined,
9
- CloseCircleOutlined,
10
- } from '@ant-design/icons';
2
+ import { Spin, Empty, Tag } from 'antd';
3
+ import { CheckCircleOutlined, CloseCircleOutlined } from '@ant-design/icons';
11
4
  // @ts-ignore
12
5
  import { xObject } from 'neo-open-api'; // Neo OpenAPI SDK
13
6
  import './style.scss';
@@ -206,11 +199,11 @@ export default class EntityInfoCard extends React.PureComponent<
206
199
 
207
200
  // 根据 xObjectDetailApi.fields 过滤字段,如果指定了 fields 则只显示这些字段
208
201
  let displayFields: string[] = [];
209
-
202
+
210
203
  if (xObjectDetailApi?.fields && xObjectDetailApi.fields.length > 0) {
211
204
  // 方式一:如果指定了 fields,则只显示这些字段(即使值为 undefined 也显示)
212
205
  displayFields = xObjectDetailApi.fields.filter(
213
- (key) => !key.startsWith('_') // 过滤系统字段
206
+ (key) => !key.startsWith('_'), // 过滤系统字段
214
207
  );
215
208
  } else {
216
209
  // 方式二:如果没有指定 fields,则显示所有非系统字段和空字段
@@ -281,4 +274,3 @@ export default class EntityInfoCard extends React.PureComponent<
281
274
  );
282
275
  }
283
276
  }
284
-