t20-common-lib 0.9.14 → 0.10.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.
Files changed (43) hide show
  1. package/package.json +64 -86
  2. package/packages/branch-bank-select/index.js +8 -8
  3. package/packages/branch-bank-select/src/main.vue +179 -179
  4. package/packages/common-collapse/index.js +8 -8
  5. package/packages/common-collapse/src/main.vue +147 -147
  6. package/packages/date-picker-por/index.js +8 -0
  7. package/packages/date-picker-por/src/main.vue +306 -0
  8. package/packages/form-page/index.js +8 -8
  9. package/packages/form-page/src/main.vue +55 -55
  10. package/packages/input-number/index.js +8 -0
  11. package/packages/input-number/src/main.vue +184 -0
  12. package/packages/main-page/index.js +8 -8
  13. package/packages/main-page/src/main.vue +43 -43
  14. package/packages/multi-currency-statistics/index.js +8 -8
  15. package/packages/multi-currency-statistics/src/main.vue +229 -229
  16. package/packages/page-header/index.js +8 -8
  17. package/packages/page-header/src/main.vue +95 -95
  18. package/packages/statis-card/index.js +8 -8
  19. package/packages/statis-card/src/main.vue +250 -250
  20. package/packages/tab-page/index.js +8 -8
  21. package/packages/tab-page/src/main.vue +101 -101
  22. package/packages/tab-pane/index.js +8 -8
  23. package/packages/tab-pane/src/main.vue +185 -185
  24. package/packages/table-page/index.js +8 -8
  25. package/packages/table-page/src/main.vue +42 -42
  26. package/packages/theme-chalk/src/common/element-variables.scss +1045 -1045
  27. package/packages/theme-chalk/src/common/normalize.scss +869 -869
  28. package/packages/theme-chalk/src/index.scss +8 -8
  29. package/src/api/common.js +20 -20
  30. package/src/i18n.json +4 -4
  31. package/src/index.js +78 -71
  32. package/src/store/index.js +25 -25
  33. package/src/store/modules/user.js +42 -42
  34. package/src/utils/asciiWidth.js +107 -107
  35. package/src/utils/common.js +12 -12
  36. package/src/utils/date.js +43 -43
  37. package/src/utils/exportFile.js +6 -6
  38. package/src/utils/i18n/cn2hk.json +1270 -1270
  39. package/src/utils/i18n/index.js +69 -69
  40. package/src/utils/repairElementUI.js +141 -141
  41. package/src/utils/tableCellUtils.js +54 -54
  42. package/src/utils/tableheaderFilterpanel.vue +257 -257
  43. package/style/index.css +25 -25
