neo-cmp-cli 1.13.20 → 1.13.22

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 (106) hide show
  1. package/dist/_virtual/array-set2.js +1 -0
  2. package/dist/_virtual/base64-vlq2.js +1 -0
  3. package/dist/_virtual/base642.js +1 -0
  4. package/dist/_virtual/binary-search2.js +1 -0
  5. package/dist/_virtual/mapping-list2.js +1 -0
  6. package/dist/_virtual/picocolors.js +1 -0
  7. package/dist/_virtual/quick-sort2.js +1 -0
  8. package/dist/_virtual/source-map-consumer2.js +1 -0
  9. package/dist/_virtual/source-map-generator2.js +1 -0
  10. package/dist/_virtual/source-map2.js +1 -0
  11. package/dist/_virtual/source-node2.js +1 -0
  12. package/dist/_virtual/symbols.js +1 -0
  13. package/dist/_virtual/util2.js +1 -0
  14. package/dist/config/auth.config.js +1 -1
  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/asset-manage-template/package.json +1 -1
  72. package/template/echarts-custom-cmp-template/package.json +1 -1
  73. package/template/empty-custom-cmp-template/package.json +1 -1
  74. package/template/map-custom-cmp-template/package.json +1 -1
  75. package/template/neo-bi-cmps/package.json +1 -1
  76. package/template/neo-custom-cmp-template/CODEBUDDY.md +92 -0
  77. package/template/neo-custom-cmp-template/package.json +1 -1
  78. package/template/neo-custom-cmp-template/src/components/customApi__c/index.tsx +9 -5
  79. package/template/neo-custom-cmp-template/src/components/customApi__c/model.ts +1 -1
  80. package/template/neo-custom-cmp-template/src/components/customApi__c/style.scss +21 -18
  81. package/template/neo-custom-cmp-template/src/components/entityCardList__c/index.tsx +4 -3
  82. package/template/neo-custom-cmp-template/src/components/entityCardList__c/model.ts +10 -2
  83. package/template/neo-custom-cmp-template/src/components/entityCardList__c/style.scss +1 -1
  84. package/template/neo-custom-cmp-template/src/components/entityDetail__c/index.tsx +1 -1
  85. package/template/neo-custom-cmp-template/src/components/entityDetail__c/style.scss +51 -39
  86. package/template/neo-custom-cmp-template/src/components/entityForm__c/model.ts +10 -2
  87. package/template/neo-custom-cmp-template/src/components/entityForm__c/style.scss +1 -1
  88. package/template/neo-custom-cmp-template/src/components/entityTable__c/index.tsx +11 -9
  89. package/template/neo-custom-cmp-template/src/components/entityTable__c/model.ts +11 -2
  90. package/template/neo-custom-cmp-template/src/components/entityTable__c/style.scss +169 -114
  91. package/template/neo-custom-cmp-template/src/components/simpleCmp__c/index.tsx +1 -1
  92. package/template/neo-custom-cmp-template/src/components/simpleCmp__c/style.scss +94 -13
  93. package/template/neo-h5-cmps/package.json +1 -1
  94. package/template/neo-order-cmps/package.json +1 -1
  95. package/template/neo-pipeline-cmps/package.json +1 -1
  96. package/template/neo-web-entity-grid/package.json +1 -1
  97. package/template/neo-web-entity-grid/src/components/entityGrid2__c/model.ts +1 -1
  98. package/template/neo-web-entity-grid/src/components/entityGrid2__c/style.scss +1 -5
  99. package/template/neo-web-entity-grid/src/components/entityGrid3__c/model.ts +2 -0
  100. package/template/neo-web-entity-grid/src/components/entityGrid3__c/style.scss +1 -6
  101. package/template/neo-web-entity-grid/src/components/entityGrid__c/style.scss +1 -6
  102. package/template/neo-web-entity-grid/src/components/searchForm__c/model.ts +10 -2
  103. package/template/neo-web-form/package.json +1 -1
  104. package/template/react-custom-cmp-template/package.json +1 -1
  105. package/template/react-ts-custom-cmp-template/package.json +1 -1
  106. package/template/vue2-custom-cmp-template/package.json +1 -1
@@ -28,15 +28,26 @@
28
28
  font-size: 18px;
29
29
  font-weight: 500;
30
30
  line-height: 1.4;
31
- color: #262626;
31
+ color: #434343;
32
32
  flex: 1;
33
33
  display: flex;
34
34
  align-items: center;
35
35
  gap: 8px;
36
36
 
