@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,408 +0,0 @@
1
- <script lang="jsx" type="text/jsx">
2
- import menuMixin from './menu-mixin';
3
- import Emitter from '../mixin/emitter';
4
- import Popper from '../util/vue-popper';
5
- import { addClass, removeClass } from '../util/dom'
6
- const poperMixins = {
7
- props: {
8
- transformOrigin: {
9
- type: [Boolean, String],
10
- default: false
11
- },
12
- offset: Popper.props.offset,
13
- boundariesPadding: Popper.props.boundariesPadding,
14
- popperOptions: Popper.props.popperOptions
15
- },
16
- data: Popper.data,
17
- methods: Popper.methods,
18
- beforeDestroy: Popper.beforeDestroy,
19
- deactivated: Popper.deactivated
20
- };
21
-
22
- export default {
23
- name: 'BaseSubmenu',
24
-
25
- componentName: 'BaseSubmenu',
26
-
27
- mixins: [menuMixin, Emitter, poperMixins],
28
-
29
- props: {
30
- index: {
31
- type: String,
32
- required: true
33
- },
34
- showTimeout: {
35
- type: Number,
36
- default: 300
37
- },
38
- hideTimeout: {
39
- type: Number,
40
- default: 300
41
- },
42
- popperClass: String,
43
- disabled: Boolean,
44
- popperAppendToBody: {
45
- type: Boolean,
46
- default: undefined
47
- }
48
- },
49
-
50
- data() {
51
- return {
52
- popperJS: null,
53
- timeout: null,
54
- items: {},
55
- submenus: {},
56
- mouseInChild: false
57
- };
58
- },
59
- watch: {
60
- opened(val) {
61
- if (this.isMenuPopup) {
62
- this.$nextTick(_ => {
63
- this.updatePopper();
64
- });
65
- }
66
- }
67
- },
68
- computed: {
69
- // popper option
70
- appendToBody() {
71
- return this.popperAppendToBody === undefined
72
- ? this.isFirstLevel
73
- : this.popperAppendToBody;
74
- },
75
- menuTransitionName() {
76
- return this.rootMenu.collapse ? 'base-zoom-in-left' : 'base-zoom-in-top';
77
- },
78
- opened() {
79
- return this.rootMenu.openedMenus.indexOf(this.index) > -1;
80
- },
81
- active() {
82
- let isActive = false;
83
- const submenus = this.submenus;
84
- const items = this.items;
85
-
86
- Object.keys(items).forEach(index => {
87
- if (items[index].active) {
88
- isActive = true;
89
- }
90
- });
91
-
92
- Object.keys(submenus).forEach(index => {
93
- if (submenus[index].active) {
94
- isActive = true;
95
- }
96
- });
97
-
98
- return isActive;
99
- },
100
- hoverBackground() {
101
- return this.rootMenu.hoverBackground;
102
- },
103
- backgroundColor() {
104
- return this.rootMenu.backgroundColor || '';
105
- },
106
- activeTextColor() {
107
- return this.rootMenu.activeTextColor || '';
108
- },
109
- textColor() {
110
- return this.rootMenu.textColor || '';
111
- },
112
- mode() {
113
- return this.rootMenu.mode;
114
- },
115
- isMenuPopup() {
116
- return this.rootMenu.isMenuPopup;
117
- },
118
- titleStyle() {
119
- if (this.mode !== 'horizontal') {
120
- return {
121
- color: this.textColor
122
- };
123
- }
124
- return {
125
- borderBottomColor: this.active
126
- ? (this.rootMenu.activeTextColor ? this.activeTextColor : '')
127
- : 'transparent',
128
- color: this.active
129
- ? this.activeTextColor
130
- : this.textColor
131
- };
132
- },
133
- isFirstLevel() {
134
- let isFirstLevel = true;
135
- let parent = this.$parent;
136
- while (parent && parent !== this.rootMenu) {
137
- if (['BaseSubmenu', 'BaseMenuItemGroup'].indexOf(parent.$options.componentName) > -1) {
138
- isFirstLevel = false;
139
- break;
140
- } else {
141
- parent = parent.$parent;
142
- }
143
- }
144
- return isFirstLevel;
145
- }
146
- },
147
- methods: {
148
- handleCollapseToggle(value) {
149
- if (value) {
150
- this.initPopper();
151
- } else {
152
- this.doDestroy();
153
- }
154
- },
155
- addItem(item) {
156
- this.$set(this.items, item.index, item);
157
- },
158
- removeItem(item) {
159
- delete this.items[item.index];
160
- },
161
- addSubmenu(item) {
162
- this.$set(this.submenus, item.index, item);
163
- },
164
- removeSubmenu(item) {
165
- delete this.submenus[item.index];
166
- },
167
- handleClick() {
168
- const { rootMenu, disabled } = this;
169
- if (
170
- (rootMenu.menuTrigger === 'hover' && rootMenu.mode === 'horizontal') ||
171
- (rootMenu.collapse && rootMenu.mode === 'vertical') ||
172
- disabled
173
- ) {
174
- return;
175
- }
176
- this.dispatch('BaseMenu', 'submenu-click', this);
177
- },
178
- handleMouseenter(event, showTimeout = this.showTimeout) {
179
-
180
- if (!('ActiveXObject' in window) && event.type === 'focus' && !event.relatedTarget) {
181
- return;
182
- }
183
- const { rootMenu, disabled } = this;
184
- if (
185
- (rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal') ||
186
- (!rootMenu.collapse && rootMenu.mode === 'vertical') ||
187
- disabled
188
- ) {
189
- return;
190
- }
191
- this.dispatch('BaseSubmenu', 'mouse-enter-child');
192
- clearTimeout(this.timeout);
193
- this.timeout = setTimeout(() => {
194
- this.rootMenu.openMenu(this.index, this.indexPath);
195
- }, showTimeout);
196
-
197
- if (this.appendToBody) {
198
- this.$parent.$el.dispatchEvent(new MouseEvent('mouseenter'));
199
- }
200
- },
201
- handleMouseleave(deepDispatch = false) {
202
- const {rootMenu} = this;
203
- if (
204
- (rootMenu.menuTrigger === 'click' && rootMenu.mode === 'horizontal') ||
205
- (!rootMenu.collapse && rootMenu.mode === 'vertical')
206
- ) {
207
- return;
208
- }
209
- this.dispatch('BaseSubmenu', 'mouse-leave-child');
210
- clearTimeout(this.timeout);
211
- this.timeout = setTimeout(() => {
212
- !this.mouseInChild && this.rootMenu.closeMenu(this.index);
213
- }, this.hideTimeout);
214
-
215
- if (this.appendToBody && deepDispatch) {
216
- if (this.$parent.$options.name === 'BaseSubmenu') {
217
- this.$parent.handleMouseleave(true);
218
- }
219
- }
220
- },
221
- handleTitleMouseenter() {
222
- if (this.mode === 'horizontal' && !this.rootMenu.backgroundColor) return;
223
- const title = this.$refs['submenu-title'];
224
- title && (title.style.backgroundColor = this.rootMenu.hoverBackground);
225
- },
226
- handleTitleMouseleave() {
227
- if (this.mode === 'horizontal' && !this.rootMenu.backgroundColor) return;
228
- const title = this.$refs['submenu-title'];
229
- title && (title.style.backgroundColor = this.rootMenu.backgroundColor || '');
230
- },
231
- updatePlacement() {
232
- this.currentPlacement = this.mode === 'horizontal' && this.isFirstLevel
233
- ? 'bottom-start'
234
- : 'right-start';
235
- },
236
- initPopper() {
237
- this.referenceElm = this.$el;
238
- this.popperElm = this.$refs.menu;
239
- this.updatePlacement();
240
- },
241
- beforeEnter(el) {
242
- addClass(el, 'collapse-transition');
243
- if (!el.dataset) el.dataset = {};
244
-
245
- el.dataset.oldPaddingTop = el.style.paddingTop;
246
- el.dataset.oldPaddingBottom = el.style.paddingBottom;
247
-
248
- el.style.height = '0';
249
- el.style.paddingTop = 0;
250
- el.style.paddingBottom = 0;
251
- },
252
- enter(el) {
253
- el.dataset.oldOverflow = el.style.overflow;
254
- if (el.scrollHeight !== 0) {
255
- el.style.height = el.scrollHeight + 'px';
256
- el.style.paddingTop = el.dataset.oldPaddingTop;
257
- el.style.paddingBottom = el.dataset.oldPaddingBottom;
258
- } else {
259
- el.style.height = '';
260
- el.style.paddingTop = el.dataset.oldPaddingTop;
261
- el.style.paddingBottom = el.dataset.oldPaddingBottom;
262
- }
263
-
264
- el.style.overflow = 'hidden';
265
- },
266
- afterEnter(el) {
267
- // for safari: remove class then reset height is necessary
268
- removeClass(el, 'collapse-transition');
269
- el.style.height = '';
270
- el.style.overflow = el.dataset.oldOverflow;
271
- },
272
- beforeLeave(el) {
273
- if (!el.dataset) el.dataset = {};
274
- el.dataset.oldPaddingTop = el.style.paddingTop;
275
- el.dataset.oldPaddingBottom = el.style.paddingBottom;
276
- el.dataset.oldOverflow = el.style.overflow;
277
-
278
- el.style.height = el.scrollHeight + 'px';
279
- el.style.overflow = 'hidden';
280
- },
281
- leave(el) {
282
- if (el.scrollHeight !== 0) {
283
- // for safari: add class after set height, or it will jump to zero height suddenly, weired
284
- addClass(el, 'collapse-transition');
285
- el.style.height = 0;
286
- el.style.paddingTop = 0;
287
- el.style.paddingBottom = 0;
288
- }
289
- },
290
- afterLeave(el) {
291
- removeClass(el, 'collapse-transition');
292
- el.style.height = '';
293
- el.style.overflow = el.dataset.oldOverflow;
294
- el.style.paddingTop = el.dataset.oldPaddingTop;
295
- el.style.paddingBottom = el.dataset.oldPaddingBottom;
296
- }
297
- },
298
- created() {
299
- this.$on('toggle-collapse', this.handleCollapseToggle);
300
- this.$on('mouse-enter-child', () => {
301
- this.mouseInChild = true;
302
- clearTimeout(this.timeout);
303
- });
304
- this.$on('mouse-leave-child', () => {
305
- this.mouseInChild = false;
306
- clearTimeout(this.timeout);
307
- });
308
- },
309
- mounted() {
310
- this.parentMenu.addSubmenu(this);
311
- this.rootMenu.addSubmenu(this);
312
- this.initPopper();
313
- },
314
- beforeDestroy() {
315
- this.parentMenu.removeSubmenu(this);
316
- this.rootMenu.removeSubmenu(this);
317
- },
318
- render(h) {
319
- const {
320
- active,
321
- opened,
322
- paddingStyle,
323
- titleStyle,
324
- backgroundColor,
325
- rootMenu,
326
- currentPlacement,
327
- menuTransitionName,
328
- mode,
329
- disabled,
330
- popperClass,
331
- $slots,
332
- isFirstLevel
333
- } = this;
334
-
335
- const popupMenu = (
336
- <transition name={menuTransitionName}>
337
- <div
338
- ref="menu"
339
- v-show={opened}
340
- class={[`base-menu--${mode}`, popperClass]}
341
- on-mouseenter={($event) => this.handleMouseenter($event, 100)}
342
- on-mouseleave={() => this.handleMouseleave(true)}
343
- on-focus={($event) => this.handleMouseenter($event, 100)}>
344
- <ul
345
- role="menu"
346
- class={['base-menu base-menu--popup', `base-menu--popup-${currentPlacement}`]}
347
- style={{ backgroundColor: rootMenu.backgroundColor || '' }}>
348
- {$slots.default}
349
- </ul>
350
- </div>
351
- </transition>
352
- );
353
-
354
- const inlineMenu = (
355
- <transition
356
- on-before-enter={($el) => this.beforeEnter($el)}
357
- on-enter={($el) => this.enter()}
358
- on-after-enter={($el) => this.afterEnter($el)}
359
- on-before-leave={($el) => this.beforeLeave($el)}
360
- on-leave={($el) => this.leave($el)}
361
- on-after-leave={($el) => this.afterLeave($el)}>
362
- <ul
363
- role="menu"
364
- class="base-menu base-menu--inline"
365
- v-show={opened}
366
- style={{ backgroundColor: rootMenu.backgroundColor || '' }}>
367
- {$slots.default}
368
- </ul>
369
- </transition>
370
- );
371
-
372
- const submenuTitleIcon = (
373
- rootMenu.mode === 'horizontal' && isFirstLevel ||
374
- rootMenu.mode === 'vertical' && !rootMenu.collapse
375
- ) ? 'base-icon-arrow-down' : 'base-icon-arrow-right';
376
-
377
- return (
378
- <li
379
- class={{
380
- 'base-submenu': true,
381
- 'is-active': active,
382
- 'is-opened': opened,
383
- 'is-disabled': disabled
384
- }}
385
- role="menuitem"
386
- aria-haspopup="true"
387
- aria-expanded={opened}
388
- on-mouseenter={this.handleMouseenter}
389
- on-mouseleave={() => this.handleMouseleave(false)}
390
- on-focus={this.handleMouseenter}
391
- >
392
- <div
393
- class="base-submenu__title"
394
- ref="submenu-title"
395
- on-click={this.handleClick}
396
- on-mouseenter={this.handleTitleMouseenter}
397
- on-mouseleave={this.handleTitleMouseleave}
398
- style={[paddingStyle, titleStyle, { backgroundColor }]}
399
- >
400
- {$slots.title}
401
- <i class={[ 'base-submenu__icon-arrow', submenuTitleIcon ]}></i>
402
- </div>
403
- {this.isMenuPopup ? popupMenu : inlineMenu}
404
- </li>
405
- );
406
- }
407
- };
408
- </script>
@@ -1,2 +0,0 @@
1
- import Message from './main.js'
2
- export default Message
@@ -1,87 +0,0 @@
1
- import Vue from 'vue'
2
- import Main from './main.vue'
3
- import { PopupManager } from '../util/popup'
4
- import { isVNode } from '../util/vdom'
5
- let MessageConstructor = Vue.extend(Main)
6
-
7
- let instance
8
- let instances = []
9
- let seed = 1
10
-
11
- const Message = function (options) {
12
- if (Vue.prototype.$isServer) return
13
- options = options || {}
14
- if (typeof options === 'string') {
15
- options = {
16
- message: options
17
- }
18
- }
19
- let userOnClose = options.onClose
20
- let id = 'message_' + seed++
21
-
22
- options.onClose = function() {
23
- Message.close(id, userOnClose)
24
- };
25
- instance = new MessageConstructor({
26
- data: options
27
- })
28
- instance.id = id
29
- if (isVNode(instance.message)) {
30
- instance.$slots.default = [instance.message]
31
- instance.message = null
32
- }
33
- instance.$mount()
34
- document.body.appendChild(instance.$el)
35
- let verticalOffset = options.offset || 20
36
- instances.forEach(item => {
37
- verticalOffset += item.$el.offsetHeight + 16
38
- })
39
- instance.verticalOffset = verticalOffset
40
- instance.visible = true
41
- instance.$el.style.zIndex = PopupManager.nextZIndex() + 8000
42
- instances.push(instance)
43
- return instance;
44
- };
45
-
46
- ['success', 'warning', 'info', 'error'].forEach(type => {
47
- Message[type] = options => {
48
- if (typeof options === 'string') {
49
- options = {
50
- message: options
51
- }
52
- }
53
- options.type = type
54
- return Message(options)
55
- }
56
- })
57
-
58
- Message.close = function(id, userOnClose) {
59
- let len = instances.length
60
- let index = -1
61
- let removedHeight
62
- for (let i = 0; i < len; i++) {
63
- if (id === instances[i].id) {
64
- removedHeight = instances[i].$el.offsetHeight
65
- index = i
66
- if (typeof userOnClose === 'function') {
67
- userOnClose(instances[i])
68
- }
69
- instances.splice(i, 1)
70
- break
71
- }
72
- }
73
- if (len <= 1 || index === -1 || index > instances.length - 1) return
74
- for (let i = index; i < len - 1; i++) {
75
- let dom = instances[i].$el
76
- dom.style['top'] =
77
- parseInt(dom.style['top'], 10) - removedHeight - 16 + 'px'
78
- }
79
- };
80
-
81
- Message.closeAll = function() {
82
- for (let i = instances.length - 1; i >= 0; i--) {
83
- instances[i].close()
84
- }
85
- };
86
-
87
- export default Message
@@ -1,110 +0,0 @@
1
- <template>
2
- <transition name="base-message-fade" @after-leave="handleAfterLeave">
3
- <div
4
- :class="[
5
- 'base-message',
6
- type && !iconClass ? `base-message--${ type }` : '',
7
- center ? 'is-center' : '',
8
- showClose ? 'is-closable' : '',
9
- customClass
10
- ]"
11
- :style="positionStyle"
12
- v-show="visible"
13
- @mouseenter="clearTimer"
14
- @mouseleave="startTimer"
15
- role="alert">
16
- <i :class="iconClass" v-if="iconClass"></i>
17
- <i :class="typeClass" v-else></i>
18
- <slot>
19
- <p v-if="!dangerouslyUseHTMLString" class="base-message__content">{{ message }}</p>
20
- <p v-else v-html="message" class="base-message__content"></p>
21
- </slot>
22
- <i v-if="showClose" class="base-message__closeBtn base-icon-close" @click="close"></i>
23
- </div>
24
- </transition>
25
- </template>
26
-
27
- <script type="text/babel">
28
- const typeMap = {
29
- success: 'success',
30
- info: 'info',
31
- warning: 'warning',
32
- error: 'error'
33
- }
34
- export default {
35
- data() {
36
- return {
37
- visible: false,
38
- message: '',
39
- duration: 3000,
40
- type: 'info',
41
- iconClass: '',
42
- customClass: '',
43
- onClose: null,
44
- showClose: false,
45
- closed: false,
46
- verticalOffset: 20,
47
- timer: null,
48
- dangerouslyUseHTMLString: false,
49
- center: false
50
- }
51
- },
52
- computed: {
53
- typeClass() {
54
- return this.type && !this.iconClass
55
- ? `base-message__icon base-icon-${ typeMap[this.type] }`
56
- : ''
57
- },
58
- positionStyle() {
59
- return {
60
- 'top': `${ this.verticalOffset }px`
61
- }
62
- }
63
- },
64
- watch: {
65
- closed (newVal) {
66
- if (newVal) {
67
- this.visible = false
68
- }
69
- }
70
- },
71
- methods: {
72
- handleAfterLeave () {
73
- this.$destroy(true)
74
- this.$el.parentNode.removeChild(this.$el)
75
- },
76
- close () {
77
- this.closed = true
78
- if (typeof this.onClose === 'function') {
79
- this.onClose(this)
80
- }
81
- },
82
- clearTimer () {
83
- clearTimeout(this.timer)
84
- },
85
- startTimer () {
86
- if (this.duration > 0) {
87
- this.timer = setTimeout(() => {
88
- if (!this.closed) {
89
- this.close()
90
- }
91
- }, this.duration)
92
- }
93
- },
94
- keydown (e) {
95
- if (e.keyCode === 27) { // esc关闭消息
96
- if (!this.closed) {
97
- this.close()
98
- }
99
- }
100
- }
101
- },
102
- mounted () {
103
- this.startTimer()
104
- document.addEventListener('keydown', this.keydown)
105
- },
106
- beforeDestroy() {
107
- document.removeEventListener('keydown', this.keydown)
108
- }
109
- }
110
- </script>