@zkwq/business 0.0.5 → 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 +1 -1
  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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zkwq/business",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "中科文情业务组件库",
5
5
  "type": "module",
6
6
  "main": "dist/index.umd.min.cjs",
@@ -1,94 +0,0 @@
1
- <template>
2
- <transition name="base-alert-fade">
3
- <div
4
- class="base-alert"
5
- :class="[typeClass, center ? 'is-center' : '', 'is-' + effect]"
6
- v-show="visible"
7
- role="alert"
8
- >
9
- <i class="base-alert__icon" :class="[ iconClass, isBigIcon ]" v-if="showIcon"></i>
10
- <div class="base-alert__content">
11
- <span class="base-alert__title" :class="[ isBoldTitle ]" v-if="title || $slots.title">
12
- <slot name="title">{{ title }}</slot>
13
- </span>
14
- <p class="base-alert__description" v-if="$slots.default && !description"><slot></slot></p>
15
- <p class="base-alert__description" v-if="description && !$slots.default">{{ description }}</p>
16
- <i class="base-alert__closebtn" :class="{ 'is-customed': closeText !== '', 'base-icon-close': closeText === '' }" v-show="closable" @click="close()">{{closeText}}</i>
17
- </div>
18
- </div>
19
- </transition>
20
- </template>
21
-
22
- <script type="text/babel">
23
- const TYPE_CLASSES_MAP = {
24
- 'success': 'base-icon-success',
25
- 'warning': 'base-icon-warning',
26
- 'error': 'base-icon-error'
27
- }
28
- export default {
29
- name: 'BaseAlert',
30
-
31
- props: {
32
- title: {
33
- type: String,
34
- default: ''
35
- },
36
- description: {
37
- type: String,
38
- default: ''
39
- },
40
- type: {
41
- type: String,
42
- default: 'info'
43
- },
44
- closable: {
45
- type: Boolean,
46
- default: true
47
- },
48
- closeText: {
49
- type: String,
50
- default: ''
51
- },
52
- showIcon: Boolean,
53
- center: Boolean,
54
- effect: {
55
- type: String,
56
- default: 'light',
57
- validator: function(value) {
58
- return ['light', 'dark'].indexOf(value) !== -1
59
- }
60
- }
61
- },
62
-
63
- data() {
64
- return {
65
- visible: true
66
- }
67
- },
68
-
69
- methods: {
70
- close () {
71
- this.visible = false
72
- this.$emit('close')
73
- }
74
- },
75
-
76
- computed: {
77
- typeClass () {
78
- return `base-alert--${ this.type }`
79
- },
80
-
81
- iconClass () {
82
- return TYPE_CLASSES_MAP[this.type] || 'base-icon-info'
83
- },
84
-
85
- isBigIcon () {
86
- return this.description || this.$slots.default ? 'is-big' : ''
87
- },
88
-
89
- isBoldTitle () {
90
- return this.description || this.$slots.default ? 'is-bold' : ''
91
- }
92
- }
93
- }
94
- </script>
@@ -1,77 +0,0 @@
1
- <template>
2
- <transition name="base-zoom-in-top" @after-leave="doDestroy">
3
- <div
4
- v-show="showPopper"
5
- class="base-autocomplete-suggestion base-popper"
6
- :class="{ 'is-loading': !parent.hideLoading && parent.loading }"
7
- :style="{ width: dropdownWidth }"
8
- role="region">
9
- <base-scrollbar
10
- alone
11
- tag="ul"
12
- wrap-class="base-autocomplete-suggestion__wrap"
13
- view-class="base-autocomplete-suggestion__list">
14
- <li v-if="!parent.hideLoading && parent.loading"><i class="base-icon-loading"></i></li>
15
- <slot v-else>
16
- </slot>
17
- </base-scrollbar>
18
- </div>
19
- </transition>
20
- </template>
21
- <script>
22
- import Popper from '../util/vue-popper';
23
- import Emitter from '../mixin/emitter';
24
- import BaseScrollbar from '../scrollbar';
25
-
26
- export default {
27
- components: { BaseScrollbar },
28
- mixins: [Popper, Emitter],
29
-
30
- componentName: 'BaseAutocompleteSuggestions',
31
-
32
- data() {
33
- return {
34
- parent: this.$parent,
35
- dropdownWidth: ''
36
- };
37
- },
38
-
39
- props: {
40
- options: {
41
- default() {
42
- return {
43
- gpuAcceleration: false
44
- };
45
- }
46
- },
47
- id: String
48
- },
49
-
50
- methods: {
51
- select(item) {
52
- this.dispatch('BaseAutocomplete', 'item-click', item);
53
- }
54
- },
55
-
56
- updated() {
57
- this.$nextTick(_ => {
58
- this.popperJS && this.updatePopper();
59
- });
60
- },
61
-
62
- mounted() {
63
- this.$parent.popperElm = this.popperElm = this.$el;
64
- this.referenceElm = this.$parent.$refs.input.$refs.input || this.$parent.$refs.input.$refs.textarea;
65
- this.referenceList = this.$el.querySelector('.base-autocomplete-suggestion__list');
66
- this.referenceList.setAttribute('role', 'listbox');
67
- this.referenceList.setAttribute('id', this.id);
68
- },
69
-
70
- created() {
71
- this.$on('visible', (val, inputWidth) => {
72
- this.dropdownWidth = inputWidth + 'px';
73
- this.showPopper = val;
74
- });
75
- }
76
- };
77
- </script>
@@ -1,305 +0,0 @@
1
- <template>
2
- <div
3
- class="base-autocomplete"
4
- v-clickoutside="close"
5
- aria-haspopup="listbox"
6
- role="combobox"
7
- :aria-expanded="suggestionVisible"
8
- :aria-owns="id"
9
- >
10
- <base-input
11
- ref="input"
12
- :show-label="showLabel"
13
- :ripple="ripple"
14
- v-bind="[$props, $attrs]"
15
- @input="handleInput"
16
- @change="handleChange"
17
- @focus="handleFocus"
18
- @blur="handleBlur"
19
- @clear="handleClear"
20
- @keydown.up.native.prevent="highlight(highlightedIndex - 1)"
21
- @keydown.down.native.prevent="highlight(highlightedIndex + 1)"
22
- @keydown.enter.native="handleKeyEnter"
23
- @keydown.native.tab="close"
24
- @key-up-enter="handleKeyUpEnter"
25
- >
26
- <template slot="prepend" v-if="$slots.prepend">
27
- <slot name="prepend"></slot>
28
- </template>
29
- <template slot="append" v-if="$slots.append">
30
- <slot name="append"></slot>
31
- </template>
32
- <template slot="prefix" v-if="$slots.prefix">
33
- <slot name="prefix"></slot>
34
- </template>
35
- <template slot="suffix" v-if="$slots.suffix">
36
- <slot name="suffix"></slot>
37
- </template>
38
- </base-input>
39
- <base-autocomplete-suggestions
40
- :visible-arrow = "false"
41
- :class="[popperClass ? popperClass : '']"
42
- :popper-options="popperOptions"
43
- :append-to-body="popperAppendToBody"
44
- ref="suggestions"
45
- :placement="placement"
46
- :id="id">
47
- <li
48
- v-for="(item, index) in suggestions"
49
- :key="index"
50
- :class="{'highlighted': highlightedIndex === index}"
51
- @click="select(item)"
52
- :id="`${id}-item-${index}`"
53
- role="option"
54
- :aria-selected="highlightedIndex === index"
55
- >
56
- <slot :item="item">
57
- {{ item[valueKey] }}
58
- </slot>
59
- </li>
60
- </base-autocomplete-suggestions>
61
- </div>
62
- </template>
63
- <script>
64
- import debounce from '../util/debounce';
65
- import BaseInput from '../input/Input';
66
- import Clickoutside from '../util/clickoutside';
67
- import BaseAutocompleteSuggestions from './autocomplete-suggestions.vue';
68
- import Emitter from '../mixin/emitter';
69
- import Migrating from '../mixin/migrating';
70
- import { generateId } from '../util';
71
- import Focus from '../mixin/focus';
72
-
73
- export default {
74
- name: 'BaseAutocomplete',
75
-
76
- mixins: [Emitter, Focus('input'), Migrating],
77
-
78
- inheritAttrs: false,
79
-
80
- componentName: 'BaseAutocomplete',
81
-
82
- components: {
83
- BaseInput,
84
- BaseAutocompleteSuggestions
85
- },
86
-
87
- directives: { Clickoutside },
88
-
89
- props: {
90
- valueKey: {
91
- type: String,
92
- default: 'value'
93
- },
94
- popperClass: String,
95
- popperOptions: Object,
96
- placeholder: String,
97
- clearable: {
98
- type: Boolean,
99
- default: false
100
- },
101
- showLabel: {
102
- type: Boolean,
103
- default: true
104
- },
105
- ripple: {
106
- type: Boolean,
107
- default: true
108
- },
109
- disabled: Boolean,
110
- name: String,
111
- size: String,
112
- value: String,
113
- maxlength: Number,
114
- minlength: Number,
115
- autofocus: Boolean,
116
- fetchSuggestions: Function,
117
- triggerOnFocus: {
118
- type: Boolean,
119
- default: true
120
- },
121
- customItem: String,
122
- selectWhenUnmatched: {
123
- type: Boolean,
124
- default: false
125
- },
126
- prefixIcon: String,
127
- suffixIcon: String,
128
- label: String,
129
- debounce: {
130
- type: Number,
131
- default: 300
132
- },
133
- placement: {
134
- type: String,
135
- default: 'bottom-start'
136
- },
137
- hideLoading: Boolean,
138
- popperAppendToBody: {
139
- type: Boolean,
140
- default: true
141
- },
142
- highlightFirstItem: {
143
- type: Boolean,
144
- default: false
145
- }
146
- },
147
- data() {
148
- return {
149
- activated: false,
150
- suggestions: [],
151
- loading: false,
152
- highlightedIndex: -1,
153
- suggestionDisabled: false
154
- };
155
- },
156
- computed: {
157
- suggestionVisible() {
158
- const suggestions = this.suggestions;
159
- let isValidData = Array.isArray(suggestions) && suggestions.length > 0;
160
- return (isValidData || this.loading) && this.activated;
161
- },
162
- id() {
163
- return `base-autocomplete-${generateId()}`;
164
- }
165
- },
166
- watch: {
167
- suggestionVisible(val) {
168
- let $input = this.getInput();
169
- if ($input) {
170
- this.broadcast('BaseAutocompleteSuggestions', 'visible', [val, $input.offsetWidth]);
171
- }
172
- }
173
- },
174
- methods: {
175
- getMigratingConfig() {
176
- return {
177
- props: {
178
- 'custom-item': 'custom-item is removed, use scoped slot instead.',
179
- 'props': 'props is removed, use value-key instead.'
180
- }
181
- };
182
- },
183
- getData(queryString) {
184
- if (this.suggestionDisabled) {
185
- return;
186
- }
187
- if (!queryString || queryString.length < 2) {
188
- return;
189
- }
190
- this.loading = true;
191
- this.fetchSuggestions(queryString, (suggestions) => {
192
- this.loading = false;
193
- if (this.suggestionDisabled) {
194
- return;
195
- }
196
- if (Array.isArray(suggestions)) {
197
- this.suggestions = suggestions;
198
- this.highlightedIndex = this.highlightFirstItem ? 0 : -1;
199
- } else {
200
- console.error('[Element Error][Autocomplete]autocomplete suggestions must be an array');
201
- }
202
- });
203
- },
204
- handleInput(value) {
205
- this.$emit('input', value);
206
- this.suggestionDisabled = false;
207
- if (!this.triggerOnFocus && !value) {
208
- this.suggestionDisabled = true;
209
- this.suggestions = [];
210
- return;
211
- }
212
- this.debouncedGetData(value);
213
- },
214
- handleChange(value) {
215
- this.$emit('change', value);
216
- },
217
- handleFocus(event) {
218
- this.activated = true;
219
- this.$emit('focus', event);
220
- if (this.triggerOnFocus) {
221
- this.debouncedGetData(this.value);
222
- }
223
- },
224
- handleBlur(event) {
225
- this.$emit('blur', event);
226
- },
227
- handleKeyUpEnter() {
228
- this.$emit('key-up-enter')
229
- },
230
- handleClear() {
231
- this.activated = false;
232
- this.$emit('clear');
233
- },
234
- close(e) {
235
- this.activated = false;
236
- },
237
- handleKeyEnter(e) {
238
- if (this.suggestionVisible && this.highlightedIndex >= 0 && this.highlightedIndex < this.suggestions.length) {
239
- e.preventDefault();
240
- this.select(this.suggestions[this.highlightedIndex]);
241
- } else if (this.selectWhenUnmatched) {
242
- this.$emit('select', {value: this.value});
243
- this.$nextTick(_ => {
244
- this.suggestions = [];
245
- this.highlightedIndex = -1;
246
- });
247
- }
248
- },
249
- select(item) {
250
- this.$emit('input', item[this.valueKey]);
251
- this.$emit('select', item);
252
- this.$nextTick(_ => {
253
- this.suggestions = [];
254
- this.highlightedIndex = -1;
255
- });
256
- },
257
- highlight(index) {
258
- if (!this.suggestionVisible || this.loading) { return; }
259
- if (index < 0) {
260
- this.highlightedIndex = -1;
261
- return;
262
- }
263
- if (index >= this.suggestions.length) {
264
- index = this.suggestions.length - 1;
265
- }
266
- const suggestion = this.$refs.suggestions.$el.querySelector('.base-autocomplete-suggestion__wrap');
267
- const suggestionList = suggestion.querySelectorAll('.base-autocomplete-suggestion__list li');
268
-
269
- let highlightItem = suggestionList[index];
270
- let scrollTop = suggestion.scrollTop;
271
- let offsetTop = highlightItem.offsetTop;
272
-
273
- if (offsetTop + highlightItem.scrollHeight > (scrollTop + suggestion.clientHeight)) {
274
- suggestion.scrollTop += highlightItem.scrollHeight;
275
- }
276
- if (offsetTop < scrollTop) {
277
- suggestion.scrollTop -= highlightItem.scrollHeight;
278
- }
279
- this.highlightedIndex = index;
280
- let $input = this.getInput();
281
- $input.setAttribute('aria-activedescendant', `${this.id}-item-${this.highlightedIndex}`);
282
- },
283
- getInput() {
284
- return this.$refs.input.getInput();
285
- },
286
- destroy () {
287
- this.$refs.suggestions.$destroy();
288
- }
289
- },
290
- mounted() {
291
- this.debouncedGetData = debounce(this.debounce, this.getData);
292
- this.$on('item-click', item => {
293
- this.select(item);
294
- });
295
- let $input = this.getInput();
296
- $input.setAttribute('role', 'textbox');
297
- $input.setAttribute('aria-autocomplete', 'list');
298
- $input.setAttribute('aria-controls', 'id');
299
- $input.setAttribute('aria-activedescendant', `${this.id}-item-${this.highlightedIndex}`);
300
- },
301
- beforeDestroy() {
302
- this.$refs.suggestions.$destroy();
303
- }
304
- };
305
- </script>
@@ -1,112 +0,0 @@
1
- <template>
2
- <transition name="base-fade-in">
3
- <div
4
- v-if="visible"
5
- @click.stop="handleClick"
6
- :style="{
7
- 'right': styleRight,
8
- 'bottom': styleBottom
9
- }"
10
- class="base-backtop">
11
- <slot>
12
- <base-icon name="caret-top"></base-icon>
13
- </slot>
14
- </div>
15
- </transition>
16
- </template>
17
-
18
- <script>
19
- import throttle from '../util/throttle';
20
- import BaseIcon from '../icon/icon';
21
-
22
- const cubic = value => Math.pow(value, 3);
23
-
24
- const easeInOutCubic = value => value < 0.5
25
- ? cubic(value * 2) / 2
26
- : 1 - cubic((1 - value) * 2) / 2;
27
-
28
- export default {
29
- name: 'BaseBacktop',
30
- components: {BaseIcon},
31
- props: {
32
- visibilityHeight: {
33
- type: Number,
34
- default: 200
35
- },
36
- target: [String],
37
- right: {
38
- type: Number,
39
- default: 40
40
- },
41
- bottom: {
42
- type: Number,
43
- default: 40
44
- }
45
- },
46
-
47
- data() {
48
- return {
49
- el: null,
50
- container: null,
51
- visible: false
52
- };
53
- },
54
-
55
- computed: {
56
- styleBottom() {
57
- return `${this.bottom}px`;
58
- },
59
- styleRight() {
60
- return `${this.right}px`;
61
- }
62
- },
63
-
64
- mounted() {
65
- this.init();
66
- this.throttledScrollHandler = throttle(300, this.onScroll);
67
- this.container.addEventListener('scroll', this.throttledScrollHandler);
68
- },
69
-
70
- methods: {
71
- init() {
72
- this.container = document;
73
- this.el = document.documentElement;
74
- if (this.target) {
75
- this.el = document.querySelector(this.target);
76
- if (!this.el) {
77
- throw new Error(`target is not existed: ${this.target}`);
78
- }
79
- this.container = this.el;
80
- }
81
- },
82
- onScroll() {
83
- const scrollTop = this.el.scrollTop;
84
- this.visible = scrollTop >= this.visibilityHeight;
85
- },
86
- handleClick(e) {
87
- this.scrollToTop();
88
- this.$emit('click', e);
89
- },
90
- scrollToTop() {
91
- const el = this.el;
92
- const beginTime = Date.now();
93
- const beginValue = el.scrollTop;
94
- const rAF = window.requestAnimationFrame || (func => setTimeout(func, 16));
95
- const frameFunc = () => {
96
- const progress = (Date.now() - beginTime) / 500;
97
- if (progress < 1) {
98
- el.scrollTop = beginValue * (1 - easeInOutCubic(progress));
99
- rAF(frameFunc);
100
- } else {
101
- el.scrollTop = 0;
102
- }
103
- };
104
- rAF(frameFunc);
105
- }
106
- },
107
-
108
- beforeDestroy() {
109
- this.container.removeEventListener('scroll', this.throttledScrollHandler);
110
- }
111
- };
112
- </script>
@@ -1,84 +0,0 @@
1
- <template>
2
- <button
3
- v-ripple="enableRipple"
4
- class="base-button"
5
- @click="handleClick"
6
- :disabled="buttonDisabled || loading"
7
- :autofocus="autofocus"
8
- :type="nativeType"
9
- :class="[
10
- type ? 'base-button--' + type : '',
11
- buttonSize ? 'base-button--' + buttonSize : '',
12
- {
13
- 'is-disabled': buttonDisabled,
14
- 'is-loading': loading,
15
- 'is-plain': plain,
16
- 'is-round': round,
17
- 'is-circle': circle,
18
- 'is-light': light
19
- }
20
- ]"
21
- >
22
- <span v-if="loading"><i class="base-icon-loading" ></i></span>
23
- <span v-if="icon && !loading"><i :class="icon"></i></span>
24
- <span v-if="$slots.default"><slot></slot></span>
25
- </button>
26
- </template>
27
- <script>
28
- import Ripple from '../directive/ripple'
29
- export default {
30
- name: 'BaseButton',
31
- directives: {
32
- Ripple
33
- },
34
- inject: {
35
- baseForm: {
36
- default: ''
37
- },
38
- baseFormItem: {
39
- default: ''
40
- }
41
- },
42
- props: {
43
- type: {
44
- type: String,
45
- default: 'default'
46
- },
47
- size: String,
48
- icon: {
49
- type: String,
50
- default: ''
51
- },
52
- nativeType: {
53
- type: String,
54
- default: 'button'
55
- },
56
- loading: Boolean,
57
- disabled: Boolean,
58
- plain: Boolean,
59
- autofocus: Boolean,
60
- round: Boolean,
61
- circle: Boolean,
62
- light: Boolean
63
- },
64
- computed: {
65
- _baseFormItemSize () {
66
- return (this.baseFormItem || {}).baseFormItemSize
67
- },
68
- buttonSize () {
69
- return this.size || this._baseFormItemSize || (this.$ELEMENT || {}).size
70
- },
71
- buttonDisabled () {
72
- return this.disabled || (this.baseForm || {}).disabled
73
- },
74
- enableRipple () {
75
- return !this.disabled && this.type !== 'text'
76
- }
77
- },
78
- methods: {
79
- handleClick (evt) {
80
- this.$emit('click', evt)
81
- }
82
- }
83
- }
84
- </script>
@@ -1,10 +0,0 @@
1
- <template>
2
- <div class="base-button-group">
3
- <slot></slot>
4
- </div>
5
- </template>
6
- <script>
7
- export default {
8
- name: 'BaseButtonGroup'
9
- }
10
- </script>