37
+ &.ant-typography {
38
+ color: #434343;
39
+ }
40
+
37
41
  .title-icon {
38
42
  color: #1890ff;
39
43
  font-size: 20px;
44
+ flex-shrink: 0;
45
+ }
46
+
47
+ > span:not(.anticon):not(.ant-tag) {
48
+ overflow: hidden;
49
+ text-overflow: ellipsis;
50
+ white-space: nowrap;
40
51
  }
41
52
  }
42
53
 
@@ -56,12 +67,18 @@
56
67
 
57
68
  &:active {
58
69
  transform: translateY(0);
70
+ box-shadow: 0 1px 2px rgba(24, 144, 255, 0.2);
59
71
  }
60
72
 
61
73
  .anticon {
62
74
  font-size: 12px;
63
75
  }
64
76
  }
77
+
78
+ .ant-divider {
79
+ margin: 12px 0;
80
+ border-color: #f0f0f0;
81
+ }
65
82
  }
66
83
 
67
84
  .detail-content {
@@ -69,6 +86,26 @@
69
86
  overflow-y: auto;
70
87
  overflow-x: hidden;
71
88
 
89
+ &::-webkit-scrollbar {
90
+ width: 6px;
91
+ height: 6px;
92
+ }
93
+
94
+ &::-webkit-scrollbar-track {
95
+ background: #f0f0f0;
96
+ border-radius: 3px;
97
+ }
98
+
99
+ &::-webkit-scrollbar-thumb {
100
+ background: #bfbfbf;
101
+ border-radius: 3px;
102
+ transition: background 0.3s;
103
+
104
+ &:hover {
105
+ background: #8c8c8c;
106
+ }
107
+ }
108
+
72
109
  .error-container {
73
110
  display: flex;
74
111
  justify-content: center;
@@ -81,6 +118,7 @@
81
118
  height: 100%;
82
119
  background: #fafafa;
83
120
  border-radius: 8px;
121
+ border: 1px solid #f0f0f0;
84
122
 
85
123
  .ant-card-body {
86
124
  padding: 0;
@@ -97,6 +135,8 @@
97
135
  font-size: 14px;
98
136
  padding: 12px 16px;
99
137
  border-right: 1px solid #e8e8e8;
138
+ width: 35%;
139
+ vertical-align: middle;
100
140
  }
101
141
 
102
142
  .ant-descriptions-item-content {
@@ -105,6 +145,7 @@
105
145
  font-size: 14px;
106
146
  padding: 12px 16px;
107
147
  word-break: break-word;
148
+ vertical-align: middle;
108
149
  }
109
150
 
110
151
  .ant-descriptions-row {
@@ -119,7 +160,6 @@
119
160
  }
120
161
  }
121
162
 
122
- // 空状态样式
123
163
  .ant-empty {
124
164
  padding: 60px 20px;
125
165
 
@@ -129,7 +169,14 @@
129
169
  }
130
170
  }
131
171
 
132
- // Tag 样式优化
172
+ .ant-spin-nested-loading {
173
+ min-height: 200px;
174
+
175
+ > div > .ant-spin {
176
+ max-height: none;
177
+ }
178
+ }
179
+
133
180
  .ant-tag {
134
181
  margin: 0;
135
182
  border-radius: 4px;
@@ -138,7 +185,6 @@
138
185
  line-height: 20px;
139
186
  }
140
187
 
141
- // 链接样式
142
188
  a {
143
189
  color: #1890ff;
144
190
  text-decoration: none;
@@ -154,7 +200,6 @@
154
200
  }
155
201
  }
156
202
 
157
- // 响应式设计
158
203
  @media (max-width: 1200px) {
159
204
  .detail-content {
160
205
  .ant-col-md-8 {
@@ -234,6 +279,7 @@
234
279
 
235
280
  .refresh-button {
236
281
  width: 100%;
282
+ justify-content: center;
237
283
  }
238
284
  }
239
285
 
@@ -256,37 +302,3 @@
256
302
  }
257
303
  }
258
304
  }
