xt-element-ui 1.4.0 → 2.0.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 (90) hide show
  1. package/CHANGELOG.md +37 -20
  2. package/README.md +39 -35
  3. package/docs/README.md +25 -15
  4. package/docs/components/base/xt-badge.md +139 -0
  5. package/docs/components/base/xt-bar.md +182 -0
  6. package/docs/components/base/xt-chart.md +183 -0
  7. package/docs/components/base/xt-date-picker.md +111 -0
  8. package/docs/components/base/xt-icon.md +154 -0
  9. package/docs/components/base/xt-line.md +145 -0
  10. package/docs/components/base/xt-multi.md +278 -0
  11. package/docs/components/base/xt-page.md +84 -0
  12. package/docs/components/base/xt-pie.md +175 -0
  13. package/docs/components/base/xt-progress.md +134 -0
  14. package/docs/components/base/xt-select-tree.md +141 -0
  15. package/docs/components/base/xt-table.md +344 -0
  16. package/docs/components/base/xt-tabs.md +197 -0
  17. package/docs/components/base/xt-upload.md +85 -0
  18. package/lib/index.common.js +479 -821
  19. package/lib/index.css +1 -1
  20. package/lib/index.umd.js +484 -827
  21. package/lib/index.umd.min.js +5 -5
  22. package/package.json +1 -1
  23. package/src/components/index.scss +2 -8
  24. package/src/components/xt-button/index.js +8 -8
  25. package/src/components/xt-button/index.vue +43 -73
  26. package/src/components/xt-button/style/index.scss +51 -787
  27. package/src/components/xt-card/index.js +7 -8
  28. package/src/components/xt-card/index.vue +61 -21
  29. package/src/components/xt-card/style/index.scss +56 -32
  30. package/src/components/xt-card-item/index.vue +3 -3
  31. package/src/components/xt-chart/index.js +8 -0
  32. package/src/components/{ex-chart → xt-chart}/index.vue +13 -13
  33. package/src/components/{ex-chart → xt-chart}/pieList.vue +1 -1
  34. package/src/components/{ex-chart → xt-chart}/utils.js +1 -1
  35. package/src/components/xt-config-provider/index.vue +1 -1
  36. package/src/components/xt-date-picker/index.js +8 -0
  37. package/src/components/{ex-date-picker → xt-date-picker}/index.vue +1 -1
  38. package/src/components/xt-icon/index.js +8 -0
  39. package/src/components/{ex-icon → xt-icon}/index.vue +4 -4
  40. package/src/components/xt-layout/ExFieldset.vue +1 -1
  41. package/src/components/xt-page/index.js +8 -0
  42. package/src/components/{ex-page → xt-page}/index.vue +1 -1
  43. package/src/components/xt-select-tree/index.js +8 -0
  44. package/src/components/{ex-select-tree → xt-select-tree}/index.vue +1 -1
  45. package/src/components/{ex-table/ExTableCell.vue → xt-table/XtTableCell.vue} +1 -1
  46. package/src/components/xt-table/index.js +8 -0
  47. package/src/components/{ex-table → xt-table}/index.vue +6 -6
  48. package/src/components/xt-upload/index.js +8 -0
  49. package/src/index.js +15 -29
  50. package/src/utils/index.js +1 -1
  51. package/docs/components/extend/ex-bar.md +0 -68
  52. package/docs/components/extend/ex-button.md +0 -62
  53. package/docs/components/extend/ex-card.md +0 -86
  54. package/docs/components/extend/ex-chart.md +0 -463
  55. package/docs/components/extend/ex-date-picker.md +0 -0
  56. package/docs/components/extend/ex-icon.md +0 -189
  57. package/docs/components/extend/ex-line.md +0 -71
  58. package/docs/components/extend/ex-multi.md +0 -156
  59. package/docs/components/extend/ex-page.md +0 -0
  60. package/docs/components/extend/ex-pie.md +0 -70
  61. package/docs/components/extend/ex-select-tree.md +0 -210
  62. package/docs/components/extend/ex-table.md +0 -591
  63. package/docs/components/extend/ex-upload.md +0 -134
  64. package/src/components/ex-button/index.js +0 -8
  65. package/src/components/ex-button/index.vue +0 -67
  66. package/src/components/ex-button/style/index.scss +0 -67
  67. package/src/components/ex-card/index.js +0 -7
  68. package/src/components/ex-card/index.vue +0 -68
  69. package/src/components/ex-card/style/index.scss +0 -73
  70. package/src/components/ex-chart/index.js +0 -8
  71. package/src/components/ex-date-picker/index.js +0 -8
  72. package/src/components/ex-icon/index.js +0 -8
  73. package/src/components/ex-page/index.js +0 -8
  74. package/src/components/ex-select-tree/index.js +0 -8
  75. package/src/components/ex-table/index.js +0 -8
  76. package/src/components/ex-upload/index.js +0 -8
  77. package/src/config/element-registry.js +0 -136
  78. /package/src/components/{ex-chart/ExBar.vue → xt-chart/XtBar.vue} +0 -0
  79. /package/src/components/{ex-chart/ExLine.vue → xt-chart/XtLine.vue} +0 -0
  80. /package/src/components/{ex-chart/ExMulti.vue → xt-chart/XtMulti.vue} +0 -0
  81. /package/src/components/{ex-chart/ExPie.vue → xt-chart/XtPie.vue} +0 -0
  82. /package/src/components/{ex-chart → xt-chart}/theme/dark.js +0 -0
  83. /package/src/components/{ex-chart → xt-chart}/theme/white.js +0 -0
  84. /package/src/components/{ex-date-picker → xt-date-picker}/SearchDate.vue +0 -0
  85. /package/src/components/{ex-date-picker → xt-date-picker}/quarter.vue +0 -0
  86. /package/src/components/{ex-icon → xt-icon}/style/index.scss +0 -0
  87. /package/src/components/{ex-table → xt-table}/VirtualElTable.vue +0 -0
  88. /package/src/components/{ex-table → xt-table}/virtualScrollData.js +0 -0
  89. /package/src/components/{ex-upload → xt-upload}/index.vue +0 -0
  90. /package/src/components/{ex-upload → xt-upload}/preview.vue +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xt-element-ui",
