cy-element-ui 1.0.4 → 1.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 (415) hide show
  1. package/README.md +22 -13
  2. package/lib/alert.js +211 -203
  3. package/lib/aside.js +29 -29
  4. package/lib/autocomplete.js +4615 -483
  5. package/lib/avatar.js +152 -126
  6. package/lib/backtop.js +117 -125
  7. package/lib/badge.js +128 -134
  8. package/lib/breadcrumb-item.js +146 -122
  9. package/lib/breadcrumb.js +97 -96
  10. package/lib/button-group.js +68 -65
  11. package/lib/button.js +67 -87
  12. package/lib/calendar.js +2475 -603
  13. package/lib/card.js +101 -100
  14. package/lib/carousel-item.js +854 -210
  15. package/lib/carousel.js +575 -408
  16. package/lib/cascader-panel.js +3546 -1153
  17. package/lib/cascader.js +7376 -970
  18. package/lib/checkbox-button.js +337 -290
  19. package/lib/checkbox-group.js +176 -105
  20. package/lib/checkbox.js +240 -220
  21. package/lib/col.js +113 -68
  22. package/lib/collapse-item.js +1228 -225
  23. package/lib/collapse.js +163 -123
  24. package/lib/color-picker.js +5223 -1251
  25. package/lib/container.js +98 -88
  26. package/lib/date-picker.js +8396 -3945
  27. package/lib/descriptions-item.js +53 -32
  28. package/lib/descriptions.js +697 -334
  29. package/lib/dialog.js +1725 -247
  30. package/lib/directives/mousewheel.js +14 -20
  31. package/lib/directives/repeat-click.js +27 -30
  32. package/lib/divider.js +38 -45
  33. package/lib/drawer.js +1032 -238
  34. package/lib/dropdown-item.js +159 -111
  35. package/lib/dropdown-menu.js +2445 -117
  36. package/lib/dropdown.js +1675 -366
  37. package/lib/element-ui.common.js +49110 -39985
  38. package/lib/empty.js +1084 -203
  39. package/lib/fileUpload.js +3900 -0
  40. package/lib/footer.js +29 -29
  41. package/lib/form-item.js +1236 -467
  42. package/lib/form.js +326 -258
  43. package/lib/header.js +80 -80
  44. package/lib/icon.js +71 -68
  45. package/lib/image.js +2389 -743
  46. package/lib/index.js +1 -1
  47. package/lib/infinite-scroll.js +814 -150
  48. package/lib/input-number.js +2181 -444
  49. package/lib/input.js +1197 -517
  50. package/lib/link.js +117 -135
  51. package/lib/loading.js +1130 -363
  52. package/lib/locale/format.js +38 -49
  53. package/lib/locale/index.js +38 -52
  54. package/lib/locale/lang/af-ZA.js +130 -123
  55. package/lib/locale/lang/ar.js +123 -122
  56. package/lib/locale/lang/az.js +122 -121
  57. package/lib/locale/lang/bg.js +133 -123
  58. package/lib/locale/lang/bn.js +121 -121
  59. package/lib/locale/lang/ca.js +123 -122
  60. package/lib/locale/lang/cs-CZ.js +127 -125
  61. package/lib/locale/lang/da.js +124 -122
  62. package/lib/locale/lang/de.js +126 -124
  63. package/lib/locale/lang/ee.js +125 -123
  64. package/lib/locale/lang/el.js +125 -123
  65. package/lib/locale/lang/en.js +127 -123
  66. package/lib/locale/lang/eo.js +125 -123
  67. package/lib/locale/lang/es.js +123 -122
  68. package/lib/locale/lang/eu.js +128 -123
  69. package/lib/locale/lang/fa.js +125 -123
  70. package/lib/locale/lang/fi.js +125 -123
  71. package/lib/locale/lang/fr.js +125 -122
  72. package/lib/locale/lang/he.js +130 -123
  73. package/lib/locale/lang/hr.js +128 -123
  74. package/lib/locale/lang/hu.js +124 -122
  75. package/lib/locale/lang/hy-AM.js +125 -123
  76. package/lib/locale/lang/id.js +124 -123
  77. package/lib/locale/lang/is.js +124 -123
  78. package/lib/locale/lang/it.js +123 -122
  79. package/lib/locale/lang/ja.js +125 -123
  80. package/lib/locale/lang/kg.js +125 -123
  81. package/lib/locale/lang/km.js +124 -123
  82. package/lib/locale/lang/ko.js +125 -123
  83. package/lib/locale/lang/ku.js +125 -123
  84. package/lib/locale/lang/kz.js +125 -123
  85. package/lib/locale/lang/lo-LA.js +121 -121
  86. package/lib/locale/lang/lt.js +125 -123
  87. package/lib/locale/lang/lv.js +125 -123
  88. package/lib/locale/lang/mn.js +125 -123
  89. package/lib/locale/lang/ms.js +123 -122
  90. package/lib/locale/lang/nb-NO.js +123 -122
  91. package/lib/locale/lang/nl.js +125 -123
  92. package/lib/locale/lang/pl.js +125 -123
  93. package/lib/locale/lang/pt-br.js +124 -123
  94. package/lib/locale/lang/pt.js +133 -123
  95. package/lib/locale/lang/ro.js +125 -123
  96. package/lib/locale/lang/ru-RU.js +124 -123
  97. package/lib/locale/lang/si.js +127 -123
  98. package/lib/locale/lang/sk.js +126 -125
  99. package/lib/locale/lang/sl.js +125 -123
  100. package/lib/locale/lang/sr-Latn.js +124 -123
  101. package/lib/locale/lang/sr.js +128 -123
  102. package/lib/locale/lang/sv-SE.js +128 -123
  103. package/lib/locale/lang/sw.js +127 -123
  104. package/lib/locale/lang/ta.js +130 -122
  105. package/lib/locale/lang/th.js +127 -123
  106. package/lib/locale/lang/tk.js +129 -123
  107. package/lib/locale/lang/tr-TR.js +125 -123
  108. package/lib/locale/lang/ua.js +124 -123
  109. package/lib/locale/lang/ug-CN.js +124 -123
  110. package/lib/locale/lang/uz-UZ.js +124 -123
  111. package/lib/locale/lang/vi.js +124 -123
  112. package/lib/locale/lang/zh-CN.js +124 -123
  113. package/lib/locale/lang/zh-TW.js +128 -123
  114. package/lib/main.js +23 -21
  115. package/lib/menu-item-group.js +105 -111
  116. package/lib/menu-item.js +3558 -253
  117. package/lib/menu.js +1680 -528
  118. package/lib/message-box.js +3427 -684
  119. package/lib/message.js +1677 -229
  120. package/lib/mixins/emitter.js +28 -30
  121. package/lib/mixins/focus.js +10 -11
  122. package/lib/mixins/locale.js +12 -14
  123. package/lib/mixins/migrating.js +38 -45
  124. package/lib/notification.js +1707 -269
  125. package/lib/option-group.js +190 -139
  126. package/lib/option.js +949 -196
  127. package/lib/page-header.js +964 -42
  128. package/lib/pagination.js +6947 -641
  129. package/lib/popconfirm.js +3951 -223
  130. package/lib/popover.js +3247 -369
  131. package/lib/progress.js +254 -244
  132. package/lib/radio-button.js +259 -226
  133. package/lib/radio-group.js +249 -186
  134. package/lib/radio.js +263 -253
  135. package/lib/rate.js +1399 -420
  136. package/lib/result.js +183 -227
  137. package/lib/row.js +58 -41
  138. package/lib/scrollbar.js +1331 -278
  139. package/lib/select.js +5816 -1428
  140. package/lib/skeleton-item.js +133 -145
  141. package/lib/skeleton.js +82 -91
  142. package/lib/slider.js +5157 -702
  143. package/lib/spinner.js +113 -101
  144. package/lib/statistic.js +10205 -254
  145. package/lib/step.js +274 -311
  146. package/lib/steps.js +854 -117
  147. package/lib/subTitle.js +292 -0
  148. package/lib/submenu.js +2867 -429
  149. package/lib/switch.js +1051 -291
  150. package/lib/tab-pane.js +125 -135
  151. package/lib/tabDialog.js +2658 -0
  152. package/lib/table-column.js +1975 -751
  153. package/lib/table.js +8019 -3979
  154. package/lib/tabs.js +1455 -605
  155. package/lib/tag.js +73 -68
  156. package/lib/theme-chalk/src/index.scss +3 -0
  157. package/lib/time-picker.js +6821 -1944
  158. package/lib/time-select.js +6297 -1186
  159. package/lib/timeline-item.js +43 -84
  160. package/lib/timeline.js +43 -39
  161. package/lib/tooltip.js +3185 -287
  162. package/lib/transfer.js +2943 -625
  163. package/lib/transitions/collapse-transition.js +69 -87
  164. package/lib/tree.js +3312 -1791
  165. package/lib/treeSelect.js +4436 -0
  166. package/lib/umd/locale/af-ZA.js +145 -138
  167. package/lib/umd/locale/ar.js +138 -137
  168. package/lib/umd/locale/az.js +139 -137
  169. package/lib/umd/locale/bg.js +148 -138
  170. package/lib/umd/locale/bn.js +138 -137
  171. package/lib/umd/locale/ca.js +138 -137
  172. package/lib/umd/locale/cs-CZ.js +142 -140
  173. package/lib/umd/locale/da.js +139 -137
  174. package/lib/umd/locale/de.js +141 -139
  175. package/lib/umd/locale/ee.js +140 -138
  176. package/lib/umd/locale/el.js +140 -138
  177. package/lib/umd/locale/en.js +142 -138
  178. package/lib/umd/locale/eo.js +140 -138
  179. package/lib/umd/locale/es.js +138 -137
  180. package/lib/umd/locale/eu.js +143 -138
  181. package/lib/umd/locale/fa.js +140 -138
  182. package/lib/umd/locale/fi.js +140 -138
  183. package/lib/umd/locale/fr.js +140 -137
  184. package/lib/umd/locale/he.js +145 -138
  185. package/lib/umd/locale/hr.js +143 -138
  186. package/lib/umd/locale/hu.js +139 -137
  187. package/lib/umd/locale/hy-AM.js +140 -138
  188. package/lib/umd/locale/id.js +139 -138
  189. package/lib/umd/locale/is.js +139 -138
  190. package/lib/umd/locale/it.js +138 -137
  191. package/lib/umd/locale/ja.js +140 -138
  192. package/lib/umd/locale/kg.js +140 -138
  193. package/lib/umd/locale/km.js +139 -138
  194. package/lib/umd/locale/ko.js +140 -138
  195. package/lib/umd/locale/ku.js +140 -138
  196. package/lib/umd/locale/kz.js +140 -138
  197. package/lib/umd/locale/lo-LA.js +138 -137
  198. package/lib/umd/locale/lt.js +140 -138
  199. package/lib/umd/locale/lv.js +140 -138
  200. package/lib/umd/locale/mn.js +140 -138
  201. package/lib/umd/locale/ms.js +138 -137
  202. package/lib/umd/locale/nb-NO.js +138 -137
  203. package/lib/umd/locale/nl.js +140 -138
  204. package/lib/umd/locale/pl.js +140 -138
  205. package/lib/umd/locale/pt-br.js +139 -138
  206. package/lib/umd/locale/pt.js +148 -138
  207. package/lib/umd/locale/ro.js +140 -138
  208. package/lib/umd/locale/ru-RU.js +139 -138
  209. package/lib/umd/locale/si.js +142 -138
  210. package/lib/umd/locale/sk.js +141 -140
  211. package/lib/umd/locale/sl.js +140 -138
  212. package/lib/umd/locale/sr-Latn.js +139 -138
  213. package/lib/umd/locale/sr.js +143 -138
  214. package/lib/umd/locale/sv-SE.js +143 -138
  215. package/lib/umd/locale/sw.js +142 -138
  216. package/lib/umd/locale/ta.js +145 -137
  217. package/lib/umd/locale/th.js +142 -138
  218. package/lib/umd/locale/tk.js +144 -138
  219. package/lib/umd/locale/tr-TR.js +140 -138
  220. package/lib/umd/locale/ua.js +139 -138
  221. package/lib/umd/locale/ug-CN.js +139 -138
  222. package/lib/umd/locale/uz-UZ.js +139 -138
  223. package/lib/umd/locale/vi.js +139 -138
  224. package/lib/umd/locale/zh-CN.js +139 -138
  225. package/lib/umd/locale/zh-TW.js +143 -138
  226. package/lib/upload.js +2377 -987
  227. package/lib/utils/after-leave.js +36 -33
  228. package/lib/utils/aria-dialog.js +55 -73
  229. package/lib/utils/aria-utils.js +67 -76
  230. package/lib/utils/clickoutside.js +52 -60
  231. package/lib/utils/date-util.js +198 -241
  232. package/lib/utils/date.js +6 -368
  233. package/lib/utils/date_source.js +349 -0
  234. package/lib/utils/dom.js +167 -183
  235. package/lib/utils/lodash.js +13 -9421
  236. package/lib/utils/lodash_source.js +9421 -0
  237. package/lib/utils/menu/aria-menubar.js +13 -18
  238. package/lib/utils/menu/aria-menuitem.js +43 -54
  239. package/lib/utils/menu/aria-submenu.js +50 -59
  240. package/lib/utils/merge.js +15 -17
  241. package/lib/utils/popper.js +1141 -1170
  242. package/lib/utils/popup/index.js +186 -230
  243. package/lib/utils/popup/popup-manager.js +159 -191
  244. package/lib/utils/resize-event.js +29 -44
  245. package/lib/utils/scroll-into-view.js +25 -33
  246. package/lib/utils/scrollbar-width.js +25 -36
  247. package/lib/utils/shared.js +3 -3
  248. package/lib/utils/types.js +19 -32
  249. package/lib/utils/util.js +187 -221
  250. package/lib/utils/vdom.js +5 -9
  251. package/lib/utils/vue-popper.js +166 -188
  252. package/package.json +22 -19
  253. package/packages/alert/src/main.vue +63 -63
  254. package/packages/aside/src/main.vue +9 -9
  255. package/packages/autocomplete/src/autocomplete-suggestions.vue +46 -46
  256. package/packages/autocomplete/src/autocomplete.vue +198 -198
  257. package/packages/avatar/src/main.vue +5 -5
  258. package/packages/backtop/src/main.vue +3 -3
  259. package/packages/badge/src/main.vue +1 -1
  260. package/packages/breadcrumb/src/breadcrumb-item.vue +26 -26
  261. package/packages/breadcrumb/src/breadcrumb.vue +22 -22
  262. package/packages/button/src/button-group.vue +3 -3
  263. package/packages/button/src/button.vue +44 -44
  264. package/packages/calendar/src/date-table.vue +3 -3
  265. package/packages/calendar/src/main.vue +7 -7
  266. package/packages/card/src/main.vue +9 -9
  267. package/packages/carousel/src/item.vue +98 -98
  268. package/packages/carousel/src/main.vue +2 -2
  269. package/packages/cascader/src/cascader.vue +4 -4
  270. package/packages/cascader-panel/src/cascader-menu.vue +4 -4
  271. package/packages/cascader-panel/src/cascader-node.vue +232 -232
  272. package/packages/cascader-panel/src/cascader-panel.vue +3 -3
  273. package/packages/cascader-panel/src/node.js +2 -3
  274. package/packages/cascader-panel/src/store.js +0 -1
  275. package/packages/checkbox/src/checkbox-button.vue +139 -139
  276. package/packages/checkbox/src/checkbox-group.vue +33 -33
  277. package/packages/checkbox/src/checkbox.vue +140 -140
  278. package/packages/col/src/col.js +5 -5
  279. package/packages/collapse/src/collapse-item.vue +55 -55
  280. package/packages/collapse/src/collapse.vue +54 -54
  281. package/packages/color-picker/src/color.js +4 -4
  282. package/packages/color-picker/src/components/alpha-slider.vue +100 -100
  283. package/packages/color-picker/src/components/hue-slider.vue +91 -91
  284. package/packages/color-picker/src/components/picker-dropdown.vue +64 -64
  285. package/packages/color-picker/src/components/predefine.vue +43 -43
  286. package/packages/color-picker/src/components/sv-panel.vue +70 -70
  287. package/packages/color-picker/src/main.vue +141 -141
  288. package/packages/container/src/main.vue +20 -20
  289. package/packages/date-picker/src/basic/date-table.vue +360 -360
  290. package/packages/date-picker/src/basic/month-table.vue +222 -223
  291. package/packages/date-picker/src/basic/time-spinner.vue +174 -174
  292. package/packages/date-picker/src/basic/year-table.vue +91 -91
  293. package/packages/date-picker/src/panel/date-range.vue +415 -415
  294. package/packages/date-picker/src/panel/date.vue +423 -423
  295. package/packages/date-picker/src/panel/month-range.vue +177 -177
  296. package/packages/date-picker/src/panel/time-range.vue +173 -173
  297. package/packages/date-picker/src/panel/time-select.vue +131 -131
  298. package/packages/date-picker/src/panel/time.vue +131 -131
  299. package/packages/date-picker/src/picker.vue +7 -7
  300. package/packages/descriptions/src/descriptions-row.js +3 -3
  301. package/packages/descriptions/src/index.js +1 -1
  302. package/packages/dialog/src/component.vue +155 -155
  303. package/packages/divider/src/main.vue +1 -1
  304. package/packages/drawer/src/main.vue +2 -2
  305. package/packages/dropdown/src/dropdown-item.vue +15 -15
  306. package/packages/dropdown/src/dropdown-menu.vue +47 -47
  307. package/packages/dropdown/src/dropdown.vue +260 -260
  308. package/packages/empty/src/index.vue +1 -1
  309. package/packages/fileUpload/index.js +8 -0
  310. package/packages/fileUpload/src/main.vue +430 -0
  311. package/packages/footer/src/main.vue +9 -9
  312. package/packages/form/src/form-item.vue +245 -245
  313. package/packages/form/src/form.vue +154 -154
  314. package/packages/header/src/main.vue +9 -9
  315. package/packages/icon/src/icon.vue +6 -6
  316. package/packages/image/src/image-viewer.vue +9 -9
  317. package/packages/image/src/main.vue +206 -206
  318. package/packages/infinite-scroll/src/main.js +1 -2
  319. package/packages/input/src/calcTextareaHeight.js +2 -2
  320. package/packages/input/src/input.vue +311 -311
  321. package/packages/input-number/src/input-number.vue +205 -205
  322. package/packages/loading/src/loading.vue +19 -19
  323. package/packages/main/src/main.vue +4 -4
  324. package/packages/menu/src/menu-item-group.vue +27 -27
  325. package/packages/menu/src/menu-item.vue +69 -69
  326. package/packages/menu/src/menu.vue +284 -284
  327. package/packages/menu/src/submenu.vue +308 -309
  328. package/packages/message/src/main.js +1 -1
  329. package/packages/message/src/main.vue +72 -72
  330. package/packages/message-box/src/main.vue +216 -216
  331. package/packages/notification/src/main.js +1 -1
  332. package/packages/notification/src/main.vue +93 -93
  333. package/packages/pagination/src/pager.vue +99 -99
  334. package/packages/popconfirm/src/main.vue +28 -28
  335. package/packages/popover/src/main.vue +6 -6
  336. package/packages/progress/src/progress.vue +174 -174
  337. package/packages/radio/src/radio-button.vue +64 -64
  338. package/packages/radio/src/radio-group.vue +88 -88
  339. package/packages/radio/src/radio.vue +74 -74
  340. package/packages/rate/src/main.vue +270 -270
  341. package/packages/row/src/row.js +3 -3
  342. package/packages/scrollbar/src/main.js +2 -2
  343. package/packages/scrollbar/src/util.js +1 -1
  344. package/packages/select/src/option-group.vue +46 -46
  345. package/packages/select/src/option.vue +122 -122
  346. package/packages/select/src/select-dropdown.vue +49 -49
  347. package/packages/select/src/select.vue +676 -676
  348. package/packages/skeleton/src/item.vue +12 -12
  349. package/packages/slider/src/button.vue +191 -191
  350. package/packages/slider/src/main.vue +314 -314
  351. package/packages/spinner/src/spinner.vue +16 -16
  352. package/packages/statistic/src/main.vue +5 -6
  353. package/packages/steps/src/step.vue +2 -2
  354. package/packages/steps/src/steps.vue +4 -4
  355. package/packages/subTitle/index.js +8 -0
  356. package/packages/subTitle/src/main.vue +33 -0
  357. package/packages/switch/src/component.vue +123 -123
  358. package/packages/tabDialog/index.js +23 -0
  359. package/packages/tabDialog/src/dialog/drag.js +63 -0
  360. package/packages/tabDialog/src/dialog/dragHeight.js +34 -0
  361. package/packages/tabDialog/src/dialog/dragWidth.js +30 -0
  362. package/packages/tabDialog/src/main.vue +277 -0
  363. package/packages/table/src/filter-panel.vue +128 -128
  364. package/packages/table/src/store/index.js +1 -1
  365. package/packages/table/src/table-body.js +2 -2
  366. package/packages/table/src/table-column.js +1 -1
  367. package/packages/table/src/table-header.js +1 -1
  368. package/packages/table/src/table-layout.js +1 -1
  369. package/packages/table/src/table.vue +416 -416
  370. package/packages/tabs/src/tab-bar.vue +43 -43
  371. package/packages/tabs/src/tab-nav.vue +250 -250
  372. package/packages/tabs/src/tab-pane.vue +34 -34
  373. package/packages/tabs/src/tabs.vue +165 -165
  374. package/packages/tag/src/tag.vue +52 -52
  375. package/packages/theme-cy/lib/element.css +1 -0
  376. package/packages/theme-cy/lib/fileUpload.css +1 -0
  377. package/packages/theme-cy/lib/index.css +1 -1
  378. package/packages/theme-cy/lib/subTitle.css +1 -0
  379. package/packages/theme-cy/lib/tabDialog.css +1 -0
  380. package/packages/theme-cy/lib/treeselect.css +1 -1
  381. package/packages/theme-cy/src/element.scss +45 -0
  382. package/packages/theme-cy/src/fileUpload.scss +30 -0
  383. package/packages/theme-cy/src/index.scss +4 -0
  384. package/packages/theme-cy/src/subTitle.scss +26 -0
  385. package/packages/theme-cy/src/tabDialog.scss +43 -0
  386. package/packages/theme-cy/src/treeselect.scss +20 -14
  387. package/packages/timeline/src/item.vue +24 -24
  388. package/packages/timeline/src/main.vue +27 -27
  389. package/packages/tooltip/src/main.js +1 -1
  390. package/packages/transfer/src/main.vue +169 -169
  391. package/packages/transfer/src/transfer-panel.vue +164 -164
  392. package/packages/tree/src/tree-node.vue +169 -169
  393. package/packages/tree/src/tree.vue +408 -408
  394. package/packages/treeSelect/index.js +8 -0
  395. package/packages/{treeselect → treeSelect}/src/main.vue +19 -19
  396. package/packages/upload/src/ajax.js +3 -3
  397. package/packages/upload/src/upload-dragger.vue +50 -50
  398. package/packages/upload/src/upload-list.vue +33 -33
  399. package/packages/upload/src/upload.vue +1 -1
  400. package/src/index.js +13 -5
  401. package/src/locale/format.js +0 -1
  402. package/src/mixins/migrating.js +2 -2
  403. package/src/utils/date.js +2 -368
  404. package/src/utils/date_source.js +368 -0
  405. package/src/utils/lodash.js +9 -18075
  406. package/src/utils/lodash_source.js +18075 -0
  407. package/src/utils/types.js +1 -1
  408. package/types/element-ui.d.ts +16 -3
  409. package/types/fileUpload.d.ts +5 -0
  410. package/types/subTitle.d.ts +5 -0
  411. package/types/tabDialog.d.ts +5 -0
  412. package/types/treeSelect.d.ts +5 -0
  413. package/lib/treeselect.js +0 -682
  414. package/packages/treeselect/index.js +0 -8
  415. package/types/treeselect.d.ts +0 -5
