br-dionysus 0.4.1 → 0.5.0

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 (52) hide show
  1. package/README.md +922 -118
  2. package/createMd.js +47 -0
  3. package/package.json +3 -2
  4. package/packages/MInline/docs/README.md +1 -1
  5. package/packages/MInline/docs/demo.vue +1 -1
  6. package/packages/MInputNumber/docs/README.md +1 -1
  7. package/packages/MInputNumber/docs/demo.vue +1 -1
  8. package/packages/MSelectTable/docs/README.md +1 -1
  9. package/packages/MTable/docs/README.md +41 -0
  10. package/packages/MTable/docs/demo.vue +56 -0
  11. package/packages/MTable/index.ts +10 -0
  12. package/packages/MTable/src/index.vue +169 -0
  13. package/packages/README.md +9 -0
  14. package/packages/SkinConfig/docs/README.md +18 -9
  15. package/packages/SkinConfig/docs/demo.vue +74 -21
  16. package/packages/SkinConfig/src/index.vue +46 -8
  17. package/packages/SkinConfig/src/useSkin.ts +12 -0
  18. package/packages/TabPage/docs/demo.vue +1 -1
  19. package/packages/index.ts +4 -0
  20. package/packages/list.json +6 -0
  21. package/src/assets/theme.scss +1 -1
  22. package/src/main.ts +1 -0
  23. package/src/router.ts +5 -0
  24. package/.idea/GitCommitMessageStorage.xml +0 -8
  25. package/.idea/dionysus.iml +0 -12
  26. package/.idea/modules.xml +0 -8
  27. package/.idea/vcs.xml +0 -6
  28. package/dist/br-dionysus.es.js +0 -2151
  29. package/dist/br-dionysus.umd.js +0 -6
  30. package/dist/index.css +0 -1
  31. package/dist/packages/Button/index.d.ts +0 -4
  32. package/dist/packages/Button/src/index.vue.d.ts +0 -13
  33. package/dist/packages/Foo/index.d.ts +0 -4
  34. package/dist/packages/Foo/src/index.vue.d.ts +0 -2
  35. package/dist/packages/Hook/index.d.ts +0 -2
  36. package/dist/packages/MInline/index.d.ts +0 -4
  37. package/dist/packages/MInline/src/index.vue.d.ts +0 -51
  38. package/dist/packages/MInputNumber/index.d.ts +0 -4
  39. package/dist/packages/MInputNumber/src/index.vue.d.ts +0 -114
  40. package/dist/packages/MSelectTable/index.d.ts +0 -4
  41. package/dist/packages/MSelectTable/src/index.vue.d.ts +0 -96
  42. package/dist/packages/SkinConfig/index.d.ts +0 -4
  43. package/dist/packages/SkinConfig/src/index.vue.d.ts +0 -5
  44. package/dist/packages/SkinConfig/src/useSkin.d.ts +0 -27
  45. package/dist/packages/TabPage/index.d.ts +0 -4
  46. package/dist/packages/TabPage/src/index.vue.d.ts +0 -66
  47. package/dist/packages/index.d.ts +0 -12
  48. package/dist/packages/typings/class.d.ts +0 -17
  49. package/dist/packages/typings/enum.d.ts +0 -60
  50. package/dist/packages/typings/interface.d.ts +0 -5
  51. package/dist/src/main.d.ts +0 -1
  52. package/dist/src/router.d.ts +0 -2