3
- "version": "1.4.0",
3
+ "version": "2.0.0",
4
4
  "description": "基于 Vue 2.7 + ElementUI 的企业级组件库,提供丰富的自定义组件和扩展组件",
5
5
  "main": "lib/index.common.js",
6
6
  "module": "lib/index.esm.js",
@@ -27,17 +27,11 @@
27
27
  // Time 组件样式
28
28
  @import './xt-time/style/index.scss';
29
29
 
30
- // ExButton 组件样式
31
- @import './ex-button/style/index.scss';
32
-
33
- // ExCard 组件样式
34
- @import './ex-card/style/index.scss';
35
-
36
30
  // GridBox 组件样式
37
31
  @import './xt-grid-box/style/index.scss';
38
32
 
39
- // ExIcon 组件样式
40
- @import './ex-icon/style/index.scss';
33
+ // Icon 组件样式
34
+ @import './xt-icon/style/index.scss';
41
35
 
42
36
  // Progress 组件样式
43
37
  @import './xt-progress/style/index.scss';
@@ -1,8 +1,8 @@
1
- import XtButton from './index.vue'
2
-
3
- XtButton.install = function (Vue) {
4
- Vue.component(XtButton.name, XtButton)
5
- }
6
-
7
- export default XtButton
8
- export { XtButton }
1
+ import XtButton from './index.vue'
2
+
3
+ XtButton.install = function (Vue) {
4
+ Vue.component(XtButton.name, XtButton)
5
+ }
6
+
7
+ export default XtButton
8
+ export { XtButton }
@@ -1,97 +1,67 @@
1
1
  <template>
