neo-cmp-cli 1.13.21 → 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 (158) hide show
  1. package/README.md +3 -0
  2. package/dist/_virtual/array-set2.js +1 -0
  3. package/dist/_virtual/base64-vlq2.js +1 -0
  4. package/dist/_virtual/base642.js +1 -0
  5. package/dist/_virtual/binary-search2.js +1 -0
  6. package/dist/_virtual/mapping-list2.js +1 -0
  7. package/dist/_virtual/picocolors.js +1 -0
  8. package/dist/_virtual/quick-sort2.js +1 -0
  9. package/dist/_virtual/source-map-consumer2.js +1 -0
  10. package/dist/_virtual/source-map-generator2.js +1 -0
  11. package/dist/_virtual/source-map2.js +1 -0
  12. package/dist/_virtual/source-node2.js +1 -0
  13. package/dist/_virtual/symbols.js +1 -0
  14. package/dist/_virtual/util2.js +1 -0
  15. package/dist/loaders/component-scope-style-loader2.js +1 -1
  16. package/dist/node_modules/nanoid/non-secure/index.js +1 -0
  17. package/dist/node_modules/picocolors/picocolors.js +1 -0
  18. package/dist/node_modules/postcss/lib/at-rule.js +1 -0
  19. package/dist/node_modules/postcss/lib/comment.js +1 -0
  20. package/dist/node_modules/postcss/lib/container.js +1 -0
  21. package/dist/node_modules/postcss/lib/css-syntax-error.js +1 -0
  22. package/dist/node_modules/postcss/lib/declaration.js +1 -0
  23. package/dist/node_modules/postcss/lib/document.js +1 -0
  24. package/dist/node_modules/postcss/lib/fromJSON.js +1 -0
  25. package/dist/node_modules/postcss/lib/input.js +1 -0
  26. package/dist/node_modules/postcss/lib/lazy-result.js +1 -0
  27. package/dist/node_modules/postcss/lib/list.js +1 -0
  28. package/dist/node_modules/postcss/lib/map-generator.js +1 -0
  29. package/dist/node_modules/postcss/lib/no-work-result.js +1 -0
  30. package/dist/node_modules/postcss/lib/node.js +1 -0
  31. package/dist/node_modules/postcss/lib/parse.js +1 -0
  32. package/dist/node_modules/postcss/lib/parser.js +1 -0
  33. package/dist/node_modules/postcss/lib/postcss.js +1 -0
  34. package/dist/node_modules/postcss/lib/previous-map.js +1 -0
  35. package/dist/node_modules/postcss/lib/processor.js +1 -0
  36. package/dist/node_modules/postcss/lib/result.js +1 -0
  37. package/dist/node_modules/postcss/lib/root.js +1 -0
  38. package/dist/node_modules/postcss/lib/rule.js +1 -0
  39. package/dist/node_modules/postcss/lib/stringifier.js +1 -0
  40. package/dist/node_modules/postcss/lib/stringify.js +1 -0
  41. package/dist/node_modules/postcss/lib/symbols.js +1 -0
  42. package/dist/node_modules/postcss/lib/terminal-highlight.js +1 -0
  43. package/dist/node_modules/postcss/lib/tokenize.js +1 -0
  44. package/dist/node_modules/postcss/lib/warn-once.js +1 -0
  45. package/dist/node_modules/postcss/lib/warning.js +1 -0
  46. package/dist/node_modules/source-map/lib/array-set.js +1 -1
  47. package/dist/node_modules/source-map/lib/base64-vlq.js +1 -1
  48. package/dist/node_modules/source-map/lib/base64.js +1 -1
  49. package/dist/node_modules/source-map/lib/binary-search.js +1 -1
  50. package/dist/node_modules/source-map/lib/mapping-list.js +1 -1
  51. package/dist/node_modules/source-map/lib/quick-sort.js +1 -1
  52. package/dist/node_modules/source-map/lib/source-map-consumer.js +1 -1
  53. package/dist/node_modules/source-map/lib/source-map-generator.js +1 -1
  54. package/dist/node_modules/source-map/lib/source-node.js +1 -1
  55. package/dist/node_modules/source-map/lib/util.js +1 -1
  56. package/dist/node_modules/source-map/source-map.js +1 -1
  57. package/dist/node_modules/source-map-js/lib/array-set.js +1 -0
  58. package/dist/node_modules/source-map-js/lib/base64-vlq.js +1 -0
  59. package/dist/node_modules/source-map-js/lib/base64.js +1 -0
  60. package/dist/node_modules/source-map-js/lib/binary-search.js +1 -0
  61. package/dist/node_modules/source-map-js/lib/mapping-list.js +1 -0
  62. package/dist/node_modules/source-map-js/lib/quick-sort.js +1 -0
  63. package/dist/node_modules/source-map-js/lib/source-map-consumer.js +1 -0
  64. package/dist/node_modules/source-map-js/lib/source-map-generator.js +1 -0
  65. package/dist/node_modules/source-map-js/lib/source-node.js +1 -0
  66. package/dist/node_modules/source-map-js/lib/util.js +1 -0
  67. package/dist/node_modules/source-map-js/source-map.js +1 -0
  68. package/dist/package.json.js +1 -1
  69. package/package.json +7 -5
  70. package/template/antd-custom-cmp-template/package.json +1 -1
  71. package/template/antd-custom-cmp-template/src/components/dataDashboard__c/model.ts +1 -1
  72. package/template/antd-custom-cmp-template/src/components/dataDashboard__c/style.scss +11 -11
  73. package/template/antd-custom-cmp-template/src/components/searchWidget__c/model.ts +1 -1
  74. package/template/asset-manage-template/package.json +1 -1
  75. package/template/asset-manage-template/src/components/assetManage__c/style.scss +4 -4
  76. package/template/asset-manage-template/src/components/bidList__c/style.scss +2 -2
  77. package/template/asset-manage-template/src/components/bidPackage__c/style.scss +2 -2
  78. package/template/echarts-custom-cmp-template/package.json +1 -1
  79. package/template/echarts-custom-cmp-template/src/components/chartWidget__c/model.ts +1 -1
  80. package/template/echarts-custom-cmp-template/src/components/chartWidget__c/style.scss +1 -1
  81. package/template/empty-custom-cmp-template/package.json +1 -1
  82. package/template/map-custom-cmp-template/package.json +1 -1
  83. package/template/map-custom-cmp-template/src/components/mapWidget__c/model.ts +1 -1
  84. package/template/map-custom-cmp-template/src/components/mapWidget__c/style.scss +2 -2
  85. package/template/neo-bi-cmps/package.json +1 -1
  86. package/template/neo-bi-cmps/public/demo.html +10 -10
  87. package/template/neo-bi-cmps/src/components/filterBar__c/model.ts +2 -1
  88. package/template/neo-bi-cmps/src/components/targetNumber__c/index.tsx +13 -8
  89. package/template/neo-bi-cmps/src/components/targetNumber__c/model.ts +10 -4
  90. package/template/neo-bi-cmps/src/components/targetNumber__c/style.scss +13 -5
  91. package/template/neo-custom-cmp-template/CODEBUDDY.md +92 -0
  92. package/template/neo-custom-cmp-template/package.json +1 -1
  93. package/template/neo-custom-cmp-template/src/components/customApi__c/index.tsx +8 -4
  94. package/template/neo-custom-cmp-template/src/components/customApi__c/model.ts +1 -1
  95. package/template/neo-custom-cmp-template/src/components/customApi__c/style.scss +25 -20
  96. package/template/neo-custom-cmp-template/src/components/entityDetail__c/index.tsx +26 -55
  97. package/template/neo-custom-cmp-template/src/components/entityDetail__c/model.ts +1 -1
  98. package/template/neo-custom-cmp-template/src/components/entityDetail__c/style.scss +155 -100
  99. package/template/neo-custom-cmp-template/src/components/entityForm__c/index.tsx +0 -1
  100. package/template/neo-custom-cmp-template/src/components/entityForm__c/model.ts +11 -3
  101. package/template/neo-custom-cmp-template/src/components/entityForm__c/style.scss +1 -1
  102. package/template/neo-custom-cmp-template/src/components/entityTable__c/index.tsx +10 -9
  103. package/template/neo-custom-cmp-template/src/components/entityTable__c/model.ts +12 -3
  104. package/template/neo-custom-cmp-template/src/components/entityTable__c/style.scss +171 -116
  105. package/template/neo-custom-cmp-template/src/components/simpleCmp__c/index.tsx +3 -3
  106. package/template/neo-custom-cmp-template/src/components/simpleCmp__c/model.ts +1 -1
  107. package/template/neo-custom-cmp-template/src/components/simpleCmp__c/style.scss +94 -13
  108. package/template/neo-h5-cmps/package.json +1 -1
  109. package/template/neo-h5-cmps/src/components/chatPage__c/model.ts +1 -1
  110. package/template/neo-h5-cmps/src/components/entityList__c/model.ts +1 -1
  111. package/template/neo-h5-cmps/src/components/entityTabs__c/model.ts +2 -2
  112. package/template/neo-h5-cmps/src/components/entityTabs__c/style.scss +15 -6
  113. package/template/neo-h5-cmps/src/components/globalSearchInput__c/model.ts +1 -1
  114. package/template/neo-h5-cmps/src/components/openChatPageBtn__c/model.ts +1 -1
  115. package/template/neo-order-cmps/package.json +1 -1
  116. package/template/neo-order-cmps/src/components/entityInfoCard__c/index.tsx +4 -12
  117. package/template/neo-order-cmps/src/components/entityInfoCard__c/model.ts +3 -3
  118. package/template/neo-order-cmps/src/components/entityInfoCard__c/style.scss +6 -5
  119. package/template/neo-order-cmps/src/components/simpleTable__c/index.tsx +71 -20
  120. package/template/neo-order-cmps/src/components/simpleTable__c/model.ts +15 -11
  121. package/template/neo-order-cmps/src/components/simpleTable__c/style.scss +39 -29
  122. package/template/neo-pipeline-cmps/package.json +1 -1
  123. package/template/neo-pipeline-cmps/public/demo.html +10 -10
  124. package/template/neo-pipeline-cmps/src/components/pipelineFunnel__c/style.scss +1 -1
  125. package/template/neo-pipeline-cmps/src/components/showHealthResult__c/style.scss +1 -1
  126. package/template/neo-pipeline-cmps/src/components/simpleTable__c/common.scss +3 -3
  127. package/template/neo-pipeline-cmps/src/components/simpleTable__c/style.scss +2 -2
  128. package/template/neo-pipeline-cmps/src/components/stageSwitch__c/style.scss +1 -1
  129. package/template/neo-pipeline-cmps/src/components/stageTimeChart__c/style.scss +2 -2
  130. package/template/neo-web-entity-grid/package.json +1 -1
  131. package/template/neo-web-entity-grid/src/components/createForm__c/model.ts +1 -1
  132. package/template/neo-web-entity-grid/src/components/entityGrid2__c/model.ts +2 -2
  133. package/template/neo-web-entity-grid/src/components/entityGrid2__c/style.scss +1 -5
  134. package/template/neo-web-entity-grid/src/components/entityGrid3__c/model.ts +3 -1
  135. package/template/neo-web-entity-grid/src/components/entityGrid3__c/style.scss +1 -6
  136. package/template/neo-web-entity-grid/src/components/entityGrid4__c/model.ts +1 -1
  137. package/template/neo-web-entity-grid/src/components/entityGrid__c/model.ts +1 -1
  138. package/template/neo-web-entity-grid/src/components/entityGrid__c/style.scss +1 -6
  139. package/template/neo-web-entity-grid/src/components/searchForm__c/model.ts +11 -3
  140. package/template/neo-web-form/package.json +1 -1
  141. package/template/neo-web-form/src/components/batchAddTable__c/model.ts +1 -1
  142. package/template/neo-web-form/src/components/batchAddTable__c/tableModal.scss +1 -1
  143. package/template/neo-web-form/src/components/listSummary__c/model.ts +1 -1
  144. package/template/neo-web-form/src/components/listSummary__c/style.scss +2 -2
  145. package/template/react-custom-cmp-template/package.json +1 -1
  146. package/template/react-custom-cmp-template/src/components/infoCard__c/model.js +1 -1
  147. package/template/react-ts-custom-cmp-template/package.json +1 -1
  148. package/template/react-ts-custom-cmp-template/src/components/listWidget__c/model.ts +1 -1
  149. package/template/react-ts-custom-cmp-template/src/components/listWidget__c/style.scss +1 -1
  150. package/template/vue2-custom-cmp-template/package.json +1 -1
  151. package/template/vue2-custom-cmp-template/src/components/vueInfoCard__c/model.js +1 -1
  152. package/template/antd-custom-cmp-template/src/components/infoCard__c/index.tsx +0 -89
  153. package/template/antd-custom-cmp-template/src/components/infoCard__c/model.ts +0 -76
  154. package/template/antd-custom-cmp-template/src/components/infoCard__c/style.scss +0 -105
  155. package/template/neo-custom-cmp-template/src/components/entityCardList__c/README.md +0 -61
  156. package/template/neo-custom-cmp-template/src/components/entityCardList__c/index.tsx +0 -225
  157. package/template/neo-custom-cmp-template/src/components/entityCardList__c/model.ts +0 -81
  158. package/template/neo-custom-cmp-template/src/components/entityCardList__c/style.scss +0 -260
