fantasia-ui 0.4.0 → 0.6.1

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.
@@ -3552,6 +3552,7 @@
3552
3552
  padding: 20px;
3553
3553
  backdrop-filter: blur(2px);
3554
3554
  transition: background-color 0.25s ease;
3555
+ touch-action: none;
3555
3556
  }
3556
3557
 
3557
3558
  .f-dialog {
@@ -3627,10 +3628,15 @@
3627
3628
  color: #606266;
3628
3629
  font-size: 14px;
3629
3630
  line-height: 1.6;
3631
+ overflow: hidden;
3632
+ -webkit-overflow-scrolling: touch;
3630
3633
  }
3631
3634
  .f-dialog__body :deep(.f-scrollbar) {
3632
3635
  height: 100%;
3633
3636
  }
3637
+ .f-dialog__body :deep(.f-scrollbar__wrap) {
3638
+ -webkit-overflow-scrolling: touch;
3639
+ }
3634
3640
  .f-dialog__body :deep(.f-scrollbar__view) {
3635
3641
  padding: 0;
3636
3642
  }
@@ -3695,6 +3701,24 @@
3695
3701
  transform: scale(1) translateY(0);
3696
3702
  }
3697
3703
 
3704
+ @media (max-width: 768px) {
3705
+ .f-dialog-overlay {
3706
+ padding: 10px;
3707
+ }
3708
+ .f-dialog {
3709
+ width: 95vw;
3710
+ max-height: 85vh;
3711
+ }
3712
+ .f-dialog__header {
3713
+ padding: 16px 16px 12px;
3714
+ }
3715
+ .f-dialog__body {
3716
+ padding: 16px;
3717
+ }
3718
+ .f-dialog__footer {
3719
+ padding: 12px 16px;
3720
+ }
3721
+ }
3698
3722
  .f-divider {
3699
3723
  position: relative;
3700
3724
  }
@@ -4806,37 +4830,22 @@
4806
4830
  }
4807
4831
 