package/README.md CHANGED
@@ -1,83 +1,34 @@
1
- # 霸软业务组件库
1
+ # 霸软业务组件库
2
+
3
+ ## 组件列表
4
+
5
+ + MInline([筛选](#MInlinetitle))
6
+
7
+ + MInputNumber([数值输入框组件](#MInputNumbertitle))
8
+
9
+ + MSelectTable([下拉表格选择器](#MSelectTabletitle))
10
+
11
+ + MTable([表格选择器](#MTabletitle))
12
+
13
+ + SkinConfig([皮肤设置](#SkinConfigtitle))
14
+
15
+ + TabPage([标签页组件](#TabPagetitle))
16
+ ---
17
+
18
+ ### MInline(筛选)
19
+ ---
20
+
2
21
 
3
- ---
4
22
 
5
- ## 组件列表
6
-
7
- + TaBPage([标签页组件](#tabpage标签页组件))
8
- + MInputNumber([数值输入框组件](#minputnumber数值输入框组件))
9
- + MInline([筛选组件](#minline筛选组件))
10
- + SkinConfig([皮肤配置](#skinconfig皮肤设置))
11
- + MSelectTable([下拉表格选择器](#mselecttable下拉表格选择器))
12
-
13
- ---
14
-
15
- ### TaBPage(标签页组件)
23
+ # 筛选
24
+ =================
16
25
 
17
- ---
26
+ ### 1) 基础用法
18
27
 
19
- ### MInputNumber(数值输入框组件)
20
28
 
21
- #### 1) 基础用法
22
29
 
23
- ```
24
- <template>
25
- <m-input-number v-model="value" size="mini"></m-input-number>
26
- </template>
27
- <script>
28
- import MInputNumber from '@/components/MInputNumber/index.vue'
29
-
30
- export default {
31
- components: {
32
- MInputNumber
33
- },
34
- data () {
35
- return {
36
- value: 0
37
- }
38
- }
39
- }
40
- </script>
41
- ```
42
-
43
- #### 2) Attributes
44
-
45
- | 参数 | 说明 | 类型 | 可选值 | 默认值 |
46
- |------------------|:-----------------:|:-------:|:------------------:|:---------:|
47
- | value / v-model | 绑定值 | number | - | '' |
48
- | min | 设置数值输入框允许的最小值 | number | - | -Infinity |
49
- | max | 设置数值输入框允许的最大值 | number | - | Infinity |
50
- | step | 数值输入框步长 | number | - | 1 |
51
- | step-strictly | 是否只能输入 step 的倍数 | boolean | - | true |
52
- | size | 数值输入框尺寸 | string | large, small, mini | - |
53
- | disabled | 是否禁用数值输入框 | boolean | - | false |
54
- | placeholder | 输入框默认 placeholder | string | - | '' |
55
- | thousandth-place | 输入框是否显示千分位 | boolean | - | false |
56
- | no-border | 是否不要边框 | boolean | - | false |
57
- | no-spacing | 不要边距 | boolean | - | false |
58
-
59
- #### 3) Events
60
-
61
- | 方法名 | 说明 | 参数 |
62
- |--------|:---------------:|:----------------------:|
63
- | change | 绑定值被改变时触发 | currentValue, oldValue |
64
- | focus | 当 input 获得焦点时触发 | (event: Event) |
65
- | blur | 当 input 失去焦点时触发 | (event: Event) |
66
-
67
- ---
68
-
69
- ### MInline(筛选组件)
70
-
71
- <script setup>
72
- import demo from './demo.vue'
73
- </script>
74
-
75
- 筛选
76
- =================
77
-
78
- #### 1) 基础用法
79
-
80
- ```
30
+ ```js
31
+
81
32
  <template>
82
33
  <div class="g-demo-m-inline-box">
83
34
  <m-inline>
@@ -216,71 +167,101 @@ const formInline = reactive({
216
167
  max-width: 1000px;
217
168
  }
218
169
  </style>
219
- ```
220
-
221
- #### 2) Attributes
170
+
171
+
172
+ ```
173
+
174
+ ### 2) Attributes
222
175
 
223
- | 参数 | 说明 | 类型 | 可选值 | 默认值 |
224
- |----------|:-----:|:------:|:---:|:---:|
176
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
177
+ |----------|:-----:|:------:|:---:|:-------:|
225
178
  | minWidth | 列最小宽度 | number | - | 200 |
226
179
  | maxWidth | 列最大宽度 | number | - | 300 |
227
180
 
228
- #### 3) Events
181
+ ### 2) Events
229
182
 
230
183
  | 方法名 | 说明 | 参数 |
231
184
  |--------|:----------------------:|:---------------:|
232
185
  | switch | 当切换展开与折叠模式时触发,返回当前展开状态 | unfold(boolean) |
186
+
187
+
188
+ ---
189
+
190
+ ### MInputNumber(数值输入框组件)
191
+ ---
192
+
233
193
 
234
- ---
235
194
 
236
- ### SkinConfig(皮肤设置)
195
+ # 数值输入框组件
196
+ =================
237
197
 
238
- #### 1) 基础用法
198
+ ### 1) 基础用法
239
199
 
240
- ```
241
- <template>
242
- <div class="g-demo-skin-config-box">
243
- <skin-config></skin-config>
244
200
 
245
- <div class="m-box">
246
- <h3>色卡</h3>
247
- <ul>
248
- <li
249
- class="u-li"
250
- v-for="item in list"
251
- :class="item.className"
252
- >{{ item.name }}</li>
253
- </ul>
254
- </div>
201
+ ```js
202
+
203
+ <template>
204
+ <div class="g-demo-m-input-number-box">
205
+ <m-input-number v-model="test"></m-input-number>
255
206
  </div>
256
207
  </template>
257
- ```
258
208
 
259
- ### 2) Exposes
209
+ <script setup lang="ts">
210
+ import { ref } from 'vue'
260
211
 
261
- | 方法名 | 说明 | 参数 |
262
- |---------|:------:|:----------------:|
263
- | setSkin | 设置主题配置 | SkinConfig(皮肤对象) |
212
+ const test = ref<number>(0)
213
+ </script>
264
214
 
265
- #### SkinConfig(皮肤对象)
215
+ <style scoped>
216
+ .g-demo-m-input-number-box {
217
+ max-width: 1000px;
218
+ }
219
+ </style>
220
+
221
+
222
+ ```
223
+
224
+ ### 2) Attributes
266
225
 
267
- | 参数 | 说明 | 类型 | 可选值 | 默认值 |
268
- |--------------|:-------:|:-------:|:---:|:---------:|
269
- | darkTheme | 是否为深色主题 | boolean | - | false |
270
- | followSystem | 是否跟随系统 | boolean | - | false |
271
- | primaryColor | 主题色 | string | - | '#646CFF' |
226
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
227
+ |------------------|:-----------------:|:-------:|:------------------:|:---------:|
228
+ | value / v-model | 绑定值 | number | - | '' |
229
+ | min | 设置数值输入框允许的最小值 | number | - | -Infinity |
230
+ | max | 设置数值输入框允许的最大值 | number | - | Infinity |
231
+ | step | 数值输入框步长 | number | - | 1 |
232
+ | step-strictly | 是否只能输入 step 的倍数 | boolean | - | true |
233
+ | size | 数值输入框尺寸 | string | large, small, mini | - |
234
+ | disabled | 是否禁用数值输入框 | boolean | - | false |
235
+ | placeholder | 输入框默认 placeholder | string | - | '' |
236
+ | thousandth-place | 输入框是否显示千分位 | boolean | - | false |
237
+ | no-border | 是否不要边框 | boolean | - | false |
238
+ | no-spacing | 不要边距 | boolean | - | false |
272
239
 
273
- ### 3) 说明
240
+ ### 3) Events
274
241
 
275
- 组件通过修改全局的css变量来实现的效果,故暗夜模式需手动在全局加css,具体见示例。组件一被引用,就会自动读取本地配置生效,无本地配置时,以默认值计算。
242
+ | 方法名 | 说明 | 参数 |
243
+ |--------|:---------------:|:----------------------:|
244
+ | change | 绑定值被改变时触发 | currentValue, oldValue |
245
+ | focus | 当 input 获得焦点时触发 | (event: Event) |
246
+ | blur | 当 input 失去焦点时触发 | (event: Event) |
247
+
248
+
249
+ ---
250
+
251
+ ### MSelectTable(下拉表格选择器)
252
+ ---
253
+
276
254
 
277
- ---
278
255
 
279
- ### MSelectTable(下拉表格选择器)
256
+ # 下拉表格选择器
257
+ =================
280
258
 
281
- #### 1) 基础用法
259
+ ### 1) 基础用法
282
260
 
283
- ```
261
+
262
+
263
+ ```js
264
+
284
265
  <template>
285
266
  <div class="g-m-select-table-box">
286
267
  <m-select-table
@@ -346,9 +327,14 @@ const remoteMethod = async (query: string = '') => {
346
327
  }))
347
328
  }
348
329
  </script>
349
- ```
350
330
 
351
- #### 2) Attributes
331
+ <style lang="scss">
332
+ </style>
333
+
334
+
335
+ ```
336
+
337
+ ### 2) Attributes
352
338
 
353
339
  | 参数 | 说明 | 类型 | 可选值 | 默认值 |
354
340
  |-----------------|:------------------------:|:--------:|:--------------------:|:-----:|
@@ -374,10 +360,828 @@ const remoteMethod = async (query: string = '') => {
374
360
  | disabled | 是否禁用该选项 | boolean | - | 否 |
375
361
  | \[propName: string] | 额外字段 | string \| number | - | 否 |
376
362
 
377
- #### 3) Events
363
+ ### 3) Events
378
364
 
379
365
  | 方法名 | 说明 | 参数 |
380
366
  |----------------|:-----------:|:---------------------:|
381
367
  | selectMultiple | 多选确认按钮点击时触发 | selectedRow(所选行构成的数组) |
382
368
  | change | 绑定值被改变时触发 | value |
383
- | selected | 单选模式点击行时触发 | selectedRow(所选行) |
369
+ | selected | 单选模式点击行时触发 | selectedRow(所选行) |
370
+
371
+
372
+ ---
373
+
374
+ ### MTable(表格选择器)
375
+ ---
376
+
377
+
378
+
379
+ # 表格选择器
380
+ =================
381
+
382
+ ### 1) 基础用法
383
+
384
+
385
+
386
+
387
+ ```js
388
+
389
+ <template>
390
+ <div>
391
+ <MTable :data="tableData" @pasteData="pasteData" sole="date">
392
+ <el-table-column label="Date" prop="date" />
393
+ <el-table-column prop="address" label="Address"> </el-table-column>
394
+ <el-table-column prop="name" label="name">
395
+ <template #default="scope">
396
+ <el-input v-model="scope.row.name"> </el-input>
397
+ </template>
398
+ </el-table-column>
399
+ </MTable>
400
+ </div>
401
+ </template>
402
+
403
+ <script setup lang="ts">
404
+ import { ref } from "vue";
405
+ interface User {
406
+ date: string;
407
+ name: string;
408
+ address: string;
409
+ tag: string;
410
+ }
411
+ const tableData = ref(<User[]>[
412
+ {
413
+ date: "2016-05-03",
414
+ name: "Tom",
415
+ address: "No. 189, Grove St, Los Angeles",
416
+ tag: "Home",
417
+ },
418
+ {
419
+ date: "2016-05-02",
420
+ name: "Tom",
421
+ address: "No. 189, Grove St, Los Angeles",
422
+ tag: "Office",
423
+ },
424
+ {
425
+ date: "2016-05-04",
426
+ name: "Tom",
427
+ address: "No. 189, Grove St, Los Angeles",
428
+ tag: "Home",
429
+ },
430
+ {
431
+ date: "2016-05-01",
432
+ name: "Tom",
433
+ address: "No. 189, Grove St, Los Angeles",
434
+ tag: "Office",
435
+ },
436
+ ])
437
+
438
+ const pasteData = (obj: any, data: any) => {
439
+ tableData.value = data
440
+
441
+ }
442
+ </script>
443
+
444
+ <style lang="scss"></style>
445
+
446
+
447
+ ```
448
+
449
+ ### 2) Attributes
450
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
451
+ | ----------- | ------- | ---------------------------- |-----|--------|
452
+ |data |表格的数据 | Array | - | [] |
453
+ |sole |行的唯一值 |String | number | key |
454
+ |filtersValue |表格内容筛选 |Function | - | {} |
455
+ ## 要求
456
+ ```
457
+ sole 必须传递在表格数据内为唯一的值 如id key 等不会发生重复的关键字
458
+ ```
459
+
460
+ ### 3) Events
461
+ | 方法名 | 说明 | 参数 |
462
+ | ----------- | ------- | ---------------------------- |
463
+ | pasteData | 表格粘贴方法 | {editRow,editColumn,arr,rowIndex},tableData|
464
+
465
+ ##### 方法参数描述
466
+ ```ts
467
+ const editRow : Object // 返回粘贴的对应行的原始数据
468
+
469
+ const editColumn: String // 返回粘贴时鼠标所在列的 表格prop值
470
+
471
+ const arr: Array // 返回粘贴时候处理之后的 数组信息
472
+
473
+ const rowIndex: number // 根据sole的值 去data内查找 当前操作的 粘贴行在data内的序号
474
+
475
+ ```
476
+
477
+
478
+ ---
479
+
480
+ ### SkinConfig(皮肤设置)
481
+ ---
482
+
483
+
484
+
485
+ # 皮肤设置
486
+ =================
487
+
488
+ ### 1) 基础用法
489
+
490
+
491
+
492
+ ```js
493
+
494
+ <template>
495
+ <div class="g-demo-skin-config-box">
496
+ <skin-config
497
+ ref="shinConfigRef"
498
+ @change="size = $event.size"
499
+ ></skin-config>
500
+
501
+ <div class="m-box">
502
+ <div class="u-color-box">
503
+ <h3>色卡</h3>
504
+ <ul>
505
+ <li
506
+ class="u-li"
507
+ v-for="item in list"
508
+ :class="item.className"
509
+ >{{ item.name }}</li>
510
+ </ul>
511
+ </div>
512
+ <div class="u-el">
513
+ <h3>元素</h3>
514
+ <div>
515
+ <el-button :size="size">Default</el-button>
516
+ <el-button
517
+ type="primary"
518
+ :size="size"
519
+ >
520
+ Primary
521
+ </el-button>
522
+ <el-button
523
+ type="success"
524
+ :size="size"
525
+ >
526
+ Success
527
+ </el-button>
528
+ <el-button
529
+ type="info"
530
+ :size="size"
531
+ >
532
+ Info
533
+ </el-button>
534
+ <el-button
535
+ type="warning"
536
+ :size="size"
537
+ >
538
+ Warning
539
+ </el-button>
540
+ <el-button
541
+ type="danger"
542
+ :size="size"
543
+ >
544
+ Danger
545
+ </el-button>
546
+ </div>
547
+ </div>
548
+ </div>
549
+ </div>
550
+ </template>
551
+
552
+ <script setup lang="ts">
553
+ import { ref, onMounted } from 'vue'
554
+ import { SkinConfig } from 'packages/SkinConfig'
555
+
556
+ const size = ref<string>('')
557
+ const shinConfigRef = ref<InstanceType<typeof SkinConfig> | null>(null)
558
+ onMounted(() => {
559
+ const config = shinConfigRef.value ? shinConfigRef.value.getSkin() : null
560
+ if (config) size.value = config.size
561
+ })
562
+
563
+ const list = ref<{ name: string, className: string }[]>([
564
+ {
565
+ name: '--el-color-primary',
566
+ className: 'el-color-primary'
567
+ },
568
+ {
569
+ name: '--el-color-primary-light-3',
570
+ className: 'el-color-primary-light-3'
571
+ },
572
+ {
573
+ name: '--el-color-primary-light-5',
574
+ className: 'el-color-primary-light-5'
575
+ },
576
+ {
577
+ name: '--el-color-primary-light-7',
578
+ className: 'el-color-primary-light-7'
579
+ },
580
+ {
581
+ name: '--el-color-primary-light-8',
582
+ className: 'el-color-primary-light-8'
583
+ },
584
+ {
585
+ name: '--el-color-primary-light-9',
586
+ className: 'el-color-primary-light-9'
587
+ },
588
+ {
589
+ name: '--el-color-primary-dark-2',
590
+ className: 'el-color-primary-dark-2'
591
+ },
592
+ {
593
+ name: '--el-color-success',
594
+ className: 'el-color-success'
595
+ },
596
+ {
597
+ name: '--el-color-success-light-3',
598
+ className: 'el-color-success-light-3'
599
+ },
600
+ {
601
+ name: '--el-color-success-light-5',
602
+ className: 'el-color-success-light-5'
603
+ },
604
+ {
605
+ name: '--el-color-success-light-7',
606
+ className: 'el-color-success-light-7'
607
+ },
608
+ {
609
+ name: '--el-color-success-light-8',
610
+ className: 'el-color-success-light-8'
611
+ },
612
+ {
613
+ name: '--el-color-success-light-9',
614
+ className: 'el-color-success-light-9'
615
+ },
616
+ {
617
+ name: '--el-color-success-dark-2',
618
+ className: 'el-color-success-dark-2'
619
+ },
620
+ {
621
+ name: '--el-color-warning',
622
+ className: 'el-color-warning'
623
+ },
624
+ {
625
+ name: '--el-color-warning-light-3',
626
+ className: 'el-color-warning-light-3'
627
+ },
628
+ {
629
+ name: '--el-color-warning-light-5',
630
+ className: 'el-color-warning-light-5'
631
+ },
632
+ {
633
+ name: '--el-color-warning-light-7',
634
+ className: 'el-color-warning-light-7'
635
+ },
636
+ {
637
+ name: '--el-color-warning-light-8',
638
+ className: 'el-color-warning-light-8'
639
+ },
640
+ {
641
+ name: '--el-color-warning-light-9',
642
+ className: 'el-color-warning-light-9'
643
+ },
644
+ {
645
+ name: '--el-color-warning-dark-2',
646
+ className: 'el-color-warning-dark-2'
647
+ },
648
+ {
649
+ name: '--el-color-danger',
650
+ className: 'el-color-danger'
651
+ },
652
+ {
653
+ name: '--el-color-danger-light-3',
654
+ className: 'el-color-danger-light-3'
655
+ },
656
+ {
657
+ name: '--el-color-danger-light-5',
658
+ className: 'el-color-danger-light-5'
659
+ },
660
+ {
661
+ name: '--el-color-danger-light-7',
662
+ className: 'el-color-danger-light-7'
663
+ },
664
+ {
665
+ name: '--el-color-danger-light-8',
666
+ className: 'el-color-danger-light-8'
667
+ },
668
+ {
669
+ name: '--el-color-danger-light-9',
670
+ className: 'el-color-danger-light-9'
671
+ },
672
+ {
673
+ name: '--el-color-danger-dark-2',
674
+ className: 'el-color-danger-dark-2'
675
+ },
676
+ {
677
+ name: '--el-color-error',
678
+ className: 'el-color-error'
679
+ },
680
+ {
681
+ name: '--el-color-error-light-3',
682
+ className: 'el-color-error-light-3'
683
+ },
684
+ {
685
+ name: '--el-color-error-light-5',
686
+ className: 'el-color-error-light-5'
687
+ },
688
+ {
689
+ name: '--el-color-error-light-7',
690
+ className: 'el-color-error-light-7'
691
+ },
692
+ {
693
+ name: '--el-color-error-light-8',
694
+ className: 'el-color-error-light-8'
695
+ },
696
+ {
697
+ name: '--el-color-error-light-9',
698
+ className: 'el-color-error-light-9'
699
+ },
700
+ {
701
+ name: '--el-color-error-dark-2',
702
+ className: 'el-color-error-dark-2'
703
+ },
704
+ {
705
+ name: '--el-color-info',
706
+ className: 'el-color-info'
707
+ },
708
+ {
709
+ name: '--el-color-info-light-3',
710
+ className: 'el-color-info-light-3'
711
+ },
712
+ {
713
+ name: '--el-color-info-light-5',
714
+ className: 'el-color-info-light-5'
715
+ },
716
+ {
717
+ name: '--el-color-info-light-7',
718
+ className: 'el-color-info-light-7'
719
+ },
720
+ {
721
+ name: '--el-color-info-light-8',
722
+ className: 'el-color-info-light-8'
723
+ },
724
+ {
725
+ name: '--el-color-info-light-9',
726
+ className: 'el-color-info-light-9'
727
+ },
728
+ {
729
+ name: '--el-color-info-dark-2',
730
+ className: 'el-color-info-dark-2'
731
+ },
732
+ {
733
+ name: '--el-box-shadow',
734
+ className: 'el-box-shadow'
735
+ },
736
+ {
737
+ name: '--el-box-shadow-light',
738
+ className: 'el-box-shadow-light'
739
+ },
740
+ {
741
+ name: '--el-box-shadow-lighter',
742
+ className: 'el-box-shadow-lighter'
743
+ },
744
+ {
745
+ name: '--el-box-shadow-dark',
746
+ className: 'el-box-shadow-dark'
747
+ },
748
+ {
749
+ name: '--el-bg-color-page',
750
+ className: 'el-bg-color-page'
751
+ },
752
+ {
753
+ name: '--el-bg-color',
754
+ className: 'el-bg-color'
755
+ },
756
+ {
757
+ name: '--el-bg-color-overlay',
758
+ className: 'el-bg-color-overlay'
759
+ },
760
+ {
761
+ name: '--el-text-color-primary',
762
+ className: 'el-text-color-primary'
763
+ },
764
+ {
765
+ name: '--el-text-color-regular',
766
+ className: 'el-text-color-regular'
767
+ },
768
+ {
769
+ name: '--el-text-color-secondary',
770
+ className: 'el-text-color-secondary'
771
+ },
772
+ {
773
+ name: '--el-text-color-placeholder',
774
+ className: 'el-text-color-placeholder'
775
+ },
776
+ {
777
+ name: '--el-text-color-disabled',
778
+ className: 'el-text-color-disabled'
779
+ },
780
+ {
781
+ name: '--el-border-color-darker',
782
+ className: 'el-border-color-darker'
783
+ },
784
+ {
785
+ name: '--el-border-color-dark',
786
+ className: 'el-border-color-dark'
787
+ },
788
+ {
789
+ name: '--el-border-color',
790
+ className: 'el-border-color'
791
+ },
792
+ {
793
+ name: '--el-border-color-light',
794
+ className: 'el-border-color-light'
795
+ },
796
+ {
797
+ name: '--el-border-color-lighter',
798
+ className: 'el-border-color-lighter'
799
+ },
800
+ {
801
+ name: '--el-border-color-extra-light',
802
+ className: 'el-border-color-extra-light'
803
+ },
804
+ {
805
+ name: '--el-fill-color-darker',
806
+ className: 'el-fill-color-darker'
807
+ },
808
+ {
809
+ name: '--el-fill-color-dark',
810
+ className: 'el-fill-color-dark'
811
+ },
812
+ {
813
+ name: '--el-fill-color',
814
+ className: 'el-fill-color'
815
+ },
816
+ {
817
+ name: '--el-fill-color-light',
818
+ className: 'el-fill-color-light'
819
+ },
820
+ {
821
+ name: '--el-fill-color-lighter',
822
+ className: 'el-fill-color-lighter'
823
+ },
824
+ {
825
+ name: '--el-fill-color-extra-light',
826
+ className: 'el-fill-color-extra-light'
827
+ },
828
+ {
829
+ name: '--el-fill-color-blank',
830
+ className: 'el-fill-color-blank'
831
+ },
832
+ {
833
+ name: '--el-mask-color',
834
+ className: 'el-mask-color'
835
+ },
836
+ {
837
+ name: '--el-mask-color-extra-light',
838
+ className: 'el-mask-color-extra-light'
839
+ },
840
+ ])
841
+ </script>
842
+
843
+ <style lang="scss">
844
+ :root[data-dark="true"] {
845
+ color-scheme: dark;
846
+ --el-color-primary: #409eff;
847
+ --el-color-primary-light-3: #3375b9;
848
+ --el-color-primary-light-5: #2a598a;
849
+ --el-color-primary-light-7: #213d5b;
850
+ --el-color-primary-light-8: #1d3043;
851
+ --el-color-primary-light-9: #18222c;
852
+ --el-color-primary-dark-2: #66b1ff;
853
+ --el-color-success: #67c23a;
854
+ --el-color-success-light-3: #4e8e2f;
855
+ --el-color-success-light-5: #3e6b27;
856
+ --el-color-success-light-7: #2d481f;
857
+ --el-color-success-light-8: #25371c;
858
+ --el-color-success-light-9: #1c2518;
859
+ --el-color-success-dark-2: #85ce61;
860
+ --el-color-warning: #e6a23c;
861
+ --el-color-warning-light-3: #a77730;
862
+ --el-color-warning-light-5: #7d5b28;
863
+ --el-color-warning-light-7: #533f20;
864
+ --el-color-warning-light-8: #3e301c;
865
+ --el-color-warning-light-9: #292218;
866
+ --el-color-warning-dark-2: #ebb563;
867
+ --el-color-danger: #f56c6c;
868
+ --el-color-danger-light-3: #b25252;
869
+ --el-color-danger-light-5: #854040;
870
+ --el-color-danger-light-7: #582e2e;
871
+ --el-color-danger-light-8: #412626;
872
+ --el-color-danger-light-9: #2b1d1d;
873
+ --el-color-danger-dark-2: #f78989;
874
+ --el-color-error: #f56c6c;
875
+ --el-color-error-light-3: #b25252;
876
+ --el-color-error-light-5: #854040;
877
+ --el-color-error-light-7: #582e2e;
878
+ --el-color-error-light-8: #412626;
879
+ --el-color-error-light-9: #2b1d1d;
880
+ --el-color-error-dark-2: #f78989;
881
+ --el-color-info: #909399;
882
+ --el-color-info-light-3: #6b6d71;
883
+ --el-color-info-light-5: #525457;
884
+ --el-color-info-light-7: #393a3c;
885
+ --el-color-info-light-8: #2d2d2f;
886
+ --el-color-info-light-9: #202121;
887
+ --el-color-info-dark-2: #a6a9ad;
888
+
889
+ --el-box-shadow: 0px 12px 32px 4px rgba(0, 0, 0, .36), 0px 8px 20px rgba(0, 0, 0, .72);
890
+ --el-box-shadow-light: 0px 0px 12px rgba(0, 0, 0, .72);
891
+ --el-box-shadow-lighter: 0px 0px 6px rgba(0, 0, 0, .72);
892
+ --el-box-shadow-dark: 0px 16px 48px 16px rgba(0, 0, 0, .72), 0px 12px 32px #000000, 0px 8px 16px -8px #000000;
893
+ --el-bg-color-page: #0a0a0a;
894
+ --el-bg-color: #141414;
895
+ --el-bg-color-overlay: #1d1e1f;
896
+ --el-text-color-primary: #E5EAF3;
897
+ --el-text-color-regular: #CFD3DC;
898
+ --el-text-color-secondary: #A3A6AD;
899
+ --el-text-color-placeholder: #8D9095;
900
+ --el-text-color-disabled: #6C6E72;
901
+ --el-border-color-darker: #636466;
902
+ --el-border-color-dark: #58585B;
903
+ --el-border-color: #4C4D4F;
904
+ --el-border-color-light: #414243;
905
+ --el-border-color-lighter: #363637;
906
+ --el-border-color-extra-light: #2B2B2C;
907
+ --el-fill-color-darker: #424243;
908
+ --el-fill-color-dark: #39393A;
909
+ --el-fill-color: #303030;
910
+ --el-fill-color-light: #262727;
911
+ --el-fill-color-lighter: #1D1D1D;
912
+ --el-fill-color-extra-light: #191919;
913
+ --el-fill-color-blank: transparent;
914
+ --el-mask-color: rgba(0, 0, 0, .8);
915
+ --el-mask-color-extra-light: rgba(0, 0, 0, .3);
916
+ }
917
+ </style>
918
+
919
+ <style scoped lang="scss">
920
+ .g-demo-skin-config-box {
921
+ max-width: 1000px;
922
+ }
923
+
924
+ .el-color-primary {
925
+ background-color: var(--el-color-primary);
926
+ }
927
+ .el-color-primary-light-3 {
928
+ background-color: var(--el-color-primary-light-3);
929
+ }
930
+ .el-color-primary-light-5 {
931
+ background-color: var(--el-color-primary-light-5);
932
+ }
933
+ .el-color-primary-light-7 {
934
+ background-color: var(--el-color-primary-light-7);
935
+ }
936
+ .el-color-primary-light-8 {
937
+ background-color: var(--el-color-primary-light-8);
938
+ }
939
+ .el-color-primary-light-9 {
940
+ background-color: var(--el-color-primary-light-9);
941
+ }
942
+ .el-color-primary-dark-2 {
943
+ background-color: var(--el-color-primary-dark-2);
944
+ }
945
+ .el-color-success {
946
+ background-color: var(--el-color-success);
947
+ }
948
+ .el-color-success-light-3 {
949
+ background-color: var(--el-color-success-light-3);
950
+ }
951
+ .el-color-success-light-5 {
952
+ background-color: var(--el-color-success-light-5);
953
+ }
954
+ .el-color-success-light-7 {
955
+ background-color: var(--el-color-success-light-7);
956
+ }
957
+ .el-color-success-light-8 {
958
+ background-color: var(--el-color-success-light-8);
959
+ }
960
+ .el-color-success-light-9 {
961
+ background-color: var(--el-color-success-light-9);
962
+ }
963
+ .el-color-success-dark-2 {
964
+ background-color: var(--el-color-success-dark-2);
965
+ }
966
+ .el-color-warning {
967
+ background-color: var(--el-color-warning);
968
+ }
969
+ .el-color-warning-light-3 {
970
+ background-color: var(--el-color-warning-light-3);
971
+ }
972
+ .el-color-warning-light-5 {
973
+ background-color: var(--el-color-warning-light-5);
974
+ }
975
+ .el-color-warning-light-7 {
976
+ background-color: var(--el-color-warning-light-7);
977
+ }
978
+ .el-color-warning-light-8 {
979
+ background-color: var(--el-color-warning-light-8);
980
+ }
981
+ .el-color-warning-light-9 {
982
+ background-color: var(--el-color-warning-light-9);
983
+ }
984
+ .el-color-warning-dark-2 {
985
+ background-color: var(--el-color-warning-dark-2);
986
+ }
987
+ .el-color-danger {
988
+ background-color: var(--el-color-danger);
989
+ }
990
+ .el-color-danger-light-3 {
991
+ background-color: var(--el-color-danger-light-3);
992
+ }
993
+ .el-color-danger-light-5 {
994
+ background-color: var(--el-color-danger-light-5);
995
+ }
996
+ .el-color-danger-light-7 {
997
+ background-color: var(--el-color-danger-light-7);
998
+ }
999
+ .el-color-danger-light-8 {
1000
+ background-color: var(--el-color-danger-light-8);
1001
+ }
1002
+ .el-color-danger-light-9 {
1003
+ background-color: var(--el-color-danger-light-9);
1004
+ }
1005
+ .el-color-danger-dark-2 {
1006
+ background-color: var(--el-color-danger-dark-2);
1007
+ }
1008
+ .el-color-error {
1009
+ background-color: var(--el-color-error);
1010
+ }
1011
+ .el-color-error-light-3 {
1012
+ background-color: var(--el-color-error-light-3);
1013
+ }
1014
+ .el-color-error-light-5 {
1015
+ background-color: var(--el-color-error-light-5);
1016
+ }
1017
+ .el-color-error-light-7 {
1018
+ background-color: var(--el-color-error-light-7);
1019
+ }
1020
+ .el-color-error-light-8 {
1021
+ background-color: var(--el-color-error-light-8);
1022
+ }
1023
+ .el-color-error-light-9 {
1024
+ background-color: var(--el-color-error-light-9);
1025
+ }
1026
+ .el-color-error-dark-2 {
1027
+ background-color: var(--el-color-error-dark-2);
1028
+ }
1029
+ .el-color-info {
1030
+ background-color: var(--el-color-info);
1031
+ }
1032
+ .el-color-info-light-3 {
1033
+ background-color: var(--el-color-info-light-3);
1034
+ }
1035
+ .el-color-info-light-5 {
1036
+ background-color: var(--el-color-info-light-5);
1037
+ }
1038
+ .el-color-info-light-7 {
1039
+ background-color: var(--el-color-info-light-7);
1040
+ }
1041
+ .el-color-info-light-8 {
1042
+ background-color: var(--el-color-info-light-8);
1043
+ }
1044
+ .el-color-info-light-9 {
1045
+ background-color: var(--el-color-info-light-9);
1046
+ }
1047
+ .el-color-info-dark-2 {
1048
+ background-color: var(--el-color-info-dark-2);
1049
+ }
1050
+ .el-box-shadow {
1051
+ background-color: var(--el-box-shadow);
1052
+ }
1053
+ .el-box-shadow-light {
1054
+ background-color: var(--el-box-shadow-light);
1055
+ }
1056
+ .el-box-shadow-lighter {
1057
+ background-color: var(--el-box-shadow-lighter);
1058
+ }
1059
+ .el-box-shadow-dark {
1060
+ background-color: var(--el-box-shadow-dark);
1061
+ }
1062
+ .el-bg-color-page {
1063
+ background-color: var(--el-bg-color-page);
1064
+ }
1065
+ .el-bg-color {
1066
+ background-color: var(--el-bg-color);
1067
+ }
1068
+ .el-bg-color-overlay {
1069
+ background-color: var(--el-bg-color-overlay);
1070
+ }
1071
+ .el-text-color-primary {
1072
+ background-color: var(--el-text-color-primary);
1073
+ }
1074
+ .el-text-color-regular {
1075
+ background-color: var(--el-text-color-regular);
1076
+ }
1077
+ .el-text-color-secondary {
1078
+ background-color: var(--el-text-color-secondary);
1079
+ }
1080
+ .el-text-color-placeholder {
1081
+ background-color: var(--el-text-color-placeholder);
1082
+ }
1083
+ .el-text-color-disabled {
1084
+ background-color: var(--el-text-color-disabled);
1085
+ }
1086
+ .el-border-color-darker {
1087
+ background-color: var(--el-border-color-darker);
1088
+ }
1089
+ .el-border-color-dark {
1090
+ background-color: var(--el-border-color-dark);
1091
+ }
1092
+ .el-border-color {
1093
+ background-color: var(--el-border-color);
1094
+ }
1095
+ .el-border-color-light {
1096
+ background-color: var(--el-border-color-light);
1097
+ }
1098
+ .el-border-color-lighter {
1099
+ background-color: var(--el-border-color-lighter);
1100
+ }
1101
+ .el-border-color-extra-light {
1102
+ background-color: var(--el-border-color-extra-light);
1103
+ }
1104
+ .el-fill-color-darker {
1105
+ background-color: var(--el-fill-color-darker);
1106
+ }
1107
+ .el-fill-color-dark {
1108
+ background-color: var(--el-fill-color-dark);
1109
+ }
1110
+ .el-fill-color {
1111
+ background-color: var(--el-fill-color);
1112
+ }
1113
+ .el-fill-color-light {
1114
+ background-color: var(--el-fill-color-light);
1115
+ }
1116
+ .el-fill-color-lighter {
1117
+ background-color: var(--el-fill-color-lighter);
1118
+ }
1119
+ .el-fill-color-extra-light {
1120
+ background-color: var(--el-fill-color-extra-light);
1121
+ }
1122
+ .el-fill-color-blank {
1123
+ background-color: var(--el-fill-color-blank);
1124
+ }
1125
+ .el-mask-color {
1126
+ background-color: var(--el-mask-color);
1127
+ }
1128
+ .el-mask-color-extra-light {
1129
+ background-color: var(--el-mask-color-extra-light);
1130
+ }
1131
+ </style>
1132
+
1133
+ <style scoped lang="scss">
1134
+ .u-li {
1135
+ width: 300px;
1136
+ }
1137
+
1138
+ .m-box {
1139
+ display: flex;
1140
+ }
1141
+
1142
+ .u-el {
1143
+ margin-left: 20px;
1144
+ }
1145
+ </style>
1146
+
1147
+
1148
+ ```
1149
+
1150
+ ### 2) Exposes
1151
+
1152
+ | 方法名 | 说明 | 参数 | 返回值 |
1153
+ |---------|:--------:|:----------------:|:----------------:|
1154
+ | setSkin | 设置主题配置 | SkinConfig(皮肤对象) | void |
1155
+ | getSkin | 获取当前主题配置 | - | SkinConfig(皮肤对象) |
1156
+
1157
+ #### SkinConfig(皮肤对象)
1158
+
1159
+ | 参数 | 说明 | 类型 | 可选值 | 默认值 |
1160
+ |--------------|:-------:|:-------:|:-------------------------:|:---------:|
1161
+ | darkTheme | 是否为深色主题 | boolean | - | false |
1162
+ | followSystem | 是否跟随系统 | boolean | - | false |
1163
+ | size | 大小 | enum | large \| default \| small | default |
1164
+ | primaryColor | 主题色 | string | - | '#646CFF' |
1165
+
1166
+ ### 3) 说明
1167
+
1168
+ 组件通过修改全局的css变量来实现的效果,故暗夜模式需手动在全局加css,具体见示例。组件一被引用,就会自动读取本地配置生效,无本地配置时,以默认值计算。
1169
+
1170
+ ### 4) Events
1171
+
1172
+ | 方法名 | 说明 | 参数 |
1173
+ |--------|:---------:|:----------:|
1174
+ | change | 绑定值被改变时触发 | SkinConfig |
1175
+
1176
+
1177
+ ---
1178
+
1179
+ ### TabPage(标签页组件)
1180
+ ---
1181
+
1182
+
1183
+
1184
+ # 标签页组件
1185
+
1186
+
1187
+