@@ -1,870 +1,870 @@
1
- // 项目中可以直接使用
2
- // .input-w {width: $--input-width;}
3
- // .button-4em{min-width: 72px;}
4
- /* 格式化样式 */
5
-
6
-
7
-
8
- html {
9
- height: 100%;
10
- }
11
-
12
- body {
13
- height: 100%;
14
- // font-size: $--font-size-base;
15
- font-family: PingFang SC, Microsoft YaHei, SUN, Arial, sans-serif;
16
- }
17
-
18
- li {
19
- list-style: none;
20
- }
21
-
22
- a {
23
- color: inherit;
24
- text-decoration: none;
25
- }
26
-
27
- iframe {
28
- border: 0;
29
- outline: none;
30
- }
31
-
32
- /* 滚动条样式 */
33
- ::-webkit-scrollbar {
34
- width: 8px;
35
- height: 8px;
36
- }
37
-
38
- ::-webkit-scrollbar-button {
39
- width: 0;
40
- height: 0;
41
- }
42
-
43
- ::-webkit-scrollbar-corner {
44
- background-color: transparent;
45
- }
46
-
47
- ::-webkit-scrollbar-thumb,
48
- ::-webkit-scrollbar-track {
49
- border-color: transparent;
50
- border-style: solid;
51
- border-radius: 4px;
52
- }
53
-
54
- ::-webkit-scrollbar-thumb {
55
- min-height: 28px;
56
- background-color: rgba(0, 0, 0, 0.07);
57
- border-width: 0;
58
- border-radius: 4px;
59
- }
60
-
61
- ::-webkit-scrollbar-thumb:hover {
62
- background-color: rgba(0, 0, 0, 0.2);
63
- }
64
-
65
- ::-webkit-scrollbar-thumb:active {
66
- background-color: rgba(0, 0, 0, 0.25);
67
- }
68
-
69
- ::-webkit-scrollbar-track:hover {
70
- background-color: rgba(0, 0, 0, 0.03);
71
- }
72
-
73
- // ::-webkit-scrollbar-track:active {
74
- // background-color: rgba(0, 0, 0, 0.03);
75
- // }
76
-
77
- :root {
78
- --client-height: calc(100vh - 110px);
79
- }
80
-
81
- /* 内外边距 */
82
- @mixin set-pm($m, $p) {
83
- .p-a#{$m} {
84
- padding: $p;
85
- }
86
-
87
- .p-t#{$m} {
88
- padding-top: $p;
89
- }
90
-
91
- .p-b#{$m} {
92
- padding-bottom: $p;
93
- }
94
-
95
- .p-l#{$m} {
96
- padding-left: $p;
97
- }
98
-
99
- .p-r#{$m} {
100
- padding-right: $p;
101
- }
102
-
103
- .m-a#{$m} {
104
- margin: $p;
105
- }
106
-
107
- .m-t#{$m} {
108
- margin-top: $p;
109
- }
110
-
111
- .m-b#{$m} {
112
- margin-bottom: $p;
113
- }
114
-
115
- .m-l#{$m} {
116
- margin-left: $p;
117
- }
118
-
119
- .m-r#{$m} {
120
- margin-right: $p;
121
- }
122
- }
123
-
124
- /* 内外边距 */
125
- .m-l-auto {
126
- margin-left: auto !important;
127
- }
128
-
129
- .m-r-auto {
130
- margin-right: auto !important;
131
- }
132
-
133
- .m-lr-auto {
134
- margin-left: auto !important;
135
- margin-right: auto !important;
136
- }
137
-
138
- @include set-pm('', 12px !important);
139
- @include set-pm('-xl', 32px !important);
140
- @include set-pm('-lg', 24px !important);
141
- @include set-pm('-m', 16px !important);
142
- @include set-pm('-s', 8px !important);
143
- @include set-pm('-b', 6px !important);
144
- @include set-pm('-ss', 4px !important);
145
- @include set-pm('-0', 0 !important);
146
-
147
- /* 内外边距 */
148
- @mixin pm-fn($n) {
149
- .pa-#{$n} {
150
- padding: #{$n}px;
151
- }
152
-
153
- .pt-#{$n} {
154
- padding-top: #{$n}px;
155
- }
156
-
157
- .pl-#{$n} {
158
- padding-left: #{$n}px;
159
- }
160
-
161
- .pr-#{$n} {
162
- padding-right: #{$n}px;
163
- }
164
-
165
- .pb-#{$n} {
166
- padding-bottom: #{$n}px;
167
- }
168
-
169
- .px-#{$n} {
170
- padding-left: #{$n}px;
171
- padding-right: #{$n}px;
172
- }
173
-
174
- .py-#{$n} {
175
- padding-top: #{$n}px;
176
- padding-bottom: #{$n}px;
177
- }
178
-
179
- .ma-#{$n} {
180
- margin: #{$n}px;
181
- }
182
-
183
- .mt-#{$n} {
184
- margin-top: #{$n}px;
185
- }
186
-
187
- .ml-#{$n} {
188
- margin-left: #{$n}px;
189
- }
190
-
191
- .mr-#{$n} {
192
- margin-right: #{$n}px;
193
- }
194
-
195
- .mb-#{$n} {
196
- margin-bottom: #{$n}px;
197
- }
198
-
199
- .mx-#{$n} {
200
- margin-left: #{$n}px;
201
- margin-right: #{$n}px;
202
- }
203
-
204
- .py-#{$n} {
205
- margin-top: #{$n}px;
206
- margin-bottom: #{$n}px;
207
- }
208
- }
209
-
210
- @include pm-fn(0);
211
- @include pm-fn(2);
212
- @include pm-fn(4);
213
- @include pm-fn(6);
214
- @include pm-fn(8);
215
- @include pm-fn(10);
216
- @include pm-fn(12);
217
- @include pm-fn(14);
218
-
219
- /* 浮动布局 */
220
- .left,
221
- .float-left {
222
- float: left;
223
- }
224
-
225
- .right,
226
- .float-right {
227
- float: right;
228
- }
229
-
230
- .overflow {
231
- height: auto;
232
- overflow: hidden;
233
- }
234
-
235
- .overflow-y {
236
- overflow-y: auto;
237
- }
238
-
239
- .overflow-x {
240
- overflow-x: auto;
241
- }
242
-
243
- // 清除浮动
244
- .overflow-clear {
245
- &:after {
246
- content: '';
247
- display: block;
248
- clear: both;
249
- }
250
- }
251
-
252
- /* 清除左侧浮动,将元素放置在任何先前的左浮动元素的下方 */
253
- .clear-left {
254
- clear: left;
255
- }
256
-
257
- /* 清除右侧浮动,将元素放置在任何先前的右浮动元素的下方 */
258
- .clear-right {
259
- clear: right;
260
- }
261
-
262
- /* 行内块元素水平垂直对齐方式 */
263
- .b-center {
264
- text-align: center;
265
-
266
- &>* {
267
- display: inline-block;
268
- vertical-align: bottom;
269
- }
270
- }
271
-
272
- .b-vertical {
273
- font-size: 0;
274
-
275
- &>* {
276
- vertical-align: middle;
277
- display: inline-block;
278
- font-size: 14px;
279
- }
280
-
281
- &:before {
282
- content: '';
283
- vertical-align: middle;
284
- display: inline-block;
285
- width: 0;
286
- height: 100%;
287
- }
288
- }
289
-
290
- .block {
291
- display: block;
292
- }
293
-
294
- .inline_block {
295
- display: inline-block;
296
- }
297
-
298
- .inline {
299
- display: inline;
300
- }
301
-
302
- /* 文字居中 */
303
- .text {
304
- &-c {
305
- text-align: center !important;
306
- }
307
-
308
- &-l {
309
- text-align: left !important;
310
- }
311
-
312
- &-r {
313
- text-align: right !important;
314
- }
315
-
316
- &-lr {
317
- text-align: justify;
318
- text-justify: inter-word;
319
- }
320
-
321
- &-ellipsis {
322
- white-space: nowrap;
323
- overflow: hidden;
324
- text-overflow: ellipsis;
325
- }
326
- }
327
-
328
- /* 弹性盒模型 */
329
- .flex-box {
330
- display: flex;
331
- }
332
-
333
- .flex-column {
334
- display: flex;
335
- flex-direction: column;
336
- }
337
-
338
- .flex-box>*,
339
- .flex-column>* {
340
- flex: none;
341
- }
342
-
343
-
344
-
345
- .flex {
346
- &-wrap {
347
- flex-wrap: wrap;
348
- }
349
-
350
- &-nowrap {
351
- flex-wrap: nowrap;
352
- }
353
-
354
- &-v {
355
- align-items: center;
356
- }
357
-
358
- &-s {
359
- align-items: flex-start;
360
- }
361
-
362
- &-e {
363
- align-items: flex-end;
364
- }
365
-
366
- &-l {
367
- justify-content: flex-start;
368
- }
369
-
370
- &-r {
371
- justify-content: flex-end;
372
- }
373
-
374
- &-c {
375
- justify-content: center;
376
- }
377
-
378
- &-lr {
379
- justify-content: space-between;
380
- }
381
-
382
- &-sa {
383
- justify-content: space-around;
384
- }
385
- }
386
-
387
- .flex-item {
388
- flex: auto;
389
- }
390
-
391
- @for $n from 0 to 10 {
392
- .flex-#{$n} {
393
- flex: $n $n auto;
394
- }
395
- }
396
-
397
-
398
-
399
-
400
-
401
-
402
-
403
- /* 旋转图标90度
404
- -------------- */
405
- .rotate90 {
406
- display: inline-block;
407
- transform: rotate(90deg);
408
- cursor: pointer;
409
- }
410
-
411
- /* 清除背景色
412
- -------------- */
413
- .bg {
414
- &-none {
415
- background: none !important;
416
- }
417
- }
418
-
419
- /* 阴影 */
420
- .box-shadow {
421
- box-shadow: 0px 4px 16px 0px rgba($--color-black, 0.1);
422
- }
423
-
424
- .box-shadow-mini {
425
- box-shadow: 0px 2px 8px 0px rgba($--color-black, 0.08);
426
- }
427
-
428
- // 底部统计翻页
429
- .page-footer-shadow {
430
- position: relative;
431
- height: 28px;
432
- margin-bottom: -6px;
433
-
434
- &::before {
435
- content: '';
436
- pointer-events: none;
437
- position: absolute;
438
- top: 0;
439
- height: 100%;
440
- left: -8px;
441
- right: -8px;
442
- box-shadow: 0 -2px 6px 0px rgba($--color-black, 0.08);
443
- }
444
- }
445
-
446
- // 底部操作按钮
447
- .page-button-shadow {
448
- position: relative;
449
- height: 44px;
450
- margin-bottom: -8px;
451
-
452
- &::before {
453
- content: '';
454
- pointer-events: none;
455
- position: absolute;
456
- top: 0px;
457
- height: 100%;
458
- left: -8px;
459
- right: -8px;
460
- box-shadow: 0px -2px 6px 0px rgba($--color-black, 0.08);
461
- }
462
- }
463
-
464
- .fixed-button-shadow {
465
- position: absolute;
466
- bottom: 10px;
467
- left: 0;
468
- right: 0;
469
- height: 44px;
470
- margin: 0 12px;
471
- z-index: 1;
472
- background-color: $--color-white;
473
-
474
- &::before {
475
- content: '';
476
- pointer-events: none;
477
- position: absolute;
478
- left: 0;
479
- right: 0;
480
- top: 0px;
481
- height: 100%;
482
- box-shadow: 0px -2px 6px 0px rgba($--color-black, 0.08);
483
- }
484
- }
485
-
486
- /* 边框
487
- -------------- */
488
- .bd {
489
-
490
- &-none,
491
- &-0 {
492
- border: none !important;
493
- }
494
-
495
- &-a {
496
- border: 1px solid $--border-color-base;
497
- }
498
-
499
- &-t {
500
- border-top: 1px solid $--border-color-base;
501
- }
502
-
503
- &-l {
504
- border-left: 1px solid $--border-color-base;
505
- }
506
-
507
- &-r {
508
- border-right: 1px solid $--border-color-base;
509
- }
510
-
511
- &-b {
512
- border-bottom: 1px solid $--border-color-base;
513
- }
514
- }
515
-
516
- .bd-rs {
517
- border-radius: $--border-radius-base;
518
- }
519
-
520
- /* 设置弹窗内容区内边距
521
- -------------- */
522
- .el-dialog__wrapper {
523
- &.p-a-0 {
524
- .el-dialog__body {
525
- padding: 0;
526
- }
527
- }
528
-
529
- &.p-t-0 {
530
- .el-dialog__body {
531
- padding-top: 0;
532
- }
533
- }
534
-
535
- &.p-b-0 {
536
- .el-dialog__body {
537
- padding-bottom: 0;
538
- }
539
- }
540
- }
541
-
542
- /* 通用字号
543
- -------------- */
544
- .font-size-base {
545
- font-size: var(--font-size-base) !important;
546
- }
547
-
548
- .font-size-small {
549
- font-size: var(--font-size-small) !important;
550
- }
551
-
552
- /* 通用颜色
553
- -------------- */
554
- .color-primary {
555
- color: var(--color-primary) !important;
556
- }
557
-
558
- .color-success {
559
- color: var(--color-success);
560
- }
561
-
562
- .color-warning {
563
- color: var(--color-warning);
564
- }
565
-
566
- .color-danger {
567
- color: var(--color-danger);
568
- }
569
-
570
- .color-placeholder {
571
- color: var(--color-text-placeholder);
572
- }
573
-
574
- .linear-grad {
575
- background: var(--background-linear-gradient);
576
- }
577
-
578
- .color-white {
579
- color: white;
580
- }
581
-
582
- .color-ccc {
583
- color: #ccc;
584
- }
585
-
586
- .color-999 {
587
- color: #999;
588
- }
589
-
590
- .color-666 {
591
- color: #666;
592
- }
593
-
594
- .color-333 {
595
- color: #333;
596
- }
597
-
598
- /* 鼠标默认样式 */
599
- .cursor-d {
600
- cursor: default;
601
- }
602
-
603
- /* 鼠标小手 */
604
- .pointer {
605
- cursor: pointer;
606
- }
607
-
608
- /* 鼠标禁止- */
609
- .cursor-not {
610
- cursor: not-allowed;
611
- }
612
-
613
- /* 字重 */
614
- .font {
615
- &-w600 {
616
- font-weight: var(--font-weight-bold);
617
- }
618
- }
619
-
620
- /* 字号 */
621
- .f-s {
622
- &-s {
623
- /* 12号字 */
624
- font-size: var(--font-size-small) !important;
625
- }
626
-
627
- &-b {
628
- /* 14号字 */
629
- font-size: var(--font-size-base) !important;
630
- }
631
-
632
- &-m {
633
- /* 16号字 */
634
- font-size: var(--font-size-medium) !important;
635
- }
636
-
637
- &-l {
638
- /* 18号 */
639
- font-size: var(--font-size-large) !important;
640
- }
641
-
642
- &-xl {
643
- font-size: var(--font-size-extra-large) !important;
644
- }
645
- }
646
-
647
- .auto-width-input {
648
- width: fit-content;
649
- }
650
-
651
- .width-auto {
652
- width: auto !important;
653
- }
654
-
655
- /* 宽高范围是 60-1000- */
656
- $list: 45, 60, 80, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290,
657
- 300, 400, 500, 600, 700, 800, 900, 1000;
658
-
659
- @each $n in $list {
660
- .w-#{$n} {
661
- width: #{$n}px !important;
662
- }
663
-
664
- .h-#{$n} {
665
- height: #{$n}px !important;
666
- }
667
- }
668
-
669
- /* 宽百分比 */
670
- @for $i from 1 through 10 {
671
- .w-#{$i}0p {
672
- width: #{$i + '0%'} !important;
673
- }
674
- }
675
-
676
- /* height: 100%; 速龙浏览器下子元素无法继承父元素的高速度 */
677
- .n20-page-content {
678
- height: 100%;
679
- overflow-y: auto;
680
- overflow-x: hidden;
681
- }
682
-
683
- /* 边框圆角
684
- -------------- */
685
- .b {
686
- &-r {
687
- border-radius: 50%;
688
- }
689
-
690
- &-r-4 {
691
- border-radius: 4px;
692
- }
693
-
694
- &-r-5 {
695
- border-radius: 5px;
696
- }
697
-
698
- &-r-6 {
699
- border-radius: 6px;
700
- }
701
-
702
- &-r-7 {
703
- border-radius: 7px;
704
- }
705
-
706
- &-r-8 {
707
- border-radius: 8px;
708
- }
709
-
710
- &-r-9 {
711
- border-radius: 9px;
712
- }
713
-
714
- &-r-10 {
715
- border-radius: 10px;
716
- }
717
- }
718
-
719
- /* 垂直对齐 */
720
- .align {
721
- &-baseline {
722
- vertical-align: baseline; // 将一个元素的基线与其父元素的基线对齐。
723
- }
724
-
725
- &-top {
726
- vertical-align: top; // 将一个元素的顶部和它的子代与整个行的顶部对齐。
727
- }
728
-
729
- &-middle {
730
- vertical-align: middle; // 将元素的中间与基线加父元素的一半高度对齐。
731
- }
732
-
733
- &-bottom {
734
- vertical-align: bottom; // 将一个元素的底部和它的子代与整个行的底部对齐。
735
- }
736
-
737
- &-text-top {
738
- vertical-align: text-top; // 使元素的顶部与父元素的字体顶部对齐。
739
- }
740
-
741
- &-text-bottom {
742
- vertical-align: text-bottom; // 使元素的底部与父元素的字体底部对齐。
743
- }
744
- }
745
-
746
- /* 本文选择 */
747
-
748
- .select {
749
- &-none {
750
- user-select: none; // 防止选择元素及其子元素中的文本。
751
- }
752
-
753
- &-text {
754
- user-select: text; // 允许选择元素及其子元素中的文本。
755
- }
756
-
757
- &-all {
758
- user-select: all; // 在用户点击时自动选择元素中的所有文本。
759
- }
760
-
761
- &-auto {
762
- user-select: auto; // 使用默认的浏览器行为来选择文本
763
- }
764
- }
765
-
766
- /* 文本溢出显示省略号 */
767
- .truncate {
768
- overflow: hidden;
769
- text-overflow: ellipsis;
770
- white-space: nowrap;
771
- }
772
-
773
- /* 本文转换 */
774
- /* 使用 uppercase 功能类对文本进行大写转换 */
775
- .uppercase {
776
- text-transform: uppercase;
777
- }
778
-
779
- /* 使用 lowercase 功能类对文本进行小写转换 */
780
- .lowercase {
781
- text-transform: lowercase;
782
- }
783
-
784
- /* 使用 capitalize 功能类对文本进行首字母大写转换 */
785
- .capitalize {
786
- text-transform: capitalize;
787
- }
788
-
789
- /* 下划线 */
790
- .underline {
791
- text-decoration: underline;
792
- }
793
-
794
- /* 删除线 */
795
- .line-through {
796
- text-decoration: line-through;
797
- }
798
-
799
- /* 移除文本装饰 */
800
- .no-underline {
801
- text-decoration: none;
802
- }
803
-
804
- /* 动画 */
805
- .animate {
806
- &-none {
807
- animation: none;
808
- }
809
-
810
- &-spin {
811
- animation: spin 1s linear infinite;
812
- }
813
-
814
- &-ping {
815
- animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
816
- }
817
-
818
- &-pulse {
819
- animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
820
- }
821
-
822
- &-bounce {
823
- animation: bounce 1s infinite;
824
- }
825
- }
826
-
827
- @keyframes spin {
828
- from {
829
- transform: rotate(0deg);
830
- }
831
-
832
- to {
833
- transform: rotate(360deg);
834
- }
835
- }
836
-
837
- @keyframes ping {
838
-
839
- 75%,
840
- 100% {
841
- transform: scale(2);
842
- opacity: 0;
843
- }
844
- }
845
-
846
- @keyframes pulse {
847
-
848
- 0%,
849
- 100% {
850
- opacity: 1;
851
- }
852
-
853
- 50% {
854
- opacity: 0.5;
855
- }
856
- }
857
-
858
- @keyframes bounce {
859
-
860
- 0%,
861
- 100% {
862
- transform: translateY(-25%);
863
- animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
864
- }
865
-
866
- 50% {
867
- transform: translateY(0);
868
- animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
869
- }
1
+ // 项目中可以直接使用
2
+ // .input-w {width: $--input-width;}
3
+ // .button-4em{min-width: 72px;}
4
+ /* 格式化样式 */
5
+
6
+
7
+
8
+ html {
9
+ height: 100%;
10
+ }
11
+
12
+ body {
13
+ height: 100%;
14
+ // font-size: $--font-size-base;
15
+ font-family: PingFang SC, Microsoft YaHei, SUN, Arial, sans-serif;
16
+ }
17
+
18
+ li {
19
+ list-style: none;
20
+ }
21
+
22
+ a {
23
+ color: inherit;
24
+ text-decoration: none;
25
+ }
26
+
27
+ iframe {
28
+ border: 0;
29
+ outline: none;
30
+ }
31
+
32
+ /* 滚动条样式 */
33
+ ::-webkit-scrollbar {
34
+ width: 8px;
35
+ height: 8px;
36
+ }
37
+
38
+ ::-webkit-scrollbar-button {
39
+ width: 0;
40
+ height: 0;
41
+ }
42
+
43
+ ::-webkit-scrollbar-corner {
44
+ background-color: transparent;
45
+ }
46
+
47
+ ::-webkit-scrollbar-thumb,
48
+ ::-webkit-scrollbar-track {
49
+ border-color: transparent;
50
+ border-style: solid;
51
+ border-radius: 4px;
52
+ }
53
+
54
+ ::-webkit-scrollbar-thumb {
55
+ min-height: 28px;
56
+ background-color: rgba(0, 0, 0, 0.07);
57
+ border-width: 0;
58
+ border-radius: 4px;
59
+ }
60
+
61
+ ::-webkit-scrollbar-thumb:hover {
62
+ background-color: rgba(0, 0, 0, 0.2);
63
+ }
64
+
65
+ ::-webkit-scrollbar-thumb:active {
66
+ background-color: rgba(0, 0, 0, 0.25);
67
+ }
68
+
69
+ ::-webkit-scrollbar-track:hover {
70
+ background-color: rgba(0, 0, 0, 0.03);
71
+ }
72
+
73
+ // ::-webkit-scrollbar-track:active {
74
+ // background-color: rgba(0, 0, 0, 0.03);
75
+ // }
76
+
77
+ :root {
78
+ --client-height: calc(100vh - 110px);
79
+ }
80
+
81
+ /* 内外边距 */
82
+ @mixin set-pm($m, $p) {
83
+ .p-a#{$m} {
84
+ padding: $p;
85
+ }
86
+
87
+ .p-t#{$m} {
88
+ padding-top: $p;
89
+ }
90
+
91
+ .p-b#{$m} {
92
+ padding-bottom: $p;
93
+ }
94
+
95
+ .p-l#{$m} {
96
+ padding-left: $p;
97
+ }
98
+
99
+ .p-r#{$m} {
100
+ padding-right: $p;
101
+ }
102
+
103
+ .m-a#{$m} {
104
+ margin: $p;
105
+ }
106
+
107
+ .m-t#{$m} {
108
+ margin-top: $p;
109
+ }
110
+
111
+ .m-b#{$m} {
112
+ margin-bottom: $p;
113
+ }
114
+
115
+ .m-l#{$m} {
116
+ margin-left: $p;
117
+ }
118
+
119
+ .m-r#{$m} {
120
+ margin-right: $p;
121
+ }
122
+ }
123
+
124
+ /* 内外边距 */
125
+ .m-l-auto {
126
+ margin-left: auto !important;
127
+ }
128
+
129
+ .m-r-auto {
130
+ margin-right: auto !important;
131
+ }
132
+
133
+ .m-lr-auto {
134
+ margin-left: auto !important;
135
+ margin-right: auto !important;
136
+ }
137
+
138
+ @include set-pm('', 12px !important);
139
+ @include set-pm('-xl', 32px !important);
140
+ @include set-pm('-lg', 24px !important);
141
+ @include set-pm('-m', 16px !important);
142
+ @include set-pm('-s', 8px !important);
143
+ @include set-pm('-b', 6px !important);
144
+ @include set-pm('-ss', 4px !important);
145
+ @include set-pm('-0', 0 !important);
146
+
147
+ /* 内外边距 */
148
+ @mixin pm-fn($n) {
149
+ .pa-#{$n} {
150
+ padding: #{$n}px;
151
+ }
152
+
153
+ .pt-#{$n} {
154
+ padding-top: #{$n}px;
155
+ }
156
+
157
+ .pl-#{$n} {
158
+ padding-left: #{$n}px;
159
+ }
160
+
161
+ .pr-#{$n} {
162
+ padding-right: #{$n}px;
163
+ }
164
+
165
+ .pb-#{$n} {
166
+ padding-bottom: #{$n}px;
167
+ }
168
+
169
+ .px-#{$n} {
170
+ padding-left: #{$n}px;
171
+ padding-right: #{$n}px;
172
+ }
173
+
174
+ .py-#{$n} {
175
+ padding-top: #{$n}px;
176
+ padding-bottom: #{$n}px;
177
+ }
178
+
179
+ .ma-#{$n} {
180
+ margin: #{$n}px;
181
+ }
182
+
183
+ .mt-#{$n} {
184
+ margin-top: #{$n}px;
185
+ }
186
+
187
+ .ml-#{$n} {
188
+ margin-left: #{$n}px;
189
+ }
190
+
191
+ .mr-#{$n} {
192
+ margin-right: #{$n}px;
193
+ }
194
+
195
+ .mb-#{$n} {
196
+ margin-bottom: #{$n}px;
197
+ }
198
+
199
+ .mx-#{$n} {
200
+ margin-left: #{$n}px;
201
+ margin-right: #{$n}px;
202
+ }
203
+
204
+ .py-#{$n} {
205
+ margin-top: #{$n}px;
206
+ margin-bottom: #{$n}px;
207
+ }
208
+ }
209
+
210
+ @include pm-fn(0);
211
+ @include pm-fn(2);
212
+ @include pm-fn(4);
213
+ @include pm-fn(6);
214
+ @include pm-fn(8);
215
+ @include pm-fn(10);
216
+ @include pm-fn(12);
217
+ @include pm-fn(14);
218
+
219
+ /* 浮动布局 */
220
+ .left,
221
+ .float-left {
222
+ float: left;
223
+ }
224
+
225
+ .right,
226
+ .float-right {
227
+ float: right;
228
+ }
229
+
230
+ .overflow {
231
+ height: auto;
232
+ overflow: hidden;
233
+ }
234
+
235
+ .overflow-y {
236
+ overflow-y: auto;
237
+ }
238
+
239
+ .overflow-x {
240
+ overflow-x: auto;
241
+ }
242
+
243
+ // 清除浮动
244
+ .overflow-clear {
245
+ &:after {
246
+ content: '';
247
+ display: block;
248
+ clear: both;
249
+ }
250
+ }
251
+
252
+ /* 清除左侧浮动,将元素放置在任何先前的左浮动元素的下方 */
253
+ .clear-left {
254
+ clear: left;
255
+ }
256
+
257
+ /* 清除右侧浮动,将元素放置在任何先前的右浮动元素的下方 */
258
+ .clear-right {
259
+ clear: right;
260
+ }
261
+
262
+ /* 行内块元素水平垂直对齐方式 */
263
+ .b-center {
264
+ text-align: center;
265
+
266
+ &>* {
267
+ display: inline-block;
268
+ vertical-align: bottom;
269
+ }
270
+ }
271
+
272
+ .b-vertical {
273
+ font-size: 0;
274
+
275
+ &>* {
276
+ vertical-align: middle;
277
+ display: inline-block;
278
+ font-size: 14px;
279
+ }
280
+
281
+ &:before {
282
+ content: '';
283
+ vertical-align: middle;
284
+ display: inline-block;
285
+ width: 0;
286
+ height: 100%;
287
+ }
288
+ }
289
+
290
+ .block {
291
+ display: block;
292
+ }
293
+
294
+ .inline_block {
295
+ display: inline-block;
296
+ }
297
+
298
+ .inline {
299
+ display: inline;
300
+ }
301
+
302
+ /* 文字居中 */
303
+ .text {
304
+ &-c {
305
+ text-align: center !important;
306
+ }
307
+
308
+ &-l {
309
+ text-align: left !important;
310
+ }
311
+
312
+ &-r {
313
+ text-align: right !important;
314
+ }
315
+
316
+ &-lr {
317
+ text-align: justify;
318
+ text-justify: inter-word;
319
+ }
320
+
321
+ &-ellipsis {
322
+ white-space: nowrap;
323
+ overflow: hidden;
324
+ text-overflow: ellipsis;
325
+ }
326
+ }
327
+
328
+ /* 弹性盒模型 */
329
+ .flex-box {
330
+ display: flex;
331
+ }
332
+
333
+ .flex-column {
334
+ display: flex;
335
+ flex-direction: column;
336
+ }
337
+
338
+ .flex-box>*,
339
+ .flex-column>* {
340
+ flex: none;
341
+ }
342
+
343
+
344
+
345
+ .flex {
346
+ &-wrap {
347
+ flex-wrap: wrap;
348
+ }
349
+
350
+ &-nowrap {
351
+ flex-wrap: nowrap;
352
+ }
353
+
354
+ &-v {
355
+ align-items: center;
356
+ }
357
+
358
+ &-s {
359
+ align-items: flex-start;
360
+ }
361
+
362
+ &-e {
363
+ align-items: flex-end;
364
+ }
365
+
366
+ &-l {
367
+ justify-content: flex-start;
368
+ }
369
+
370
+ &-r {
371
+ justify-content: flex-end;
372
+ }
373
+
374
+ &-c {
375
+ justify-content: center;
376
+ }
377
+
378
+ &-lr {
379
+ justify-content: space-between;
380
+ }
381
+
382
+ &-sa {
383
+ justify-content: space-around;
384
+ }
385
+ }
386
+
387
+ .flex-item {
388
+ flex: auto;
389
+ }
390
+
391
+ @for $n from 0 to 10 {
392
+ .flex-#{$n} {
393
+ flex: $n $n auto;
394
+ }
395
+ }
396
+
397
+
398
+
399
+
400
+
401
+
402
+
403
+ /* 旋转图标90度
404
+ -------------- */
405
+ .rotate90 {
406
+ display: inline-block;
407
+ transform: rotate(90deg);
408
+ cursor: pointer;
409
+ }
410
+
411
+ /* 清除背景色
412
+ -------------- */
413
+ .bg {
414
+ &-none {
415
+ background: none !important;
416
+ }
417
+ }
418
+
419
+ /* 阴影 */
420
+ .box-shadow {
421
+ box-shadow: 0px 4px 16px 0px rgba($--color-black, 0.1);
422
+ }
423
+
424
+ .box-shadow-mini {
425
+ box-shadow: 0px 2px 8px 0px rgba($--color-black, 0.08);
426
+ }
427
+
428
+ // 底部统计翻页
429
+ .page-footer-shadow {
430
+ position: relative;
431
+ height: 28px;
432
+ margin-bottom: -6px;
433
+
434
+ &::before {
435
+ content: '';
436
+ pointer-events: none;
437
+ position: absolute;
438
+ top: 0;
439
+ height: 100%;
440
+ left: -8px;
441
+ right: -8px;
442
+ box-shadow: 0 -2px 6px 0px rgba($--color-black, 0.08);
443
+ }
444
+ }
445
+
446
+ // 底部操作按钮
447
+ .page-button-shadow {
448
+ position: relative;
449
+ height: 44px;
450
+ margin-bottom: -8px;
451
+
452
+ &::before {
453
+ content: '';
454
+ pointer-events: none;
455
+ position: absolute;
456
+ top: 0px;
457
+ height: 100%;
458
+ left: -8px;
459
+ right: -8px;
460
+ box-shadow: 0px -2px 6px 0px rgba($--color-black, 0.08);
461
+ }
462
+ }
463
+
464
+ .fixed-button-shadow {
465
+ position: absolute;
466
+ bottom: 10px;
467
+ left: 0;
468
+ right: 0;
469
+ height: 44px;
470
+ margin: 0 12px;
471
+ z-index: 1;
472
+ background-color: $--color-white;
473
+
474
+ &::before {
475
+ content: '';
476
+ pointer-events: none;
477
+ position: absolute;
478
+ left: 0;
479
+ right: 0;
480
+ top: 0px;
481
+ height: 100%;
482
+ box-shadow: 0px -2px 6px 0px rgba($--color-black, 0.08);
483
+ }
484
+ }
485
+
486
+ /* 边框
487
+ -------------- */
488
+ .bd {
489
+
490
+ &-none,
491
+ &-0 {
492
+ border: none !important;
493
+ }
494
+
495
+ &-a {
496
+ border: 1px solid $--border-color-base;
497
+ }
498
+
499
+ &-t {
500
+ border-top: 1px solid $--border-color-base;
501
+ }
502
+
503
+ &-l {
504
+ border-left: 1px solid $--border-color-base;
505
+ }
506
+
507
+ &-r {
508
+ border-right: 1px solid $--border-color-base;
509
+ }
510
+
511
+ &-b {
512
+ border-bottom: 1px solid $--border-color-base;
513
+ }
514
+ }
515
+
516
+ .bd-rs {
517
+ border-radius: $--border-radius-base;
518
+ }
519
+
520
+ /* 设置弹窗内容区内边距
521
+ -------------- */
522
+ .el-dialog__wrapper {
523
+ &.p-a-0 {
524
+ .el-dialog__body {
525
+ padding: 0;
526
+ }
527
+ }
528
+
529
+ &.p-t-0 {
530
+ .el-dialog__body {
531
+ padding-top: 0;
532
+ }
533
+ }
534
+
535
+ &.p-b-0 {
536
+ .el-dialog__body {
537
+ padding-bottom: 0;
538
+ }
539
+ }
540
+ }
541
+
542
+ /* 通用字号
543
+ -------------- */
544
+ .font-size-base {
545
+ font-size: var(--font-size-base) !important;
546
+ }
547
+
548
+ .font-size-small {
549
+ font-size: var(--font-size-small) !important;
550
+ }
551
+
552
+ /* 通用颜色
553
+ -------------- */
554
+ .color-primary {
555
+ color: var(--color-primary) !important;
556
+ }
557
+
558
+ .color-success {
559
+ color: var(--color-success);
560
+ }
561
+
562
+ .color-warning {
563
+ color: var(--color-warning);
564
+ }
565
+
566
+ .color-danger {
567
+ color: var(--color-danger);
568
+ }
569
+
570
+ .color-placeholder {
571
+ color: var(--color-text-placeholder);
572
+ }
573
+
574
+ .linear-grad {
575
+ background: var(--background-linear-gradient);
576
+ }
577
+
578
+ .color-white {
579
+ color: white;
580
+ }
581
+
582
+ .color-ccc {
583
+ color: #ccc;
584
+ }
585
+
586
+ .color-999 {
587
+ color: #999;
588
+ }
589
+
590
+ .color-666 {
591
+ color: #666;
592
+ }
593
+
594
+ .color-333 {
595
+ color: #333;
596
+ }
597
+
598
+ /* 鼠标默认样式 */
599
+ .cursor-d {
600
+ cursor: default;
601
+ }
602
+
603
+ /* 鼠标小手 */
604
+ .pointer {
605
+ cursor: pointer;
606
+ }
607
+
608
+ /* 鼠标禁止- */
609
+ .cursor-not {
610
+ cursor: not-allowed;
611
+ }
612
+
613
+ /* 字重 */
614
+ .font {
615
+ &-w600 {
616
+ font-weight: var(--font-weight-bold);
617
+ }
618
+ }
619
+
620
+ /* 字号 */
621
+ .f-s {
622
+ &-s {
623
+ /* 12号字 */
624
+ font-size: var(--font-size-small) !important;
625
+ }
626
+
627
+ &-b {
628
+ /* 14号字 */
629
+ font-size: var(--font-size-base) !important;
630
+ }
631
+
632
+ &-m {
633
+ /* 16号字 */
634
+ font-size: var(--font-size-medium) !important;
635
+ }
636
+
637
+ &-l {
638
+ /* 18号 */
639
+ font-size: var(--font-size-large) !important;
640
+ }
641
+
642
+ &-xl {
643
+ font-size: var(--font-size-extra-large) !important;
644
+ }
645
+ }
646
+
647
+ .auto-width-input {
648
+ width: fit-content;
649
+ }
650
+
651
+ .width-auto {
652
+ width: auto !important;
653
+ }
654
+
655
+ /* 宽高范围是 60-1000- */
656
+ $list: 45, 60, 80, 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290,
657
+ 300, 400, 500, 600, 700, 800, 900, 1000;
658
+
659
+ @each $n in $list {
660
+ .w-#{$n} {
661
+ width: #{$n}px !important;
662
+ }
663
+
664
+ .h-#{$n} {
665
+ height: #{$n}px !important;
666
+ }
667
+ }
668
+
669
+ /* 宽百分比 */
670
+ @for $i from 1 through 10 {
671
+ .w-#{$i}0p {
672
+ width: #{$i + '0%'} !important;
673
+ }
674
+ }
675
+
676
+ /* height: 100%; 速龙浏览器下子元素无法继承父元素的高速度 */
677
+ .n20-page-content {
678
+ height: 100%;
679
+ overflow-y: auto;
680
+ overflow-x: hidden;
681
+ }
682
+
683
+ /* 边框圆角
684
+ -------------- */
685
+ .b {
686
+ &-r {
687
+ border-radius: 50%;
688
+ }
689
+
690
+ &-r-4 {
691
+ border-radius: 4px;
692
+ }
693
+
694
+ &-r-5 {
695
+ border-radius: 5px;
696
+ }
697
+
698
+ &-r-6 {
699
+ border-radius: 6px;
700
+ }
701
+
702
+ &-r-7 {
703
+ border-radius: 7px;
704
+ }
705
+
706
+ &-r-8 {
707
+ border-radius: 8px;
708
+ }
709
+
710
+ &-r-9 {
711
+ border-radius: 9px;
712
+ }
713
+
714
+ &-r-10 {
715
+ border-radius: 10px;
716
+ }
717
+ }
718
+
719
+ /* 垂直对齐 */
720
+ .align {
721
+ &-baseline {
722
+ vertical-align: baseline; // 将一个元素的基线与其父元素的基线对齐。
723
+ }
724
+
725
+ &-top {
726
+ vertical-align: top; // 将一个元素的顶部和它的子代与整个行的顶部对齐。
727
+ }
728
+
729
+ &-middle {
730
+ vertical-align: middle; // 将元素的中间与基线加父元素的一半高度对齐。
731
+ }
732
+
733
+ &-bottom {
734
+ vertical-align: bottom; // 将一个元素的底部和它的子代与整个行的底部对齐。
735
+ }
736
+
737
+ &-text-top {
738
+ vertical-align: text-top; // 使元素的顶部与父元素的字体顶部对齐。
739
+ }
740
+
741
+ &-text-bottom {
742
+ vertical-align: text-bottom; // 使元素的底部与父元素的字体底部对齐。
743
+ }
744
+ }
745
+
746
+ /* 本文选择 */
747
+
748
+ .select {
749
+ &-none {
750
+ user-select: none; // 防止选择元素及其子元素中的文本。
751
+ }
752
+
753
+ &-text {
754
+ user-select: text; // 允许选择元素及其子元素中的文本。
755
+ }
756
+
757
+ &-all {
758
+ user-select: all; // 在用户点击时自动选择元素中的所有文本。
759
+ }
760
+
761
+ &-auto {
762
+ user-select: auto; // 使用默认的浏览器行为来选择文本
763
+ }
764
+ }
765
+
766
+ /* 文本溢出显示省略号 */
767
+ .truncate {
768
+ overflow: hidden;
769
+ text-overflow: ellipsis;
770
+ white-space: nowrap;
771
+ }
772
+
773
+ /* 本文转换 */
774
+ /* 使用 uppercase 功能类对文本进行大写转换 */
775
+ .uppercase {
776
+ text-transform: uppercase;
777
+ }
778
+
779
+ /* 使用 lowercase 功能类对文本进行小写转换 */
780
+ .lowercase {
781
+ text-transform: lowercase;
782
+ }
783
+
784
+ /* 使用 capitalize 功能类对文本进行首字母大写转换 */
785
+ .capitalize {
786
+ text-transform: capitalize;
787
+ }
788
+
789
+ /* 下划线 */
790
+ .underline {
791
+ text-decoration: underline;
792
+ }
793
+
794
+ /* 删除线 */
795
+ .line-through {
796
+ text-decoration: line-through;
797
+ }
798
+
799
+ /* 移除文本装饰 */
800
+ .no-underline {
801
+ text-decoration: none;
802
+ }
803
+
804
+ /* 动画 */
805
+ .animate {
806
+ &-none {
807
+ animation: none;
808
+ }
809
+
810
+ &-spin {
811
+ animation: spin 1s linear infinite;
812
+ }
813
+
814
+ &-ping {
815
+ animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
816
+ }
817
+
818
+ &-pulse {
819
+ animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
820
+ }
821
+
822
+ &-bounce {
823
+ animation: bounce 1s infinite;
824
+ }
825
+ }
826
+
827
+ @keyframes spin {
828
+ from {
829
+ transform: rotate(0deg);
830
+ }
831
+
832
+ to {
833
+ transform: rotate(360deg);
834
+ }
835
+ }
836
+
837
+ @keyframes ping {
838
+
839
+ 75%,
840
+ 100% {
841
+ transform: scale(2);
842
+ opacity: 0;
843
+ }
844
+ }
845
+
846
+ @keyframes pulse {
847
+
848
+ 0%,
849
+ 100% {
850
+ opacity: 1;
851
+ }
852
+
853
+ 50% {
854
+ opacity: 0.5;
855
+ }
856
+ }
857
+
858
+ @keyframes bounce {
859
+
860
+ 0%,
861
+ 100% {
862
+ transform: translateY(-25%);
863
+ animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
864
+ }
865
+
866
+ 50% {
867
+ transform: translateY(0);
868
+ animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
869
+ }
870
870
  }