@zkwq/business 0.0.4 → 0.0.6

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 (227) hide show
  1. package/package.json +2 -2
  2. package/src/components/base/ui/alert/Alert.vue +0 -94
  3. package/src/components/base/ui/autocomplete/autocomplete-suggestions.vue +0 -77
  4. package/src/components/base/ui/autocomplete/autocomplete.vue +0 -305
  5. package/src/components/base/ui/backtop/main.vue +0 -112
  6. package/src/components/base/ui/button/Button.vue +0 -84
  7. package/src/components/base/ui/button/ButtonGroup.vue +0 -10
  8. package/src/components/base/ui/carousel/Carousel.vue +0 -304
  9. package/src/components/base/ui/carousel/CarouselItem.vue +0 -137
  10. package/src/components/base/ui/cascader/cascader.vue +0 -650
  11. package/src/components/base/ui/cascader-panel/cascader-menu.vue +0 -138
  12. package/src/components/base/ui/cascader-panel/cascader-node.vue +0 -246
  13. package/src/components/base/ui/cascader-panel/cascader-panel.vue +0 -382
  14. package/src/components/base/ui/cascader-panel/node.js +0 -166
  15. package/src/components/base/ui/cascader-panel/store.js +0 -62
  16. package/src/components/base/ui/checkbox/checkbox-button.vue +0 -199
  17. package/src/components/base/ui/checkbox/checkbox-group.vue +0 -48
  18. package/src/components/base/ui/checkbox/checkbox.vue +0 -222
  19. package/src/components/base/ui/col/col.js +0 -71
  20. package/src/components/base/ui/collapse/collapse-item.vue +0 -180
  21. package/src/components/base/ui/collapse/collapse.vue +0 -73
  22. package/src/components/base/ui/color-picker/color.js +0 -317
  23. package/src/components/base/ui/color-picker/components/alpha-slider.vue +0 -132
  24. package/src/components/base/ui/color-picker/components/hue-slider.vue +0 -123
  25. package/src/components/base/ui/color-picker/components/picker-dropdown.vue +0 -119
  26. package/src/components/base/ui/color-picker/components/predefine.vue +0 -61
  27. package/src/components/base/ui/color-picker/components/sv-panel.vue +0 -100
  28. package/src/components/base/ui/color-picker/draggable.js +0 -36
  29. package/src/components/base/ui/color-picker/index.js +0 -2
  30. package/src/components/base/ui/color-picker/main.vue +0 -188
  31. package/src/components/base/ui/date-picker/basic/date-table.vue +0 -441
  32. package/src/components/base/ui/date-picker/basic/month-table.vue +0 -254
  33. package/src/components/base/ui/date-picker/basic/time-spinner.vue +0 -304
  34. package/src/components/base/ui/date-picker/basic/year-table.vue +0 -101
  35. package/src/components/base/ui/date-picker/panel/date-range.vue +0 -680
  36. package/src/components/base/ui/date-picker/panel/date.vue +0 -597
  37. package/src/components/base/ui/date-picker/panel/month-range.vue +0 -289
  38. package/src/components/base/ui/date-picker/panel/time-range.vue +0 -248
  39. package/src/components/base/ui/date-picker/panel/time-select.vue +0 -178
  40. package/src/components/base/ui/date-picker/panel/time.vue +0 -186
  41. package/src/components/base/ui/date-picker/picker/date-picker.js +0 -43
  42. package/src/components/base/ui/date-picker/picker/time-picker.js +0 -39
  43. package/src/components/base/ui/date-picker/picker/time-select.js +0 -21
  44. package/src/components/base/ui/date-picker/picker.vue +0 -942
  45. package/src/components/base/ui/dialog/Index.vue +0 -212
  46. package/src/components/base/ui/directive/repeat-click.js +0 -24
  47. package/src/components/base/ui/directive/ripple.js +0 -303
  48. package/src/components/base/ui/divider/Divider.vue +0 -37
  49. package/src/components/base/ui/drawer/Drawer.vue +0 -202
  50. package/src/components/base/ui/dropdown/dropdown-item.vue +0 -39
  51. package/src/components/base/ui/dropdown/dropdown-menu.vue +0 -63
  52. package/src/components/base/ui/dropdown/dropdown.vue +0 -308
  53. package/src/components/base/ui/form/Form.vue +0 -167
  54. package/src/components/base/ui/form/FormItem.vue +0 -334
  55. package/src/components/base/ui/form/LabelWrap.vue +0 -69
  56. package/src/components/base/ui/icon/icon.vue +0 -13
  57. package/src/components/base/ui/image/image-viewer.vue +0 -302
  58. package/src/components/base/ui/image/main.vue +0 -248
  59. package/src/components/base/ui/index.js +0 -189
  60. package/src/components/base/ui/input/Input.vue +0 -438
  61. package/src/components/base/ui/input/calcTextareaHeight.js +0 -104
  62. package/src/components/base/ui/input-number/input-number.vue +0 -285
  63. package/src/components/base/ui/locale/format.js +0 -32
  64. package/src/components/base/ui/locale/index.js +0 -48
  65. package/src/components/base/ui/locale/lang/zh-CN.js +0 -120
  66. package/src/components/base/ui/menu/menu-item-group.vue +0 -45
  67. package/src/components/base/ui/menu/menu-item.vue +0 -112
  68. package/src/components/base/ui/menu/menu-mixin.js +0 -44
  69. package/src/components/base/ui/menu/menu.vue +0 -312
  70. package/src/components/base/ui/menu/submenu.vue +0 -408
  71. package/src/components/base/ui/message/index.js +0 -2
  72. package/src/components/base/ui/message/main.js +0 -87
  73. package/src/components/base/ui/message/main.vue +0 -110
  74. package/src/components/base/ui/message-box/main.js +0 -216
  75. package/src/components/base/ui/message-box/main.vue +0 -323
  76. package/src/components/base/ui/mixin/emitter.js +0 -31
  77. package/src/components/base/ui/mixin/focus.js +0 -9
  78. package/src/components/base/ui/mixin/locale.js +0 -9
  79. package/src/components/base/ui/mixin/migrating.js +0 -33
  80. package/src/components/base/ui/pagination/pager.vue +0 -163
  81. package/src/components/base/ui/pagination/pagination.jsx +0 -391
  82. package/src/components/base/ui/popover/directive.js +0 -20
  83. package/src/components/base/ui/popover/index.js +0 -14
  84. package/src/components/base/ui/popover/main.vue +0 -236
  85. package/src/components/base/ui/progress/Progress.vue +0 -227
  86. package/src/components/base/ui/radio/radio-button.vue +0 -114
  87. package/src/components/base/ui/radio/radio-group.vue +0 -111
  88. package/src/components/base/ui/radio/radio.vue +0 -134
  89. package/src/components/base/ui/row/row.js +0 -47
  90. package/src/components/base/ui/scrollbar/bar.jsx +0 -91
  91. package/src/components/base/ui/scrollbar/index.jsx +0 -203
  92. package/src/components/base/ui/scrollbar/util.js +0 -32
  93. package/src/components/base/ui/select/Option.vue +0 -168
  94. package/src/components/base/ui/select/OptionGroup.vue +0 -60
  95. package/src/components/base/ui/select/Select.vue +0 -920
  96. package/src/components/base/ui/select/SelectDropdown.vue +0 -74
  97. package/src/components/base/ui/select/navigation-mixin.js +0 -54
  98. package/src/components/base/ui/skeleton/index.js +0 -8
  99. package/src/components/base/ui/skeleton/src/img-placeholder.vue +0 -16
  100. package/src/components/base/ui/skeleton/src/index.vue +0 -80
  101. package/src/components/base/ui/skeleton/src/item.vue +0 -22
  102. package/src/components/base/ui/skeleton-item/index.js +0 -8
  103. package/src/components/base/ui/slider/button.vue +0 -238
  104. package/src/components/base/ui/slider/main.vue +0 -427
  105. package/src/components/base/ui/slider/marker.js +0 -18
  106. package/src/components/base/ui/style/alert.scss +0 -147
  107. package/src/components/base/ui/style/animations.scss +0 -65
  108. package/src/components/base/ui/style/autocomplete.scss +0 -81
  109. package/src/components/base/ui/style/backtop.scss +0 -20
  110. package/src/components/base/ui/style/button-group.scss +0 -0
  111. package/src/components/base/ui/style/button.scss +0 -380
  112. package/src/components/base/ui/style/carousel-item.scss +0 -50
  113. package/src/components/base/ui/style/carousel.scss +0 -161
  114. package/src/components/base/ui/style/cascader-panel.scss +0 -120
  115. package/src/components/base/ui/style/cascader.scss +0 -185
  116. package/src/components/base/ui/style/checkbox-button.scss +0 -0
  117. package/src/components/base/ui/style/checkbox-group.scss +0 -0
  118. package/src/components/base/ui/style/checkbox.scss +0 -360
  119. package/src/components/base/ui/style/col.scss +0 -156
  120. package/src/components/base/ui/style/collapse-item.scss +0 -0
  121. package/src/components/base/ui/style/collapse.scss +0 -114
  122. package/src/components/base/ui/style/color-picker.scss +0 -387
  123. package/src/components/base/ui/style/config.scss +0 -4
  124. package/src/components/base/ui/style/date-picker/date-picker.scss +0 -97
  125. package/src/components/base/ui/style/date-picker/date-range-picker.scss +0 -101
  126. package/src/components/base/ui/style/date-picker/date-table.scss +0 -151
  127. package/src/components/base/ui/style/date-picker/month-table.scss +0 -82
  128. package/src/components/base/ui/style/date-picker/picker-panel.scss +0 -117
  129. package/src/components/base/ui/style/date-picker/picker.scss +0 -197
  130. package/src/components/base/ui/style/date-picker/time-picker.scss +0 -85
  131. package/src/components/base/ui/style/date-picker/time-range-picker.scss +0 -31
  132. package/src/components/base/ui/style/date-picker/time-spinner.scss +0 -110
  133. package/src/components/base/ui/style/date-picker/year-table.scss +0 -51
  134. package/src/components/base/ui/style/date-picker.scss +0 -12
  135. package/src/components/base/ui/style/dialog.scss +0 -123
  136. package/src/components/base/ui/style/divider.scss +0 -47
  137. package/src/components/base/ui/style/drawer.scss +0 -218
  138. package/src/components/base/ui/style/dropdown-item.scss +0 -0
  139. package/src/components/base/ui/style/dropdown-menu.scss +0 -0
  140. package/src/components/base/ui/style/dropdown.scss +0 -185
  141. package/src/components/base/ui/style/form-item.scss +0 -0
  142. package/src/components/base/ui/style/form.scss +0 -203
  143. package/src/components/base/ui/style/function.scss +0 -43
  144. package/src/components/base/ui/style/icon.scss +0 -1167
  145. package/src/components/base/ui/style/image.scss +0 -184
  146. package/src/components/base/ui/style/index.scss +0 -57
  147. package/src/components/base/ui/style/input-number.scss +0 -187
  148. package/src/components/base/ui/style/input.scss +0 -477
  149. package/src/components/base/ui/style/menu-item-group.scss +0 -0
  150. package/src/components/base/ui/style/menu-item.scss +0 -0
  151. package/src/components/base/ui/style/menu.scss +0 -294
  152. package/src/components/base/ui/style/message-box.scss +0 -231
  153. package/src/components/base/ui/style/message.scss +0 -120
  154. package/src/components/base/ui/style/mixins.scss +0 -196
  155. package/src/components/base/ui/style/option-group.scss +0 -42
  156. package/src/components/base/ui/style/option.scss +0 -36
  157. package/src/components/base/ui/style/pagination.scss +0 -295
  158. package/src/components/base/ui/style/popover.scss +0 -40
  159. package/src/components/base/ui/style/popper.scss +0 -102
  160. package/src/components/base/ui/style/popup.scss +0 -42
  161. package/src/components/base/ui/style/progress.scss +0 -141
  162. package/src/components/base/ui/style/radio-button.scss +0 -113
  163. package/src/components/base/ui/style/radio-group.scss +0 -9
  164. package/src/components/base/ui/style/radio.scss +0 -203
  165. package/src/components/base/ui/style/ripple.scss +0 -35
  166. package/src/components/base/ui/style/row.scss +0 -39
  167. package/src/components/base/ui/style/scrollbar.scss +0 -75
  168. package/src/components/base/ui/style/select-dropdown.scss +0 -59
  169. package/src/components/base/ui/style/select.scss +0 -154
  170. package/src/components/base/ui/style/skeleton-item.scss +0 -84
  171. package/src/components/base/ui/style/skeleton.scss +0 -40
  172. package/src/components/base/ui/style/slider.scss +0 -250
  173. package/src/components/base/ui/style/switch.scss +0 -116
  174. package/src/components/base/ui/style/tabs.scss +0 -602
  175. package/src/components/base/ui/style/tag.scss +0 -174
  176. package/src/components/base/ui/style/tooltip.scss +0 -146
  177. package/src/components/base/ui/style/transition.scss +0 -138
  178. package/src/components/base/ui/style/upload.scss +0 -603
  179. package/src/components/base/ui/style/utils.scss +0 -39
  180. package/src/components/base/ui/style/var.scss +0 -1011
  181. package/src/components/base/ui/switch/index.vue +0 -174
  182. package/src/components/base/ui/tabs/tab-bar.vue +0 -57
  183. package/src/components/base/ui/tabs/tab-nav.vue +0 -294
  184. package/src/components/base/ui/tabs/tab-pane.vue +0 -56
  185. package/src/components/base/ui/tabs/tabs.vue +0 -191
  186. package/src/components/base/ui/tag/Tag.vue +0 -60
  187. package/src/components/base/ui/tooltip/tooltip.jsx +0 -234
  188. package/src/components/base/ui/upload/Index.vue +0 -340
  189. package/src/components/base/ui/upload/Upload.vue +0 -216
  190. package/src/components/base/ui/upload/UploadDragger.vue +0 -70
  191. package/src/components/base/ui/upload/UploadList.vue +0 -100
  192. package/src/components/base/ui/upload/ajax.js +0 -85
  193. package/src/components/base/ui/util/aria-dialog.js +0 -90
  194. package/src/components/base/ui/util/aria-utils.js +0 -122
  195. package/src/components/base/ui/util/clickoutside.js +0 -76
  196. package/src/components/base/ui/util/date-util.js +0 -292
  197. package/src/components/base/ui/util/date.js +0 -355
  198. package/src/components/base/ui/util/debounce.js +0 -21
  199. package/src/components/base/ui/util/deepmerge.js +0 -100
  200. package/src/components/base/ui/util/dom.js +0 -215
  201. package/src/components/base/ui/util/index.js +0 -262
  202. package/src/components/base/ui/util/menu/aria-menubar.js +0 -14
  203. package/src/components/base/ui/util/menu/aria-menuitem.js +0 -49
  204. package/src/components/base/ui/util/menu/aria-submenu.js +0 -59
  205. package/src/components/base/ui/util/merge.js +0 -14
  206. package/src/components/base/ui/util/popper.js +0 -1235
  207. package/src/components/base/ui/util/popup/index.js +0 -218
  208. package/src/components/base/ui/util/popup/popup-manager.js +0 -194
  209. package/src/components/base/ui/util/resize-events.js +0 -32
  210. package/src/components/base/ui/util/scroll-into-view.js +0 -27
  211. package/src/components/base/ui/util/scrollbar-width.js +0 -29
  212. package/src/components/base/ui/util/shared.js +0 -7
  213. package/src/components/base/ui/util/throttle.js +0 -91
  214. package/src/components/base/ui/util/types.js +0 -24
  215. package/src/components/base/ui/util/vdom.js +0 -5
  216. package/src/components/base/ui/util/vue-popper.js +0 -188
  217. package/src/components/normal/AggsItemH.vue +0 -145
  218. package/src/index.js +0 -10
  219. package/src/static/base-icons.ttf +0 -0
  220. package/src/static/base-icons.woff +0 -0
  221. package/src/static/label_bg.png +0 -0
  222. package/src/static/term-label-bg.png +0 -0
  223. package/src/style/app-article.scss +0 -698
  224. package/src/style/app-comment.scss +0 -259
  225. package/src/style/app-recommend.scss +0 -48
  226. package/src/style/app-richtext.scss +0 -176
  227. package/src/style/index.scss +0 -523