@@ -0,0 +1,277 @@
1
+ <template>
2
+ <div class="cy-tab-dialog">
3
+ <div
4
+ v-show="visible && modal"
5
+ contenteditable="false"
6
+ class="cy-tab-dialog-modal"
7
+ :style="{ zIndex: modelZIndex, height: modelHeight ? modelHeight : '100%' }"
8
+ @click="closeOnClickModal && handleClose"
9
+ ></div>
10
+
11
+ <el-dialog
12
+ :visible="visible"
13
+ :title="title"
14
+ :width="width"
15
+ :fullscreen="fullscreen"
16
+ :modal="false"
17
+ :modal-append-to-body="false"
18
+ :append-to-body="false"
19
+ :lock-scroll="true"
20
+ :custom-class="customClass"
21
+ :close-on-click-modal="appendToTagsView ? false : closeOnClickModal"
22
+ :close-on-press-escape="appendToTagsView ? false : closeOnPressEscape"
23
+ :show-close="showClose"
24
+ :center="center"
25
+ :destroy-on-close="destroyOnClose"
26
+ contenteditable="false"
27
+ v-dialog-drag="isDrag"
28
+ v-dialog-drag-width="isDrag"
29
+ v-dialog-drag-height="isDrag"
30
+ :before-close="beforeClose"
31
+ @open="handleOpen"
32
+ @opened="handleOpened"
33
+ @close="handleClose"
34
+ @closed="handleClosed"
35
+ >
36
+ <template v-if="$slots.title" slot="title">
37
+ <slot name="title"></slot>
38
+ </template>
39
+
40
+ <slot></slot>
41
+
42
+ <template v-if="$slots.footer" slot="footer">
43
+ <slot name="footer"></slot>
44
+ </template>
45
+ </el-dialog>
46
+ </div>
47
+ </template>
48
+
49
+ <script>
50
+ import ElDialog from 'element-ui/packages/dialog';
51
+ import Vue from 'vue';
52
+
53
+ export default {
54
+ name: 'CyTabDialog',
55
+ component: [
56
+ ElDialog
57
+ ],
58
+ props: {
59
+ // 是否显示 Dialog,支持 .sync 修饰符
60
+ visible: {
61
+ type: Boolean,
62
+ default: false,
63
+ },
64
+ // Dialog 的标题,也可通过具名 slot
65
+ title: {
66
+ type: String,
67
+ default: '',
68
+ },
69
+ // Dialog 的宽度
70
+ width: {
71
+ type: String,
72
+ default: '50%',
73
+ },
74
+ // 是否为全屏 Dialog
75
+ fullscreen: {
76
+ type: Boolean,
77
+ default: false,
78
+ },
79
+ // Dialog CSS 中的 margin-top 值
80
+ top: {
81
+ type: String,
82
+ default: '6vh',
83
+ },
84
+ // 是否需要遮罩层
85
+ modal: {
86
+ type: Boolean,
87
+ default: true,
88
+ },
89
+ // 遮罩层是否插入至 body 元素上,若为 false,则遮罩层会插入至 Dialog 的父元素上
90
+ appendToBody: {
91
+ type: Boolean,
92
+ default: false,
93
+ },
94
+ // 是否在 Dialog 出现时将 body或上层 滚动锁定
95
+ lockScroll: {
96
+ type: Boolean,
97
+ default: true,
98
+ },
99
+ // Dialog 的自定义类名
100
+ customClass: {
101
+ type: String,
102
+ default: '',
103
+ },
104
+ // 是否可以通过点击 modal 关闭 Dialog
105
+ closeOnClickModal: {
106
+ type: Boolean,
107
+ default: false,
108
+ },
109
+ // 是否可以通过按下 ESC 关闭 Dialog
110
+ closeOnPressEscape: {
111
+ type: Boolean,
112
+ default: true,
113
+ },
114
+ // 是否显示关闭按钮
115
+ showClose: {
116
+ type: Boolean,
117
+ default: true,
118
+ },
119
+ // 是否对头部和底部采用居中布局
120
+ center: {
121
+ type: Boolean,
122
+ default: false,
123
+ },
124
+ // 关闭时销毁 Dialog 中的元素
125
+ destroyOnClose: {
126
+ type: Boolean,
127
+ default: false,
128
+ },
129
+ // 是否放到tagsView中,即当前app-views下面,此属性true时,appendToBody无效
130
+ appendToTagsView: {
131
+ type: Boolean,
132
+ default: false,
133
+ },
134
+ // 对话框是否可拖拽
135
+ isDrag: {
136
+ type: Boolean,
137
+ default: true,
138
+ },
139
+ // 关闭前的回调,会暂停 Dialog 的关闭
140
+ beforeClose: {
141
+ type: Function,
142
+ },
143
+ },
144
+ data() {
145
+ return {
146
+ rendered: false, // 判断dialog是否已经放到对应的div下
147
+ modelZIndex: 1000,
148
+ modelHeight: 0,
149
+
150
+ parentDom: null, // 当前app-views的dom元素
151
+ elDialogDom: null, // 当前el-dialog的dom元素
152
+ }
153
+ },
154
+ watch: {
155
+ visible: {
156
+ immediate: true,
157
+ handler(val) {
158
+ if (val) {
159
+ this.$emit('open');
160
+ Vue.nextTick(() => {
161
+ const dom = this.$el;
162
+ // 首次打开
163
+ if (!this.rendered) {
164
+ this.rendered = true;
165
+ if (this.appendToTagsView) {
166
+ // 将当前dialog挪到当前app-views里面 app-container
167
+ this.parentDom = dom.closest('.app-container');
168
+ if (!this.parentDom) this.parentDom = document.body;
169
+ this.parentDom.append(dom);
170
+ } else if (this.appendToBody) {
171
+ // 将当前dialog挪到当前body里面
172
+ this.parentDom = document.body;
173
+ this.parentDom.append(dom);
174
+ }
175
+ // 添加键盘监听事件
176
+ if (this.closeOnPressEscape) {
177
+ document.addEventListener('keydown', this.escKeyDown);
178
+ }
179
+ }
180
+
181
+ setTimeout(() => {
182
+ if (this.parentDom) this.modelHeight = this.parentDom.scrollHeight + 'px';
183
+ // 当前VDialog不在body中时
184
+ if (!this.parentDom || this.parentDom.tagName.toUpperCase() !== 'BODY') {
185
+ // 获取el-dialog的宽度,如果大于app-views的宽度,则el-dialog不居中显示
186
+ let elDialogWidth = dom.getElementsByClassName('el-dialog')[0].clientWidth;
187
+ if (!this.parentDom || elDialogWidth < this.parentDom.clientWidth) {
188
+ dom.getElementsByClassName('el-dialog')[0].style.left = '50%';
189
+ dom.getElementsByClassName('el-dialog')[0].style.transform = 'translateX(-50%)';
190
+ } else {
191
+ dom.getElementsByClassName('el-dialog')[0].style.left = '0';
192
+ }
193
+ }
194
+ dom.getElementsByClassName('el-dialog')[0].style.marginTop = this.top;
195
+ }, 50)
196
+
197
+ // 获取el-dialog的z-index,赋值给model,用于处理model的层级问题
198
+ this.elDialogDom = dom.children[1];
199
+ setTimeout(() => {
200
+ this.modelZIndex = this.elDialogDom.style.zIndex;
201
+ }, 50)
202
+ });
203
+ } else {
204
+ // immediate=true时,首次打开不需要触发close事件
205
+ if (this.rendered) this.$emit('close');
206
+ }
207
+ }
208
+ }
209
+ },
210
+ methods: {
211
+ handleOpen() {
212
+ this.$emit('open');
213
+ },
214
+
215
+ handleOpened() {
216
+ this.$emit('opened');
217
+ },
218
+
219
+ handleClose() {
220
+ this.$emit('update:visible', false);
221
+ this.$emit('close');
222
+ },
223
+
224
+ handleClosed() {
225
+ this.$emit('closed');
226
+ },
227
+
228
+ /**
229
+ * 监听esc键
230
+ */
231
+ escKeyDown(event) {
232
+ if (event.keyCode === 27) {
233
+ // 获取body下的直接子节点中的已打开的vDialog
234
+ let bodyVDialogDomArr = [];
235
+ let bodyChildrenArr = document.body.childNodes;
236
+ for (let i = 0; i < bodyChildrenArr.length; i++) {
237
+ let item = bodyChildrenArr[i];
238
+ if (item.tagName && item.tagName.toUpperCase() === 'DIV' && item.className && item.className.split(' ').includes('cy-tab-dialog-opened')) {
239
+ bodyVDialogDomArr.push(item)
240
+ }
241
+ }
242
+ // 判断body中是否有已打开的vDialog,如果有,优先关闭body下的vDialog
243
+ if (bodyVDialogDomArr.length > 0) {
244
+ // 获取当前cy-tab-dialog在当前body中的下标
245
+ let curDomIndex = [].indexOf.call(bodyVDialogDomArr, this.$el);
246
+ if (curDomIndex === bodyVDialogDomArr.length - 1) {
247
+ this.handleClose();
248
+ }
249
+ } else if (document.getElementById('tags-view-container') && this.parentDom.parentElement.getAttribute('include_name')) {
250
+ // 获取当前app-views对应的include_name值
251
+
252
+ let includeName = this.parentDom.parentElement.getAttribute('include_name');
253
+ // 根据includeName获取tagsView中的tag标签页
254
+ let tagDom = document.getElementById('tags-view-container').querySelectorAll(`[include_name=${ includeName }]`);
255
+ if (tagDom && tagDom[0]) {
256
+ // 判断此标签页是否为选中状态,只有选中状态中的vDialog才可以进行关闭
257
+ if (tagDom[0].className.split(' ').includes('active')) {
258
+ // 获取当前app-views下的所有已打开的vDialog
259
+ let vDialogList = this.parentDom.getElementsByClassName('cy-tab-dialog-opened');
260
+ // 获取当前cy-tab-dialog在当前app-views中的下标
261
+ let curDomIndex = [].indexOf.call(vDialogList, this.$el);
262
+ if (curDomIndex === vDialogList.length - 1) {
263
+ this.handleClose();
264
+ }
265
+ }
266
+ }
267
+ } else {
268
+ this.handleClose();
269
+ }
270
+ }
271
+ },
272
+ },
273
+ beforeDestroy() {
274
+ document.removeEventListener('keydown', this.escKeyDown);
275
+ }
276
+ };
277
+ </script>
@@ -29,166 +29,166 @@
29
29
  v-show="showPopper">