@@ -1,41 +1,117 @@
1
1
  .entityTable__c {
2
- .table-header {
3
- margin-bottom: 16px;
2
+ background: #fff;
3
+ border-radius: 8px;
4
+
5
+ .table-wrapper {
6
+ padding: 16px 20px;
7
+ display: flex;
8
+ flex-direction: column;
9
+ overflow: hidden;
10
+ }
11
+
12
+ .panel-header {
13
+ padding: 8px 0;
14
+ background: #fff;
15
+ display: flex;
16
+ justify-content: space-between;
17
+ align-items: flex-start;
18
+
19
+ .panel-header-text {
20
+ flex: 1;
21
+ min-width: 0;
22
+ }
23
+
24
+ h3 {
25
+ margin: 0;
26
+ font-size: 16px;
27
+ font-weight: 500;
28
+ color: #434343;
29
+ }
4
30
 
5
- .header-content {
31
+ .panel-header-actions {
32
+ flex-shrink: 0;
33
+ margin-left: 12px;
34
+ padding-top: 2px;
6
35
  display: flex;
7
- justify-content: space-between;
8
36
  align-items: center;
9
- flex-wrap: wrap;
10
- gap: 12px;
11
37
 
12
- .header-title {
13
- margin: 0;
14
- font-size: 18px;
15
- font-weight: 600;
16
- color: #262626;
17
- flex: 1;
18
- min-width: 200px;
19
- }
38
+ // 与 entityForm__c .form-actions 中按钮视觉一致
39
+ .ant-btn {
40
+ height: 32px;
41
+ padding: 0 14px;
42
+ font-size: 14px;
43
+ border-radius: 16px;
44
+ font-weight: 400;
45
+ min-width: auto;
46
+ transition: all 0.3s;
20
47
 
21
- .ant-space {
22
- flex-shrink: 0;
48
+ &.ant-btn-primary {
49
+ background: #1890ff;
50
+ border-color: #1890ff;
51
+
52
+ &:hover {
53
+ background: #40a9ff;
54
+ border-color: #40a9ff;
55
+ transform: translateY(-1px);
56
+ box-shadow: 0 4px 12px rgba(24, 144, 255, 0.3);
57
+ }
58
+
59
+ &:active {
60
+ background: #096dd9;
61
+ border-color: #096dd9;
62
+ transform: translateY(0);
63
+ }
64
+
65
+ &:disabled {
66
+ background: #f5f5f5;
67
+ border-color: #d9d9d9;
68
+ color: rgba(0, 0, 0, 0.25);
69
+ transform: none;
70
+ box-shadow: none;
71
+ }
72
+ }
73
+
74
+ &:not(.ant-btn-primary) {
75
+ &:hover {
76
+ color: #40a9ff;
77
+ border-color: #40a9ff;
78
+ transform: translateY(-1px);
79
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
80
+ }
81
+
82
+ &:active {
83
+ color: #096dd9;
84
+ border-color: #096dd9;
85
+ transform: translateY(0);
86
+ }
87
+ }
23
88
  }
24
89
  }
25
90
  }
26
91
 
27
- .table-content {
92
+ .table-container {
93
+ flex: 1;
94
+ overflow-y: auto;
95
+
28
96
  .ant-table {
29
97
  .ant-table-thead > tr > th {
30
- background-color: #fafafa;
31
- font-weight: 600;
98
+ background-color: #f9f9f9;
99
+ font-weight: 500;
32
100
  color: #262626;
33
- border-bottom: 1px solid #f0f0f0;
101
+ border-bottom: 1px solid #eee;
102
+ padding: 10px;
103
+ text-align: left;
104
+ font-size: 13px;
105
+ position: sticky;
106
+ top: 0;
107
+ z-index: 1;
34
108
  }
35
109
 
36
110
  .ant-table-tbody > tr > td {
37
- border-bottom: 1px solid #f0f0f0;
38
- padding: 12px 16px;
111
+ border-bottom: 1px solid #eee;
112
+ padding: 10px;
113
+ text-align: left;
114
+ font-size: 13px;
39
115
  }
40
116
 
41
117
  .ant-table-tbody > tr:hover > td {
@@ -43,7 +119,7 @@
43
119
  }
44
120
 
45
121
  .ant-table-pagination {
46
- margin-top: 16px;
122
+ margin-top: 12px;
47
123
  text-align: right;
48
124
  }
49
125
  }
@@ -79,44 +155,14 @@
79
155
  }
80
156
  }
81
157
 
82
- .ant-modal {
83
- .ant-form {
84
- .ant-form-item {
85
- margin-bottom: 16px;
86
-
87
- .ant-form-item-label {
88
- padding-bottom: 4px;
89
-
90
- label {
91
- font-weight: 500;
92
- color: #262626;
93
- }
94
- }
95
-
96
- .ant-input,
97
- .ant-select-selector,
98
- .ant-input-number {
99
- border-radius: 4px;
100
- border: 1px solid #d9d9d9;
101
- transition: all 0.3s;
102
-
103
- &:hover {
104
- border-color: #40a9ff;
105
- }
106
-
107
- &:focus,
108
- &.ant-input-focused,
109
- &.ant-select-focused .ant-select-selector {
110
- border-color: #40a9ff;
111
- box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
112
- }
113
- }
158
+ .ant-spin {
159
+ .ant-spin-dot {
160
+ font-size: 20px;
161
+ }
114
162
 
115
- .ant-input-textarea {
116
- resize: vertical;
117
- min-height: 80px;
118
- }
119
- }
163
+ .ant-spin-text {
164
+ color: #8c8c8c;
165
+ font-size: 14px;
120
166
  }
121
167
  }
122
168
 
@@ -179,56 +225,35 @@
179
225
  }
180
226
  }
181
227
 
182
- .ant-spin {
183
- .ant-spin-dot {
184
- font-size: 20px;
185
- }
186
-
187
- .ant-spin-text {
188
- color: #8c8c8c;
189
- font-size: 14px;
190
- }
191
- }
192
-
193
- // 响应式设计
194
228
  @media (max-width: 768px) {
195
- .table-header {
196
- .header-content {
197
- flex-direction: column;
198
- align-items: flex-start;
229
+ .panel-header {
230
+ flex-wrap: wrap;
231
+ gap: 8px;
232
+ }
199
233
 
200
- .header-title {
201
- margin-bottom: 8px;
202
- }
234
+ .panel-header-actions {
235
+ margin-left: 0;
236
+ width: 100%;
237
+ justify-content: flex-end;
203
238
 
204
- .ant-space {
205
- width: 100%;
206
- justify-content: flex-end;
207
- }
239
+ .ant-btn {
240
+ font-size: 13px;
208
241
  }
209
242
  }
210
243
 
211
- .table-content {
244
+ .table-container {
212
245
  .ant-table {
213
246
  .ant-table-thead > tr > th,
214
247
  .ant-table-tbody > tr > td {
215
248
  padding: 8px 12px;
216
- font-size: 13px;
249
+ font-size: 12px;
217
250
  }
218
251
  }
219
252
  }
220
253
  }
221
254
 
222
255
  @media (max-width: 576px) {
223
- .table-header {
224
- .header-content {
225
- .header-title {
226
- font-size: 16px;
227
- }
228
- }
229
- }
230
-
231
- .table-content {
256
+ .table-container {
232
257
  .ant-table {
233
258
  .ant-table-thead > tr > th,
234
259
  .ant-table-tbody > tr > td {
@@ -246,25 +271,55 @@
246
271
  }
247
272
  }
248
273
 
249
- // 全局样式覆盖
250
- .ant-card {
251
- border-radius: 6px;
252
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
274
+ /** Modal 挂载在 body,通过 wrapClassName 限定样式作用域 */
275
+ .entityTable__c-modal-wrap {
276
+ .ant-form {
277
+ .ant-form-item {
278
+ margin-bottom: 16px;
279
+
280
+ .ant-form-item-label {
281
+ padding-bottom: 4px;
253
282
 
254
- .ant-card-body {
255
- padding: 20px;
283
+ label {
284
+ font-weight: 500;
285
+ color: #262626;
286
+ }
287
+ }
288
+
289
+ .ant-input,
290
+ .ant-select-selector,
291
+ .ant-input-number {
292
+ border-radius: 4px;
293
+ border: 1px solid #d9d9d9;
294
+ transition: all 0.3s;
295
+
296
+ &:hover {
297
+ border-color: #40a9ff;
298
+ }
299
+
300
+ &:focus,
301
+ &.ant-input-focused,
302
+ &.ant-select-focused .ant-select-selector {
303
+ border-color: #40a9ff;
304
+ box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
305
+ }
306
+ }
307
+
308
+ .ant-input-textarea {
309
+ resize: vertical;
310
+ min-height: 80px;
311
+ }
312
+ }
256
313
  }
257
- }
258
314
 
259
- .ant-modal {
260
315
  .ant-modal-header {
261
316
  border-bottom: 1px solid #f0f0f0;
262
317
  padding: 16px 24px;
263
318
 
264
319
  .ant-modal-title {
265
320
  font-size: 16px;
266
- font-weight: 600;
267
- color: #262626;
321
+ font-weight: 500;
322
+ color: #434343;
268
323
  }
269
324
  }
270
325
 
@@ -285,20 +340,20 @@
285
340
  }
286
341
  }
287
342
  }
288
- }
289
343
 
290
- .ant-modal-content {
291
- display: flex;
292
- flex-direction: column;
344
+ .ant-modal-content {
345
+ display: flex;
346
+ flex-direction: column;
293
347
 
294
- .ant-modal-header,
295
- .ant-modal-footer {
296
- flex: 0;
297
- }
348
+ .ant-modal-header,
349
+ .ant-modal-footer {
350
+ flex: 0;
351
+ }
298
352
 
299
- .ant-modal-body {
300
- flex: 1;
301
- max-height: 500px;
302
- overflow-y: auto;
353
+ .ant-modal-body {
354
+ flex: 1;
355
+ max-height: 500px;
356
+ overflow-y: auto;
357
+ }
303
358
  }
304
359
  }
@@ -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
  > {
@@ -35,7 +35,7 @@ export default class CustomCmp extends BaseCmp<
35
35
  console.log('当前自定义组件:', this.props);
36
36
 
37
37
  return (
38
- <div className={`simpleCmp__c ${className}`}>
38
+ <div className={['simpleCmp__c', className].filter(Boolean).join(' ')}>
39
39
  <div className="news-title">
40
40
  {languageCode === 'zh-CN' ? '你好,销售易!' : 'Hello NeoCRM!'}
41
41
  </div>
@@ -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[] = ['自定义组件'];
@@ -1,21 +1,102 @@
1
- :root {
2
- --padding-bottom: 12px;
3
- }
4
-
5
1
  .simpleCmp__c {
6
2
  position: relative;
7
3
  box-sizing: border-box;
8
-
9
- /* border-bottom: 1px solid #ececec; */
4
+ height: auto;
5
+ display: flex;
6
+ flex-direction: column;
10
7
  margin: 6px 12px;
11
- padding: 6px var(--padding-bottom);
12
- background-color: #fff;
8
+ padding: 16px;
9
+ background-color: var(--color);
10
+ border-radius: 8px;
11
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
12
+
13
+ &::before {
14
+ content: '';
15
+ position: absolute;
16
+ top: 0;
17
+ left: 0;
18
+ right: 0;
19
+ height: 3px;
20
+ background: linear-gradient(90deg, #1890ff 0%, #40a9ff 100%);
21
+ border-radius: 8px 8px 0 0;
22
+ }
13
23
 
14
24
  .news-title {
15
- padding: 6px 0;
16
- font-family: PingFangSC-Regular;
17
- font-size: 16px;
18
- line-height: 22px;
19
- color: #5f5e5e;
25
+ flex-shrink: 0;
26
+ padding: 8px 0 12px 0;
27
+ margin-bottom: 12px;
28
+ border-bottom: 1px solid #f0f0f0;
29
+ font-family: PingFangSC-Medium, -apple-system, BlinkMacSystemFont,
30
+ 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
31
+ font-size: 18px;
32
+ font-weight: 500;
33
+ line-height: 1.4;
34
+ color: #434343;
35
+ letter-spacing: 0.02em;
36
+ }
37
+
38
+ p {
39
+ flex: 1;
40
+ margin: 0;
41
+ padding: 4px 0;
42
+ font-family: PingFangSC-Regular, -apple-system, BlinkMacSystemFont,
43
+ 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
44
+ font-size: 14px;
45
+ line-height: 1.8;
46
+ color: #595959;
47
+ word-break: break-word;
48
+ white-space: pre-wrap;
49
+
50
+ &:empty::before {
51
+ content: '暂无描述';
52
+ color: #8c8c8c;
53
+ font-style: italic;
54
+ }
55
+ }
56
+
57
+ a {
58
+ color: #1890ff;
59
+ text-decoration: none;
60
+ transition: color 0.3s;
61
+
62
+ &:hover {
63
+ color: #40a9ff;
64
+ text-decoration: underline;
65
+ }
66
+
67
+ &:active {
68
+ color: #096dd9;
69
+ }
70
+ }
71
+
72
+ @media (max-width: 768px) {
73
+ margin: 4px 8px;
74
+ padding: 12px;
75
+
76
+ .news-title {
77
+ font-size: 16px;
78
+ padding: 6px 0 10px 0;
79
+ margin-bottom: 10px;
80
+ }
81
+
82
+ p {
83
+ font-size: 13px;
84
+ line-height: 1.7;
85
+ }
86
+ }
87
+
88
+ @media (max-width: 480px) {
89
+ margin: 2px 4px;
90
+ padding: 10px;
91
+
92
+ .news-title {
93
+ font-size: 15px;
94
+ padding: 4px 0 8px 0;
95
+ margin-bottom: 8px;
96
+ }
97
+
98
+ p {
99
+ font-size: 13px;
100
+ }
20
101
  }
21
102
  }
@@ -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.21",
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[] = ['自定义组件'];
@@ -47,7 +47,7 @@
47
47
  "@types/react": "^16.9.11",
48
48
  "@types/react-dom": "^16.9.15",
49
49
  "@types/axios": "^0.14.0",
50
- "neo-cmp-cli": "^1.13.21",
50
+ "neo-cmp-cli": "^1.13.22",
51
51
  "husky": "^4.2.5",
52
52
  "lint-staged": "^10.2.9",
53
53
  "prettier": "^2.0.5"
@@ -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
-
@@ -14,7 +14,8 @@ export class EntityInfoCardModel {
14
14
  label: string = '实体信息展示卡片';
15
15
 
16
16
  /** 组件描述,用于设置在编辑器左侧组件面板中展示的描述 */
17
- description: string = '简版实体信息展示卡片,以网格布局展示实体数据信息';
17
+ description: string =
18
+ '基于 xObject 实现的简版实体信息展示卡片,以网格布局展示实体数据信息';
18
19
 
19
20
  /** 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示 */
20
21
  // tags: string[] = ['自定义组件'];
@@ -61,7 +62,7 @@ export class EntityInfoCardModel {
61
62
  name: 'title',
62
63
  label: '标题',
63
64
  value: '',
64
- placeholder: '请输入标题'
65
+ placeholder: '请输入标题',
65
66
  },
66
67
  {
67
68
  type: 'xObjectDetailApi', // 用于选取对象业务详情数据的配置项
@@ -103,4 +104,3 @@ export class EntityInfoCardModel {
103
104
  }
104
105
 
105
106
  export default EntityInfoCardModel;
106
-