@@ -1,236 +0,0 @@
1
- <template>
2
- <span>
3
- <transition
4
- :name="transition"
5
- @after-enter="handleAfterEnter"
6
- @after-leave="handleAfterLeave">
7
- <div
8
- class="base-popover base-popper"
9
- :class="[popperClass, content && 'base-popover--plain']"
10
- ref="popper"
11
- v-show="!disabled && showPopper"
12
- :style="{ width: width + 'px' }"
13
- role="tooltip"
14
- :id="tooltipId"
15
- :aria-hidden="(disabled || !showPopper) ? 'true' : 'false'"
16
- >
17
- <div class="base-popover__title" v-if="title" v-text="title"></div>
18
- <slot>{{ content }}</slot>
19
- </div>
20
- </transition>
21
- <span class="base-popover__reference-wrapper" ref="wrapper" >
22
- <slot name="reference"></slot>
23
- </span>
24
- </span>
25
- </template>
26
- <script>
27
- import Popper from '../util/vue-popper'
28
- import { on, off, addClass, removeClass } from '../util/dom'
29
- import { generateId } from '../util/index'
30
-
31
- export default {
32
- name: 'BasePopover',
33
-
34
- mixins: [Popper],
35
-
36
- props: {
37
- trigger: {
38
- type: String,
39
- default: 'click',
40
- validator: value => ['click', 'focus', 'hover', 'manual'].indexOf(value) > -1
41
- },
42
- openDelay: {
43
- type: Number,
44
- default: 0
45
- },
46
- closeDelay: {
47
- type: Number,
48
- default: 200
49
- },
50
- title: String,
51
- disabled: Boolean,
52
- content: String,
53
- reference: {},
54
- popperClass: String,
55
- width: {},
56
- visibleArrow: {
57
- default: false
58
- },
59
- arrowOffset: {
60
- type: Number,
61
- default: 0
62
- },
63
- transition: {
64
- type: String,
65
- default: 'fade-in-linear'
66
- },
67
- tabindex: {
68
- type: Number,
69
- default: 0
70
- }
71
- },
72
-
73
- computed: {
74
- tooltipId() {
75
- return `base-popover-${generateId()}`;
76
- }
77
- },
78
- watch: {
79
- showPopper(val) {
80
- if (this.disabled) {
81
- return;
82
- }
83
- val ? this.$emit('show') : this.$emit('hide');
84
- }
85
- },
86
-
87
- mounted() {
88
- let reference = this.referenceElm = this.reference || this.$refs.reference;
89
- const popper = this.popper || this.$refs.popper;
90
-
91
- if (!reference && this.$refs.wrapper.children) {
92
- reference = this.referenceElm = this.$refs.wrapper.children[0];
93
- }
94
- // 可访问性
95
- if (reference) {
96
- addClass(reference, 'base-popover__reference');
97
- reference.setAttribute('aria-describedby', this.tooltipId);
98
- reference.setAttribute('tabindex', this.tabindex); // tab序列
99
- popper.setAttribute('tabindex', 0);
100
-
101
- if (this.trigger !== 'click') {
102
- on(reference, 'focusin', () => {
103
- this.handleFocus();
104
- const instance = reference.__vue__;
105
- if (instance && typeof instance.focus === 'function') {
106
- instance.focus();
107
- }
108
- });
109
- on(popper, 'focusin', this.handleFocus);
110
- on(reference, 'focusout', this.handleBlur);
111
- on(popper, 'focusout', this.handleBlur);
112
- }
113
- on(reference, 'keydown', this.handleKeydown);
114
- on(reference, 'click', this.handleClick);
115
- }
116
- if (this.trigger === 'click') {
117
- on(reference, 'click', this.doToggle);
118
- on(document, 'click', this.handleDocumentClick);
119
- } else if (this.trigger === 'hover') {
120
- on(reference, 'mouseenter', this.handleMouseEnter);
121
- on(popper, 'mouseenter', this.handleMouseEnter);
122
- on(reference, 'mouseleave', this.handleMouseLeave);
123
- on(popper, 'mouseleave', this.handleMouseLeave);
124
- } else if (this.trigger === 'focus') {
125
- if (this.tabindex < 0) {
126
- console.warn('[Element Warn][Popover]a negative taindex means that the element cannot be focused by tab key');
127
- }
128
- if (reference.querySelector('input, textarea')) {
129
- on(reference, 'focusin', this.doShow);
130
- on(reference, 'focusout', this.doClose);
131
- } else {
132
- on(reference, 'mousedown', this.doShow);
133
- on(reference, 'mouseup', this.doClose);
134
- }
135
- }
136
- },
137
-
138
- beforeDestroy() {
139
- this.cleanup();
140
- },
141
-
142
- deactivated() {
143
- this.cleanup();
144
- },
145
-
146
- methods: {
147
- doToggle() {
148
- this.showPopper = !this.showPopper;
149
- },
150
- doShow() {
151
- this.showPopper = true;
152
- },
153
- doClose() {
154
- this.showPopper = false;
155
- },
156
- handleFocus() {
157
- addClass(this.referenceElm, 'focusing');
158
- if (this.trigger === 'click' || this.trigger === 'focus') this.showPopper = true;
159
- },
160
- handleClick() {
161
- removeClass(this.referenceElm, 'focusing');
162
- },
163
- handleBlur() {
164
- removeClass(this.referenceElm, 'focusing');
165
- if (this.trigger === 'click' || this.trigger === 'focus') this.showPopper = false;
166
- },
167
- handleMouseEnter() {
168
- clearTimeout(this._timer);
169
- if (this.openDelay) {
170
- this._timer = setTimeout(() => {
171
- this.showPopper = true;
172
- }, this.openDelay);
173
- } else {
174
- this.showPopper = true;
175
- }
176
- },
177
- handleKeydown(ev) {
178
- if (ev.keyCode === 27 && this.trigger !== 'manual') { // esc
179
- this.doClose();
180
- }
181
- },
182
- handleMouseLeave() {
183
- clearTimeout(this._timer);
184
- if (this.closeDelay) {
185
- this._timer = setTimeout(() => {
186
- this.showPopper = false;
187
- }, this.closeDelay);
188
- } else {
189
- this.showPopper = false;
190
- }
191
- },
192
- handleDocumentClick(e) {
193
- let reference = this.reference || this.$refs.reference;
194
- const popper = this.popper || this.$refs.popper;
195
-
196
- if (!reference && this.$refs.wrapper.children) {
197
- reference = this.referenceElm = this.$refs.wrapper.children[0];
198
- }
199
- if (!this.$el ||
200
- !reference ||
201
- this.$el.contains(e.target) ||
202
- reference.contains(e.target) ||
203
- !popper ||
204
- popper.contains(e.target)) return;
205
- this.showPopper = false;
206
- },
207
- handleAfterEnter() {
208
- this.$emit('after-enter');
209
- },
210
- handleAfterLeave() {
211
- this.$emit('after-leave');
212
- this.doDestroy();
213
- },
214
- cleanup() {
215
- if (this.openDelay || this.closeDelay) {
216
- clearTimeout(this._timer);
217
- }
218
- }
219
- },
220
-
221
- destroyed() {
222
- const reference = this.reference;
223
-
224
- off(reference, 'click', this.doToggle);
225
- off(reference, 'mouseup', this.doClose);
226
- off(reference, 'mousedown', this.doShow);
227
- off(reference, 'focusin', this.doShow);
228
- off(reference, 'focusout', this.doClose);
229
- off(reference, 'mousedown', this.doShow);
230
- off(reference, 'mouseup', this.doClose);
231
- off(reference, 'mouseleave', this.handleMouseLeave);
232
- off(reference, 'mouseenter', this.handleMouseEnter);
233
- off(document, 'click', this.handleDocumentClick);
234
- }
235
- };
236
- </script>
@@ -1,227 +0,0 @@
1
- <template>
2
- <div
3
- class="base-progress"
4
- :class="[
5
- 'base-progress--' + type,
6
- status ? 'is-' + status : '',
7
- {
8
- 'base-progress--without-text': !showText,
9
- 'base-progress--text-inside': textInside,
10
- }
11
- ]"
12
- role="progressbar"
13
- :aria-valuenow="percentage"
14
- aria-valuemin="0"
15
- aria-valuemax="100"
16
- >
17
- <div class="base-progress-bar" v-if="type === 'line'">
18
- <div class="base-progress-bar__outer" :style="{height: strokeWidth + 'px'}">
19
- <div class="base-progress-bar__inner" :style="barStyle">
20
- <div class="base-progress-bar__innerText" v-if="showText && textInside">{{content}}</div>
21
- </div>
22
- </div>
23
- </div>
24
- <div class="base-progress-circle" :style="{height: width + 'px', width: width + 'px'}" v-else>
25
- <svg viewBox="0 0 100 100">
26
- <path
27
- class="base-progress-circle__track"
28
- :d="trackPath"
29
- stroke="#e5e9f2"
30
- :stroke-width="relativeStrokeWidth"
31
- fill="none"
32
- :style="trailPathStyle"></path>
33
- <path
34
- class="base-progress-circle__path"
35
- :d="trackPath"
36
- :stroke="stroke"
37
- fill="none"
38
- :stroke-linecap="strokeLinecap"
39
- :stroke-width="percentage ? relativeStrokeWidth : 0"
40
- :style="circlePathStyle"></path>
41
- </svg>
42
- </div>
43
- <div
44
- class="base-progress__text"
45
- v-if="showText && !textInside"
46
- :style="{fontSize: progressTextSize + 'px'}"
47
- >
48
- <template v-if="!status">{{content}}</template>
49
- <i v-else :class="iconClass"></i>
50
- </div>
51
- </div>
52
- </template>
53
- <script>
54
- export default {
55
- name: 'BaseProgress',
56
- props: {
57
- type: {
58
- type: String,
59
- default: 'line',
60
- validator: val => ['line', 'circle', 'dashboard'].indexOf(val) > -1
61
- },
62
- percentage: {
63
- type: Number,
64
- default: 0,
65
- required: true,
66
- validator: val => val >= 0 && val <= 100
67
- },
68
- status: {
69
- type: String,
70
- validator: val => ['success', 'exception', 'warning'].indexOf(val) > -1
71
- },
72
- strokeWidth: {
73
- type: Number,
74
- default: 6
75
- },
76
- strokeLinecap: {
77
- type: String,
78
- default: 'round'
79
- },
80
- textInside: {
81
- type: Boolean,
82
- default: false
83
- },
84
- width: {
85
- type: Number,
86
- default: 126
87
- },
88
- showText: {
89
- type: Boolean,
90
- default: true
91
- },
92
- color: {
93
- type: [String, Array, Function],
94
- default: ''
95
- },
96
- format: Function
97
- },
98
- computed: {
99
- barStyle() {
100
- const style = {}
101
- style.width = this.percentage + '%'
102
- style.backgroundColor = this.getCurrentColor(this.percentage)
103
- return style
104
- },
105
- relativeStrokeWidth() {
106
- return (this.strokeWidth / this.width * 100).toFixed(1)
107
- },
108
- radius() {
109
- if (this.type === 'circle' || this.type === 'dashboard') {
110
- return parseInt(50 - parseFloat(this.relativeStrokeWidth) / 2, 10)
111
- } else {
112
- return 0
113
- }
114
- },
115
- trackPath() {
116
- const radius = this.radius
117
- const isDashboard = this.type === 'dashboard'
118
- return `
119
- M 50 50
120
- m 0 ${isDashboard ? '' : '-'}${radius}
121
- a ${radius} ${radius} 0 1 1 0 ${isDashboard ? '-' : ''}${radius * 2}
122
- a ${radius} ${radius} 0 1 1 0 ${isDashboard ? '' : '-'}${radius * 2}
123
- `
124
- },
125
- perimeter() {
126
- return 2 * Math.PI * this.radius
127
- },
128
- rate() {
129
- return this.type === 'dashboard' ? 0.75 : 1
130
- },
131
- strokeDashoffset() {
132
- const offset = -1 * this.perimeter * (1 - this.rate) / 2
133
- return `${offset}px`
134
- },
135
- trailPathStyle() {
136
- return {
137
- strokeDasharray: `${(this.perimeter * this.rate)}px, ${this.perimeter}px`,
138
- strokeDashoffset: this.strokeDashoffset
139
- }
140
- },
141
- circlePathStyle() {
142
- return {
143
- strokeDasharray: `${this.perimeter * this.rate * (this.percentage / 100) }px, ${this.perimeter}px`,
144
- strokeDashoffset: this.strokeDashoffset,
145
- transition: 'stroke-dasharray 0.6s ease 0s, stroke 0.6s ease'
146
- }
147
- },
148
- stroke() {
149
- let ret
150
- if (this.color) {
151
- ret = this.getCurrentColor(this.percentage)
152
- } else {
153
- switch (this.status) {
154
- case 'success':
155
- ret = '#13ce66'
156
- break
157
- case 'exception':
158
- ret = '#ff4949'
159
- break
160
- case 'warning':
161
- ret = '#e6a23c'
162
- break
163
- default:
164
- ret = '#20a0ff'
165
- }
166
- }
167
- return ret
168
- },
169
- iconClass() {
170
- if (this.status === 'warning') {
171
- return 'base-icon-warning'
172
- }
173
- if (this.type === 'line') {
174
- return this.status === 'success' ? 'base-icon-circle-check' : 'base-icon-circle-close'
175
- } else {
176
- return this.status === 'success' ? 'base-icon-check' : 'base-icon-close'
177
- }
178
- },
179
- progressTextSize() {
180
- return this.type === 'line'
181
- ? 12 + this.strokeWidth * 0.4
182
- : this.width * 0.111111 + 2
183
- },
184
- content() {
185
- if (typeof this.format === 'function') {
186
- return this.format(this.percentage) || ''
187
- } else {
188
- return `${this.percentage}%`
189
- }
190
- }
191
- },
192
- methods: {
193
- getCurrentColor (percentage) {
194
- if (typeof this.color === 'function') {
195
- return this.color(percentage)
196
- } else if (typeof this.color === 'string') {
197
- return this.color
198
- } else {
199
- return this.getLevelColor(percentage)
200
- }
201
- },
202
- getLevelColor (percentage) {
203
- const colorArray = this.getColorArray().sort((a, b) => a.percentage - b.percentage)
204
-
205
- for (let i = 0; i < colorArray.length; i++) {
206
- if (colorArray[i].percentage > percentage) {
207
- return colorArray[i].color
208
- }
209
- }
210
- return colorArray[colorArray.length - 1].color
211
- },
212
- getColorArray () {
213
- const color = this.color
214
- const span = 100 / color.length
215
- return color.map((seriesColor, index) => {
216
- if (typeof seriesColor === 'string') {
217
- return {
218
- color: seriesColor,
219
- percentage: (index + 1) * span
220
- }
221
- }
222
- return seriesColor
223
- })
224
- }
225
- }
226
- }
227
- </script>
@@ -1,114 +0,0 @@
1
- <template>
2
- <label
3
- class="base-radio-button"
4
- :class="[
5
- size ? 'base-radio-button--' + size : '',
6
- { 'is-active': value === label },
7
- { 'is-disabled': isDisabled },
8
- { 'is-focus': focus }
9
- ]"
10
- role="radio"
11
- :aria-checked="value === label"
12
- :aria-disabled="isDisabled"
13
- :tabindex="tabIndex"
14
- @keydown.space.stop.prevent="value = isDisabled ? value : label"
15
- >
16
- <input
17
- class="base-radio-button__orig-radio"
18
- :value="label"
19
- type="radio"
20
- v-model="value"
21
- :name="name"
22
- @change="handleChange"
23
- :disabled="isDisabled"
24
- tabindex="-1"
25
- @focus="focus = true"
26
- @blur="focus = false"
27
- >
28
- <span
29
- class="base-radio-button__inner"
30
- :style="value === label ? activeStyle : null"
31
- @keydown.stop>
32
- <slot></slot>
33
- <template v-if="!$slots.default">{{label}}</template>
34
- </span>
35
- </label>
36
- </template>
37
- <script>
38
- import Emitter from '../mixin/emitter'
39
-
40
- export default {
41
- name: 'BaseRadioButton',
42
-
43
- mixins: [Emitter],
44
-
45
- inject: {
46
- baseForm: {
47
- default: ''
48
- },
49
- baseFormItem: {
50
- default: ''
51
- }
52
- },
53
-
54
- props: {
55
- label: {},
56
- disabled: Boolean,
57
- name: String
58
- },
59
- data() {
60
- return {
61
- focus: false
62
- }
63
- },
64
- computed: {
65
- value: {
66
- get() {
67
- return this._radioGroup.value
68
- },
69
- set(value) {
70
- this._radioGroup.$emit('input', value)
71
- }
72
- },
73
- _radioGroup() {
74
- let parent = this.$parent
75
- while (parent) {
76
- if (parent.$options.componentName !== 'BaseRadioGroup') {
77
- parent = parent.$parent
78
- } else {
79
- return parent
80
- }
81
- }
82
- return false
83
- },
84
- activeStyle() {
85
- return {
86
- backgroundColor: this._radioGroup.fill || '',
87
- borderColor: this._radioGroup.fill || '',
88
- boxShadow: this._radioGroup.fill ? `-1px 0 0 0 ${this._radioGroup.fill}` : '',
89
- color: this._radioGroup.textColor || ''
90
- }
91
- },
92
- _baseFormItemSize() {
93
- return (this.elFormItem || {}).elFormItemSize
94
- },
95
- size() {
96
- return this._radioGroup.radioGroupSize || this._baseFormItemSize || (this.$ELEMENT || {}).size
97
- },
98
- isDisabled() {
99
- return this.disabled || this._radioGroup.disabled || (this.elForm || {}).disabled
100
- },
101
- tabIndex() {
102
- return (this.isDisabled || (this._radioGroup && this.value !== this.label)) ? -1 : 0
103
- }
104
- },
105
-
106
- methods: {
107
- handleChange () {
108
- this.$nextTick(() => {
109
- this.dispatch('BaseRadioGroup', 'handleChange', this.value)
110
- })
111
- }
112
- }
113
- }
114
- </script>
@@ -1,111 +0,0 @@
1
- <template>
2
- <component
3
- :is="_baseTag"
4
- class="base-radio-group"
5
- role="radiogroup"
6
- @keydown="handleKeydown"
7
- >
8
- <slot></slot>
9
- </component>
10
- </template>
11
- <script>
12
- import Emitter from '../mixin/emitter'
13
-
14
- const keyCode = Object.freeze({
15
- LEFT: 37,
16
- UP: 38,
17
- RIGHT: 39,
18
- DOWN: 40
19
- })
20
- export default {
21
- name: 'BaseRadioGroup',
22
-
23
- componentName: 'BaseRadioGroup',
24
-
25
- inject: {
26
- baseFormItem: {
27
- default: ''
28
- }
29
- },
30
-
31
- mixins: [Emitter],
32
-
33
- props: {
34
- value: {},
35
- size: String,
36
- fill: String,
37
- textColor: String,
38
- disabled: Boolean
39
- },
40
-
41
- computed: {
42
- _baseFormItemSize() {
43
- return (this.baseFormItem || {}).baseFormItemSize
44
- },
45
- _baseTag() {
46
- return (this.$vnode.data || {}).tag || 'div'
47
- },
48
- radioGroupSize() {
49
- return this.size || this._baseFormItemSize || (this.$ELEMENT || {}).size
50
- }
51
- },
52
-
53
- created() {
54
- this.$on('handleChange', value => {
55
- this.$emit('change', value)
56
- })
57
- },
58
- mounted() {
59
- // 当radioGroup没有默认选项时,第一个可以选中Tab导航
60
- const radios = this.$el.querySelectorAll('[type=radio]')
61
- const firstLabel = this.$el.querySelectorAll('[role=radio]')[0]
62
- if (![].some.call(radios, radio => radio.checked) && firstLabel) {
63
- firstLabel.tabIndex = 0
64
- }
65
- },
66
- methods: {
67
- handleKeydown(e) { // 左右上下按键 可以在radio组内切换不同选项
68
- const target = e.target
69
- const className = target.nodeName === 'INPUT' ? '[type=radio]' : '[role=radio]'
70
- const radios = this.$el.querySelectorAll(className)
71
- const length = radios.length
72
- const index = [].indexOf.call(radios, target)
73
- const roleRadios = this.$el.querySelectorAll('[role=radio]')
74
- switch (e.keyCode) {
75
- case keyCode.LEFT:
76
- case keyCode.UP:
77
- e.stopPropagation()
78
- e.preventDefault()
79
- if (index === 0) {
80
- roleRadios[length - 1].click()
81
- roleRadios[length - 1].focus()
82
- } else {
83
- roleRadios[index - 1].click()
84
- roleRadios[index - 1].focus()
85
- }
86
- break
87
- case keyCode.RIGHT:
88
- case keyCode.DOWN:
89
- if (index === (length - 1)) {
90
- e.stopPropagation()
91
- e.preventDefault()
92
- roleRadios[0].click()
93
- roleRadios[0].focus()
94
- } else {
95
- roleRadios[index + 1].click()
96
- roleRadios[index + 1].focus()
97
- }
98
- break
99
- default:
100
- break
101
- }
102
- }
103
- },
104
- watch: {
105
- value(value) {
106
- this.dispatch('BaseFormItem', 'base.form.change', [this.value])
107
- }
108
- }
109
- }
110
- </script>
111
-