259
-
260
- // 加载状态样式
261
- .ant-spin-container {
262
- min-height: 200px;
263
- }
264
-
265
- .ant-spin-nested-loading {
266
- > div > .ant-spin {
267
- max-height: none;
268
- }
269
- }
270
-
271
- // 自定义滚动条样式
272
- .entityDetail__c .detail-content {
273
- &::-webkit-scrollbar {
274
- width: 6px;
275
- height: 6px;
276
- }
277
-
278
- &::-webkit-scrollbar-track {
279
- background: #f0f0f0;
280
- border-radius: 3px;
281
- }
282
-
283
- &::-webkit-scrollbar-thumb {
284
- background: #bfbfbf;
285
- border-radius: 3px;
286
- transition: background 0.3s;
287
-
288
- &:hover {
289
- background: #8c8c8c;
290
- }
291
- }
292
- }
@@ -51,8 +51,16 @@ export class EntityFormModel {
51
51
  showResetButton: true,
52
52
  columnCount: 2,
53
53
  xObjectDataApi: {
54
- xObjectApiKey: 'customContact__c',
55
- fields: ['name', 'entityType', 'phone__c'],
54
+ xObjectApiKey: 'contact',
55
+ fields: [
56
+ 'entityType',
57
+ 'contactName',
58
+ 'accountId',
59
+ 'depart',
60
+ 'mobile',
61
+ 'email',
62
+ 'comment',
63
+ ],
56
64
  },
57
65
  };
58
66
 
@@ -17,7 +17,7 @@
17
17
  margin: 0;
18
18
  font-size: 14px;
19
19
  font-weight: 500;
20
- color: #262626;
20
+ color: #434343;
21
21
  line-height: 1.2;
22
22
  }
23
23
  }
@@ -15,7 +15,6 @@ import {
15
15
  Popconfirm,
16
16
  Spin,
17
17
  Empty,
18
- Card,
19
18
  DatePicker,
20
19
  InputNumber,
21
20
  Checkbox,
@@ -775,14 +774,16 @@ export default class EntityTable extends BaseCmp<
775
774
 
776
775
  return (
777
776
  <div className={`entityTable__c ${className}`}>
778
- <Card>
779
- <div className="table-header">
780
- <div className="header-content">
781
- <h3 className="header-title">
777
+ <div className="table-wrapper">
778
+ <div className="panel-header">
779
+ <div className="panel-header-text">
780
+ <h3>
781
+ {systemInfo.tenantName ? `${systemInfo.tenantName} / ` : ''}
782
782
  {title || '数据表格'}
783
- {systemInfo.tenantName ? `【${systemInfo.tenantName}】` : ''}
784
783
  </h3>
785
- <Space>
784
+ </div>
785
+ <div className="panel-header-actions">
786
+ <Space size={10} align="center">
786
787
  {this.props.showAddButton && (
787
788
  <Button
788
789
  type="primary"
@@ -806,7 +807,7 @@ export default class EntityTable extends BaseCmp<
806
807
  </div>
807
808
  </div>
808
809
 
809
- <div className="table-content">
810
+ <div className="table-container">
810
811
  <Spin spinning={loading} tip="加载数据中...">
811
812
  {error ? (
812
813
  <Empty
@@ -846,9 +847,10 @@ export default class EntityTable extends BaseCmp<
846
847
  )}
847
848
  </Spin>
848
849
  </div>
849
- </Card>
850
+ </div>
850
851
 
851
852
  <Modal
853
+ wrapClassName="entityTable__c-modal-wrap"
852
854
  title={isEditMode ? `编辑${title}` : `新增${title}`}
853
855
  visible={isModalVisible}
854
856
  onOk={this.handleModalOk}
@@ -50,8 +50,17 @@ export class EntityTableModel {
50
50
  showEditButton: true,
51
51
  showDeleteButton: true,
52
52
  xObjectDataApi: {
53
- xObjectApiKey: 'customContact__c',
54
- fields: ['name', 'phone__c'],
53
+ xObjectApiKey: "contact",
54
+ fields: [
55
+ "contactName",
56
+ "accountId",
57
+ "depart",
58
+ "post",
59
+ "phone",
60
+ "email",
61
+ "wxPosition",
62
+ "comment"
63
+ ],
55
64
  },
56
65
  };
57
66
 
@@ -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: 12px 0 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
+ }
4
23
 
5
- .header-content {
24
+ h3 {
25
+ margin: 0;
26
+ font-size: 16px;
27
+ font-weight: 600;
28
+ color: #434343;
29
+ }
30
+
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;
47
+
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
+ }
20
81
 
21
- .ant-space {
22
- flex-shrink: 0;
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;
98
+ background-color: #f9f9f9;
31
99
  font-weight: 600;
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,17 +271,47 @@
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;
@@ -264,7 +319,7 @@
264
319
  .ant-modal-title {
265
320
  font-size: 16px;
266
321
  font-weight: 600;
267
- color: #262626;
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
  }
@@ -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>