30
30
  <ul class="el-table-filter__list">
31
31
  <li class="el-table-filter__list-item"
32
- :class="{ 'is-active': filterValue === undefined || filterValue === null }"
33
- @click="handleSelect(null)">{{ t('el.table.clearFilter') }}</li>
32
+ :class="{ 'is-active': filterValue === undefined || filterValue === null }"
33
+ @click="handleSelect(null)">{{ t('el.table.clearFilter') }}</li>
34
34
  <li class="el-table-filter__list-item"
35
- v-for="filter in filters"
36
- :label="filter.value"
37
- :key="filter.value"
38
- :class="{ 'is-active': isActive(filter) }"
39
- @click="handleSelect(filter.value)" >{{ filter.text }}</li>
35
+ v-for="filter in filters"
36
+ :label="filter.value"
37
+ :key="filter.value"
38
+ :class="{ 'is-active': isActive(filter) }"
39
+ @click="handleSelect(filter.value)" >{{ filter.text }}</li>
40
40
  </ul>
41
41
  </div>
42
42
  </transition>
43
43
  </template>
44
44
 
45
45
  <script type="text/babel">
46
- import Popper from 'element-ui/src/utils/vue-popper';
47
- import { PopupManager } from 'element-ui/src/utils/popup';
48
- import Locale from 'element-ui/src/mixins/locale';
49
- import Clickoutside from 'element-ui/src/utils/clickoutside';
50
- import Dropdown from './dropdown';
51
- import ElCheckbox from 'element-ui/packages/checkbox';
52
- import ElCheckboxGroup from 'element-ui/packages/checkbox-group';
53
- import ElScrollbar from 'element-ui/packages/scrollbar';
54
-
55
- export default {
56
- name: 'ElTableFilterPanel',
57
-
58
- mixins: [Popper, Locale],
59
-
60
- directives: {
61
- Clickoutside
62
- },
46
+ import Popper from 'element-ui/src/utils/vue-popper';
47
+ import { PopupManager } from 'element-ui/src/utils/popup';
48
+ import Locale from 'element-ui/src/mixins/locale';
49
+ import Clickoutside from 'element-ui/src/utils/clickoutside';
50
+ import Dropdown from './dropdown';
51
+ import ElCheckbox from 'element-ui/packages/checkbox';
52
+ import ElCheckboxGroup from 'element-ui/packages/checkbox-group';
53
+ import ElScrollbar from 'element-ui/packages/scrollbar';
54
+
55
+ export default {
56
+ name: 'ElTableFilterPanel',
57
+
58
+ mixins: [Popper, Locale],
59
+
60
+ directives: {
61
+ Clickoutside
62
+ },
63
+
64
+ components: {
65
+ ElCheckbox,
66
+ ElCheckboxGroup,
67
+ ElScrollbar
68
+ },
69
+
70
+ props: {
71
+ placement: {
72
+ type: String,
73
+ default: 'bottom-end'
74
+ }
75
+ },
63
76
 
64
- components: {
65
- ElCheckbox,
66
- ElCheckboxGroup,
67
- ElScrollbar
77
+ methods: {
78
+ isActive(filter) {
79
+ return filter.value === this.filterValue;
68
80
  },
69
81
 
70
- props: {
71
- placement: {
72
- type: String,
73
- default: 'bottom-end'
74
- }
82
+ handleOutsideClick() {
83
+ setTimeout(() => {
84
+ this.showPopper = false;
85
+ }, 16);
75
86
  },
76
87
 
77
- methods: {
78
- isActive(filter) {
79
- return filter.value === this.filterValue;
80
- },
88
+ handleConfirm() {
89
+ this.confirmFilter(this.filteredValue);
90
+ this.handleOutsideClick();
91
+ },
81
92
 
82
- handleOutsideClick() {
83
- setTimeout(() => {
84
- this.showPopper = false;
85
- }, 16);
86
- },
93
+ handleReset() {
94
+ this.filteredValue = [];
95
+ this.confirmFilter(this.filteredValue);
96
+ this.handleOutsideClick();
97
+ },
87
98
 
88
- handleConfirm() {
89
- this.confirmFilter(this.filteredValue);
90
- this.handleOutsideClick();
91
- },
99
+ handleSelect(filterValue) {
100
+ this.filterValue = filterValue;
92
101
 
93
- handleReset() {
94
- this.filteredValue = [];
102
+ if ((typeof filterValue !== 'undefined') && (filterValue !== null)) {
95
103
  this.confirmFilter(this.filteredValue);
96
- this.handleOutsideClick();
97
- },
98
-
99
- handleSelect(filterValue) {
100
- this.filterValue = filterValue;
101
-
102
- if ((typeof filterValue !== 'undefined') && (filterValue !== null)) {
103
- this.confirmFilter(this.filteredValue);
104
- } else {
105
- this.confirmFilter([]);
106
- }
107
-
108
- this.handleOutsideClick();
109
- },
110
-
111
- confirmFilter(filteredValue) {
112
- this.table.store.commit('filterChange', {
113
- column: this.column,
114
- values: filteredValue
115
- });
116
- this.table.store.updateAllSelected();
104
+ } else {
105
+ this.confirmFilter([]);
117
106
  }
107
+
108
+ this.handleOutsideClick();
118
109
  },
119
110
 
120
- data() {
121
- return {
122
- table: null,
123
- cell: null,
124
- column: null
125
- };
111
+ confirmFilter(filteredValue) {
112
+ this.table.store.commit('filterChange', {
113
+ column: this.column,
114
+ values: filteredValue
115
+ });
116
+ this.table.store.updateAllSelected();
117
+ }
118
+ },
119
+
120
+ data() {
121
+ return {
122
+ table: null,
123
+ cell: null,
124
+ column: null
125
+ };
126
+ },
127
+
128
+ computed: {
129
+ filters() {
130
+ return this.column && this.column.filters;
126
131
  },
127
132
 
128
- computed: {
129
- filters() {
130
- return this.column && this.column.filters;
133
+ filterValue: {
134
+ get() {
135
+ return (this.column.filteredValue || [])[0];
131
136
  },
132
-
133
- filterValue: {
134
- get() {
135
- return (this.column.filteredValue || [])[0];
136
- },
137
- set(value) {
138
- if (this.filteredValue) {
139
- if ((typeof value !== 'undefined') && (value !== null)) {
140
- this.filteredValue.splice(0, 1, value);
141
- } else {
142
- this.filteredValue.splice(0, 1);
143
- }
137
+ set(value) {
138
+ if (this.filteredValue) {
139
+ if ((typeof value !== 'undefined') && (value !== null)) {
140
+ this.filteredValue.splice(0, 1, value);
141
+ } else {
142
+ this.filteredValue.splice(0, 1);
144
143
  }
145
144
  }
146
- },
145
+ }
146
+ },
147
147
 
148
- filteredValue: {
149
- get() {
150
- if (this.column) {
151
- return this.column.filteredValue || [];
152
- }
153
- return [];
154
- },
155
- set(value) {
156
- if (this.column) {
157
- this.column.filteredValue = value;
158
- }
148
+ filteredValue: {
149
+ get() {
150
+ if (this.column) {
151
+ return this.column.filteredValue || [];
159
152
  }
153
+ return [];
160
154
  },
161
-
162
- multiple() {
155
+ set(value) {
163
156
  if (this.column) {
164
- return this.column.filterMultiple;
157
+ this.column.filteredValue = value;
165
158
  }
166
- return true;
167
159
  }
168
160
  },
169
161
 
170
- mounted() {
171
- this.popperElm = this.$el;
172
- this.referenceElm = this.cell;
173
- this.table.bodyWrapper.addEventListener('scroll', () => {
174
- this.updatePopper();
175
- });
176
-
177
- this.$watch('showPopper', (value) => {
178
- if (this.column) this.column.filterOpened = value;
179
- if (value) {
180
- Dropdown.open(this);
181
- } else {
182
- Dropdown.close(this);
183
- }
184
- });
185
- },
186
- watch: {
187
- showPopper(val) {
188
- if (val === true && parseInt(this.popperJS._popper.style.zIndex, 10) < PopupManager.zIndex) {
189
- this.popperJS._popper.style.zIndex = PopupManager.nextZIndex();
190
- }
162
+ multiple() {
163
+ if (this.column) {
164
+ return this.column.filterMultiple;
165
+ }
166
+ return true;
167
+ }
168
+ },
169
+
170
+ mounted() {
171
+ this.popperElm = this.$el;
172
+ this.referenceElm = this.cell;
173
+ this.table.bodyWrapper.addEventListener('scroll', () => {
174
+ this.updatePopper();
175
+ });
176
+
177
+ this.$watch('showPopper', (value) => {
178
+ if (this.column) this.column.filterOpened = value;
179
+ if (value) {
180
+ Dropdown.open(this);
181
+ } else {
182
+ Dropdown.close(this);
183
+ }
184
+ });
185
+ },
186
+ watch: {
187
+ showPopper(val) {
188
+ if (val === true && parseInt(this.popperJS._popper.style.zIndex, 10) < PopupManager.zIndex) {
189
+ this.popperJS._popper.style.zIndex = PopupManager.nextZIndex();
191
190
  }
192
191
  }
193
- };
192
+ }
193
+ };
194
194
  </script>
@@ -136,7 +136,7 @@ Watcher.prototype.commit = function(name, ...args) {
136
136
  if (mutations[name]) {
137
137
  mutations[name].apply(this, [this.states].concat(args));
138
138
  } else {
139
- throw new Error(`Action not found: ${name}`);
139
+ throw new Error(`Action not found: ${ name }`);
140
140
  }
141
141
  };
142
142
 
@@ -323,10 +323,10 @@ export default {
323
323
  if (cell) {
324
324
  column = getColumnByCell(table, cell);
325
325
  if (column) {
326
- table.$emit(`cell-${name}`, row, column, cell, event);
326
+ table.$emit(`cell-${ name }`, row, column, cell, event);
327
327
  }
328
328
  }
329
- table.$emit(`row-${name}`, row, column, event);
329
+ table.$emit(`row-${ name }`, row, column, event);
330
330
  },
331
331
 
332
332
  rowRender(row, $index, treeRowData) {
@@ -137,7 +137,7 @@ export default {
137
137
  Object.keys(source).forEach(prop => {
138
138
  let value = source[prop];
139
139
  if (value !== undefined) {
140
- column[prop] = prop === 'className' ? `${column[prop]} ${value}` : value;
140
+ column[prop] = prop === 'className' ? `${ column[prop] } ${ value }` : value;
141
141
  }
142
142
  });
143
143
  return column;
@@ -353,7 +353,7 @@ export default {
353
353
  const table = this.$parent;
354
354
  const tableEl = table.$el;
355
355
  const tableLeft = tableEl.getBoundingClientRect().left;
356
- const columnEl = this.$el.querySelector(`th.${column.id}`);
356
+ const columnEl = this.$el.querySelector(`th.${ column.id }`);
357
357
  const columnRect = columnEl.getBoundingClientRect();
358
358
  const minLeft = columnRect.left - tableLeft + 30;
359
359
 
@@ -240,7 +240,7 @@ class TableLayout {
240
240
  observer.onScrollableChange(this);
241
241
  break;
242
242
  default:
243
- throw new Error(`Table Layout don't have event ${event}.`);
243
+ throw new Error(`Table Layout don't have event ${ event }.`);
244
244
  }
245
245
  });
246
246
  }