@longhongguo/form-create-ant-design-vue 3.3.73 → 3.3.76

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.
@@ -1,1302 +1,1317 @@
1
- .form-create .form-create .ant-form-item {
2
- margin-bottom: 22px;
3
- }
4
-
5
- .form-create .form-create .ant-form-item.ant-form-item-with-help {
6
- margin-bottom: 3px;
7
- }
8
-
9
- .form-create
10
- .form-create
11
- .ant-form-item
12
- .ant-form-item.ant-form-item-with-help {
13
- margin-bottom: -22px;
14
- }
15
-
16
- .form-create {
17
- width: 100%;
18
- }
19
-
20
- .form-create.is-preview .fc-clock,
21
- .form-create .fc-none,
22
- .form-create.is-preview
23
- .ant-form-item
24
- .ant-form-item-label
25
- > label.ant-form-item-required::before {
26
- display: none !important;
27
- }
28
-
29
- /* 预览模式样式增强 */
30
-
31
- .form-create.is-preview .ant-form-item {
32
- margin-bottom: 8px !important;
33
- }
34
-
35
- .form-create.is-preview .form-create .ant-form-item {
36
- margin-bottom: 8px !important;
37
- }
38
-
39
- .form-create.is-preview .ant-form-item.ant-form-item-with-help {
40
- margin-bottom: 4px !important;
41
- }
42
-
43
- .form-create.is-preview
44
- .form-create
45
- .ant-form-item
46
- .ant-form-item.ant-form-item-with-help {
47
- margin-bottom: -8px !important;
48
- }
49
-
50
- /* 移除组件边框 */
51
- /* 预览模式或只读模式的样式 */
52
- .form-create.is-preview .ant-input,
53
- .form-create.is-preview .ant-input-number,
54
- .form-create.is-preview .ant-select-selector,
55
- .form-create.is-preview .ant-picker,
56
- .form-create.is-preview .ant-cascader-picker,
57
- .form-create.is-preview .ant-input-password,
58
- .form-create.is-preview .ant-textarea,
59
- .form-create.is-preview .ant-upload,
60
- .form-create.is-preview .ant-upload-list,
61
- .form-create.is-preview .ant-upload-list-item,
62
- .form-create.is-preview .ant-input-wrapper,
63
- .form-create.is-preview .ant-input-affix-wrapper,
64
- .form-create.is-preview .ant-input-group-wrapper,
65
- .form-create.is-preview .ant-input-group,
66
- /* 只读模式的样式(通过 readOnly 属性或 disabled 属性识别) */
67
- .ant-input[readonly],
68
- .ant-input[readonly] ~ .ant-input-wrapper,
69
- .ant-input[readonly] ~ .ant-input-affix-wrapper,
70
- .ant-textarea[readonly],
71
- .ant-picker-disabled,
72
- .ant-cascader-disabled .ant-cascader-picker,
73
- input[readonly].ant-input,
74
- textarea[readonly].ant-input {
75
- border: none !important;
76
- box-shadow: none !important;
77
- background: transparent !important;
78
- }
79
-
80
- .form-create.is-preview .ant-input:focus,
81
- .form-create.is-preview .ant-input-number:focus,
82
- .form-create.is-preview .ant-select-focused .ant-select-selector,
83
- .form-create.is-preview .ant-picker:focus,
84
- .form-create.is-preview .ant-cascader-picker:focus,
85
- .form-create.is-preview .ant-input-password:focus,
86
- .form-create.is-preview .ant-textarea:focus,
87
- .form-create.is-preview .ant-input-wrapper:focus,
88
- .form-create.is-preview .ant-input-affix-wrapper:focus,
89
- .form-create.is-preview .ant-input-affix-wrapper-focused,
90
- /* 只读模式:移除焦点状态边框 */
91
- .ant-input[readonly]:focus,
92
- .ant-textarea[readonly]:focus,
93
- /* 只读模式:readOnly 的 disabled select 移除焦点状态边框 */
94
- .fc-select-readonly.ant-select-disabled.ant-select-focused .ant-select-selector,
95
- .fc-select-readonly.ant-select-disabled:focus .ant-select-selector,
96
- .ant-picker-disabled:focus {
97
- border: none !important;
98
- box-shadow: none !important;
99
- outline: none !important;
100
- }
101
-
102
- .form-create.is-preview .ant-input:hover,
103
- .form-create.is-preview .ant-input-number:hover,
104
- .form-create.is-preview .ant-select:hover .ant-select-selector,
105
- .form-create.is-preview .ant-picker:hover,
106
- .form-create.is-preview .ant-cascader-picker:hover,
107
- .form-create.is-preview .ant-input-password:hover,
108
- .form-create.is-preview .ant-textarea:hover,
109
- .form-create.is-preview .ant-input-wrapper:hover,
110
- .form-create.is-preview .ant-input-affix-wrapper:hover,
111
- /* 只读模式:移除悬停状态边框 */
112
- .ant-input[readonly]:hover,
113
- .ant-textarea[readonly]:hover,
114
- /* 只读模式:readOnly 的 disabled select 移除悬停状态边框 */
115
- .fc-select-readonly.ant-select-disabled:hover .ant-select-selector,
116
- .ant-picker-disabled:hover {
117
- border: none !important;
118
- box-shadow: none !important;
119
- }
120
-
121
- /* 预览模式:移除所有 input 相关元素的边框(更全面的覆盖) */
122
- .form-create.is-preview .ant-input-affix-wrapper,
123
- .form-create.is-preview .ant-input-affix-wrapper:hover,
124
- .form-create.is-preview .ant-input-affix-wrapper-focused,
125
- .form-create.is-preview .ant-input-affix-wrapper-disabled,
126
- .form-create.is-preview .ant-input-wrapper .ant-input,
127
- .form-create.is-preview .ant-input-group-addon,
128
- .form-create.is-preview .ant-input-group .ant-input,
129
- .form-create.is-preview input.ant-input,
130
- .form-create.is-preview textarea.ant-input {
131
- border: none !important;
132
- border-width: 0 !important;
133
- box-shadow: none !important;
134
- outline: none !important;
135
- background: transparent !important;
136
- }
137
-
138
- /* 隐藏字数限制等提示信息 */
139
- .form-create.is-preview .ant-input-character-count,
140
- .form-create.is-preview .ant-textarea-character-count,
141
- .form-create.is-preview .ant-form-item-explain,
142
- .form-create.is-preview .ant-form-item-extra,
143
- .form-create.is-preview .ant-form-item-feedback-icon,
144
- .form-create.is-preview
145
- .ant-form-item-has-feedback
146
- .ant-form-item-children-icon {
147
- display: none !important;
148
- }
149
-
150
- /* 隐藏必填标记 */
151
- .form-create.is-preview
152
- .ant-form-item-label
153
- > label.ant-form-item-required::before,
154
- .form-create.is-preview label.ant-form-item-required::before {
155
- display: none !important;
156
- }
157
-
158
- /* 隐藏帮助图标和提示 */
159
- .form-create.is-preview .ant-form-item-label .anticon,
160
- .form-create.is-preview .ant-form-item-label .fc-icon {
161
- display: none !important;
162
- }
163
-
164
- /* 预览模式:禁用所有交互 */
165
- .form-create.is-preview * {
166
- pointer-events: none !important;
167
- }
168
-
169
- /* 预览模式:允许所有文本选择和复制 */
170
- .form-create.is-preview * {
171
- user-select: text !important;
172
- -webkit-user-select: text !important;
173
- -moz-user-select: text !important;
174
- -ms-user-select: text !important;
175
- }
176
-
177
- /* 预览模式:允许滚动容器滚动 */
178
- .form-create.is-preview [style*='overflow'],
179
- .form-create.is-preview .ant-table-body,
180
- .form-create.is-preview .ant-table-tbody,
181
- .form-create.is-preview .w-e-text-container,
182
- .form-create.is-preview .w-e-text,
183
- .form-create.is-preview [class*='scroll'],
184
- .form-create.is-preview [class*='overflow'] {
185
- pointer-events: auto !important;
186
- overflow: auto !important;
187
- overflow-x: auto !important;
188
- overflow-y: auto !important;
189
- }
190
-
191
- /* 预览模式:允许 textarea 交互(用于复制文本) */
192
- .form-create.is-preview textarea.ant-input {
193
- pointer-events: auto !important;
194
- cursor: text !important;
195
- }
196
-
197
- /* 预览模式:允许 input 文本选择和复制 */
198
- .form-create.is-preview .ant-input,
199
- .form-create.is-preview input.ant-input {
200
- pointer-events: auto !important;
201
- cursor: text !important;
202
- }
203
-
204
- /* 预览模式:允许 select 组件文本选择和复制 */
205
- .form-create.is-preview .ant-select-selector,
206
- .form-create.is-preview .ant-select-selection,
207
- .form-create.is-preview .ant-select-selection-item,
208
- .form-create.is-preview .ant-select-selection-placeholder,
209
- .form-create.is-preview .ant-select-selection-item-content,
210
- .form-create.is-preview .ant-select-selection-overflow,
211
- .form-create.is-preview .ant-select-selection-overflow-item {
212
- pointer-events: auto !important;
213
- cursor: text !important;
214
- }
215
-
216
- /* 预览模式:允许自定义 select 组件文本选择和复制 */
217
- .form-create.is-preview .fc-cus-select-selector,
218
- .form-create.is-preview .fc-cus-select-selection-item,
219
- .form-create.is-preview .fc-cus-select-selection-placeholder,
220
- .form-create.is-preview .fc-cus-select-selection-item-content {
221
- pointer-events: auto !important;
222
- cursor: text !important;
223
- }
224
-
225
- /* 预览模式:允许 tableForm 组件文本选择和复制 */
226
- .form-create.is-preview ._fc-table-form,
227
- .form-create.is-preview ._fc-table-form * {
228
- pointer-events: auto !important;
229
- }
230
-
231
- /* 预览模式:tableForm 中的选择列 checkbox 和操作列按钮保持不可交互 */
232
- .form-create.is-preview ._fc-table-form ._fc-tf-select,
233
- .form-create.is-preview ._fc-table-form ._fc-tf-select *,
234
- .form-create.is-preview ._fc-table-form ._fc-tf-btn,
235
- .form-create.is-preview ._fc-table-form ._fc-tf-btn *,
236
- .form-create.is-preview ._fc-table-form ._fc-tf-head-select,
237
- .form-create.is-preview ._fc-table-form ._fc-tf-head-select * {
238
- pointer-events: none !important;
239
- user-select: none !important;
240
- -webkit-user-select: none !important;
241
- -moz-user-select: none !important;
242
- -ms-user-select: none !important;
243
- cursor: default !important;
244
- }
245
-
246
- /* 预览模式:允许按钮点击 */
247
- .form-create.is-preview .ant-btn {
248
- pointer-events: auto !important;
249
- cursor: pointer !important;
250
- }
251
-
252
- /* 预览模式:允许滚动条滚动(针对有滚动条的容器) */
253
- .form-create.is-preview .ant-table-body,
254
- .form-create.is-preview .ant-table-tbody,
255
- .form-create.is-preview [style*='overflow'] {
256
- pointer-events: auto !important;
257
- }
258
-
259
- /* 预览模式:允许富文本编辑器容器滚动 */
260
- .form-create.is-preview .w-e-text-container {
261
- pointer-events: auto !important;
262
- overflow-y: auto !important;
263
- overflow-x: hidden !important;
264
- }
265
-
266
- .form-create.is-preview .w-e-text {
267
- pointer-events: auto !important;
268
- overflow-y: auto !important;
269
- overflow-x: hidden !important;
270
- cursor: default !important;
271
- /* 确保可以滚动 */
272
- -webkit-overflow-scrolling: touch !important;
273
- }
274
-
275
- /* 预览模式:允许 upload 组件的预览功能(整个列表项可以点击预览) */
276
- .form-create.is-preview .ant-upload-list-item {
277
- pointer-events: auto !important;
278
- }
279
-
280
- /* 预览模式:允许 upload 组件中的预览相关元素 */
281
- .form-create.is-preview .ant-upload-list-item-thumbnail,
282
- .form-create.is-preview .ant-upload-list-item-thumbnail *,
283
- .form-create.is-preview .ant-upload-list-item-name,
284
- .form-create.is-preview .ant-upload-list-item-preview,
285
- .form-create.is-preview .ant-upload-list-item-preview-icon,
286
- .form-create.is-preview .ant-upload-list-item-actions-preview,
287
- .form-create.is-preview .ant-upload-list-item-actions .anticon-eye,
288
- .form-create.is-preview .ant-upload-list-item-info,
289
- .form-create.is-preview .ant-upload-list-item-info > span,
290
- .form-create.is-preview
291
- .ant-upload-picture-card
292
- .ant-upload-list-item-thumbnail,
293
- .form-create.is-preview
294
- .ant-upload-picture-card
295
- .ant-upload-list-item-thumbnail
296
- * {
297
- pointer-events: auto !important;
298
- cursor: pointer !important;
299
- }
300
-
301
- /* 预览模式:允许 image 组件的预览功能 */
302
- .form-create.is-preview .ant-image,
303
- .form-create.is-preview .ant-image-img,
304
- .form-create.is-preview .ant-image-mask,
305
- .form-create.is-preview .ant-image-mask-info {
306
- pointer-events: auto !important;
307
- cursor: pointer !important;
308
- }
309
-
310
- /* 预览模式:允许图片预览弹窗可以交互 */
311
- .form-create.is-preview .ant-modal,
312
- .form-create.is-preview .ant-modal-wrap,
313
- .form-create.is-preview .ant-modal-mask,
314
- .form-create.is-preview .ant-modal-content,
315
- .form-create.is-preview .ant-modal-close,
316
- .form-create.is-preview .ant-modal-header,
317
- .form-create.is-preview .ant-modal-body,
318
- .form-create.is-preview .ant-modal-footer {
319
- pointer-events: auto !important;
320
- }
321
-
322
- /* 预览模式:隐藏 upload 组件的上传按钮 */
323
- .form-create.is-preview .ant-upload-select,
324
- .form-create.is-preview .ant-upload-select-picture-card {
325
- display: none !important;
326
- }
327
-
328
- /* 预览模式:阻止 upload 组件中的删除和其他操作按钮(优先级更高) */
329
- .form-create.is-preview .ant-upload-list-item-actions-delete,
330
- .form-create.is-preview .ant-upload-list-item-actions-upload,
331
- .form-create.is-preview .ant-upload-list-item-actions-download,
332
- .form-create.is-preview .ant-upload-list-item-actions .anticon-delete,
333
- .form-create.is-preview .ant-upload-list-item-actions .anticon-close,
334
- .form-create.is-preview .ant-upload-list-item-actions-item .anticon-delete,
335
- .form-create.is-preview .ant-upload-list-item-actions-item-delete,
336
- .form-create.is-preview .ant-upload-list-item-actions-item-upload,
337
- .form-create.is-preview .ant-upload-list-item-remove {
338
- pointer-events: none !important;
339
- cursor: not-allowed !important;
340
- }
341
-
342
- /* 预览模式:防止组件显示为禁用状态(不置灰) */
343
- .form-create.is-preview .ant-input,
344
- .form-create.is-preview .ant-input-number,
345
- .form-create.is-preview .ant-select,
346
- .form-create.is-preview .ant-picker,
347
- .form-create.is-preview .ant-cascader,
348
- .form-create.is-preview .ant-input-password,
349
- .form-create.is-preview .ant-textarea,
350
- .form-create.is-preview .ant-radio,
351
- .form-create.is-preview .ant-checkbox,
352
- .form-create.is-preview .ant-switch,
353
- .form-create.is-preview .ant-slider,
354
- .form-create.is-preview .ant-rate,
355
- .form-create.is-preview .ant-upload {
356
- opacity: 1 !important;
357
- color: inherit !important;
358
- background-color: transparent !important;
359
- }
360
-
361
- /* 只读模式:防止 upload 组件显示为禁用状态(不置灰) */
362
- .ant-upload-disabled,
363
- .ant-upload.ant-upload-disabled {
364
- opacity: 1 !important;
365
- color: inherit !important;
366
- background-color: transparent !important;
367
- }
368
-
369
- /* 只读模式:防止 upload 列表项显示为禁用状态 */
370
- .ant-upload-disabled .ant-upload-list-item,
371
- .ant-upload.ant-upload-disabled .ant-upload-list-item {
372
- opacity: 1 !important;
373
- }
374
-
375
- /* 只读模式:防止 upload 列表项缩略图显示为禁用状态 */
376
- .ant-upload-disabled .ant-upload-list-item-thumbnail,
377
- .ant-upload.ant-upload-disabled .ant-upload-list-item-thumbnail,
378
- .ant-upload-disabled .ant-upload-list-item-thumbnail img,
379
- .ant-upload.ant-upload-disabled .ant-upload-list-item-thumbnail img {
380
- opacity: 1 !important;
381
- }
382
-
383
- /* 预览模式:按钮保持原有颜色,不覆盖 */
384
- .form-create.is-preview .ant-btn {
385
- opacity: 1 !important;
386
- /* 不设置 color,保持按钮的原始颜色 */
387
- /* 不设置 background-color,保持按钮的原始背景色 */
388
- }
389
-
390
- /* 预览模式和只读模式:设置按钮链接的颜色 */
391
- .form-create.is-preview .ant-btn-link,
392
- .ant-btn-link[readonly],
393
- .ant-btn-link[readonly='true'] {
394
- color: #1677ff !important;
395
- }
396
-
397
- /* 预览模式:CusSelect 组件保持正常外观,不置灰 */
398
- .form-create.is-preview .fc-cus-select,
399
- .form-create.is-preview .fc-cus-select-selector,
400
- .form-create.is-preview .fc-cus-select-selection-item {
401
- opacity: 1 !important;
402
- color: inherit !important;
403
- background-color: transparent !important;
404
- }
405
-
406
- /* 预览模式:隐藏 CusSelect 的占位符 */
407
- .form-create.is-preview .fc-cus-select-selection-placeholder {
408
- display: none !important;
409
- }
410
-
411
- /* 只读模式:隐藏 CusSelect 的占位符 */
412
- .fc-cus-select[readonly] .fc-cus-select-selection-placeholder,
413
- .fc-cus-select[readonly='true'] .fc-cus-select-selection-placeholder {
414
- display: none !important;
415
- }
416
-
417
- /* 预览模式:移除 CusSelect 选择器的边框 */
418
- .form-create.is-preview .fc-cus-select-selector {
419
- border: none !important;
420
- box-shadow: none !important;
421
- }
422
-
423
- /* 预览模式:隐藏 CusSelect 的箭头和清除按钮 */
424
- .form-create.is-preview .fc-cus-select-arrow,
425
- .form-create.is-preview .fc-cus-select-clear {
426
- display: none !important;
427
- }
428
-
429
- /* 预览模式:隐藏选择器的下拉箭头 */
430
- .form-create.is-preview .ant-select-arrow,
431
- .form-create.is-preview .ant-select-suffix,
432
- /* 只读模式:隐藏 readOnly 选择器的下拉箭头 */
433
- .fc-select-readonly.ant-select-disabled .ant-select-arrow,
434
- .fc-select-readonly.ant-select-disabled .ant-select-suffix {
435
- display: none !important;
436
- }
437
-
438
- /* 预览模式:隐藏日期选择器的图标 */
439
- .form-create.is-preview .ant-picker-suffix,
440
- .form-create.is-preview .ant-picker-suffix .anticon {
441
- display: none !important;
442
- }
443
-
444
- /* 预览模式:隐藏其他输入框的清除按钮和图标 */
445
- .form-create.is-preview .ant-input-clear-icon,
446
- .form-create.is-preview .ant-input-number-handler,
447
- .form-create.is-preview .ant-input-number-handler-wrap {
448
- display: none !important;
449
- }
450
-
451
- /* 预览模式:防止输入框显示为禁用状态的灰色 */
452
- .form-create.is-preview .ant-input[disabled],
453
- .form-create.is-preview .ant-input-number[disabled],
454
- .form-create.is-preview .ant-select-disabled,
455
- .form-create.is-preview .ant-picker-disabled,
456
- .form-create.is-preview .ant-textarea[disabled],
457
- /* 只读模式:防止输入框显示为禁用状态的灰色 */
458
- .ant-input[readonly],
459
- .ant-input[readonly][disabled],
460
- .ant-input-number[disabled],
461
- .ant-textarea[readonly],
462
- .ant-textarea[readonly][disabled],
463
- /* 只读模式:防止 readOnly 的 disabled select 显示为禁用状态的灰色 */
464
- .fc-select-readonly.ant-select-disabled,
465
- .ant-picker-disabled {
466
- opacity: 1 !important;
467
- color: inherit !important;
468
- background-color: transparent !important;
469
- cursor: default !important;
470
- }
471
-
472
- /* 预览模式:textarea 自适应高度且只读可复制 */
473
- .form-create.is-preview textarea.ant-input,
474
- .form-create.is-preview .ant-textarea {
475
- /* 允许文本选择,用于复制 */
476
- user-select: text !important;
477
- -webkit-user-select: text !important;
478
- -moz-user-select: text !important;
479
- -ms-user-select: text !important;
480
- /* 允许交互,用于复制 */
481
- pointer-events: auto !important;
482
- cursor: text !important;
483
- /* 移除滚动条(因为内容会自适应显示) */
484
- overflow: hidden !important;
485
- overflow-y: hidden !important;
486
- overflow-x: hidden !important;
487
- /* 确保只读状态下仍可正常显示和选择 */
488
- resize: none !important;
489
- /* 确保 textarea 能够根据内容自动调整高度 */
490
- box-sizing: border-box !important;
491
- /* 移除固定高度限制,让 JavaScript 动态设置 */
492
- min-height: auto !important;
493
- max-height: none !important;
494
- }
495
-
496
- /* 预览模式:textarea 只读状态样式 */
497
- .form-create.is-preview textarea.ant-input[readonly],
498
- .form-create.is-preview .ant-textarea[readonly] {
499
- opacity: 1 !important;
500
- color: inherit !important;
501
- background-color: transparent !important;
502
- cursor: text !important;
503
- }
504
-
505
- /* 预览模式:防止选择器显示为禁用状态 */
506
- .form-create.is-preview .ant-select-disabled .ant-select-selector {
507
- opacity: 1 !important;
508
- color: inherit !important;
509
- background-color: transparent !important;
510
- cursor: text !important;
511
- border: none !important;
512
- box-shadow: none !important;
513
- user-select: text !important;
514
- -webkit-user-select: text !important;
515
- -moz-user-select: text !important;
516
- -ms-user-select: text !important;
517
- }
518
-
519
- /* 只读模式:readOnly 的 disabled select 保持正常颜色(不是灰色) */
520
- .fc-select-readonly.ant-select-disabled .ant-select-selector {
521
- opacity: 1 !important;
522
- color: rgba(0, 0, 0, 0.88) !important;
523
- background-color: #ffffff !important;
524
- cursor: text !important;
525
- border: 1px solid #d9d9d9 !important;
526
- box-shadow: none !important;
527
- user-select: text !important;
528
- -webkit-user-select: text !important;
529
- -moz-user-select: text !important;
530
- -ms-user-select: text !important;
531
- }
532
-
533
- /* 只读模式:readOnly 的 disabled select 悬停时保持正常样式 */
534
- .fc-select-readonly.ant-select-disabled:hover .ant-select-selector {
535
- border-color: #d9d9d9 !important;
536
- box-shadow: none !important;
537
- }
538
-
539
- /* 只读模式:readOnly 的 disabled select 聚焦时保持正常样式 */
540
- .fc-select-readonly.ant-select-disabled.ant-select-focused .ant-select-selector,
541
- .fc-select-readonly.ant-select-disabled:focus .ant-select-selector {
542
- border-color: #d9d9d9 !important;
543
- box-shadow: none !important;
544
- outline: none !important;
545
- }
546
-
547
- /* 只读模式:允许所有文本选择和复制 */
548
- .ant-input[readonly],
549
- .ant-input[readonly] *,
550
- .ant-textarea[readonly],
551
- .ant-textarea[readonly] *,
552
- .fc-select-readonly.ant-select-disabled .ant-select-selector *,
553
- .fc-select-readonly.ant-select-disabled .ant-select-selection-item,
554
- .fc-select-readonly.ant-select-disabled .ant-select-selection-item-content {
555
- user-select: text !important;
556
- -webkit-user-select: text !important;
557
- -moz-user-select: text !important;
558
- -ms-user-select: text !important;
559
- }
560
-
561
- /* 只读模式:允许 readOnly 的 disabled select 的多选选项选择和复制(需要 pointer-events) */
562
- .fc-select-readonly.ant-select-disabled .ant-select-selector,
563
- .fc-select-readonly.ant-select-disabled .ant-select-selection,
564
- .fc-select-readonly.ant-select-disabled .ant-select-selection-item,
565
- .fc-select-readonly.ant-select-disabled .ant-select-selection-item-content,
566
- .fc-select-readonly.ant-select-disabled .ant-select-selection-overflow,
567
- .fc-select-readonly.ant-select-disabled .ant-select-selection-overflow-item {
568
- pointer-events: auto !important;
569
- cursor: text !important;
570
- }
571
-
572
- /* 只读模式:防止 readOnly 的 disabled select 的多选选项显示为灰色 */
573
- .fc-select-readonly.ant-select-disabled.ant-select-multiple
574
- .ant-select-selection-item {
575
- opacity: 1 !important;
576
- color: rgba(0, 0, 0, 0.88) !important;
577
- background-color: #f0f0f0 !important;
578
- border-color: #d9d9d9 !important;
579
- cursor: text !important;
580
- }
581
-
582
- /* 预览模式:防止 disabled select 的多选选项显示为灰色,并允许文本选择 */
583
- .form-create.is-preview
584
- .ant-select-disabled.ant-select-multiple
585
- .ant-select-selection-item {
586
- opacity: 1 !important;
587
- color: inherit !important;
588
- background-color: #f0f0f0 !important;
589
- border-color: #d9d9d9 !important;
590
- cursor: text !important;
591
- pointer-events: auto !important;
592
- }
593
-
594
- /* 预览模式:防止日期选择器显示为禁用状态 */
595
- .form-create.is-preview .ant-picker-disabled {
596
- opacity: 1 !important;
597
- color: inherit !important;
598
- background-color: transparent !important;
599
- cursor: default !important;
600
- }
601
-
602
- /* 预览模式:富文本编辑器样式 */
603
- .form-create.is-preview .w-e-text-container {
604
- border: none !important;
605
- box-shadow: none !important;
606
- background: transparent !important;
607
- /* 移除高度限制,让内容自适应 */
608
- height: auto !important;
609
- min-height: auto !important;
610
- max-height: none !important;
611
- }
612
-
613
- .form-create.is-preview .w-e-toolbar {
614
- display: none !important;
615
- }
616
-
617
- .form-create.is-preview .w-e-text {
618
- border: none !important;
619
- box-shadow: none !important;
620
- background: transparent !important;
621
- /* 移除高度限制,让内容自适应 */
622
- height: auto !important;
623
- min-height: auto !important;
624
- max-height: none !important;
625
- }
626
-
627
- /* 只读模式:富文本编辑器样式(通过 contenteditable="false" 识别) */
628
- .w-e-text[contenteditable='false'] {
629
- border: none !important;
630
- box-shadow: none !important;
631
- background: transparent !important;
632
- /* 移除高度限制,让内容自适应 */
633
- height: auto !important;
634
- min-height: auto !important;
635
- max-height: none !important;
636
- }
637
-
638
- /* 预览模式:编辑器根元素自适应高度 */
639
- .form-create.is-preview div[id^='editor'][readonly='true'],
640
- .form-create.is-preview div[id^='editor'][readonly] {
641
- height: auto !important;
642
- min-height: auto !important;
643
- max-height: none !important;
644
- }
645
-
646
- /* 只读模式下,通过 JavaScript 设置容器自适应高度 */
647
- /* 容器样式会在 setReadOnlyMode 中通过 JavaScript 动态设置 */
648
-
649
- /* 富文本内容只读:允许选择文本和点击链接,但禁止编辑 */
650
- .form-create.is-preview .w-e-text p,
651
- .form-create.is-preview .w-e-text div,
652
- .form-create.is-preview .w-e-text span,
653
- .form-create.is-preview .w-e-text li,
654
- .form-create.is-preview .w-e-text ul,
655
- .form-create.is-preview .w-e-text ol,
656
- .form-create.is-preview .w-e-text h1,
657
- .form-create.is-preview .w-e-text h2,
658
- .form-create.is-preview .w-e-text h3,
659
- .form-create.is-preview .w-e-text h4,
660
- .form-create.is-preview .w-e-text h5,
661
- .form-create.is-preview .w-e-text h6,
662
- .form-create.is-preview .w-e-text table,
663
- .form-create.is-preview .w-e-text tr,
664
- .form-create.is-preview .w-e-text td,
665
- .form-create.is-preview .w-e-text th {
666
- /* 允许文本选择,用于复制 */
667
- user-select: text !important;
668
- -webkit-user-select: text !important;
669
- -moz-user-select: text !important;
670
- -ms-user-select: text !important;
671
- /* 阻止编辑,但不阻止交互 */
672
- pointer-events: auto !important;
673
- }
674
-
675
- /* 允许链接可以点击 */
676
- .form-create.is-preview .w-e-text a {
677
- pointer-events: auto !important;
678
- cursor: pointer !important;
679
- user-select: text !important;
680
- -webkit-user-select: text !important;
681
- -moz-user-select: text !important;
682
- -ms-user-select: text !important;
683
- text-decoration: underline !important;
684
- }
685
-
686
- /* 允许图片可以查看 */
687
- .form-create.is-preview .w-e-text img {
688
- pointer-events: auto !important;
689
- user-select: none !important;
690
- -webkit-user-select: none !important;
691
- -moz-user-select: none !important;
692
- -ms-user-select: none !important;
693
- }
694
-
695
- /* 允许只读模式下的富文本编辑器容器(v-html 渲染)中的链接和图片可以点击 */
696
- .form-create.is-preview .fc-editor-readonly {
697
- pointer-events: auto !important;
698
- }
699
-
700
- .form-create.is-preview .fc-editor-readonly a {
701
- pointer-events: auto !important;
702
- cursor: pointer !important;
703
- }
704
-
705
- .form-create.is-preview .fc-editor-readonly img {
706
- pointer-events: auto !important;
707
- cursor: pointer !important;
708
- }
709
-
710
- /* 禁止编辑:通过 contenteditable 属性控制 */
711
- .form-create.is-preview .w-e-text {
712
- user-select: text !important;
713
- -webkit-user-select: text !important;
714
- -moz-user-select: text !important;
715
- -ms-user-select: text !important;
716
- }
717
-
718
- /* 预览模式:禁用选择器下拉 */
719
- .form-create.is-preview .ant-select-dropdown,
720
- /* 只读模式:禁用选择器下拉 */
721
- .ant-select-disabled + .ant-select-dropdown,
722
- .ant-select.ant-select-disabled ~ .ant-select-dropdown {
723
- display: none !important;
724
- }
725
-
726
- /* 预览模式:禁用日期选择器弹窗 */
727
- .form-create.is-preview .ant-picker-dropdown {
728
- display: none !important;
729
- }
730
-
731
- /* 预览模式:禁用级联选择器下拉 */
732
- .form-create.is-preview .ant-cascader-dropdown {
733
- display: none !important;
734
- }
735
-
736
- .fc-form-footer {
737
- margin-top: 12px;
738
- }
739
-
740
- /* CusSelect 组件样式 */
741
- .fc-cus-select {
742
- width: 100%;
743
- box-sizing: border-box;
744
- font-size: 14px;
745
- font-variant: tabular-nums;
746
- line-height: 1.5715;
747
- list-style: none;
748
- font-feature-settings: 'tnum';
749
- position: relative;
750
- display: inline-block;
751
- cursor: pointer;
752
- }
753
-
754
- .fc-cus-select-single {
755
- height: 32px;
756
- }
757
-
758
- .fc-cus-select-multiple {
759
- min-height: 32px;
760
- }
761
-
762
- .fc-cus-select-selector {
763
- display: flex;
764
- width: 100%;
765
- position: relative;
766
- background-color: #fff;
767
- border: 1px solid #d9d9d9;
768
- border-radius: 6px;
769
- transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
770
- cursor: pointer;
771
- min-height: 32px;
772
- padding: 1px 11px;
773
- align-items: center;
774
- box-sizing: border-box;
775
- }
776
-
777
- /* 无边框模式 */
778
- .fc-cus-select-selector-borderless {
779
- border: none !important;
780
- box-shadow: none !important;
781
- }
782
-
783
- .fc-cus-select:not(.fc-cus-select-disabled):hover
784
- .fc-cus-select-selector-borderless {
785
- border: none !important;
786
- box-shadow: none !important;
787
- }
788
-
789
- .fc-cus-select:focus:not(.fc-cus-select-disabled)
790
- .fc-cus-select-selector-borderless,
791
- .fc-cus-select:focus-within:not(.fc-cus-select-disabled)
792
- .fc-cus-select-selector-borderless {
793
- border: none !important;
794
- box-shadow: none !important;
795
- outline: none !important;
796
- }
797
-
798
- .fc-cus-select-single .fc-cus-select-selector {
799
- height: 32px;
800
- padding: 0 11px;
801
- }
802
-
803
- .fc-cus-select-arrow {
804
- position: absolute;
805
- top: 50%;
806
- right: 11px;
807
- transform: translateY(-50%);
808
- display: inline-flex;
809
- align-items: center;
810
- color: rgba(0, 0, 0, 0.45);
811
- font-style: normal;
812
- line-height: 0;
813
- text-align: center;
814
- text-transform: none;
815
- vertical-align: -0.125em;
816
- text-rendering: optimizeLegibility;
817
- pointer-events: none;
818
- }
819
-
820
- .fc-cus-select-multiple .fc-cus-select-arrow {
821
- right: 11px;
822
- }
823
-
824
- .fc-cus-select-multiple .fc-cus-select-clear {
825
- right: 11px;
826
- }
827
-
828
- .fc-cus-select-arrow .anticon {
829
- display: inline-block;
830
- font-size: 12px;
831
- line-height: 1;
832
- vertical-align: baseline;
833
- }
834
-
835
- .fc-cus-select-arrow .anticon svg {
836
- display: inline-block;
837
- width: 1em;
838
- height: 1em;
839
- }
840
-
841
- .fc-cus-select-clear {
842
- position: absolute;
843
- top: 50%;
844
- right: 11px;
845
- transform: translateY(-50%);
846
- display: inline-flex;
847
- align-items: center;
848
- color: rgba(0, 0, 0, 0.25);
849
- font-style: normal;
850
- line-height: 0;
851
- text-align: center;
852
- text-transform: none;
853
- vertical-align: -0.125em;
854
- text-rendering: optimizeLegibility;
855
- cursor: pointer;
856
- transition: color 0.3s;
857
- opacity: 1;
858
- pointer-events: auto;
859
- }
860
-
861
- .fc-cus-select-clear:hover {
862
- color: rgba(0, 0, 0, 0.45);
863
- }
864
-
865
- .fc-cus-select-clear .anticon {
866
- display: inline-block;
867
- font-size: 12px;
868
- line-height: 1;
869
- vertical-align: baseline;
870
- }
871
-
872
- .fc-cus-select-clear .anticon svg {
873
- display: inline-block;
874
- width: 1em;
875
- height: 1em;
876
- }
877
-
878
- .fc-cus-select:not(.fc-cus-select-disabled):hover .fc-cus-select-selector {
879
- border-color: #4096ff;
880
- }
881
-
882
- .fc-cus-select:focus:not(.fc-cus-select-disabled) .fc-cus-select-selector {
883
- border-color: #4096ff;
884
- outline: 0;
885
- box-shadow: 0 0 0 2px rgba(64, 150, 255, 0.2);
886
- }
887
-
888
- .fc-cus-select:focus-within:not(.fc-cus-select-disabled)
889
- .fc-cus-select-selector {
890
- border-color: #4096ff;
891
- outline: 0;
892
- box-shadow: 0 0 0 2px rgba(64, 150, 255, 0.2);
893
- }
894
-
895
- .fc-cus-select-single .fc-cus-select-selection-item {
896
- display: flex;
897
- flex: 1;
898
- align-items: center;
899
- max-width: 100%;
900
- line-height: 32px;
901
- color: rgba(0, 0, 0, 0.88);
902
- overflow: hidden;
903
- white-space: nowrap;
904
- text-overflow: ellipsis;
905
- padding-right: 24px;
906
- box-sizing: border-box;
907
- }
908
-
909
- .fc-cus-select-selection-placeholder {
910
- flex: 1;
911
- overflow: hidden;
912
- color: rgba(0, 0, 0, 0.25);
913
- white-space: nowrap;
914
- text-overflow: ellipsis;
915
- pointer-events: none;
916
- }
917
-
918
- .fc-cus-select-selection-overflow {
919
- position: relative;
920
- display: flex;
921
- flex: auto;
922
- flex-wrap: wrap;
923
- max-width: 100%;
924
- gap: 4px;
925
- min-width: 0;
926
- padding-right: 20px;
927
- box-sizing: border-box;
928
- }
929
-
930
- .fc-cus-select-selection-overflow-item {
931
- flex: none;
932
- align-self: center;
933
- max-width: 100%;
934
- }
935
-
936
- .fc-cus-select-multiple .fc-cus-select-selection-item {
937
- position: relative;
938
- display: inline-flex;
939
- flex: none;
940
- box-sizing: border-box;
941
- max-width: 100%;
942
- height: 24px;
943
- margin-top: 2px;
944
- margin-bottom: 2px;
945
- line-height: 22px;
946
- background: #fafafa;
947
- border: 1px solid #f0f0f0;
948
- border-radius: 4px;
949
- cursor: pointer;
950
- transition: font-size 0.3s, line-height 0.3s, height 0.3s;
951
- user-select: none;
952
- padding: 0 4px 0 8px;
953
- align-items: center;
954
- gap: 4px;
955
- }
956
-
957
- .fc-cus-select-selection-item-content {
958
- display: inline-block;
959
- overflow: hidden;
960
- white-space: pre;
961
- text-overflow: ellipsis;
962
- color: rgba(0, 0, 0, 0.88);
963
- }
964
-
965
- .fc-cus-select-selection-item-remove {
966
- display: inline-flex;
967
- align-items: center;
968
- color: rgba(0, 0, 0, 0.45);
969
- cursor: pointer;
970
- font-weight: bold;
971
- transition: color 0.3s;
972
- line-height: 0;
973
- margin-left: 2px;
974
- }
975
-
976
- .fc-cus-select-selection-item-remove:hover {
977
- color: rgba(0, 0, 0, 0.75);
978
- }
979
-
980
- .fc-cus-select-selection-item-remove .anticon {
981
- display: inline-flex;
982
- align-items: center;
983
- font-style: normal;
984
- line-height: 0;
985
- text-align: center;
986
- text-transform: none;
987
- vertical-align: -0.125em;
988
- text-rendering: optimizeLegibility;
989
- font-size: 12px;
990
- }
991
-
992
- .fc-cus-select-selection-item-remove .anticon svg {
993
- display: inline-block;
994
- width: 1em;
995
- height: 1em;
996
- }
997
-
998
- .fc-cus-select-disabled {
999
- cursor: not-allowed;
1000
- }
1001
-
1002
- .fc-cus-select-disabled .fc-cus-select-selector {
1003
- cursor: not-allowed;
1004
- background-color: #f5f5f5;
1005
- color: rgba(0, 0, 0, 0.25);
1006
- border-color: #d9d9d9;
1007
- }
1008
-
1009
- .fc-cus-select-disabled .fc-cus-select-selection-item {
1010
- color: rgba(0, 0, 0, 0.25);
1011
- }
1012
-
1013
- .fc-cus-select-disabled .fc-cus-select-selection-placeholder {
1014
- color: rgba(0, 0, 0, 0.25);
1015
- }
1016
-
1017
- /* TableForm 组件样式 */
1018
- ._fc-table-form {
1019
- overflow: auto;
1020
- color: #666666;
1021
- }
1022
-
1023
- ._fc-table-form .form-create .ant-form-item {
1024
- margin-bottom: 1px !important;
1025
- }
1026
-
1027
- ._fc-table-form .ant-form-item-label,
1028
- ._fc-table-form .van-field__label {
1029
- display: none !important;
1030
- }
1031
-
1032
- ._fc-tf-head-idx,
1033
- ._fc-tf-idx {
1034
- width: 40px;
1035
- min-width: 40px;
1036
- font-weight: 500;
1037
- text-align: center;
1038
- }
1039
-
1040
- ._fc-tf-edit,
1041
- ._fc-tf-btn {
1042
- width: 70px;
1043
- min-width: 70px;
1044
- text-align: center;
1045
- }
1046
-
1047
- ._fc-tf-btn .fc-icon {
1048
- cursor: pointer;
1049
- }
1050
-
1051
- ._fc-table-form > .ant-btn {
1052
- display: flex;
1053
- align-items: center;
1054
- padding: 2px;
1055
- }
1056
-
1057
- ._fc-table-form._fc-disabled ._fc-tf-btn .fc-icon,
1058
- ._fc-table-form._fc-disabled > .ant-btn {
1059
- cursor: not-allowed;
1060
- }
1061
-
1062
- ._fc-tf-table {
1063
- width: 100%;
1064
- height: 100%;
1065
- overflow: hidden;
1066
- table-layout: fixed;
1067
- border: 1px solid #ebeef5;
1068
- border-bottom: 0 none;
1069
- }
1070
-
1071
- ._fc-table-form ._fc-tf-table > thead > tr > th {
1072
- border: 0 none;
1073
- border-bottom: 1px solid #ebeef5;
1074
- height: 40px;
1075
- font-weight: 500;
1076
- padding: 0 5px;
1077
- box-sizing: border-box;
1078
- }
1079
-
1080
- ._fc-table-form ._fc-tf-table > thead > tr > th + th {
1081
- border-left: 1px solid #ebeef5;
1082
- }
1083
-
1084
- ._fc-table-form tr {
1085
- min-height: 50px;
1086
- }
1087
-
1088
- ._fc-table-form ._fc-read-view {
1089
- text-align: center;
1090
- width: 100%;
1091
- }
1092
-
1093
- ._fc-table-form td {
1094
- padding: 5px;
1095
- min-height: 50px;
1096
- min-width: 80px;
1097
- position: relative;
1098
- box-sizing: border-box;
1099
- overflow-wrap: break-word;
1100
- overflow: hidden;
1101
- border: 0 none;
1102
- border-bottom: 1px solid #ebeef5;
1103
- }
1104
-
1105
- ._fc-table-form td + td {
1106
- border-left: 1px solid #ebeef5;
1107
- }
1108
-
1109
- ._fc-tf-table .ant-input-number,
1110
- ._fc-tf-table .ant-select,
1111
- ._fc-tf-table .ant-slider,
1112
- ._fc-tf-table .ant-cascader,
1113
- ._fc-tf-table .ant-picker {
1114
- width: 100%;
1115
- }
1116
-
1117
- ._fc-tf-head-required:before {
1118
- content: '*';
1119
- color: #f56c6c;
1120
- margin-right: 4px;
1121
- }
1122
-
1123
- /* TableFormView 组件样式 */
1124
- ._fd-table-form {
1125
- min-height: 130px;
1126
- width: 100%;
1127
- border: 1px solid #ececec;
1128
- background: #ffffff;
1129
- }
1130
-
1131
- ._fc-child-empty {
1132
- min-height: 130px;
1133
- }
1134
-
1135
- ._fd-tf-wrap {
1136
- display: flex;
1137
- overflow: auto;
1138
- }
1139
-
1140
- ._fd-tf-wrap > ._fd-drag-tool {
1141
- flex-shrink: 0;
1142
- display: flex;
1143
- margin: 2px;
1144
- height: auto;
1145
- overflow: auto;
1146
- }
1147
-
1148
- /* TableFormColumnView 组件样式 */
1149
- ._fd-tf-col ._fd-tf-con .ant-form-item {
1150
- margin-bottom: 1px !important;
1151
- }
1152
-
1153
- ._fd-tf-col {
1154
- display: flex;
1155
- flex-wrap: wrap;
1156
- flex-direction: column;
1157
- width: 180px;
1158
- flex-shrink: 0;
1159
- }
1160
-
1161
- ._fd-tf-con .ant-form-item-label,
1162
- ._fd-tf-con .van-field__label {
1163
- display: none !important;
1164
- }
1165
-
1166
- ._fd-tf-con {
1167
- display: flex;
1168
- flex: 1;
1169
- width: 100%;
1170
- }
1171
-
1172
- ._fd-tf-title {
1173
- height: 40px;
1174
- border-bottom: 1px solid #ebeef5;
1175
- margin-bottom: 0px;
1176
- padding: 0 5px;
1177
- box-sizing: border-box;
1178
- line-height: 32px;
1179
- }
1180
-
1181
- /* 仅在设计器中展示红色星号(不参与校验) */
1182
- /* 设计器特定场景 */
1183
- ._fc-designer
1184
- ._fc-m-drag
1185
- ._fc-fake-required
1186
- .ant-form-item-label
1187
- > label::before,
1188
- ._fc-designer
1189
- ._fc-m-drag
1190
- ._fc-fake-required
1191
- label.ant-form-item-no-colon::before,
1192
- /* 通用场景 - 带 label 容器 */
1193
- ._fc-fake-required
1194
- .ant-form-item-label
1195
- > label::before,
1196
- ._fc-fake-required
1197
- .ant-form-item-label
1198
- > label.ant-form-item-required::before,
1199
- /* 通用场景 - 无 label 容器(直接 label) */
1200
- ._fc-fake-required
1201
- label.ant-form-item-no-colon::before,
1202
- ._fc-fake-required
1203
- label::before {
1204
- display: inline-block;
1205
- margin-inline-end: 4px;
1206
- color: #ff4d4f;
1207
- font-size: 14px;
1208
- font-family: SimSun, sans-serif;
1209
- line-height: 1;
1210
- content: '*';
1211
- }
1212
-
1213
- ._fd-tf-required {
1214
- color: #f56c6c;
1215
- margin-right: 4px;
1216
- }
1217
-
1218
- ._fd-tf-con ._fc-l-item > * {
1219
- display: none !important;
1220
- }
1221
-
1222
- ._fd-tf-con .ant-input-number,
1223
- ._fd-tf-con .ant-select,
1224
- ._fd-tf-con .ant-slider,
1225
- ._fd-tf-con .ant-cascader,
1226
- ._fd-tf-con .ant-picker {
1227
- width: 100%;
1228
- }
1229
-
1230
- ._fd-tf-col:has(._fd-tf-col) {
1231
- width: auto !important;
1232
- }
1233
-
1234
- /* Flex 容器子项 flex 样式 - 使用通用选择器,匹配所有直接子元素 */
1235
- .ant-flex._fc-flex-container > * {
1236
- flex: var(--fc-child-flex) !important;
1237
- }
1238
-
1239
- /* 更具体的选择器,针对被 form-item 包裹的子元素 */
1240
- .ant-flex._fc-flex-container > .ant-form-item {
1241
- flex: var(--fc-child-flex) !important;
1242
- }
1243
-
1244
- /* 垂直方向的 Flex 容器子项宽度样式 - 使用通用选择器 */
1245
- .ant-flex._fc-flex-vertical > * {
1246
- width: var(--fc-child-width, 100%) !important;
1247
- }
1248
-
1249
- /* 更具体的选择器,针对被 form-item 包裹的子元素 */
1250
- .ant-flex._fc-flex-vertical > .ant-form-item {
1251
- width: var(--fc-child-width, 100%) !important;
1252
- }
1253
-
1254
- /* Flex 和 Space 组件重置包裹它们的 ant-form-item margin-bottom 的样式 */
1255
- .ant-form-item._fc-reset-margin-bottom {
1256
- margin-bottom: 0 !important;
1257
- }
1258
-
1259
- ._fc-table {
1260
- overflow: auto;
1261
- }
1262
-
1263
- ._fc-table > table {
1264
- width: 100%;
1265
- height: 100%;
1266
- overflow: hidden;
1267
- table-layout: fixed;
1268
- border: 1px solid #ebeef5;
1269
- border-bottom: 0 none;
1270
- border-right: 0 none;
1271
- border-collapse: collapse;
1272
- }
1273
-
1274
- ._fc-table tr {
1275
- min-height: 50px;
1276
- }
1277
-
1278
- ._fc-table td {
1279
- padding: 12px 3px;
1280
- min-height: 50px;
1281
- min-width: 80px;
1282
- position: relative;
1283
- box-sizing: border-box;
1284
- overflow-wrap: break-word;
1285
- overflow: hidden;
1286
- border: 0 none;
1287
- border-right: 1px solid #ebeef5;
1288
- border-bottom: 1px solid #ebeef5;
1289
- }
1290
-
1291
- ._fc-table.is-mini td {
1292
- padding: 0;
1293
- min-height: 12px;
1294
- }
1295
-
1296
- ._fc-table.is-mini .ant-form-item {
1297
- padding: 0;
1298
- margin: 0;
1299
- }
1
+ .form-create .form-create .ant-form-item {
2
+ margin-bottom: 22px;
3
+ }
4
+
5
+ .form-create .form-create .ant-form-item.ant-form-item-with-help {
6
+ margin-bottom: 3px;
7
+ }
8
+
9
+ .form-create
10
+ .form-create
11
+ .ant-form-item
12
+ .ant-form-item.ant-form-item-with-help {
13
+ margin-bottom: -22px;
14
+ }
15
+
16
+ .form-create {
17
+ width: 100%;
18
+ }
19
+
20
+ .form-create.is-preview .fc-clock,
21
+ .form-create .fc-none,
22
+ .form-create.is-preview
23
+ .ant-form-item
24
+ .ant-form-item-label
25
+ > label.ant-form-item-required::before {
26
+ display: none !important;
27
+ }
28
+
29
+ /* 预览模式样式增强 */
30
+
31
+ .form-create.is-preview .ant-form-item {
32
+ margin-bottom: 8px !important;
33
+ }
34
+
35
+ .form-create.is-preview .form-create .ant-form-item {
36
+ margin-bottom: 8px !important;
37
+ }
38
+
39
+ .form-create.is-preview .ant-form-item.ant-form-item-with-help {
40
+ margin-bottom: 4px !important;
41
+ }
42
+
43
+ .form-create.is-preview
44
+ .form-create
45
+ .ant-form-item
46
+ .ant-form-item.ant-form-item-with-help {
47
+ margin-bottom: -8px !important;
48
+ }
49
+
50
+ /* 移除组件边框 */
51
+ /* 预览模式或只读模式的样式 */
52
+ .form-create.is-preview .ant-input,
53
+ .form-create.is-preview .ant-input-number,
54
+ .form-create.is-preview .ant-select-selector,
55
+ .form-create.is-preview .ant-picker,
56
+ .form-create.is-preview .ant-cascader-picker,
57
+ .form-create.is-preview .ant-input-password,
58
+ .form-create.is-preview .ant-textarea,
59
+ .form-create.is-preview .ant-upload,
60
+ .form-create.is-preview .ant-upload-list,
61
+ .form-create.is-preview .ant-upload-list-item,
62
+ .form-create.is-preview .ant-input-wrapper,
63
+ .form-create.is-preview .ant-input-affix-wrapper,
64
+ .form-create.is-preview .ant-input-group-wrapper,
65
+ .form-create.is-preview .ant-input-group,
66
+ /* 只读模式的样式(通过 readOnly 属性或 disabled 属性识别) */
67
+ .ant-input[readonly],
68
+ .ant-input[readonly] ~ .ant-input-wrapper,
69
+ .ant-input[readonly] ~ .ant-input-affix-wrapper,
70
+ .ant-textarea[readonly],
71
+ .ant-picker-disabled,
72
+ .ant-cascader-disabled .ant-cascader-picker,
73
+ input[readonly].ant-input,
74
+ textarea[readonly].ant-input {
75
+ border: none !important;
76
+ box-shadow: none !important;
77
+ background: transparent !important;
78
+ }
79
+
80
+ .form-create.is-preview .ant-input:focus,
81
+ .form-create.is-preview .ant-input-number:focus,
82
+ .form-create.is-preview .ant-select-focused .ant-select-selector,
83
+ .form-create.is-preview .ant-picker:focus,
84
+ .form-create.is-preview .ant-cascader-picker:focus,
85
+ .form-create.is-preview .ant-input-password:focus,
86
+ .form-create.is-preview .ant-textarea:focus,
87
+ .form-create.is-preview .ant-input-wrapper:focus,
88
+ .form-create.is-preview .ant-input-affix-wrapper:focus,
89
+ .form-create.is-preview .ant-input-affix-wrapper-focused,
90
+ /* 只读模式:移除焦点状态边框 */
91
+ .ant-input[readonly]:focus,
92
+ .ant-textarea[readonly]:focus,
93
+ /* 只读模式:readOnly 的 disabled select 移除焦点状态边框 */
94
+ .fc-select-readonly.ant-select-disabled.ant-select-focused .ant-select-selector,
95
+ .fc-select-readonly.ant-select-disabled:focus .ant-select-selector,
96
+ .ant-picker-disabled:focus {
97
+ border: none !important;
98
+ box-shadow: none !important;
99
+ outline: none !important;
100
+ }
101
+
102
+ .form-create.is-preview .ant-input:hover,
103
+ .form-create.is-preview .ant-input-number:hover,
104
+ .form-create.is-preview .ant-select:hover .ant-select-selector,
105
+ .form-create.is-preview .ant-picker:hover,
106
+ .form-create.is-preview .ant-cascader-picker:hover,
107
+ .form-create.is-preview .ant-input-password:hover,
108
+ .form-create.is-preview .ant-textarea:hover,
109
+ .form-create.is-preview .ant-input-wrapper:hover,
110
+ .form-create.is-preview .ant-input-affix-wrapper:hover,
111
+ /* 只读模式:移除悬停状态边框 */
112
+ .ant-input[readonly]:hover,
113
+ .ant-textarea[readonly]:hover,
114
+ /* 只读模式:readOnly 的 disabled select 移除悬停状态边框 */
115
+ .fc-select-readonly.ant-select-disabled:hover .ant-select-selector,
116
+ .ant-picker-disabled:hover {
117
+ border: none !important;
118
+ box-shadow: none !important;
119
+ }
120
+
121
+ /* 预览模式:移除所有 input 相关元素的边框(更全面的覆盖) */
122
+ .form-create.is-preview .ant-input-affix-wrapper,
123
+ .form-create.is-preview .ant-input-affix-wrapper:hover,
124
+ .form-create.is-preview .ant-input-affix-wrapper-focused,
125
+ .form-create.is-preview .ant-input-affix-wrapper-disabled,
126
+ .form-create.is-preview .ant-input-wrapper .ant-input,
127
+ .form-create.is-preview .ant-input-group-addon,
128
+ .form-create.is-preview .ant-input-group .ant-input,
129
+ .form-create.is-preview input.ant-input,
130
+ .form-create.is-preview textarea.ant-input {
131
+ border: none !important;
132
+ border-width: 0 !important;
133
+ box-shadow: none !important;
134
+ outline: none !important;
135
+ background: transparent !important;
136
+ }
137
+
138
+ /* 隐藏字数限制等提示信息 */
139
+ .form-create.is-preview .ant-input-character-count,
140
+ .form-create.is-preview .ant-textarea-character-count,
141
+ .form-create.is-preview .ant-form-item-explain,
142
+ .form-create.is-preview .ant-form-item-extra,
143
+ .form-create.is-preview .ant-form-item-feedback-icon,
144
+ .form-create.is-preview
145
+ .ant-form-item-has-feedback
146
+ .ant-form-item-children-icon {
147
+ display: none !important;
148
+ }
149
+
150
+ /* 隐藏必填标记 */
151
+ .form-create.is-preview
152
+ .ant-form-item-label
153
+ > label.ant-form-item-required::before,
154
+ .form-create.is-preview label.ant-form-item-required::before {
155
+ display: none !important;
156
+ }
157
+
158
+ /* 隐藏帮助图标和提示 */
159
+ .form-create.is-preview .ant-form-item-label .anticon,
160
+ .form-create.is-preview .ant-form-item-label .fc-icon {
161
+ display: none !important;
162
+ }
163
+
164
+ /* 预览模式:禁用所有交互 */
165
+ .form-create.is-preview * {
166
+ pointer-events: none !important;
167
+ }
168
+
169
+ /* 预览模式:允许所有文本选择和复制 */
170
+ .form-create.is-preview * {
171
+ user-select: text !important;
172
+ -webkit-user-select: text !important;
173
+ -moz-user-select: text !important;
174
+ -ms-user-select: text !important;
175
+ }
176
+
177
+ /* 预览模式:允许滚动容器滚动 */
178
+ .form-create.is-preview [style*='overflow'],
179
+ .form-create.is-preview .ant-table-body,
180
+ .form-create.is-preview .ant-table-tbody,
181
+ .form-create.is-preview .w-e-text-container,
182
+ .form-create.is-preview .w-e-text,
183
+ .form-create.is-preview [class*='scroll'],
184
+ .form-create.is-preview [class*='overflow'] {
185
+ pointer-events: auto !important;
186
+ overflow: auto !important;
187
+ overflow-x: auto !important;
188
+ overflow-y: auto !important;
189
+ }
190
+
191
+ /* 预览模式:允许 textarea 交互(用于复制文本) */
192
+ .form-create.is-preview textarea.ant-input {
193
+ pointer-events: auto !important;
194
+ cursor: text !important;
195
+ }
196
+
197
+ /* 预览模式:允许 input 文本选择和复制 */
198
+ .form-create.is-preview .ant-input,
199
+ .form-create.is-preview input.ant-input {
200
+ pointer-events: auto !important;
201
+ cursor: text !important;
202
+ }
203
+
204
+ /* 预览模式:允许 select 组件文本选择和复制 */
205
+ .form-create.is-preview .ant-select-selector,
206
+ .form-create.is-preview .ant-select-selection,
207
+ .form-create.is-preview .ant-select-selection-item,
208
+ .form-create.is-preview .ant-select-selection-placeholder,
209
+ .form-create.is-preview .ant-select-selection-item-content,
210
+ .form-create.is-preview .ant-select-selection-overflow,
211
+ .form-create.is-preview .ant-select-selection-overflow-item {
212
+ pointer-events: auto !important;
213
+ cursor: text !important;
214
+ }
215
+
216
+ /* 预览模式:允许自定义 select 组件文本选择和复制 */
217
+ .form-create.is-preview .fc-cus-select-selector,
218
+ .form-create.is-preview .fc-cus-select-selection-item,
219
+ .form-create.is-preview .fc-cus-select-selection-placeholder,
220
+ .form-create.is-preview .fc-cus-select-selection-item-content {
221
+ pointer-events: auto !important;
222
+ cursor: text !important;
223
+ }
224
+
225
+ /* 预览模式:允许 tableForm 组件文本选择和复制 */
226
+ .form-create.is-preview ._fc-table-form,
227
+ .form-create.is-preview ._fc-table-form * {
228
+ pointer-events: auto !important;
229
+ }
230
+
231
+ /* 预览模式:tableForm 中的选择列 checkbox 和操作列按钮保持不可交互 */
232
+ .form-create.is-preview ._fc-table-form ._fc-tf-select,
233
+ .form-create.is-preview ._fc-table-form ._fc-tf-select *,
234
+ .form-create.is-preview ._fc-table-form ._fc-tf-btn,
235
+ .form-create.is-preview ._fc-table-form ._fc-tf-btn *,
236
+ .form-create.is-preview ._fc-table-form ._fc-tf-head-select,
237
+ .form-create.is-preview ._fc-table-form ._fc-tf-head-select * {
238
+ pointer-events: none !important;
239
+ user-select: none !important;
240
+ -webkit-user-select: none !important;
241
+ -moz-user-select: none !important;
242
+ -ms-user-select: none !important;
243
+ cursor: default !important;
244
+ }
245
+
246
+ /* 预览模式:允许按钮点击 */
247
+ .form-create.is-preview .ant-btn {
248
+ pointer-events: auto !important;
249
+ cursor: pointer !important;
250
+ }
251
+
252
+ /* 预览模式:允许滚动条滚动(针对有滚动条的容器) */
253
+ .form-create.is-preview .ant-table-body,
254
+ .form-create.is-preview .ant-table-tbody,
255
+ .form-create.is-preview [style*='overflow'] {
256
+ pointer-events: auto !important;
257
+ }
258
+
259
+ /* 预览模式:允许富文本编辑器容器滚动 */
260
+ .form-create.is-preview .w-e-text-container {
261
+ pointer-events: auto !important;
262
+ overflow-y: auto !important;
263
+ overflow-x: hidden !important;
264
+ }
265
+
266
+ .form-create.is-preview .w-e-text {
267
+ pointer-events: auto !important;
268
+ overflow-y: auto !important;
269
+ overflow-x: hidden !important;
270
+ cursor: default !important;
271
+ /* 确保可以滚动 */
272
+ -webkit-overflow-scrolling: touch !important;
273
+ }
274
+
275
+ /* 预览模式:允许 upload 组件的预览功能(整个列表项可以点击预览) */
276
+ .form-create.is-preview .ant-upload-list-item {
277
+ pointer-events: auto !important;
278
+ }
279
+
280
+ /* 预览模式:允许 upload 组件中的预览相关元素 */
281
+ .form-create.is-preview .ant-upload-list-item-thumbnail,
282
+ .form-create.is-preview .ant-upload-list-item-thumbnail *,
283
+ .form-create.is-preview .ant-upload-list-item-name,
284
+ .form-create.is-preview .ant-upload-list-item-preview,
285
+ .form-create.is-preview .ant-upload-list-item-preview-icon,
286
+ .form-create.is-preview .ant-upload-list-item-actions-preview,
287
+ .form-create.is-preview .ant-upload-list-item-actions .anticon-eye,
288
+ .form-create.is-preview .ant-upload-list-item-info,
289
+ .form-create.is-preview .ant-upload-list-item-info > span,
290
+ .form-create.is-preview
291
+ .ant-upload-picture-card
292
+ .ant-upload-list-item-thumbnail,
293
+ .form-create.is-preview
294
+ .ant-upload-picture-card
295
+ .ant-upload-list-item-thumbnail
296
+ * {
297
+ pointer-events: auto !important;
298
+ cursor: pointer !important;
299
+ }
300
+
301
+ /* 预览模式:允许 image 组件的预览功能 */
302
+ .form-create.is-preview .ant-image,
303
+ .form-create.is-preview .ant-image-img,
304
+ .form-create.is-preview .ant-image-mask,
305
+ .form-create.is-preview .ant-image-mask-info {
306
+ pointer-events: auto !important;
307
+ cursor: pointer !important;
308
+ }
309
+
310
+ /* 预览模式:允许图片预览弹窗可以交互 */
311
+ .form-create.is-preview .ant-modal,
312
+ .form-create.is-preview .ant-modal-wrap,
313
+ .form-create.is-preview .ant-modal-mask,
314
+ .form-create.is-preview .ant-modal-content,
315
+ .form-create.is-preview .ant-modal-close,
316
+ .form-create.is-preview .ant-modal-header,
317
+ .form-create.is-preview .ant-modal-body,
318
+ .form-create.is-preview .ant-modal-footer {
319
+ pointer-events: auto !important;
320
+ }
321
+
322
+ /* 预览模式:隐藏 upload 组件的上传按钮 */
323
+ .form-create.is-preview .ant-upload-select,
324
+ .form-create.is-preview .ant-upload-select-picture-card {
325
+ display: none !important;
326
+ }
327
+
328
+ /* 预览模式:阻止 upload 组件中的删除和其他操作按钮(优先级更高) */
329
+ .form-create.is-preview .ant-upload-list-item-actions-delete,
330
+ .form-create.is-preview .ant-upload-list-item-actions-upload,
331
+ .form-create.is-preview .ant-upload-list-item-actions-download,
332
+ .form-create.is-preview .ant-upload-list-item-actions .anticon-delete,
333
+ .form-create.is-preview .ant-upload-list-item-actions .anticon-close,
334
+ .form-create.is-preview .ant-upload-list-item-actions-item .anticon-delete,
335
+ .form-create.is-preview .ant-upload-list-item-actions-item-delete,
336
+ .form-create.is-preview .ant-upload-list-item-actions-item-upload,
337
+ .form-create.is-preview .ant-upload-list-item-remove {
338
+ pointer-events: none !important;
339
+ cursor: not-allowed !important;
340
+ }
341
+
342
+ /* 预览模式:防止组件显示为禁用状态(不置灰) */
343
+ .form-create.is-preview .ant-input,
344
+ .form-create.is-preview .ant-input-number,
345
+ .form-create.is-preview .ant-select,
346
+ .form-create.is-preview .ant-picker,
347
+ .form-create.is-preview .ant-cascader,
348
+ .form-create.is-preview .ant-input-password,
349
+ .form-create.is-preview .ant-textarea,
350
+ .form-create.is-preview .ant-radio,
351
+ .form-create.is-preview .ant-checkbox,
352
+ .form-create.is-preview .ant-switch,
353
+ .form-create.is-preview .ant-slider,
354
+ .form-create.is-preview .ant-rate,
355
+ .form-create.is-preview .ant-upload {
356
+ opacity: 1 !important;
357
+ color: inherit !important;
358
+ background-color: transparent !important;
359
+ }
360
+
361
+ /* 只读模式:防止 upload 组件显示为禁用状态(不置灰) */
362
+ .ant-upload-disabled,
363
+ .ant-upload.ant-upload-disabled {
364
+ opacity: 1 !important;
365
+ color: inherit !important;
366
+ background-color: transparent !important;
367
+ }
368
+
369
+ /* 只读模式:防止 upload 列表项显示为禁用状态 */
370
+ .ant-upload-disabled .ant-upload-list-item,
371
+ .ant-upload.ant-upload-disabled .ant-upload-list-item {
372
+ opacity: 1 !important;
373
+ }
374
+
375
+ /* 只读模式:防止 upload 列表项缩略图显示为禁用状态 */
376
+ .ant-upload-disabled .ant-upload-list-item-thumbnail,
377
+ .ant-upload.ant-upload-disabled .ant-upload-list-item-thumbnail,
378
+ .ant-upload-disabled .ant-upload-list-item-thumbnail img,
379
+ .ant-upload.ant-upload-disabled .ant-upload-list-item-thumbnail img {
380
+ opacity: 1 !important;
381
+ }
382
+
383
+ /* 预览模式:按钮保持原有颜色,不覆盖 */
384
+ .form-create.is-preview .ant-btn {
385
+ opacity: 1 !important;
386
+ /* 不设置 color,保持按钮的原始颜色 */
387
+ /* 不设置 background-color,保持按钮的原始背景色 */
388
+ }
389
+
390
+ /* 预览模式和只读模式:设置按钮链接的颜色 */
391
+ .form-create.is-preview .ant-btn-link,
392
+ .ant-btn-link[readonly],
393
+ .ant-btn-link[readonly='true'] {
394
+ color: #1677ff !important;
395
+ }
396
+
397
+ /* 预览模式:CusSelect 组件保持正常外观,不置灰 */
398
+ .form-create.is-preview .fc-cus-select,
399
+ .form-create.is-preview .fc-cus-select-selector,
400
+ .form-create.is-preview .fc-cus-select-selection-item {
401
+ opacity: 1 !important;
402
+ color: inherit !important;
403
+ background-color: transparent !important;
404
+ }
405
+
406
+ /* 预览模式:隐藏 CusSelect 的占位符 */
407
+ .form-create.is-preview .fc-cus-select-selection-placeholder {
408
+ display: none !important;
409
+ }
410
+
411
+ /* 只读模式:隐藏 CusSelect 的占位符 */
412
+ .fc-cus-select[readonly] .fc-cus-select-selection-placeholder,
413
+ .fc-cus-select[readonly='true'] .fc-cus-select-selection-placeholder {
414
+ display: none !important;
415
+ }
416
+
417
+ /* 预览模式:移除 CusSelect 选择器的边框 */
418
+ .form-create.is-preview .fc-cus-select-selector {
419
+ border: none !important;
420
+ box-shadow: none !important;
421
+ }
422
+
423
+ /* 预览模式:隐藏 CusSelect 的箭头和清除按钮 */
424
+ .form-create.is-preview .fc-cus-select-arrow,
425
+ .form-create.is-preview .fc-cus-select-clear {
426
+ display: none !important;
427
+ }
428
+
429
+ /* 预览模式:隐藏选择器的下拉箭头 */
430
+ .form-create.is-preview .ant-select-arrow,
431
+ .form-create.is-preview .ant-select-suffix,
432
+ /* 只读模式:隐藏 readOnly 选择器的下拉箭头 */
433
+ .fc-select-readonly.ant-select-disabled .ant-select-arrow,
434
+ .fc-select-readonly.ant-select-disabled .ant-select-suffix {
435
+ display: none !important;
436
+ }
437
+
438
+ /* 预览模式:隐藏日期选择器的图标 */
439
+ .form-create.is-preview .ant-picker-suffix,
440
+ .form-create.is-preview .ant-picker-suffix .anticon {
441
+ display: none !important;
442
+ }
443
+
444
+ /* 预览模式:隐藏其他输入框的清除按钮和图标 */
445
+ .form-create.is-preview .ant-input-clear-icon,
446
+ .form-create.is-preview .ant-input-number-handler,
447
+ .form-create.is-preview .ant-input-number-handler-wrap {
448
+ display: none !important;
449
+ }
450
+
451
+ /* 预览模式:防止输入框显示为禁用状态的灰色 */
452
+ .form-create.is-preview .ant-input[disabled],
453
+ .form-create.is-preview .ant-input-number[disabled],
454
+ .form-create.is-preview .ant-select-disabled,
455
+ .form-create.is-preview .ant-picker-disabled,
456
+ .form-create.is-preview .ant-textarea[disabled],
457
+ /* 只读模式:防止输入框显示为禁用状态的灰色 */
458
+ .ant-input[readonly],
459
+ .ant-input[readonly][disabled],
460
+ .ant-input-number[disabled],
461
+ .ant-textarea[readonly],
462
+ .ant-textarea[readonly][disabled],
463
+ /* 只读模式:防止 readOnly 的 disabled select 显示为禁用状态的灰色 */
464
+ .fc-select-readonly.ant-select-disabled,
465
+ .ant-picker-disabled {
466
+ opacity: 1 !important;
467
+ color: inherit !important;
468
+ background-color: transparent !important;
469
+ cursor: default !important;
470
+ }
471
+
472
+ /* 预览模式:textarea 自适应高度且只读可复制 */
473
+ .form-create.is-preview textarea.ant-input,
474
+ .form-create.is-preview .ant-textarea {
475
+ /* 允许文本选择,用于复制 */
476
+ user-select: text !important;
477
+ -webkit-user-select: text !important;
478
+ -moz-user-select: text !important;
479
+ -ms-user-select: text !important;
480
+ /* 允许交互,用于复制 */
481
+ pointer-events: auto !important;
482
+ cursor: text !important;
483
+ /* 移除滚动条(因为内容会自适应显示) */
484
+ overflow: hidden !important;
485
+ overflow-y: hidden !important;
486
+ overflow-x: hidden !important;
487
+ /* 确保只读状态下仍可正常显示和选择 */
488
+ resize: none !important;
489
+ /* 确保 textarea 能够根据内容自动调整高度 */
490
+ box-sizing: border-box !important;
491
+ /* 移除固定高度限制,让 JavaScript 动态设置 */
492
+ min-height: auto !important;
493
+ max-height: none !important;
494
+ }
495
+
496
+ /* 预览模式:textarea 只读状态样式 */
497
+ .form-create.is-preview textarea.ant-input[readonly],
498
+ .form-create.is-preview .ant-textarea[readonly] {
499
+ opacity: 1 !important;
500
+ color: inherit !important;
501
+ background-color: transparent !important;
502
+ cursor: text !important;
503
+ }
504
+
505
+ /* 预览/只读模式:InputNumber 只读可复制(不要用 disabled,否则无法选择复制) */
506
+ .form-create.is-preview .ant-input-number input[readonly],
507
+ .form-create.is-preview .ant-input-number input[readOnly],
508
+ .ant-input-number input[readonly],
509
+ .ant-input-number input[readOnly] {
510
+ user-select: text !important;
511
+ -webkit-user-select: text !important;
512
+ -moz-user-select: text !important;
513
+ -ms-user-select: text !important;
514
+ pointer-events: auto !important;
515
+ cursor: text !important;
516
+ background: transparent !important;
517
+ box-shadow: none !important;
518
+ }
519
+
520
+ /* 预览模式:防止选择器显示为禁用状态 */
521
+ .form-create.is-preview .ant-select-disabled .ant-select-selector {
522
+ opacity: 1 !important;
523
+ color: inherit !important;
524
+ background-color: transparent !important;
525
+ cursor: text !important;
526
+ border: none !important;
527
+ box-shadow: none !important;
528
+ user-select: text !important;
529
+ -webkit-user-select: text !important;
530
+ -moz-user-select: text !important;
531
+ -ms-user-select: text !important;
532
+ }
533
+
534
+ /* 只读模式:readOnly 的 disabled select 保持正常颜色(不是灰色) */
535
+ .fc-select-readonly.ant-select-disabled .ant-select-selector {
536
+ opacity: 1 !important;
537
+ color: rgba(0, 0, 0, 0.88) !important;
538
+ background-color: #ffffff !important;
539
+ cursor: text !important;
540
+ border: 1px solid #d9d9d9 !important;
541
+ box-shadow: none !important;
542
+ user-select: text !important;
543
+ -webkit-user-select: text !important;
544
+ -moz-user-select: text !important;
545
+ -ms-user-select: text !important;
546
+ }
547
+
548
+ /* 只读模式:readOnly 的 disabled select 悬停时保持正常样式 */
549
+ .fc-select-readonly.ant-select-disabled:hover .ant-select-selector {
550
+ border-color: #d9d9d9 !important;
551
+ box-shadow: none !important;
552
+ }
553
+
554
+ /* 只读模式:readOnly 的 disabled select 聚焦时保持正常样式 */
555
+ .fc-select-readonly.ant-select-disabled.ant-select-focused .ant-select-selector,
556
+ .fc-select-readonly.ant-select-disabled:focus .ant-select-selector {
557
+ border-color: #d9d9d9 !important;
558
+ box-shadow: none !important;
559
+ outline: none !important;
560
+ }
561
+
562
+ /* 只读模式:允许所有文本选择和复制 */
563
+ .ant-input[readonly],
564
+ .ant-input[readonly] *,
565
+ .ant-textarea[readonly],
566
+ .ant-textarea[readonly] *,
567
+ .fc-select-readonly.ant-select-disabled .ant-select-selector *,
568
+ .fc-select-readonly.ant-select-disabled .ant-select-selection-item,
569
+ .fc-select-readonly.ant-select-disabled .ant-select-selection-item-content {
570
+ user-select: text !important;
571
+ -webkit-user-select: text !important;
572
+ -moz-user-select: text !important;
573
+ -ms-user-select: text !important;
574
+ }
575
+
576
+ /* 只读模式:允许 readOnly disabled select 的多选选项选择和复制(需要 pointer-events) */
577
+ .fc-select-readonly.ant-select-disabled .ant-select-selector,
578
+ .fc-select-readonly.ant-select-disabled .ant-select-selection,
579
+ .fc-select-readonly.ant-select-disabled .ant-select-selection-item,
580
+ .fc-select-readonly.ant-select-disabled .ant-select-selection-item-content,
581
+ .fc-select-readonly.ant-select-disabled .ant-select-selection-overflow,
582
+ .fc-select-readonly.ant-select-disabled .ant-select-selection-overflow-item {
583
+ pointer-events: auto !important;
584
+ cursor: text !important;
585
+ }
586
+
587
+ /* 只读模式:防止 readOnly 的 disabled select 的多选选项显示为灰色 */
588
+ .fc-select-readonly.ant-select-disabled.ant-select-multiple
589
+ .ant-select-selection-item {
590
+ opacity: 1 !important;
591
+ color: rgba(0, 0, 0, 0.88) !important;
592
+ background-color: #f0f0f0 !important;
593
+ border-color: #d9d9d9 !important;
594
+ cursor: text !important;
595
+ }
596
+
597
+ /* 预览模式:防止 disabled select 的多选选项显示为灰色,并允许文本选择 */
598
+ .form-create.is-preview
599
+ .ant-select-disabled.ant-select-multiple
600
+ .ant-select-selection-item {
601
+ opacity: 1 !important;
602
+ color: inherit !important;
603
+ background-color: #f0f0f0 !important;
604
+ border-color: #d9d9d9 !important;
605
+ cursor: text !important;
606
+ pointer-events: auto !important;
607
+ }
608
+
609
+ /* 预览模式:防止日期选择器显示为禁用状态 */
610
+ .form-create.is-preview .ant-picker-disabled {
611
+ opacity: 1 !important;
612
+ color: inherit !important;
613
+ background-color: transparent !important;
614
+ cursor: default !important;
615
+ }
616
+
617
+ /* 预览模式:富文本编辑器样式 */
618
+ .form-create.is-preview .w-e-text-container {
619
+ border: none !important;
620
+ box-shadow: none !important;
621
+ background: transparent !important;
622
+ /* 移除高度限制,让内容自适应 */
623
+ height: auto !important;
624
+ min-height: auto !important;
625
+ max-height: none !important;
626
+ }
627
+
628
+ .form-create.is-preview .w-e-toolbar {
629
+ display: none !important;
630
+ }
631
+
632
+ .form-create.is-preview .w-e-text {
633
+ border: none !important;
634
+ box-shadow: none !important;
635
+ background: transparent !important;
636
+ /* 移除高度限制,让内容自适应 */
637
+ height: auto !important;
638
+ min-height: auto !important;
639
+ max-height: none !important;
640
+ }
641
+
642
+ /* 只读模式:富文本编辑器样式(通过 contenteditable="false" 识别) */
643
+ .w-e-text[contenteditable='false'] {
644
+ border: none !important;
645
+ box-shadow: none !important;
646
+ background: transparent !important;
647
+ /* 移除高度限制,让内容自适应 */
648
+ height: auto !important;
649
+ min-height: auto !important;
650
+ max-height: none !important;
651
+ }
652
+
653
+ /* 预览模式:编辑器根元素自适应高度 */
654
+ .form-create.is-preview div[id^='editor'][readonly='true'],
655
+ .form-create.is-preview div[id^='editor'][readonly] {
656
+ height: auto !important;
657
+ min-height: auto !important;
658
+ max-height: none !important;
659
+ }
660
+
661
+ /* 只读模式下,通过 JavaScript 设置容器自适应高度 */
662
+ /* 容器样式会在 setReadOnlyMode 中通过 JavaScript 动态设置 */
663
+
664
+ /* 富文本内容只读:允许选择文本和点击链接,但禁止编辑 */
665
+ .form-create.is-preview .w-e-text p,
666
+ .form-create.is-preview .w-e-text div,
667
+ .form-create.is-preview .w-e-text span,
668
+ .form-create.is-preview .w-e-text li,
669
+ .form-create.is-preview .w-e-text ul,
670
+ .form-create.is-preview .w-e-text ol,
671
+ .form-create.is-preview .w-e-text h1,
672
+ .form-create.is-preview .w-e-text h2,
673
+ .form-create.is-preview .w-e-text h3,
674
+ .form-create.is-preview .w-e-text h4,
675
+ .form-create.is-preview .w-e-text h5,
676
+ .form-create.is-preview .w-e-text h6,
677
+ .form-create.is-preview .w-e-text table,
678
+ .form-create.is-preview .w-e-text tr,
679
+ .form-create.is-preview .w-e-text td,
680
+ .form-create.is-preview .w-e-text th {
681
+ /* 允许文本选择,用于复制 */
682
+ user-select: text !important;
683
+ -webkit-user-select: text !important;
684
+ -moz-user-select: text !important;
685
+ -ms-user-select: text !important;
686
+ /* 阻止编辑,但不阻止交互 */
687
+ pointer-events: auto !important;
688
+ }
689
+
690
+ /* 允许链接可以点击 */
691
+ .form-create.is-preview .w-e-text a {
692
+ pointer-events: auto !important;
693
+ cursor: pointer !important;
694
+ user-select: text !important;
695
+ -webkit-user-select: text !important;
696
+ -moz-user-select: text !important;
697
+ -ms-user-select: text !important;
698
+ text-decoration: underline !important;
699
+ }
700
+
701
+ /* 允许图片可以查看 */
702
+ .form-create.is-preview .w-e-text img {
703
+ pointer-events: auto !important;
704
+ user-select: none !important;
705
+ -webkit-user-select: none !important;
706
+ -moz-user-select: none !important;
707
+ -ms-user-select: none !important;
708
+ }
709
+
710
+ /* 允许只读模式下的富文本编辑器容器(v-html 渲染)中的链接和图片可以点击 */
711
+ .form-create.is-preview .fc-editor-readonly {
712
+ pointer-events: auto !important;
713
+ }
714
+
715
+ .form-create.is-preview .fc-editor-readonly a {
716
+ pointer-events: auto !important;
717
+ cursor: pointer !important;
718
+ }
719
+
720
+ .form-create.is-preview .fc-editor-readonly img {
721
+ pointer-events: auto !important;
722
+ cursor: pointer !important;
723
+ }
724
+
725
+ /* 禁止编辑:通过 contenteditable 属性控制 */
726
+ .form-create.is-preview .w-e-text {
727
+ user-select: text !important;
728
+ -webkit-user-select: text !important;
729
+ -moz-user-select: text !important;
730
+ -ms-user-select: text !important;
731
+ }
732
+
733
+ /* 预览模式:禁用选择器下拉 */
734
+ .form-create.is-preview .ant-select-dropdown,
735
+ /* 只读模式:禁用选择器下拉 */
736
+ .ant-select-disabled + .ant-select-dropdown,
737
+ .ant-select.ant-select-disabled ~ .ant-select-dropdown {
738
+ display: none !important;
739
+ }
740
+
741
+ /* 预览模式:禁用日期选择器弹窗 */
742
+ .form-create.is-preview .ant-picker-dropdown {
743
+ display: none !important;
744
+ }
745
+
746
+ /* 预览模式:禁用级联选择器下拉 */
747
+ .form-create.is-preview .ant-cascader-dropdown {
748
+ display: none !important;
749
+ }
750
+
751
+ .fc-form-footer {
752
+ margin-top: 12px;
753
+ }
754
+
755
+ /* CusSelect 组件样式 */
756
+ .fc-cus-select {
757
+ width: 100%;
758
+ box-sizing: border-box;
759
+ font-size: 14px;
760
+ font-variant: tabular-nums;
761
+ line-height: 1.5715;
762
+ list-style: none;
763
+ font-feature-settings: 'tnum';
764
+ position: relative;
765
+ display: inline-block;
766
+ cursor: pointer;
767
+ }
768
+
769
+ .fc-cus-select-single {
770
+ height: 32px;
771
+ }
772
+
773
+ .fc-cus-select-multiple {
774
+ min-height: 32px;
775
+ }
776
+
777
+ .fc-cus-select-selector {
778
+ display: flex;
779
+ width: 100%;
780
+ position: relative;
781
+ background-color: #fff;
782
+ border: 1px solid #d9d9d9;
783
+ border-radius: 6px;
784
+ transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
785
+ cursor: pointer;
786
+ min-height: 32px;
787
+ padding: 1px 11px;
788
+ align-items: center;
789
+ box-sizing: border-box;
790
+ }
791
+
792
+ /* 无边框模式 */
793
+ .fc-cus-select-selector-borderless {
794
+ border: none !important;
795
+ box-shadow: none !important;
796
+ }
797
+
798
+ .fc-cus-select:not(.fc-cus-select-disabled):hover
799
+ .fc-cus-select-selector-borderless {
800
+ border: none !important;
801
+ box-shadow: none !important;
802
+ }
803
+
804
+ .fc-cus-select:focus:not(.fc-cus-select-disabled)
805
+ .fc-cus-select-selector-borderless,
806
+ .fc-cus-select:focus-within:not(.fc-cus-select-disabled)
807
+ .fc-cus-select-selector-borderless {
808
+ border: none !important;
809
+ box-shadow: none !important;
810
+ outline: none !important;
811
+ }
812
+
813
+ .fc-cus-select-single .fc-cus-select-selector {
814
+ height: 32px;
815
+ padding: 0 11px;
816
+ }
817
+
818
+ .fc-cus-select-arrow {
819
+ position: absolute;
820
+ top: 50%;
821
+ right: 11px;
822
+ transform: translateY(-50%);
823
+ display: inline-flex;
824
+ align-items: center;
825
+ color: rgba(0, 0, 0, 0.45);
826
+ font-style: normal;
827
+ line-height: 0;
828
+ text-align: center;
829
+ text-transform: none;
830
+ vertical-align: -0.125em;
831
+ text-rendering: optimizeLegibility;
832
+ pointer-events: none;
833
+ }
834
+
835
+ .fc-cus-select-multiple .fc-cus-select-arrow {
836
+ right: 11px;
837
+ }
838
+
839
+ .fc-cus-select-multiple .fc-cus-select-clear {
840
+ right: 11px;
841
+ }
842
+
843
+ .fc-cus-select-arrow .anticon {
844
+ display: inline-block;
845
+ font-size: 12px;
846
+ line-height: 1;
847
+ vertical-align: baseline;
848
+ }
849
+
850
+ .fc-cus-select-arrow .anticon svg {
851
+ display: inline-block;
852
+ width: 1em;
853
+ height: 1em;
854
+ }
855
+
856
+ .fc-cus-select-clear {
857
+ position: absolute;
858
+ top: 50%;
859
+ right: 11px;
860
+ transform: translateY(-50%);
861
+ display: inline-flex;
862
+ align-items: center;
863
+ color: rgba(0, 0, 0, 0.25);
864
+ font-style: normal;
865
+ line-height: 0;
866
+ text-align: center;
867
+ text-transform: none;
868
+ vertical-align: -0.125em;
869
+ text-rendering: optimizeLegibility;
870
+ cursor: pointer;
871
+ transition: color 0.3s;
872
+ opacity: 1;
873
+ pointer-events: auto;
874
+ }
875
+
876
+ .fc-cus-select-clear:hover {
877
+ color: rgba(0, 0, 0, 0.45);
878
+ }
879
+
880
+ .fc-cus-select-clear .anticon {
881
+ display: inline-block;
882
+ font-size: 12px;
883
+ line-height: 1;
884
+ vertical-align: baseline;
885
+ }
886
+
887
+ .fc-cus-select-clear .anticon svg {
888
+ display: inline-block;
889
+ width: 1em;
890
+ height: 1em;
891
+ }
892
+
893
+ .fc-cus-select:not(.fc-cus-select-disabled):hover .fc-cus-select-selector {
894
+ border-color: #4096ff;
895
+ }
896
+
897
+ .fc-cus-select:focus:not(.fc-cus-select-disabled) .fc-cus-select-selector {
898
+ border-color: #4096ff;
899
+ outline: 0;
900
+ box-shadow: 0 0 0 2px rgba(64, 150, 255, 0.2);
901
+ }
902
+
903
+ .fc-cus-select:focus-within:not(.fc-cus-select-disabled)
904
+ .fc-cus-select-selector {
905
+ border-color: #4096ff;
906
+ outline: 0;
907
+ box-shadow: 0 0 0 2px rgba(64, 150, 255, 0.2);
908
+ }
909
+
910
+ .fc-cus-select-single .fc-cus-select-selection-item {
911
+ display: flex;
912
+ flex: 1;
913
+ align-items: center;
914
+ max-width: 100%;
915
+ line-height: 32px;
916
+ color: rgba(0, 0, 0, 0.88);
917
+ overflow: hidden;
918
+ white-space: nowrap;
919
+ text-overflow: ellipsis;
920
+ padding-right: 24px;
921
+ box-sizing: border-box;
922
+ }
923
+
924
+ .fc-cus-select-selection-placeholder {
925
+ flex: 1;
926
+ overflow: hidden;
927
+ color: rgba(0, 0, 0, 0.25);
928
+ white-space: nowrap;
929
+ text-overflow: ellipsis;
930
+ pointer-events: none;
931
+ }
932
+
933
+ .fc-cus-select-selection-overflow {
934
+ position: relative;
935
+ display: flex;
936
+ flex: auto;
937
+ flex-wrap: wrap;
938
+ max-width: 100%;
939
+ gap: 4px;
940
+ min-width: 0;
941
+ padding-right: 20px;
942
+ box-sizing: border-box;
943
+ }
944
+
945
+ .fc-cus-select-selection-overflow-item {
946
+ flex: none;
947
+ align-self: center;
948
+ max-width: 100%;
949
+ }
950
+
951
+ .fc-cus-select-multiple .fc-cus-select-selection-item {
952
+ position: relative;
953
+ display: inline-flex;
954
+ flex: none;
955
+ box-sizing: border-box;
956
+ max-width: 100%;
957
+ height: 24px;
958
+ margin-top: 2px;
959
+ margin-bottom: 2px;
960
+ line-height: 22px;
961
+ background: #fafafa;
962
+ border: 1px solid #f0f0f0;
963
+ border-radius: 4px;
964
+ cursor: pointer;
965
+ transition: font-size 0.3s, line-height 0.3s, height 0.3s;
966
+ user-select: none;
967
+ padding: 0 4px 0 8px;
968
+ align-items: center;
969
+ gap: 4px;
970
+ }
971
+
972
+ .fc-cus-select-selection-item-content {
973
+ display: inline-block;
974
+ overflow: hidden;
975
+ white-space: pre;
976
+ text-overflow: ellipsis;
977
+ color: rgba(0, 0, 0, 0.88);
978
+ }
979
+
980
+ .fc-cus-select-selection-item-remove {
981
+ display: inline-flex;
982
+ align-items: center;
983
+ color: rgba(0, 0, 0, 0.45);
984
+ cursor: pointer;
985
+ font-weight: bold;
986
+ transition: color 0.3s;
987
+ line-height: 0;
988
+ margin-left: 2px;
989
+ }
990
+
991
+ .fc-cus-select-selection-item-remove:hover {
992
+ color: rgba(0, 0, 0, 0.75);
993
+ }
994
+
995
+ .fc-cus-select-selection-item-remove .anticon {
996
+ display: inline-flex;
997
+ align-items: center;
998
+ font-style: normal;
999
+ line-height: 0;
1000
+ text-align: center;
1001
+ text-transform: none;
1002
+ vertical-align: -0.125em;
1003
+ text-rendering: optimizeLegibility;
1004
+ font-size: 12px;
1005
+ }
1006
+
1007
+ .fc-cus-select-selection-item-remove .anticon svg {
1008
+ display: inline-block;
1009
+ width: 1em;
1010
+ height: 1em;
1011
+ }
1012
+
1013
+ .fc-cus-select-disabled {
1014
+ cursor: not-allowed;
1015
+ }
1016
+
1017
+ .fc-cus-select-disabled .fc-cus-select-selector {
1018
+ cursor: not-allowed;
1019
+ background-color: #f5f5f5;
1020
+ color: rgba(0, 0, 0, 0.25);
1021
+ border-color: #d9d9d9;
1022
+ }
1023
+
1024
+ .fc-cus-select-disabled .fc-cus-select-selection-item {
1025
+ color: rgba(0, 0, 0, 0.25);
1026
+ }
1027
+
1028
+ .fc-cus-select-disabled .fc-cus-select-selection-placeholder {
1029
+ color: rgba(0, 0, 0, 0.25);
1030
+ }
1031
+
1032
+ /* TableForm 组件样式 */
1033
+ ._fc-table-form {
1034
+ overflow: auto;
1035
+ color: #666666;
1036
+ }
1037
+
1038
+ ._fc-table-form .form-create .ant-form-item {
1039
+ margin-bottom: 1px !important;
1040
+ }
1041
+
1042
+ ._fc-table-form .ant-form-item-label,
1043
+ ._fc-table-form .van-field__label {
1044
+ display: none !important;
1045
+ }
1046
+
1047
+ ._fc-tf-head-idx,
1048
+ ._fc-tf-idx {
1049
+ width: 40px;
1050
+ min-width: 40px;
1051
+ font-weight: 500;
1052
+ text-align: center;
1053
+ }
1054
+
1055
+ ._fc-tf-edit,
1056
+ ._fc-tf-btn {
1057
+ width: 70px;
1058
+ min-width: 70px;
1059
+ text-align: center;
1060
+ }
1061
+
1062
+ ._fc-tf-btn .fc-icon {
1063
+ cursor: pointer;
1064
+ }
1065
+
1066
+ ._fc-table-form > .ant-btn {
1067
+ display: flex;
1068
+ align-items: center;
1069
+ padding: 2px;
1070
+ }
1071
+
1072
+ ._fc-table-form._fc-disabled ._fc-tf-btn .fc-icon,
1073
+ ._fc-table-form._fc-disabled > .ant-btn {
1074
+ cursor: not-allowed;
1075
+ }
1076
+
1077
+ ._fc-tf-table {
1078
+ width: 100%;
1079
+ height: 100%;
1080
+ overflow: hidden;
1081
+ table-layout: fixed;
1082
+ border: 1px solid #ebeef5;
1083
+ border-bottom: 0 none;
1084
+ }
1085
+
1086
+ ._fc-table-form ._fc-tf-table > thead > tr > th {
1087
+ border: 0 none;
1088
+ border-bottom: 1px solid #ebeef5;
1089
+ height: 40px;
1090
+ font-weight: 500;
1091
+ padding: 0 5px;
1092
+ box-sizing: border-box;
1093
+ }
1094
+
1095
+ ._fc-table-form ._fc-tf-table > thead > tr > th + th {
1096
+ border-left: 1px solid #ebeef5;
1097
+ }
1098
+
1099
+ ._fc-table-form tr {
1100
+ min-height: 50px;
1101
+ }
1102
+
1103
+ ._fc-table-form ._fc-read-view {
1104
+ text-align: center;
1105
+ width: 100%;
1106
+ }
1107
+
1108
+ ._fc-table-form td {
1109
+ padding: 5px;
1110
+ min-height: 50px;
1111
+ min-width: 80px;
1112
+ position: relative;
1113
+ box-sizing: border-box;
1114
+ overflow-wrap: break-word;
1115
+ overflow: hidden;
1116
+ border: 0 none;
1117
+ border-bottom: 1px solid #ebeef5;
1118
+ }
1119
+
1120
+ ._fc-table-form td + td {
1121
+ border-left: 1px solid #ebeef5;
1122
+ }
1123
+
1124
+ ._fc-tf-table .ant-input-number,
1125
+ ._fc-tf-table .ant-select,
1126
+ ._fc-tf-table .ant-slider,
1127
+ ._fc-tf-table .ant-cascader,
1128
+ ._fc-tf-table .ant-picker {
1129
+ width: 100%;
1130
+ }
1131
+
1132
+ ._fc-tf-head-required:before {
1133
+ content: '*';
1134
+ color: #f56c6c;
1135
+ margin-right: 4px;
1136
+ }
1137
+
1138
+ /* TableFormView 组件样式 */
1139
+ ._fd-table-form {
1140
+ min-height: 130px;
1141
+ width: 100%;
1142
+ border: 1px solid #ececec;
1143
+ background: #ffffff;
1144
+ }
1145
+
1146
+ ._fc-child-empty {
1147
+ min-height: 130px;
1148
+ }
1149
+
1150
+ ._fd-tf-wrap {
1151
+ display: flex;
1152
+ overflow: auto;
1153
+ }
1154
+
1155
+ ._fd-tf-wrap > ._fd-drag-tool {
1156
+ flex-shrink: 0;
1157
+ display: flex;
1158
+ margin: 2px;
1159
+ height: auto;
1160
+ overflow: auto;
1161
+ }
1162
+
1163
+ /* TableFormColumnView 组件样式 */
1164
+ ._fd-tf-col ._fd-tf-con .ant-form-item {
1165
+ margin-bottom: 1px !important;
1166
+ }
1167
+
1168
+ ._fd-tf-col {
1169
+ display: flex;
1170
+ flex-wrap: wrap;
1171
+ flex-direction: column;
1172
+ width: 180px;
1173
+ flex-shrink: 0;
1174
+ }
1175
+
1176
+ ._fd-tf-con .ant-form-item-label,
1177
+ ._fd-tf-con .van-field__label {
1178
+ display: none !important;
1179
+ }
1180
+
1181
+ ._fd-tf-con {
1182
+ display: flex;
1183
+ flex: 1;
1184
+ width: 100%;
1185
+ }
1186
+
1187
+ ._fd-tf-title {
1188
+ height: 40px;
1189
+ border-bottom: 1px solid #ebeef5;
1190
+ margin-bottom: 0px;
1191
+ padding: 0 5px;
1192
+ box-sizing: border-box;
1193
+ line-height: 32px;
1194
+ }
1195
+
1196
+ /* 仅在设计器中展示红色星号(不参与校验) */
1197
+ /* 设计器特定场景 */
1198
+ ._fc-designer
1199
+ ._fc-m-drag
1200
+ ._fc-fake-required
1201
+ .ant-form-item-label
1202
+ > label::before,
1203
+ ._fc-designer
1204
+ ._fc-m-drag
1205
+ ._fc-fake-required
1206
+ label.ant-form-item-no-colon::before,
1207
+ /* 通用场景 - 带 label 容器 */
1208
+ ._fc-fake-required
1209
+ .ant-form-item-label
1210
+ > label::before,
1211
+ ._fc-fake-required
1212
+ .ant-form-item-label
1213
+ > label.ant-form-item-required::before,
1214
+ /* 通用场景 - 无 label 容器(直接 label) */
1215
+ ._fc-fake-required
1216
+ label.ant-form-item-no-colon::before,
1217
+ ._fc-fake-required
1218
+ label::before {
1219
+ display: inline-block;
1220
+ margin-inline-end: 4px;
1221
+ color: #ff4d4f;
1222
+ font-size: 14px;
1223
+ font-family: SimSun, sans-serif;
1224
+ line-height: 1;
1225
+ content: '*';
1226
+ }
1227
+
1228
+ ._fd-tf-required {
1229
+ color: #f56c6c;
1230
+ margin-right: 4px;
1231
+ }
1232
+
1233
+ ._fd-tf-con ._fc-l-item > * {
1234
+ display: none !important;
1235
+ }
1236
+
1237
+ ._fd-tf-con .ant-input-number,
1238
+ ._fd-tf-con .ant-select,
1239
+ ._fd-tf-con .ant-slider,
1240
+ ._fd-tf-con .ant-cascader,
1241
+ ._fd-tf-con .ant-picker {
1242
+ width: 100%;
1243
+ }
1244
+
1245
+ ._fd-tf-col:has(._fd-tf-col) {
1246
+ width: auto !important;
1247
+ }
1248
+
1249
+ /* Flex 容器子项 flex 样式 - 使用通用选择器,匹配所有直接子元素 */
1250
+ .ant-flex._fc-flex-container > * {
1251
+ flex: var(--fc-child-flex) !important;
1252
+ }
1253
+
1254
+ /* 更具体的选择器,针对被 form-item 包裹的子元素 */
1255
+ .ant-flex._fc-flex-container > .ant-form-item {
1256
+ flex: var(--fc-child-flex) !important;
1257
+ }
1258
+
1259
+ /* 垂直方向的 Flex 容器子项宽度样式 - 使用通用选择器 */
1260
+ .ant-flex._fc-flex-vertical > * {
1261
+ width: var(--fc-child-width, 100%) !important;
1262
+ }
1263
+
1264
+ /* 更具体的选择器,针对被 form-item 包裹的子元素 */
1265
+ .ant-flex._fc-flex-vertical > .ant-form-item {
1266
+ width: var(--fc-child-width, 100%) !important;
1267
+ }
1268
+
1269
+ /* Flex 和 Space 组件重置包裹它们的 ant-form-item 的 margin-bottom 的样式 */
1270
+ .ant-form-item._fc-reset-margin-bottom {
1271
+ margin-bottom: 0 !important;
1272
+ }
1273
+
1274
+ ._fc-table {
1275
+ overflow: auto;
1276
+ }
1277
+
1278
+ ._fc-table > table {
1279
+ width: 100%;
1280
+ height: 100%;
1281
+ overflow: hidden;
1282
+ table-layout: fixed;
1283
+ border: 1px solid #ebeef5;
1284
+ border-bottom: 0 none;
1285
+ border-right: 0 none;
1286
+ border-collapse: collapse;
1287
+ }
1288
+
1289
+ ._fc-table tr {
1290
+ min-height: 50px;
1291
+ }
1292
+
1293
+ ._fc-table td {
1294
+ padding: 12px 3px;
1295
+ min-height: 50px;
1296
+ min-width: 80px;
1297
+ position: relative;
1298
+ box-sizing: border-box;
1299
+ overflow-wrap: break-word;
1300
+ overflow: hidden;
1301
+ border: 0 none;
1302
+ border-right: 1px solid #ebeef5;
1303
+ border-bottom: 1px solid #ebeef5;
1304
+ }
1305
+
1306
+ ._fc-table.is-mini td {
1307
+ padding: 0;
1308
+ min-height: 12px;
1309
+ }
1310
+
1311
+ ._fc-table.is-mini .ant-form-item {
1312
+ padding: 0;
1313
+ margin: 0;
1314
+ }
1300
1315
 
1301
1316
  @font-face {
1302
1317
  font-family: "fc-icon";