2
- <button
3
- class="xt-button"
4
- :class="[
5
- type ? 'xt-button--' + type : '',
6
- size ? 'xt-button--' + size : '',
7
- {
8
- 'is-plain': plain,
9
- 'is-disabled': disabled,
10
- 'is-round': round,
11
- 'is-circle': circle,
12
- 'is-dashed': dashed,
13
- 'is-text': text,
14
- 'is-link': link,
15
- 'is-loading': loading
16
- }
17
- ]"
18
- :disabled="disabled || loading"
2
+ <el-button
3
+ class="ex-button"
4
+ :class="buttonClasses"
5
+ v-bind="$attrs"
19
6
  @click="handleClick"
20
7
  >
21
- <i v-if="loading" class="el-icon-loading"></i>
22
- <i v-else-if="icon" :class="iconClass"></i>
23
- <span v-if="$slots.default" class="xt-button__inner">
24
- <slot></slot>
25
- </span>
26
- </button>
8
+ <slot></slot>
9
+ </el-button>
27
10
  </template>
28
-
29
11
  <script>
30
12
  export default {
31
13
  name: 'XtButton',
14
+ inheritAttrs: false,
15
+ inject: {
16
+ xtConfig: {
17
+ default: () => ({
18
+ theme: 'light',
19
+ size: 'medium',
20
+ primaryColor: '#1890ff'
21
+ })
22
+ }
23
+ },
32
24
  props: {
33
25
  type: {
34
26
  type: String,
35
- default: '',
36
- validator: (val) => ['', 'primary', 'success', 'warning', 'danger'].includes(val)
37
- },
38
- size: {
39
- type: String,
40
- default: '',
41
- validator: (val) => ['', 'large', 'medium', 'small'].includes(val)
42
- },
43
- plain: {
44
- type: Boolean,
45
- default: false
46
- },
47
- disabled: {
48
- type: Boolean,
49
- default: false
50
- },
51
- round: {
52
- type: Boolean,
53
- default: false
27
+ default: 'default',
28
+ validator: (val) => ['default', 'primary', 'success', 'warning', 'danger'].includes(val)
54
29
  },
55
- circle: {
56
- type: Boolean,
57
- default: false
30
+ throttle: {
31
+ type: Number,
32
+ default: 0
58
33
  },
59
- dashed: {
60
- type: Boolean,
61
- default: false
62
- },
63
- text: {
64
- type: Boolean,
65
- default: false
66
- },
67
- link: {
68
- type: Boolean,
69
- default: false
70
- },
71
- icon: {
34
+ size: {
72
35
  type: String,
73
- default: ''
74
- },
75
- loading: {
76
- type: Boolean,
77
- default: false
36
+ default: null,
37
+ validator: (val) => !val || ['mini', 'small', 'medium', 'large'].includes(val)
38
+ }
39
+ },
40
+ data() {
41
+ return {
42
+ lastClickTime: 0
78
43
  }
79
44
  },
80
45
  computed: {
81
- iconClass() {
82
- if (!this.icon) return ''
83
- if (this.icon.indexOf('el-icon') === 0) {
84
- return this.icon
85
- }
86
- return 'el-icon-' + this.icon
46
+ finalSize() {
47
+ // 优先使用组件自身的 size,其次继承 XtConfigProvider 的 size,最后使用默认值
48
+ return this.size || this.xtConfig.size || 'medium'
49
+ },
50
+ buttonClasses() {
51
+ return [
52
+ `ex-button-${this.finalSize}`,
53
+ `ex-button-${this.type}`
54
+ ]
87
55
  }
88
56
  },
89
57
  methods: {
90
58
  handleClick() {
91
- if (!this.disabled && !this.loading) {
92
- this.$emit('click')
59
+ if (this.throttle > 0 && Date.now() - this.lastClickTime < this.throttle) {
60
+ return
93
61
  }
62
+ this.lastClickTime = Date.now()
63
+ this.$emit('click')
94
64
  }
95
65
  }
96
66
  }
97
- </script>
67
+ </script>