4808
4832
  .f-marquee {
4833
+ position: relative;
4834
+ width: 100%;
4809
4835
  overflow: hidden;
4810
- white-space: nowrap;
4811
- background: linear-gradient(90deg, #fff1f8, #fdf2f8, #fff7ed);
4812
- border: 1px solid #f9d8ea;
4813
- border-radius: 8px;
4814
- padding: 8px 0;
4815
4836
  }
4816
- .f-marquee__track {
4817
- display: inline-flex;
4818
- align-items: center;
4819
- width: max-content;
4820
- min-width: 100%;
4821
- animation: f-marquee-scroll var(--duration, 28s) linear infinite;
4822
- animation-direction: var(--dir, normal);
4823
- font-size: 14px;
4824
- font-weight: 600;
4825
- color: #9d174d;
4826
- letter-spacing: 0.04em;
4837
+ .f-marquee--left, .f-marquee--right {
4838
+ height: auto;
4827
4839
  }
4828
- .f-marquee.is-pause:hover .f-marquee__track {
4829
- animation-play-state: paused;
4840
+ .f-marquee--up, .f-marquee--down {
4841
+ height: 100%;
4842
+ min-height: 20px;
4830
4843
  }
4831
-
4832
- @keyframes f-marquee-scroll {
4833
- from {
4834
- transform: translateX(0);
4835
- }
4836
- to {
4837
- transform: translateX(-50%);
4838
- }
4844
+ .f-marquee__content {
4845
+ display: inline-block;
4846
+ will-change: transform;
4839
4847
  }
4848
+
4840
4849
  .f-dialog-mask {
4841
4850
  position: fixed;
4842
4851
  top: 0;
@@ -5551,6 +5560,12 @@
5551
5560
  overflow: auto;
5552
5561
  }
5553
5562
 
5563
+ .f-select-wrapper {
5564
+ display: inline-block;
5565
+ position: relative;
5566
+ width: 100%;
5567
+ }
5568
+
5554
5569
  .f-select {
5555
5570
  display: inline-flex;
5556
5571
  align-items: center;
@@ -5722,6 +5737,55 @@
5722
5737
  opacity: 0;
5723
5738
  }
5724
5739
  }
5740
+ /* ---------- 下拉面板 ---------- */
5741
+ .f-select-dropdown {
5742
+ position: fixed;
5743
+ background: #fff;
5744
+ border-radius: 4px;
5745
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
5746
+ z-index: 2000;
5747
+ }
5748
+ .f-select-dropdown__content {
5749
+ padding: 4px 0;
5750
+ }
5751
+
5752
+ /* ---------- 选项 ---------- */
5753
+ .f-select-option {
5754
+ padding: 8px 12px;
5755
+ font-size: 14px;
5756
+ line-height: 1.5;
5757
+ color: #606266;
5758
+ cursor: pointer;
5759
+ transition: all 0.2s;
5760
+ user-select: none;
5761
+ }
5762
+ .f-select-option:hover:not(.is-disabled) {
5763
+ background-color: #f5f7fa;
5764
+ }
5765
+ .f-select-option.is-selected {
5766
+ color: #ec4899;
5767
+ font-weight: 500;
5768
+ background-color: #fdf2f8;
5769
+ }
5770
+ .f-select-option.is-disabled {
5771
+ color: #c0c4cc;
5772
+ cursor: not-allowed;
5773
+ }
5774
+ .f-select-option.is-empty {
5775
+ text-align: center;
5776
+ color: #909399;
5777
+ cursor: default;
5778
+ }
5779
+ .f-select-option.is-empty:hover {
5780
+ background-color: transparent;
5781
+ }
5782
+ .f-select-option__label {
5783
+ display: block;
5784
+ white-space: nowrap;
5785
+ overflow: hidden;
5786
+ text-overflow: ellipsis;
5787
+ }
5788
+
5725
5789
  /* ---------- 新增选项按钮 ---------- */
5726
5790
  .f-select__add-option {
5727
5791
  display: flex;
@@ -5741,6 +5805,18 @@
5741
5805
  background-color: #fce7f3;
5742
5806
  }
5743
5807
 
5808
+ /* ---------- 下拉动画 ---------- */
5809
+ .f-select-dropdown-enter-active,
5810
+ .f-select-dropdown-leave-active {
5811
+ transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
5812
+ }
5813
+
5814
+ .f-select-dropdown-enter-from,
5815
+ .f-select-dropdown-leave-to {
5816
+ opacity: 0;
5817
+ transform: scaleY(0.9);
5818
+ }
5819
+
5744
5820
  :root {
5745
5821
  --f-slider-track-color: #333338;
5746
5822
  --f-slider-bar-color: #6366f1;
@@ -8101,7 +8177,12 @@ to {
8101
8177
  color: var(--text-muted);
8102
8178
  border: 1px solid var(--border2);
8103
8179
  }
8104
- .f-select[data-v-f556487f] {
8180
+ .f-select-wrapper[data-v-476d8dd3] {
8181
+ display: inline-block;
8182
+ position: relative;
8183
+ width: 100%;
8184
+ }
8185
+ .f-select[data-v-476d8dd3] {
8105
8186
  display: inline-flex;
8106
8187
  align-items: center;
8107
8188
  justify-content: space-between;
@@ -8120,66 +8201,66 @@ to {
8120
8201
  transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
8121
8202
  /* ---------- 多选:标签 ---------- */
8122
8203
  }
8123
- .f-select[data-v-f556487f]:hover:not(.is-disabled) {
8204
+ .f-select[data-v-476d8dd3]:hover:not(.is-disabled) {
8124
8205
  border-color: #ec4899;
8125
8206
  }
8126
- .f-select.is-open[data-v-f556487f]:not(.is-disabled), .f-select[data-v-f556487f]:focus-within:not(.is-disabled) {
8207
+ .f-select.is-open[data-v-476d8dd3]:not(.is-disabled), .f-select[data-v-476d8dd3]:focus-within:not(.is-disabled) {
8127
8208
  border-color: #ec4899;
8128
8209
  background: #fff;
8129
8210
  box-shadow: 0 0 0 2px rgba(236, 72, 153, 0.2274509804);
8130
8211
  }
8131
- .f-select.is-open:not(.is-disabled) .f-select__arrow[data-v-f556487f], .f-select:focus-within:not(.is-disabled) .f-select__arrow[data-v-f556487f] {
8212
+ .f-select.is-open:not(.is-disabled) .f-select__arrow[data-v-476d8dd3], .f-select:focus-within:not(.is-disabled) .f-select__arrow[data-v-476d8dd3] {
8132
8213
  transform: rotate(180deg);
8133
8214
  }
8134
- .f-select.is-active .f-select__label[data-v-f556487f] {
8215
+ .f-select.is-active .f-select__label[data-v-476d8dd3] {
8135
8216
  color: #1e293b;
8136
8217
  }
8137
- .f-select.is-disabled[data-v-f556487f] {
8218
+ .f-select.is-disabled[data-v-476d8dd3] {
8138
8219
  cursor: not-allowed;
8139
8220
  background-color: #f5f7fa;
8140
8221
  border-color: #e4e7ed;
8141
8222
  color: #c0c4cc;
8142
8223
  }
8143
- .f-select.is-disabled .f-select__label[data-v-f556487f],
8144
- .f-select.is-disabled .f-select__arrow[data-v-f556487f] {
8224
+ .f-select.is-disabled .f-select__label[data-v-476d8dd3],
8225
+ .f-select.is-disabled .f-select__arrow[data-v-476d8dd3] {
8145
8226
  cursor: not-allowed;
8146
8227
  }
8147
- .f-select.is-disabled .f-select__tag[data-v-f556487f] {
8228
+ .f-select.is-disabled .f-select__tag[data-v-476d8dd3] {
8148
8229
  opacity: 0.6;
8149
8230
  }
8150
- .f-select--small[data-v-f556487f] {
8231
+ .f-select--small[data-v-476d8dd3] {
8151
8232
  height: 32px;
8152
8233
  font-size: 13px;
8153
8234
  }
8154
- .f-select--small .f-select__label[data-v-f556487f] {
8235
+ .f-select--small .f-select__label[data-v-476d8dd3] {
8155
8236
  font-size: 13px;
8156
8237
  }
8157
- .f-select--medium[data-v-f556487f] {
8238
+ .f-select--medium[data-v-476d8dd3] {
8158
8239
  height: 36px;
8159
8240
  font-size: 14px;
8160
8241
  }
8161
- .f-select--large[data-v-f556487f] {
8242
+ .f-select--large[data-v-476d8dd3] {
8162
8243
  height: 40px;
8163
8244
  font-size: 16px;
8164
8245
  }
8165
- .f-select--large .f-select__label[data-v-f556487f] {
8246
+ .f-select--large .f-select__label[data-v-476d8dd3] {
8166
8247
  font-size: 16px;
8167
8248
  }
8168
- .f-select.is-multiple[data-v-f556487f] {
8249
+ .f-select.is-multiple[data-v-476d8dd3] {
8169
8250
  height: auto;
8170
8251
  padding-top: 3px;
8171
8252
  padding-bottom: 3px;
8172
8253
  }
8173
- .f-select.is-multiple.f-select--small[data-v-f556487f] {
8254
+ .f-select.is-multiple.f-select--small[data-v-476d8dd3] {
8174
8255
  min-height: 32px;
8175
8256
  }
8176
- .f-select.is-multiple.f-select--medium[data-v-f556487f] {
8257
+ .f-select.is-multiple.f-select--medium[data-v-476d8dd3] {
8177
8258
  min-height: 36px;
8178
8259
  }
8179
- .f-select.is-multiple.f-select--large[data-v-f556487f] {
8260
+ .f-select.is-multiple.f-select--large[data-v-476d8dd3] {
8180
8261
  min-height: 40px;
8181
8262
  }
8182
- .f-select__label[data-v-f556487f] {
8263
+ .f-select__label[data-v-476d8dd3] {
8183
8264
  font-size: 14px;
8184
8265
  line-height: 1.5;
8185
8266
  color: #1e293b;
@@ -8189,20 +8270,20 @@ to {
8189
8270
  text-overflow: ellipsis;
8190
8271
  transition: color 0.2s;
8191
8272
  }
8192
- .f-select__label.is-placeholder[data-v-f556487f] {
8273
+ .f-select__label.is-placeholder[data-v-476d8dd3] {
8193
8274
  color: #94a3b8;
8194
8275
  }
8195
- .f-select__suffix[data-v-f556487f] {
8276
+ .f-select__suffix[data-v-476d8dd3] {
8196
8277
  display: grid;
8197
8278
  place-items: center;
8198
8279
  width: 14px;
8199
8280
  height: 14px;
8200
8281
  flex-shrink: 0;
8201
8282
  }
8202
- .f-select__suffix[data-v-f556487f] > * {
8283
+ .f-select__suffix[data-v-476d8dd3] > * {
8203
8284
  grid-area: 1/1;
8204
8285
  }
8205
- .f-select__clear[data-v-f556487f] {
8286
+ .f-select__clear[data-v-476d8dd3] {
8206
8287
  font-size: 14px;
8207
8288
  color: #94a3b8;
8208
8289
  cursor: pointer;
@@ -8210,25 +8291,25 @@ to {
8210
8291
  pointer-events: none;
8211
8292
  transition: opacity 0.2s, color 0.2s;
8212
8293
  }
8213
- .f-select__clear[data-v-f556487f]:hover {
8294
+ .f-select__clear[data-v-476d8dd3]:hover {
8214
8295
  color: #64748b;
8215
8296
  }
8216
- .f-select__arrow[data-v-f556487f] {
8297
+ .f-select__arrow[data-v-476d8dd3] {
8217
8298
  font-size: 14px;
8218
8299
  color: #94a3b8;
8219
8300
  transition: transform 0.3s, color 0.2s, opacity 0.2s;
8220
8301
  }
8221
- .f-select:hover:not(.is-disabled) .f-select__arrow[data-v-f556487f] {
8302
+ .f-select:hover:not(.is-disabled) .f-select__arrow[data-v-476d8dd3] {
8222
8303
  color: #64748b;
8223
8304
  }
8224
- .f-select.is-clearable:hover:not(.is-disabled) .f-select__clear[data-v-f556487f] {
8305
+ .f-select.is-clearable:hover:not(.is-disabled) .f-select__clear[data-v-476d8dd3] {
8225
8306
  opacity: 1;
8226
8307
  pointer-events: auto;
8227
8308
  }
8228
- .f-select.is-clearable:hover:not(.is-disabled) .f-select__arrow[data-v-f556487f] {
8309
+ .f-select.is-clearable:hover:not(.is-disabled) .f-select__arrow[data-v-476d8dd3] {
8229
8310
  opacity: 0;
8230
8311
  }
8231
- .f-select__input[data-v-f556487f] {
8312
+ .f-select__input[data-v-476d8dd3] {
8232
8313
  flex: 1;
8233
8314
  min-width: 0;
8234
8315
  padding: 0;
@@ -8239,16 +8320,16 @@ to {
8239
8320
  line-height: 1.5;
8240
8321
  color: #1e293b;
8241
8322
  }
8242
- .f-select__input[data-v-f556487f]::placeholder {
8323
+ .f-select__input[data-v-476d8dd3]::placeholder {
8243
8324
  color: #94a3b8;
8244
8325
  }
8245
- .f-select__input.has-value[data-v-f556487f]::placeholder {
8326
+ .f-select__input.has-value[data-v-476d8dd3]::placeholder {
8246
8327
  color: #64748b;
8247
8328
  }
8248
- .f-select__input.is-multiple[data-v-f556487f] {
8329
+ .f-select__input.is-multiple[data-v-476d8dd3] {
8249
8330
  min-width: 60px;
8250
8331
  }
8251
- .f-select__tags[data-v-f556487f] {
8332
+ .f-select__tags[data-v-476d8dd3] {
8252
8333
  flex: 1;
8253
8334
  min-width: 0;
8254
8335
  display: flex;
@@ -8256,23 +8337,72 @@ to {
8256
8337
  gap: 4px;
8257
8338
  align-items: center;
8258
8339
  }
8259
- .f-select__tag[data-v-f556487f] {
8340
+ .f-select__tag[data-v-476d8dd3] {
8260
8341
  max-width: 200px;
8261
8342
  }
8262
- .f-select__tag[data-v-f556487f] .f-tag {
8343
+ .f-select__tag[data-v-476d8dd3] .f-tag {
8263
8344
  max-width: 100%;
8264
8345
  }
8265
8346
  @media (hover: none) {
8266
- .f-select.is-clearable .f-select__clear[data-v-f556487f] {
8347
+ .f-select.is-clearable .f-select__clear[data-v-476d8dd3] {
8267
8348
  opacity: 1;
8268
8349
  pointer-events: auto;
8269
8350
  }
8270
- .f-select.is-clearable .f-select__arrow[data-v-f556487f] {
8351
+ .f-select.is-clearable .f-select__arrow[data-v-476d8dd3] {
8271
8352
  opacity: 0;
8272
8353
  }
8273
8354
  }
8355
+ /* ---------- 下拉面板 ---------- */
8356
+ .f-select-dropdown[data-v-476d8dd3] {
8357
+ position: fixed;
8358
+ background: #fff;
8359
+ border-radius: 4px;
8360
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
8361
+ z-index: 2000;
8362
+ }
8363
+ .f-select-dropdown__content[data-v-476d8dd3] {
8364
+ padding: 4px 0;
8365
+ }
8366
+
8367
+ /* ---------- 选项 ---------- */
8368
+ .f-select-option[data-v-476d8dd3] {
8369
+ padding: 8px 12px;
8370
+ font-size: 14px;
8371
+ line-height: 1.5;
8372
+ color: #606266;
8373
+ cursor: pointer;
8374
+ transition: all 0.2s;
8375
+ user-select: none;
8376
+ }
8377
+ .f-select-option[data-v-476d8dd3]:hover:not(.is-disabled) {
8378
+ background-color: #f5f7fa;
8379
+ }
8380
+ .f-select-option.is-selected[data-v-476d8dd3] {
8381
+ color: #ec4899;
8382
+ font-weight: 500;
8383
+ background-color: #fdf2f8;
8384
+ }
8385
+ .f-select-option.is-disabled[data-v-476d8dd3] {
8386
+ color: #c0c4cc;
8387
+ cursor: not-allowed;
8388
+ }
8389
+ .f-select-option.is-empty[data-v-476d8dd3] {
8390
+ text-align: center;
8391
+ color: #909399;
8392
+ cursor: default;
8393
+ }
8394
+ .f-select-option.is-empty[data-v-476d8dd3]:hover {
8395
+ background-color: transparent;
8396
+ }
8397
+ .f-select-option__label[data-v-476d8dd3] {
8398
+ display: block;
8399
+ white-space: nowrap;
8400
+ overflow: hidden;
8401
+ text-overflow: ellipsis;
8402
+ }
8403
+
8274
8404
  /* ---------- 新增选项按钮 ---------- */
8275
- .f-select__add-option[data-v-f556487f] {
8405
+ .f-select__add-option[data-v-476d8dd3] {
8276
8406
  display: flex;
8277
8407
  align-items: center;
8278
8408
  gap: 8px;
@@ -8283,11 +8413,22 @@ to {
8283
8413
  border-top: 1px solid #e0e0e6;
8284
8414
  transition: all 0.2s ease;
8285
8415
  }
8286
- .f-select__add-option[data-v-f556487f]:hover {
8416
+ .f-select__add-option[data-v-476d8dd3]:hover {
8287
8417
  background-color: #fdf2f8;
8288
8418
  }
8289
- .f-select__add-option[data-v-f556487f]:active {
8419
+ .f-select__add-option[data-v-476d8dd3]:active {
8290
8420
  background-color: #fce7f3;
8421
+ }
8422
+
8423
+ /* ---------- 下拉动画 ---------- */
8424
+ .f-select-dropdown-enter-active[data-v-476d8dd3],
8425
+ .f-select-dropdown-leave-active[data-v-476d8dd3] {
8426
+ transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
8427
+ }
8428
+ .f-select-dropdown-enter-from[data-v-476d8dd3],
8429
+ .f-select-dropdown-leave-to[data-v-476d8dd3] {
8430
+ opacity: 0;
8431
+ transform: scaleY(0.9);
8291
8432
  }.f-date-picker[data-v-0f901824] {
8292
8433
  position: relative;
8293
8434
  width: 100%;
@@ -13177,35 +13318,408 @@ to {
13177
13318
  .fade-enter-from[data-v-a2989c99],
13178
13319
  .fade-leave-to[data-v-a2989c99] {
13179
13320
  opacity: 0;
13180
- }.f-marquee[data-v-83eeea3d] {
13321
+ }.f-marquee[data-v-454360ad] {
13322
+ position: relative;
13323
+ width: 100%;
13181
13324
  overflow: hidden;
13182
- white-space: nowrap;
13183
- background: linear-gradient(90deg, #fff1f8, #fdf2f8, #fff7ed);
13184
- border: 1px solid #f9d8ea;
13185
- border-radius: 8px;
13186
- padding: 8px 0;
13187
13325
  }
13188
- .f-marquee__track[data-v-83eeea3d] {
13326
+ .f-marquee--left[data-v-454360ad], .f-marquee--right[data-v-454360ad] {
13327
+ height: auto;
13328
+ }
13329
+ .f-marquee--up[data-v-454360ad], .f-marquee--down[data-v-454360ad] {
13330
+ height: 100%;
13331
+ min-height: 20px;
13332
+ }
13333
+ .f-marquee__content[data-v-454360ad] {
13334
+ display: inline-block;
13335
+ will-change: transform;
13336
+ }
13337
+ /* 样式变量定义,默认不启用 */
13338
+ .f-slider-captcha[data-v-7b80ef8b] {
13189
13339
  display: inline-flex;
13340
+ flex-direction: column;
13341
+ background-color: #fff;
13342
+ border-radius: 4px;
13343
+ padding: 10px;
13344
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
13345
+ border: 1px solid #f0f0f0;
13346
+ width: 320px;
13347
+ user-select: none;
13348
+ }
13349
+ .f-slider-captcha .captcha-imgs[data-v-7b80ef8b] {
13350
+ position: relative;
13351
+ width: 300px;
13352
+ height: 150px;
13353
+ border-radius: 4px;
13354
+ overflow: hidden;
13355
+ background-color: #f7fafc;
13356
+ margin-bottom: 10px;
13357
+ }
13358
+ .f-slider-captcha .captcha-imgs .bg-canvas[data-v-7b80ef8b] {
13359
+ display: block;
13360
+ }
13361
+ .f-slider-captcha .captcha-imgs .fragment-canvas[data-v-7b80ef8b] {
13362
+ position: absolute;
13363
+ top: 0;
13364
+ left: 0;
13365
+ z-index: 10;
13366
+ pointer-events: none;
13367
+ /* 确保拖拽时平滑 */
13368
+ will-change: transform;
13369
+ }
13370
+ .f-slider-captcha .captcha-imgs .loading-overlay[data-v-7b80ef8b] {
13371
+ position: absolute;
13372
+ inset: 0;
13373
+ background: #f5f5f5;
13374
+ z-index: 20;
13375
+ }
13376
+ .f-slider-captcha .captcha-imgs .refresh-btn[data-v-7b80ef8b] {
13377
+ position: absolute;
13378
+ top: 8px;
13379
+ right: 8px;
13380
+ font-size: 20px;
13381
+ color: rgba(255, 255, 255, 0.4509803922);
13382
+ z-index: 11;
13383
+ transition: all 0.2s;
13384
+ }
13385
+ .f-slider-captcha .captcha-imgs .refresh-btn[data-v-7b80ef8b]:hover {
13386
+ color: #fff;
13387
+ }
13388
+ .f-slider-captcha .slider-track[data-v-7b80ef8b] {
13389
+ position: relative;
13390
+ height: 44px;
13391
+ background-color: #f0f2f5;
13392
+ border-radius: 4px;
13393
+ border: 1px solid #e6e8eb;
13394
+ overflow: hidden;
13395
+ }
13396
+ .f-slider-captcha .slider-track .slider-progress[data-v-7b80ef8b] {
13397
+ position: absolute;
13398
+ left: 2px;
13399
+ height: 40px;
13400
+ z-index: 2;
13401
+ border-radius: 4px;
13402
+ }
13403
+ .f-slider-captcha .slider-track .slider-progress.moving[data-v-7b80ef8b] {
13404
+ background-color: #4a5568;
13405
+ }
13406
+ .f-slider-captcha .slider-track .slider-progress.success[data-v-7b80ef8b] {
13407
+ background-color: #48bb78;
13408
+ }
13409
+ .f-slider-captcha .slider-track .slider-progress.error[data-v-7b80ef8b] {
13410
+ background-color: #ff4d4f;
13411
+ }
13412
+ .f-slider-captcha .slider-track .track-tip[data-v-7b80ef8b] {
13413
+ position: relative;
13414
+ z-index: 1;
13415
+ font-size: 13px;
13416
+ color: #999;
13417
+ pointer-events: none;
13418
+ }
13419
+ .f-slider-captcha .slider-track .slider-handle[data-v-7b80ef8b] {
13420
+ position: absolute;
13421
+ left: 2px;
13422
+ width: 40px;
13423
+ height: 40px;
13424
+ background-color: #fff;
13425
+ border-radius: 4px;
13426
+ cursor: grab;
13427
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
13428
+ z-index: 3;
13429
+ touch-action: none;
13430
+ transition: background-color 0.3s, box-shadow 0.3s, transform 0.3s;
13431
+ }
13432
+ .f-slider-captcha .slider-track .slider-handle .status-default[data-v-7b80ef8b] {
13433
+ display: flex;
13434
+ gap: 4px;
13190
13435
  align-items: center;
13191
- width: max-content;
13192
- min-width: 100%;
13193
- animation: f-marquee-scroll-83eeea3d var(--duration, 28s) linear infinite;
13194
- animation-direction: var(--dir, normal);
13195
- font-size: 14px;
13436
+ justify-content: center;
13437
+ transition: all 0.3s;
13438
+ }
13439
+ .f-slider-captcha .slider-track .slider-handle .status-default .stripe[data-v-7b80ef8b] {
13440
+ width: 2px;
13441
+ height: 20px;
13442
+ background-color: #ccc;
13443
+ border-radius: 2px;
13444
+ transition: all 0.3s;
13445
+ }
13446
+ .f-slider-captcha .slider-track .slider-handle[data-v-7b80ef8b]:hover, .f-slider-captcha .slider-track .slider-handle.dragging[data-v-7b80ef8b] {
13447
+ background-color: #4a5568;
13448
+ }
13449
+ .f-slider-captcha .slider-track .slider-handle:hover .status-default .stripe[data-v-7b80ef8b]:first-child, .f-slider-captcha .slider-track .slider-handle.dragging .status-default .stripe[data-v-7b80ef8b]:first-child {
13450
+ width: 0;
13451
+ height: 0;
13452
+ background-color: transparent;
13453
+ border-top: 4px solid transparent;
13454
+ border-bottom: 4px solid transparent;
13455
+ border-right: 6px solid #fff;
13456
+ transform: translateX(-2px);
13457
+ }
13458
+ .f-slider-captcha .slider-track .slider-handle:hover .status-default .stripe[data-v-7b80ef8b]:last-child, .f-slider-captcha .slider-track .slider-handle.dragging .status-default .stripe[data-v-7b80ef8b]:last-child {
13459
+ width: 0;
13460
+ height: 0;
13461
+ background-color: transparent;
13462
+ border-top: 4px solid transparent;
13463
+ border-bottom: 4px solid transparent;
13464
+ border-left: 6px solid #fff;
13465
+ transform: translateX(2px);
13466
+ }
13467
+ .f-slider-captcha .slider-track .slider-handle:hover .status-default .stripe[data-v-7b80ef8b]:nth-child(2), .f-slider-captcha .slider-track .slider-handle.dragging .status-default .stripe[data-v-7b80ef8b]:nth-child(2) {
13468
+ width: 4px;
13469
+ height: 4px;
13470
+ border-radius: 50%;
13471
+ background-color: #fff;
13472
+ }
13473
+ .f-slider-captcha .slider-track .slider-handle.dragging[data-v-7b80ef8b] {
13474
+ cursor: grabbing;
13475
+ }.f-carousel[data-v-187b78d3] {
13476
+ position: relative;
13477
+ width: 100%;
13478
+ overflow: hidden;
13479
+ border-radius: 4px;
13480
+ }
13481
+ .f-carousel--horizontal[data-v-187b78d3] {
13482
+ aspect-ratio: 16/9;
13483
+ height: var(--f-carousel-height, 400px);
13484
+ }
13485
+ .f-carousel--vertical[data-v-187b78d3] {
13486
+ height: var(--f-carousel-height, 300px);
13487
+ }
13488
+ .f-carousel__container[data-v-187b78d3] {
13489
+ position: relative;
13490
+ width: 100%;
13491
+ height: 100%;
13492
+ overflow: hidden;
13493
+ }
13494
+ .f-carousel__track[data-v-187b78d3] {
13495
+ display: flex;
13496
+ width: 100%;
13497
+ height: 100%;
13498
+ transition: transform 0.5s ease;
13499
+ }
13500
+ .f-carousel--horizontal .f-carousel__track[data-v-187b78d3] {
13501
+ flex-direction: row;
13502
+ }
13503
+ .f-carousel--vertical .f-carousel__track[data-v-187b78d3] {
13504
+ flex-direction: column;
13505
+ }
13506
+ .f-carousel__item[data-v-187b78d3] {
13507
+ flex: 0 0 100%;
13508
+ position: relative;
13509
+ width: 100%;
13510
+ height: 100%;
13511
+ }
13512
+ .f-carousel__image[data-v-187b78d3] {
13513
+ width: 100%;
13514
+ height: 100%;
13515
+ object-fit: cover;
13516
+ }
13517
+ .f-carousel__html-content[data-v-187b78d3], .f-carousel__content[data-v-187b78d3] {
13518
+ width: 100%;
13519
+ height: 100%;
13520
+ display: flex;
13521
+ align-items: center;
13522
+ justify-content: center;
13523
+ padding: 20px;
13524
+ }
13525
+ .f-carousel__content[data-v-187b78d3] {
13526
+ font-size: 18px;
13527
+ color: #333;
13528
+ background: #f5f5f5;
13529
+ }
13530
+ .f-carousel__overlay[data-v-187b78d3] {
13531
+ position: absolute;
13532
+ bottom: 0;
13533
+ left: 0;
13534
+ right: 0;
13535
+ padding: 20px;
13536
+ background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);
13537
+ color: white;
13538
+ }
13539
+ .f-carousel__title[data-v-187b78d3] {
13540
+ font-size: 24px;
13196
13541
  font-weight: 600;
13197
- color: #9d174d;
13198
- letter-spacing: 0.04em;
13542
+ margin-bottom: 8px;
13543
+ }
13544
+ .f-carousel__description[data-v-187b78d3] {
13545
+ font-size: 14px;
13546
+ opacity: 0.9;
13199
13547
  }
13200
- .f-marquee.is-pause:hover .f-marquee__track[data-v-83eeea3d] {
13201
- animation-play-state: paused;
13548
+ .f-carousel__empty[data-v-187b78d3] {
13549
+ width: 100%;
13550
+ height: 100%;
13551
+ display: flex;
13552
+ align-items: center;
13553
+ justify-content: center;
13554
+ color: #999;
13555
+ font-size: 16px;
13556
+ background: #f5f5f5;
13202
13557
  }
13203
- @keyframes f-marquee-scroll-83eeea3d {
13204
- from {
13205
- transform: translateX(0);
13558
+ .f-carousel__controls[data-v-187b78d3] {
13559
+ position: absolute;
13560
+ top: 50%;
13561
+ left: 0;
13562
+ right: 0;
13563
+ transform: translateY(-50%);
13564
+ display: flex;
13565
+ justify-content: space-between;
13566
+ padding: 0 16px;
13567
+ pointer-events: none;
13568
+ z-index: 2;
13206
13569
  }
13207
- to {
13208
- transform: translateX(-50%);
13570
+ .f-carousel__control[data-v-187b78d3] {
13571
+ width: 40px;
13572
+ height: 40px;
13573
+ border-radius: 50%;
13574
+ background: rgba(255, 255, 255, 0.8);
13575
+ border: none;
13576
+ cursor: pointer;
13577
+ display: flex;
13578
+ align-items: center;
13579
+ justify-content: center;
13580
+ color: #333;
13581
+ transition: all 0.3s;
13582
+ pointer-events: all;
13583
+ }
13584
+ .f-carousel__control[data-v-187b78d3]:hover:not(:disabled) {
13585
+ background: white;
13586
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
13587
+ }
13588
+ .f-carousel__control[data-v-187b78d3]:disabled {
13589
+ opacity: 0.3;
13590
+ cursor: not-allowed;
13591
+ }
13592
+ .f-carousel__control[data-v-187b78d3] svg {
13593
+ width: 20px;
13594
+ height: 20px;
13595
+ }
13596
+ .f-carousel__indicators[data-v-187b78d3] {
13597
+ position: absolute;
13598
+ display: flex;
13599
+ gap: 8px;
13600
+ z-index: 2;
13601
+ }
13602
+ .f-carousel__indicators--top[data-v-187b78d3] {
13603
+ top: 16px;
13604
+ left: 50%;
13605
+ transform: translateX(-50%);
13606
+ }
13607
+ .f-carousel--indicator-top .f-carousel__indicators[data-v-187b78d3] {
13608
+ top: 16px;
13609
+ left: 50%;
13610
+ transform: translateX(-50%);
13611
+ }
13612
+ .f-carousel--indicator-bottom .f-carousel__indicators[data-v-187b78d3] {
13613
+ bottom: 16px;
13614
+ left: 50%;
13615
+ transform: translateX(-50%);
13616
+ }
13617
+ .f-carousel--indicator-left .f-carousel__indicators[data-v-187b78d3] {
13618
+ left: 16px;
13619
+ top: 50%;
13620
+ transform: translateY(-50%);
13621
+ flex-direction: column;
13622
+ }
13623
+ .f-carousel--indicator-right .f-carousel__indicators[data-v-187b78d3] {
13624
+ right: 16px;
13625
+ top: 50%;
13626
+ transform: translateY(-50%);
13627
+ flex-direction: column;
13628
+ }
13629
+ .f-carousel__indicator[data-v-187b78d3] {
13630
+ border: none;
13631
+ background: none;
13632
+ cursor: pointer;
13633
+ padding: 4px;
13634
+ transition: all 0.3s;
13635
+ }
13636
+ .f-carousel__indicator--dot[data-v-187b78d3] {
13637
+ width: 8px;
13638
+ height: 8px;
13639
+ border-radius: 50%;
13640
+ background: rgba(255, 255, 255, 0.6);
13641
+ }
13642
+ .f-carousel__indicator--dot[data-v-187b78d3]:hover, .f-carousel__indicator--dot.f-carousel__indicator--active[data-v-187b78d3] {
13643
+ background: white;
13644
+ }
13645
+ .f-carousel__indicator--line[data-v-187b78d3] {
13646
+ width: 24px;
13647
+ height: 3px;
13648
+ background: rgba(255, 255, 255, 0.6);
13649
+ }
13650
+ .f-carousel__indicator--line[data-v-187b78d3]:hover, .f-carousel__indicator--line.f-carousel__indicator--active[data-v-187b78d3] {
13651
+ background: white;
13652
+ }
13653
+ .f-carousel__indicator--number[data-v-187b78d3] {
13654
+ width: 24px;
13655
+ height: 24px;
13656
+ border-radius: 4px;
13657
+ background: rgba(0, 0, 0, 0.5);
13658
+ color: white;
13659
+ font-size: 12px;
13660
+ display: flex;
13661
+ align-items: center;
13662
+ justify-content: center;
13663
+ }
13664
+ .f-carousel__indicator--number[data-v-187b78d3]:hover, .f-carousel__indicator--number.f-carousel__indicator--active[data-v-187b78d3] {
13665
+ background: rgba(0, 0, 0, 0.8);
13666
+ }
13667
+ .f-carousel__play-control[data-v-187b78d3] {
13668
+ position: absolute;
13669
+ top: 16px;
13670
+ right: 16px;
13671
+ z-index: 2;
13672
+ }
13673
+ .f-carousel__play-button[data-v-187b78d3] {
13674
+ width: 32px;
13675
+ height: 32px;
13676
+ border-radius: 50%;
13677
+ background: rgba(0, 0, 0, 0.5);
13678
+ border: none;
13679
+ color: white;
13680
+ cursor: pointer;
13681
+ display: flex;
13682
+ align-items: center;
13683
+ justify-content: center;
13684
+ transition: all 0.3s;
13685
+ }
13686
+ .f-carousel__play-button[data-v-187b78d3]:hover {
13687
+ background: rgba(0, 0, 0, 0.7);
13688
+ }
13689
+ .f-carousel__play-button[data-v-187b78d3] svg {
13690
+ width: 16px;
13691
+ height: 16px;
13692
+ }
13693
+ .f-carousel--fade .f-carousel__track[data-v-187b78d3] {
13694
+ display: block;
13695
+ }
13696
+ .f-carousel--fade .f-carousel__item[data-v-187b78d3] {
13697
+ position: absolute;
13698
+ top: 0;
13699
+ left: 0;
13700
+ opacity: 0;
13701
+ transition: opacity 1s ease;
13702
+ }
13703
+ .f-carousel--fade .f-carousel__item[data-v-187b78d3]:nth-child(1) {
13704
+ opacity: 1;
13705
+ }
13706
+ @media (max-width: 768px) {
13707
+ .f-carousel--horizontal[data-v-187b78d3] {
13708
+ height: var(--f-carousel-height, 300px);
13709
+ }
13710
+ .f-carousel--vertical[data-v-187b78d3] {
13711
+ height: var(--f-carousel-height, 250px);
13712
+ }
13713
+ .f-carousel__title[data-v-187b78d3] {
13714
+ font-size: 20px;
13715
+ }
13716
+ .f-carousel__control[data-v-187b78d3] {
13717
+ width: 32px;
13718
+ height: 32px;
13719
+ }
13720
+ .f-carousel__control[data-v-187b78d3] svg {
13721
+ width: 16px;
13722
+ height: 16px;
13209
13723
  }
13210
13724
  }.f-steps[data-v-39ce5b1c] {
13211
13725
  display: flex;
@@ -13535,7 +14049,7 @@ to {
13535
14049
  }
13536
14050
  .f-timeline-item--large .f-timeline-item__tail[data-v-d4425329] {
13537
14051
  left: 11px;
13538
- }.f-dialog-overlay[data-v-26ecd364] {
14052
+ }.f-dialog-overlay[data-v-7a2da7c7] {
13539
14053
  position: fixed;
13540
14054
  top: 0;
13541
14055
  left: 0;
@@ -13549,8 +14063,9 @@ to {
13549
14063
  padding: 20px;
13550
14064
  backdrop-filter: blur(2px);
13551
14065
  transition: background-color 0.25s ease;
14066
+ touch-action: none;
13552
14067
  }
13553
- .f-dialog[data-v-26ecd364] {
14068
+ .f-dialog[data-v-7a2da7c7] {
13554
14069
  position: relative;
13555
14070
  background: #fff;
13556
14071
  border-radius: 8px;
@@ -13564,7 +14079,7 @@ to {
13564
14079
  will-change: transform, opacity;
13565
14080
  transform-origin: center;
13566
14081
  }
13567
- .f-dialog__close[data-v-26ecd364] {
14082
+ .f-dialog__close[data-v-7a2da7c7] {
13568
14083
  position: absolute;
13569
14084
  top: 16px;
13570
14085
  right: 16px;
@@ -13582,20 +14097,20 @@ to {
13582
14097
  z-index: 1;
13583
14098
  padding: 0;
13584
14099
  }
13585
- .f-dialog__close[data-v-26ecd364]:hover {
14100
+ .f-dialog__close[data-v-7a2da7c7]:hover {
13586
14101
  background: #f5f7fa;
13587
14102
  color: #606266;
13588
14103
  }
13589
- .f-dialog__header[data-v-26ecd364] {
14104
+ .f-dialog__header[data-v-7a2da7c7] {
13590
14105
  padding: 20px 20px 16px;
13591
14106
  display: flex;
13592
14107
  align-items: center;
13593
14108
  gap: 12px;
13594
14109
  }
13595
- .f-dialog__header.has-divider[data-v-26ecd364] {
14110
+ .f-dialog__header.has-divider[data-v-7a2da7c7] {
13596
14111
  border-bottom: 1px solid #e4e7ed;
13597
14112
  }
13598
- .f-dialog__icon[data-v-26ecd364] {
14113
+ .f-dialog__icon[data-v-7a2da7c7] {
13599
14114
  flex-shrink: 0;
13600
14115
  width: 28px;
13601
14116
  height: 28px;
@@ -13604,11 +14119,11 @@ to {
13604
14119
  justify-content: center;
13605
14120
  border-radius: 50%;
13606
14121
  }
13607
- .f-dialog__icon[data-v-26ecd364] svg {
14122
+ .f-dialog__icon[data-v-7a2da7c7] svg {
13608
14123
  width: 20px;
13609
14124
  height: 20px;
13610
14125
  }
13611
- .f-dialog__title[data-v-26ecd364] {
14126
+ .f-dialog__title[data-v-7a2da7c7] {
13612
14127
  flex: 1;
13613
14128
  margin: 0;
13614
14129
  font-size: 18px;
@@ -13616,74 +14131,97 @@ to {
13616
14131
  color: #303133;
13617
14132
  line-height: 1.4;
13618
14133
  }
13619
- .f-dialog__body[data-v-26ecd364] {
14134
+ .f-dialog__body[data-v-7a2da7c7] {
13620
14135
  flex: 1;
13621
14136
  min-height: 0;
13622
14137
  padding: 20px;
13623
14138
  color: #606266;
13624
14139
  font-size: 14px;
13625
14140
  line-height: 1.6;
14141
+ overflow: hidden;
14142
+ -webkit-overflow-scrolling: touch;
13626
14143
  }
13627
- .f-dialog__body[data-v-26ecd364] .f-scrollbar {
14144
+ .f-dialog__body[data-v-7a2da7c7] .f-scrollbar {
13628
14145
  height: 100%;
13629
14146
  }
13630
- .f-dialog__body[data-v-26ecd364] .f-scrollbar__view {
14147
+ .f-dialog__body[data-v-7a2da7c7] .f-scrollbar__wrap {
14148
+ -webkit-overflow-scrolling: touch;
14149
+ }
14150
+ .f-dialog__body[data-v-7a2da7c7] .f-scrollbar__view {
13631
14151
  padding: 0;
13632
14152
  }
13633
- .f-dialog__body p[data-v-26ecd364] {
14153
+ .f-dialog__body p[data-v-7a2da7c7] {
13634
14154
  margin: 0;
13635
14155
  }
13636
- .f-dialog__footer[data-v-26ecd364] {
14156
+ .f-dialog__footer[data-v-7a2da7c7] {
13637
14157
  padding: 16px 20px;
13638
14158
  display: flex;
13639
14159
  align-items: center;
13640
14160
  justify-content: flex-end;
13641
14161
  gap: 12px;
13642
14162
  }
13643
- .f-dialog__footer.has-divider[data-v-26ecd364] {
14163
+ .f-dialog__footer.has-divider[data-v-7a2da7c7] {
13644
14164
  border-top: 1px solid #e4e7ed;
13645
14165
  }
13646
- .f-dialog--info .f-dialog__icon[data-v-26ecd364] {
14166
+ .f-dialog--info .f-dialog__icon[data-v-7a2da7c7] {
13647
14167
  background: #ecf5ff;
13648
14168
  color: #409eff;
13649
14169
  }
13650
- .f-dialog--success .f-dialog__icon[data-v-26ecd364] {
14170
+ .f-dialog--success .f-dialog__icon[data-v-7a2da7c7] {
13651
14171
  background: #f0f9ff;
13652
14172
  color: #67c23a;
13653
14173
  }
13654
- .f-dialog--warning .f-dialog__icon[data-v-26ecd364] {
14174
+ .f-dialog--warning .f-dialog__icon[data-v-7a2da7c7] {
13655
14175
  background: #fef0e6;
13656
14176
  color: #e6a23c;
13657
14177
  }
13658
- .f-dialog--error .f-dialog__icon[data-v-26ecd364] {
14178
+ .f-dialog--error .f-dialog__icon[data-v-7a2da7c7] {
13659
14179
  background: #fef0f0;
13660
14180
  color: #f56c6c;
13661
14181
  }
13662
- .f-dialog--confirm .f-dialog__icon[data-v-26ecd364] {
14182
+ .f-dialog--confirm .f-dialog__icon[data-v-7a2da7c7] {
13663
14183
  background: #fef0e6;
13664
14184
  color: #e6a23c;
13665
14185
  }
13666
- .dialog-fade-enter-active[data-v-26ecd364],
13667
- .dialog-fade-leave-active[data-v-26ecd364] {
14186
+ .dialog-fade-enter-active[data-v-7a2da7c7],
14187
+ .dialog-fade-leave-active[data-v-7a2da7c7] {
13668
14188
  transition: opacity 0.25s ease;
13669
14189
  }
13670
- .dialog-fade-enter-from[data-v-26ecd364],
13671
- .dialog-fade-leave-to[data-v-26ecd364] {
14190
+ .dialog-fade-enter-from[data-v-7a2da7c7],
14191
+ .dialog-fade-leave-to[data-v-7a2da7c7] {
13672
14192
  opacity: 0;
13673
14193
  }
13674
- .dialog-enter-active[data-v-26ecd364],
13675
- .dialog-leave-active[data-v-26ecd364] {
14194
+ .dialog-enter-active[data-v-7a2da7c7],
14195
+ .dialog-leave-active[data-v-7a2da7c7] {
13676
14196
  transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
13677
14197
  }
13678
- .dialog-enter-from[data-v-26ecd364],
13679
- .dialog-leave-to[data-v-26ecd364] {
14198
+ .dialog-enter-from[data-v-7a2da7c7],
14199
+ .dialog-leave-to[data-v-7a2da7c7] {
13680
14200
  opacity: 0;
13681
14201
  transform: scale(0.88) translateY(6px);
13682
14202
  }
13683
- .dialog-enter-to[data-v-26ecd364],
13684
- .dialog-leave-from[data-v-26ecd364] {
14203
+ .dialog-enter-to[data-v-7a2da7c7],
14204
+ .dialog-leave-from[data-v-7a2da7c7] {
13685
14205
  opacity: 1;
13686
14206
  transform: scale(1) translateY(0);
14207
+ }
14208
+ @media (max-width: 768px) {
14209
+ .f-dialog-overlay[data-v-7a2da7c7] {
14210
+ padding: 10px;
14211
+ }
14212
+ .f-dialog[data-v-7a2da7c7] {
14213
+ width: 95vw;
14214
+ max-height: 85vh;
14215
+ }
14216
+ .f-dialog__header[data-v-7a2da7c7] {
14217
+ padding: 16px 16px 12px;
14218
+ }
14219
+ .f-dialog__body[data-v-7a2da7c7] {
14220
+ padding: 16px;
14221
+ }
14222
+ .f-dialog__footer[data-v-7a2da7c7] {
14223
+ padding: 12px 16px;
14224
+ }
13687
14225
  }.f-drawer-backdrop[data-v-c7209ade] {
13688
14226
  position: fixed;
13689
14227
  inset: 0;