sh-view 1.5.2

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 (209) hide show
  1. package/.eslintrc.js +21 -0
  2. package/README.en.md +36 -0
  3. package/README.md +39 -0
  4. package/package.json +64 -0
  5. package/packages/assets/css/animated.scss +33 -0
  6. package/packages/assets/css/loader.scss +193 -0
  7. package/packages/assets/css/main.scss +235 -0
  8. package/packages/assets/css/theme.scss +52 -0
  9. package/packages/assets/icons/demo.css +539 -0
  10. package/packages/assets/icons/iconfont.css +415 -0
  11. package/packages/assets/icons/iconfont.js +1 -0
  12. package/packages/assets/icons/iconfont.json +709 -0
  13. package/packages/assets/icons/iconfont.ttf +0 -0
  14. package/packages/assets/icons/iconfont.woff +0 -0
  15. package/packages/assets/icons/iconfont.woff2 +0 -0
  16. package/packages/assets/img/image-error.png +0 -0
  17. package/packages/assets/img/square-image.png +0 -0
  18. package/packages/components/global-components/sh-card/index.vue +122 -0
  19. package/packages/components/global-components/sh-code-editor/index.vue +237 -0
  20. package/packages/components/global-components/sh-corner/index.vue +236 -0
  21. package/packages/components/global-components/sh-count-to/index.vue +46 -0
  22. package/packages/components/global-components/sh-empty/index.vue +43 -0
  23. package/packages/components/global-components/sh-header/index.vue +269 -0
  24. package/packages/components/global-components/sh-icon/icons.vue +32 -0
  25. package/packages/components/global-components/sh-icon/index.vue +27 -0
  26. package/packages/components/global-components/sh-iv-form/components/iv-group-item.vue +57 -0
  27. package/packages/components/global-components/sh-iv-form/components/iv-single-item.vue +76 -0
  28. package/packages/components/global-components/sh-iv-form/index.vue +255 -0
  29. package/packages/components/global-components/sh-layout/index.vue +142 -0
  30. package/packages/components/global-components/sh-loading/index.vue +42 -0
  31. package/packages/components/global-components/sh-noticebar/index.vue +201 -0
  32. package/packages/components/global-components/sh-preview/index.vue +62 -0
  33. package/packages/components/global-components/sh-pull-refresh/index.vue +290 -0
  34. package/packages/components/global-components/sh-result/index.vue +88 -0
  35. package/packages/components/global-components/sh-sheet/index.vue +173 -0
  36. package/packages/components/global-components/sh-upload/components/u-img.vue +63 -0
  37. package/packages/components/global-components/sh-upload/components/u-list.vue +100 -0
  38. package/packages/components/global-components/sh-upload/index.vue +418 -0
  39. package/packages/components/global-components/sh-vxe-form/components/form-item.vue +25 -0
  40. package/packages/components/global-components/sh-vxe-form/css/index.scss +55 -0
  41. package/packages/components/global-components/sh-vxe-form/index.vue +115 -0
  42. package/packages/components/global-components/sh-vxe-form/js/methods.js +170 -0
  43. package/packages/components/global-components/sh-vxe-form/js/props.js +63 -0
  44. package/packages/components/global-components/sh-vxe-form/mixin/defaultData.js +33 -0
  45. package/packages/components/global-components/sh-vxe-list/index.vue +129 -0
  46. package/packages/components/global-components/sh-vxe-modal/index.vue +209 -0
  47. package/packages/components/global-components/sh-vxe-query/index.vue +286 -0
  48. package/packages/components/global-components/sh-vxe-table/components/importModal.vue +377 -0
  49. package/packages/components/global-components/sh-vxe-table/css/index.scss +94 -0
  50. package/packages/components/global-components/sh-vxe-table/index.vue +350 -0
  51. package/packages/components/global-components/sh-vxe-table/js/excel_to_json.js +313 -0
  52. package/packages/components/global-components/sh-vxe-table/js/methods.js +614 -0
  53. package/packages/components/global-components/sh-vxe-table/js/props.js +311 -0
  54. package/packages/components/global-components/sh-vxe-table/mixin/defaultData.js +116 -0
  55. package/packages/components/global-components/sh-vxe-toolbar/index.vue +172 -0
  56. package/packages/components/global-components/sh-vxe-tree/components/table-tree.vue +251 -0
  57. package/packages/components/global-components/sh-vxe-tree/css/index.scss +20 -0
  58. package/packages/components/global-components/sh-vxe-tree/index.vue +85 -0
  59. package/packages/components/global-components/sh-vxe-tree/js/props.js +120 -0
  60. package/packages/components/global-components/sh-vxe-tree/js/treeMethods.js +171 -0
  61. package/packages/components/global-components/sh-vxe-tree/mixin/defaultData.js +48 -0
  62. package/packages/components/global-components/sh-vxe-tree/vxe-direct-tree.vue +202 -0
  63. package/packages/components/global-components/sh-vxe-tree/vxe-select-tree.vue +291 -0
  64. package/packages/components/global-components/sh-water-fall/index.vue +87 -0
  65. package/packages/components/global-components/sh-word/index.vue +110 -0
  66. package/packages/components/index.js +64 -0
  67. package/packages/components/other-components/sh-cron-modal/components/cron-content.vue +287 -0
  68. package/packages/components/other-components/sh-cron-modal/css/index.scss +45 -0
  69. package/packages/components/other-components/sh-cron-modal/index.vue +67 -0
  70. package/packages/components/other-components/sh-cron-modal/mixin/cron-box.js +169 -0
  71. package/packages/components/other-components/sh-cron-modal/tabs/cron-day-box.vue +92 -0
  72. package/packages/components/other-components/sh-cron-modal/tabs/cron-hour-box.vue +56 -0
  73. package/packages/components/other-components/sh-cron-modal/tabs/cron-minute-box.vue +56 -0
  74. package/packages/components/other-components/sh-cron-modal/tabs/cron-month-box.vue +56 -0
  75. package/packages/components/other-components/sh-cron-modal/tabs/cron-second-box.vue +56 -0
  76. package/packages/components/other-components/sh-cron-modal/tabs/cron-week-box.vue +115 -0
  77. package/packages/components/other-components/sh-cron-modal/tabs/cron-year-box.vue +46 -0
  78. package/packages/components/other-components/sh-cron-modal/utils/index.js +52 -0
  79. package/packages/components/other-components/sh-markdown/index.vue +170 -0
  80. package/packages/components/other-components/sh-markdown/tinymce/langs/ar.js +7 -0
  81. package/packages/components/other-components/sh-markdown/tinymce/langs/az.js +7 -0
  82. package/packages/components/other-components/sh-markdown/tinymce/langs/bg_BG.js +7 -0
  83. package/packages/components/other-components/sh-markdown/tinymce/langs/bn_BD.js +7 -0
  84. package/packages/components/other-components/sh-markdown/tinymce/langs/ca.js +7 -0
  85. package/packages/components/other-components/sh-markdown/tinymce/langs/cs.js +7 -0
  86. package/packages/components/other-components/sh-markdown/tinymce/langs/cy.js +7 -0
  87. package/packages/components/other-components/sh-markdown/tinymce/langs/da.js +7 -0
  88. package/packages/components/other-components/sh-markdown/tinymce/langs/de.js +7 -0
  89. package/packages/components/other-components/sh-markdown/tinymce/langs/dv.js +7 -0
  90. package/packages/components/other-components/sh-markdown/tinymce/langs/el.js +7 -0
  91. package/packages/components/other-components/sh-markdown/tinymce/langs/eo.js +7 -0
  92. package/packages/components/other-components/sh-markdown/tinymce/langs/es.js +7 -0
  93. package/packages/components/other-components/sh-markdown/tinymce/langs/es_MX.js +7 -0
  94. package/packages/components/other-components/sh-markdown/tinymce/langs/et.js +7 -0
  95. package/packages/components/other-components/sh-markdown/tinymce/langs/eu.js +7 -0
  96. package/packages/components/other-components/sh-markdown/tinymce/langs/fa.js +7 -0
  97. package/packages/components/other-components/sh-markdown/tinymce/langs/fi.js +7 -0
  98. package/packages/components/other-components/sh-markdown/tinymce/langs/fr_FR.js +7 -0
  99. package/packages/components/other-components/sh-markdown/tinymce/langs/ga.js +7 -0
  100. package/packages/components/other-components/sh-markdown/tinymce/langs/gl.js +7 -0
  101. package/packages/components/other-components/sh-markdown/tinymce/langs/he_IL.js +7 -0
  102. package/packages/components/other-components/sh-markdown/tinymce/langs/hi.js +7 -0
  103. package/packages/components/other-components/sh-markdown/tinymce/langs/hr.js +7 -0
  104. package/packages/components/other-components/sh-markdown/tinymce/langs/hu_HU.js +7 -0
  105. package/packages/components/other-components/sh-markdown/tinymce/langs/hy.js +7 -0
  106. package/packages/components/other-components/sh-markdown/tinymce/langs/id.js +7 -0
  107. package/packages/components/other-components/sh-markdown/tinymce/langs/is_IS.js +7 -0
  108. package/packages/components/other-components/sh-markdown/tinymce/langs/it.js +7 -0
  109. package/packages/components/other-components/sh-markdown/tinymce/langs/ja.js +7 -0
  110. package/packages/components/other-components/sh-markdown/tinymce/langs/kab.js +7 -0
  111. package/packages/components/other-components/sh-markdown/tinymce/langs/kk.js +7 -0
  112. package/packages/components/other-components/sh-markdown/tinymce/langs/ko_KR.js +7 -0
  113. package/packages/components/other-components/sh-markdown/tinymce/langs/ku.js +7 -0
  114. package/packages/components/other-components/sh-markdown/tinymce/langs/lt.js +7 -0
  115. package/packages/components/other-components/sh-markdown/tinymce/langs/lv.js +7 -0
  116. package/packages/components/other-components/sh-markdown/tinymce/langs/nb_NO.js +7 -0
  117. package/packages/components/other-components/sh-markdown/tinymce/langs/ne.js +7 -0
  118. package/packages/components/other-components/sh-markdown/tinymce/langs/nl.js +7 -0
  119. package/packages/components/other-components/sh-markdown/tinymce/langs/nl_BE.js +7 -0
  120. package/packages/components/other-components/sh-markdown/tinymce/langs/oc.js +7 -0
  121. package/packages/components/other-components/sh-markdown/tinymce/langs/pl.js +7 -0
  122. package/packages/components/other-components/sh-markdown/tinymce/langs/pt_BR.js +7 -0
  123. package/packages/components/other-components/sh-markdown/tinymce/langs/ro.js +7 -0
  124. package/packages/components/other-components/sh-markdown/tinymce/langs/ru.js +7 -0
  125. package/packages/components/other-components/sh-markdown/tinymce/langs/sk.js +7 -0
  126. package/packages/components/other-components/sh-markdown/tinymce/langs/sl_SI.js +7 -0
  127. package/packages/components/other-components/sh-markdown/tinymce/langs/sq.js +7 -0
  128. package/packages/components/other-components/sh-markdown/tinymce/langs/sr.js +7 -0
  129. package/packages/components/other-components/sh-markdown/tinymce/langs/sv_SE.js +7 -0
  130. package/packages/components/other-components/sh-markdown/tinymce/langs/ta.js +7 -0
  131. package/packages/components/other-components/sh-markdown/tinymce/langs/tg.js +7 -0
  132. package/packages/components/other-components/sh-markdown/tinymce/langs/th_TH.js +7 -0
  133. package/packages/components/other-components/sh-markdown/tinymce/langs/tr.js +7 -0
  134. package/packages/components/other-components/sh-markdown/tinymce/langs/ug.js +7 -0
  135. package/packages/components/other-components/sh-markdown/tinymce/langs/uk.js +7 -0
  136. package/packages/components/other-components/sh-markdown/tinymce/langs/vi.js +7 -0
  137. package/packages/components/other-components/sh-markdown/tinymce/langs/zh-Hans.js +7 -0
  138. package/packages/components/other-components/sh-markdown/tinymce/skins/content/dark/content.css +72 -0
  139. package/packages/components/other-components/sh-markdown/tinymce/skins/content/dark/content.min.css +7 -0
  140. package/packages/components/other-components/sh-markdown/tinymce/skins/content/default/content.css +67 -0
  141. package/packages/components/other-components/sh-markdown/tinymce/skins/content/default/content.min.css +7 -0
  142. package/packages/components/other-components/sh-markdown/tinymce/skins/content/document/content.css +72 -0
  143. package/packages/components/other-components/sh-markdown/tinymce/skins/content/document/content.min.css +7 -0
  144. package/packages/components/other-components/sh-markdown/tinymce/skins/content/writer/content.css +68 -0
  145. package/packages/components/other-components/sh-markdown/tinymce/skins/content/writer/content.min.css +7 -0
  146. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.css +732 -0
  147. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.inline.css +726 -0
  148. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.inline.min.css +7 -0
  149. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.min.css +7 -0
  150. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.mobile.css +29 -0
  151. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/content.mobile.min.css +7 -0
  152. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/fonts/tinymce-mobile.woff +0 -0
  153. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.css +3047 -0
  154. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.min.css +7 -0
  155. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.mobile.css +673 -0
  156. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.mobile.min.css +7 -0
  157. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.shadowdom.css +37 -0
  158. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide/skin.shadowdom.min.css +7 -0
  159. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.css +714 -0
  160. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.inline.css +726 -0
  161. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.inline.min.css +7 -0
  162. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.min.css +7 -0
  163. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.mobile.css +29 -0
  164. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/content.mobile.min.css +7 -0
  165. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/fonts/tinymce-mobile.woff +0 -0
  166. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.css +3047 -0
  167. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.min.css +7 -0
  168. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.mobile.css +673 -0
  169. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.mobile.min.css +7 -0
  170. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +37 -0
  171. package/packages/components/other-components/sh-markdown/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +7 -0
  172. package/packages/components/other-components/sh-menu-card/index.vue +224 -0
  173. package/packages/components/other-components/sh-menu-card/menu-box.vue +68 -0
  174. package/packages/components/other-components/sh-system-tip/index.vue +113 -0
  175. package/packages/css/index.js +6 -0
  176. package/packages/directive/directives.js +27 -0
  177. package/packages/directive/index.js +19 -0
  178. package/packages/directive/module/draggable.js +42 -0
  179. package/packages/index.js +40 -0
  180. package/packages/iview/css/index.scss +32 -0
  181. package/packages/iview/index.js +24 -0
  182. package/packages/mixin/index.js +87 -0
  183. package/packages/vxeTable/css/index.scss +454 -0
  184. package/packages/vxeTable/css/variable.scss +256 -0
  185. package/packages/vxeTable/index.js +178 -0
  186. package/packages/vxeTable/render/cell/vxe-render-checkbox.vue +19 -0
  187. package/packages/vxeTable/render/cell/vxe-render-checkgroup.vue +36 -0
  188. package/packages/vxeTable/render/cell/vxe-render-code.vue +19 -0
  189. package/packages/vxeTable/render/cell/vxe-render-goption.vue +93 -0
  190. package/packages/vxeTable/render/cell/vxe-render-href.vue +11 -0
  191. package/packages/vxeTable/render/cell/vxe-render-img.vue +28 -0
  192. package/packages/vxeTable/render/cell/vxe-render-input.vue +51 -0
  193. package/packages/vxeTable/render/cell/vxe-render-money.vue +25 -0
  194. package/packages/vxeTable/render/cell/vxe-render-progress.vue +19 -0
  195. package/packages/vxeTable/render/cell/vxe-render-radio.vue +19 -0
  196. package/packages/vxeTable/render/cell/vxe-render-radiogroup.vue +36 -0
  197. package/packages/vxeTable/render/cell/vxe-render-select.vue +36 -0
  198. package/packages/vxeTable/render/cell/vxe-render-switch.vue +19 -0
  199. package/packages/vxeTable/render/cell/vxe-render-table.vue +78 -0
  200. package/packages/vxeTable/render/cell/vxe-render-textarea.vue +19 -0
  201. package/packages/vxeTable/render/cell/vxe-render-time.vue +34 -0
  202. package/packages/vxeTable/render/cell/vxe-render-tree.vue +59 -0
  203. package/packages/vxeTable/render/cell/vxe-render-upload.vue +24 -0
  204. package/packages/vxeTable/render/filters/vxe-filter-input.vue +43 -0
  205. package/packages/vxeTable/render/footer/vxe-footer-input.vue +13 -0
  206. package/packages/vxeTable/render/footer/vxe-footer-money.vue +20 -0
  207. package/packages/vxeTable/render/globalRenders.js +491 -0
  208. package/packages/vxeTable/render/header/vxe-header-money.vue +21 -0
  209. package/packages/vxeTable/render/mixin/cell-mixin.js +195 -0
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3
+ * Licensed under the LGPL or a commercial license.
4
+ * For LGPL see License.txt in the project root for license information.
5
+ * For commercial licenses see https://www.tiny.cloud/
6
+ */
7
+ .tinymce-mobile-outer-container{all:initial;display:block}.tinymce-mobile-outer-container *{border:0;box-sizing:initial;cursor:inherit;float:none;line-height:1;margin:0;outline:0;padding:0;-webkit-tap-highlight-color:transparent;text-shadow:none;white-space:nowrap}.tinymce-mobile-icon-arrow-back::before{content:"\e5cd"}.tinymce-mobile-icon-image::before{content:"\e412"}.tinymce-mobile-icon-cancel-circle::before{content:"\e5c9"}.tinymce-mobile-icon-full-dot::before{content:"\e061"}.tinymce-mobile-icon-align-center::before{content:"\e234"}.tinymce-mobile-icon-align-left::before{content:"\e236"}.tinymce-mobile-icon-align-right::before{content:"\e237"}.tinymce-mobile-icon-bold::before{content:"\e238"}.tinymce-mobile-icon-italic::before{content:"\e23f"}.tinymce-mobile-icon-unordered-list::before{content:"\e241"}.tinymce-mobile-icon-ordered-list::before{content:"\e242"}.tinymce-mobile-icon-font-size::before{content:"\e245"}.tinymce-mobile-icon-underline::before{content:"\e249"}.tinymce-mobile-icon-link::before{content:"\e157"}.tinymce-mobile-icon-unlink::before{content:"\eca2"}.tinymce-mobile-icon-color::before{content:"\e891"}.tinymce-mobile-icon-previous::before{content:"\e314"}.tinymce-mobile-icon-next::before{content:"\e315"}.tinymce-mobile-icon-large-font::before,.tinymce-mobile-icon-style-formats::before{content:"\e264"}.tinymce-mobile-icon-undo::before{content:"\e166"}.tinymce-mobile-icon-redo::before{content:"\e15a"}.tinymce-mobile-icon-removeformat::before{content:"\e239"}.tinymce-mobile-icon-small-font::before{content:"\e906"}.tinymce-mobile-format-matches::after,.tinymce-mobile-icon-readonly-back::before{content:"\e5ca"}.tinymce-mobile-icon-small-heading::before{content:"small"}.tinymce-mobile-icon-large-heading::before{content:"large"}.tinymce-mobile-icon-large-heading::before,.tinymce-mobile-icon-small-heading::before{font-family:sans-serif;font-size:80%}.tinymce-mobile-mask-edit-icon::before{content:"\e254"}.tinymce-mobile-icon-back::before{content:"\e5c4"}.tinymce-mobile-icon-heading::before{content:"Headings";font-family:sans-serif;font-size:80%;font-weight:700}.tinymce-mobile-icon-h1::before{content:"H1";font-weight:700}.tinymce-mobile-icon-h2::before{content:"H2";font-weight:700}.tinymce-mobile-icon-h3::before{content:"H3";font-weight:700}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask{align-items:center;display:flex;justify-content:center;background:rgba(51,51,51,.5);height:100%;position:absolute;top:0;width:100%}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container{align-items:center;border-radius:50%;display:flex;flex-direction:column;font-family:sans-serif;font-size:1em;justify-content:space-between}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .mixin-menu-item{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{align-items:center;display:flex;justify-content:center;flex-direction:column;font-size:1em}@media only screen and (min-device-width:700px){.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section{font-size:1.2em}}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon{align-items:center;display:flex;justify-content:center;border-radius:50%;height:2.1em;width:2.1em;background-color:#fff;color:#207ab7}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section .tinymce-mobile-mask-tap-icon::before{content:"\e900";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask .tinymce-mobile-content-container .tinymce-mobile-content-tap-section:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon{z-index:2}.tinymce-mobile-android-container.tinymce-mobile-android-maximized{background:#fff;border:none;bottom:0;display:flex;flex-direction:column;left:0;position:fixed;right:0;top:0}.tinymce-mobile-android-container:not(.tinymce-mobile-android-maximized){position:relative}.tinymce-mobile-android-container .tinymce-mobile-editor-socket{display:flex;flex-grow:1}.tinymce-mobile-android-container .tinymce-mobile-editor-socket iframe{display:flex!important;flex-grow:1;height:auto!important}.tinymce-mobile-android-scroll-reload{overflow:hidden}:not(.tinymce-mobile-readonly-mode)>.tinymce-mobile-android-selection-context-toolbar{margin-top:23px}.tinymce-mobile-toolstrip{background:#fff;display:flex;flex:0 0 auto;z-index:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar{align-items:center;background-color:#fff;border-bottom:1px solid #ccc;display:flex;flex:1;height:2.5em;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex-shrink:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-exit-container{background:#f44336}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group.tinymce-mobile-toolbar-scrollable-group{flex-grow:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button{align-items:center;display:flex;height:80%;margin-left:2px;margin-right:2px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item.tinymce-mobile-toolbar-button.tinymce-mobile-toolbar-button-selected{background:#c8cbcf;color:#ccc}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:first-of-type,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar:not(.tinymce-mobile-context-toolbar) .tinymce-mobile-toolbar-group:last-of-type{background:#207ab7;color:#eceff1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group{align-items:center;display:flex;height:100%;flex:1;padding-bottom:.4em;padding-top:.4em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog{display:flex;min-height:1.5em;overflow:hidden;padding-left:0;padding-right:0;position:relative;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain{display:flex;height:100%;transition:left cubic-bezier(.4,0,1,1) .15s;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen{display:flex;flex:0 0 auto;justify-content:space-between;width:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen input{font-family:Sans-serif}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container{display:flex;flex-grow:1;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container .tinymce-mobile-input-container-x{-ms-grid-row-align:center;align-self:center;background:inherit;border:none;border-radius:50%;color:#888;font-size:.6em;font-weight:700;height:100%;padding-right:2px;position:absolute;right:0}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-input-container.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x{display:none}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous::before{align-items:center;display:flex;font-weight:700;height:100%;padding-left:.5em;padding-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-next.tinymce-mobile-toolbar-navigation-disabled::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serialised-dialog .tinymce-mobile-serialised-dialog-chain .tinymce-mobile-serialised-dialog-screen .tinymce-mobile-icon-previous.tinymce-mobile-toolbar-navigation-disabled::before{visibility:hidden}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item{color:#ccc;font-size:10px;line-height:10px;margin:0 2px;padding-top:3px}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-item.tinymce-mobile-dot-active{color:#c8cbcf}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-large-heading::before{margin-left:.5em;margin-right:.9em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-font::before,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-icon-small-heading::before{margin-left:.9em;margin-right:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider{display:flex;flex:1;margin-left:0;margin-right:0;padding:.28em 0;position:relative}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-size-container .tinymce-mobile-slider-size-line{background:#ccc;display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container{padding-left:2em;padding-right:2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container{align-items:center;display:flex;flex-grow:1;height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-slider-gradient-container .tinymce-mobile-slider-gradient{background:linear-gradient(to right,red 0,#feff00 17%,#0f0 33%,#00feff 50%,#00f 67%,#ff00fe 83%,red 100%);display:flex;flex:1;height:.2em;margin-bottom:.3em;margin-top:.3em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-black{background:#000;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider.tinymce-mobile-hue-slider-container .tinymce-mobile-hue-slider-white{background:#fff;height:.2em;margin-bottom:.3em;margin-top:.3em;width:1.2em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb{align-items:center;background-clip:padding-box;background-color:#455a64;border:.5em solid rgba(136,136,136,0);border-radius:3em;bottom:0;color:#fff;display:flex;height:.5em;justify-content:center;left:-10px;margin:auto;position:absolute;top:0;transition:border 120ms cubic-bezier(.39,.58,.57,1);width:.5em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-slider .tinymce-mobile-slider-thumb.tinymce-mobile-thumb-active{border:.5em solid rgba(136,136,136,.39)}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper,.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group>div{align-items:center;display:flex;height:100%;flex:1}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-serializer-wrapper{flex-direction:column;justify-content:center}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item{align-items:center;display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog){height:100%}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group .tinymce-mobile-dot-container{display:flex}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input{background:#fff;border:none;border-radius:0;color:#455a64;flex-grow:1;font-size:.85em;padding-bottom:.1em;padding-left:5px;padding-top:.1em}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::-webkit-input-placeholder{color:#888}.tinymce-mobile-toolstrip .tinymce-mobile-toolbar.tinymce-mobile-context-toolbar .tinymce-mobile-toolbar-group input::placeholder{color:#888}.tinymce-mobile-dropup{background:#fff;display:flex;overflow:hidden;width:100%}.tinymce-mobile-dropup.tinymce-mobile-dropup-shrinking{transition:height .3s ease-out}.tinymce-mobile-dropup.tinymce-mobile-dropup-growing{transition:height .3s ease-in}.tinymce-mobile-dropup.tinymce-mobile-dropup-closed{flex-grow:0}.tinymce-mobile-dropup.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing){flex-grow:1}.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}@media only screen and (orientation:landscape){.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:200px}}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed){min-height:150px}}.tinymce-mobile-styles-menu{font-family:sans-serif;outline:4px solid #000;overflow:hidden;position:relative;width:100%}.tinymce-mobile-styles-menu [role=menu]{display:flex;flex-direction:column;height:100%;position:absolute;width:100%}.tinymce-mobile-styles-menu [role=menu].transitioning{transition:transform .5s ease-in-out}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item{border-bottom:1px solid #ddd;color:#455a64;cursor:pointer;display:flex;padding:1em 1em;position:relative}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon::before{color:#455a64;content:"\e314";font-family:tinymce-mobile,sans-serif}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu::after{color:#455a64;content:"\e315";font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-item.tinymce-mobile-format-matches::after{font-family:tinymce-mobile,sans-serif;padding-left:1em;padding-right:1em;position:absolute;right:0}.tinymce-mobile-styles-menu .tinymce-mobile-styles-collapser,.tinymce-mobile-styles-menu .tinymce-mobile-styles-separator{align-items:center;background:#fff;border-top:#455a64;color:#455a64;display:flex;min-height:2.5em;padding-left:1em;padding-right:1em}.tinymce-mobile-styles-menu [data-transitioning-destination=before][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=before]{transform:translate(-100%)}.tinymce-mobile-styles-menu [data-transitioning-destination=current][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=current]{transform:translate(0)}.tinymce-mobile-styles-menu [data-transitioning-destination=after][data-transitioning-state],.tinymce-mobile-styles-menu [data-transitioning-state=after]{transform:translate(100%)}@font-face{font-family:tinymce-mobile;font-style:normal;font-weight:400;src:url(fonts/tinymce-mobile.woff?8x92w3) format('woff')}@media (min-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:25px}}@media (max-device-width:700px){.tinymce-mobile-outer-container,.tinymce-mobile-outer-container input{font-size:18px}}.tinymce-mobile-icon{font-family:tinymce-mobile,sans-serif}.mixin-flex-and-centre{align-items:center;display:flex;justify-content:center}.mixin-flex-bar{align-items:center;display:flex;height:100%}.tinymce-mobile-outer-container .tinymce-mobile-editor-socket iframe{background-color:#fff;width:100%}.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{background-color:#207ab7;border-radius:50%;bottom:1em;color:#fff;font-size:1em;height:2.1em;position:fixed;right:2em;width:2.1em;align-items:center;display:flex;justify-content:center}@media only screen and (min-device-width:700px){.tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{font-size:1.2em}}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket{height:300px;overflow:hidden}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-editor-socket iframe{height:100%}.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) .tinymce-mobile-toolstrip{display:none}input[type=file]::-webkit-file-upload-button{display:none}@media only screen and (min-device-width :320px) and (max-device-width :568px) and (orientation :landscape){.tinymce-mobile-ios-container .tinymce-mobile-editor-socket .tinymce-mobile-mask-edit-icon{bottom:50%}}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3
+ * Licensed under the LGPL or a commercial license.
4
+ * For LGPL see License.txt in the project root for license information.
5
+ * For commercial licenses see https://www.tiny.cloud/
6
+ */
7
+ body.tox-dialog__disable-scroll {
8
+ overflow: hidden;
9
+ }
10
+ .tox-fullscreen {
11
+ border: 0;
12
+ height: 100%;
13
+ margin: 0;
14
+ overflow: hidden;
15
+ -ms-scroll-chaining: none;
16
+ overscroll-behavior: none;
17
+ padding: 0;
18
+ touch-action: pinch-zoom;
19
+ width: 100%;
20
+ }
21
+ .tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle {
22
+ display: none;
23
+ }
24
+ .tox.tox-tinymce.tox-fullscreen,
25
+ .tox-shadowhost.tox-fullscreen {
26
+ left: 0;
27
+ position: fixed;
28
+ top: 0;
29
+ z-index: 1200;
30
+ }
31
+ .tox.tox-tinymce.tox-fullscreen {
32
+ background-color: transparent;
33
+ }
34
+ .tox-fullscreen .tox.tox-tinymce-aux,
35
+ .tox-fullscreen ~ .tox.tox-tinymce-aux {
36
+ z-index: 1201;
37
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) Tiny Technologies, Inc. All rights reserved.
3
+ * Licensed under the LGPL or a commercial license.
4
+ * For LGPL see License.txt in the project root for license information.
5
+ * For commercial licenses see https://www.tiny.cloud/
6
+ */
7
+ body.tox-dialog__disable-scroll{overflow:hidden}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}
@@ -0,0 +1,224 @@
1
+ <template>
2
+ <Row :gutter="10">
3
+ <template v-for="(menuitem, menuindex) in resetRenderList(list)" :key="menuindex">
4
+ <Col v-bind="colsConfig">
5
+ <sh-card :icon="menuitem.icon" size="small" :title="menuitem.meta.title" :icon-size="18" :color="getMenuColor(menuindex)" :padding="8" class="menuCard">
6
+ <div :ref="`cardBtnsWrap${menuindex}`" class="cardBtnsWrap">
7
+ <template v-for="cardBtn in menuitem.buttons" :key="cardBtn.value">
8
+ <template v-if="menuitem.children && menuitem.children.length > 0">
9
+ <Poptip
10
+ v-model="cardBtn.visible"
11
+ transfer
12
+ :title="cardBtn.name"
13
+ :width="poptipWidth"
14
+ :placement="cardBtn.placement"
15
+ @on-popper-show="handleFocusBtn(cardBtn, menuindex)"
16
+ @on-popper-hide="handleBlurBtn(cardBtn, menuindex)">
17
+ <div class="cardBtn" :style="getCardStyle(menuindex, cardActive === cardBtn.value + menuindex)" @click="handleCardBtn($event, cardBtn, menuitem, menuindex)">
18
+ <sh-icon :type="cardBtn.icon" :size="16" class="mr-2" :color="getMenuColor(menuindex, cardActive === cardBtn.value + menuindex)" />
19
+ <span>{{ cardBtn.name }}</span>
20
+ <sh-corner v-if="getBudgeNum(menuitem, cardBtn)" v-bind="btnCornerConfig(cardBtn, menuitem, menuindex)"></sh-corner>
21
+ </div>
22
+ <template #content>
23
+ <div class="cardPoptipContent">
24
+ <menuBox v-if="cardActive.startsWith('menus')" :menu="menuitem" first></menuBox>
25
+ <sh-empty v-else></sh-empty>
26
+ </div>
27
+ </template>
28
+ </Poptip>
29
+ </template>
30
+ <template v-else>
31
+ <div class="cardBtn" :style="getCardStyle(menuindex, cardActive === cardBtn.value + menuindex)" @click="handleCardBtn($event, cardBtn, menuitem, menuindex)">
32
+ <sh-icon :type="cardBtn.icon" :size="16" class="mr-2" :color="getMenuColor(menuindex, cardActive === cardBtn.value + menuindex)" />
33
+ <span>{{ cardBtn.name }}</span>
34
+ <sh-corner v-if="getBudgeNum(menuitem, cardBtn)" v-bind="btnCornerConfig(cardBtn, menuitem, menuindex)"></sh-corner>
35
+ </div>
36
+ </template>
37
+ </template>
38
+ </div>
39
+ </sh-card>
40
+ </Col>
41
+ </template>
42
+ </Row>
43
+ </template>
44
+
45
+ <script>
46
+ import menuBox from './menu-box'
47
+ export default {
48
+ name: 'MenuCard',
49
+ components: {
50
+ menuBox
51
+ },
52
+ props: {
53
+ list: {
54
+ type: Array,
55
+ default() {
56
+ return []
57
+ }
58
+ },
59
+ menuColors: {
60
+ type: Array,
61
+ default() {
62
+ return [
63
+ { default: '#e7f1ff', active: '#1890ff' },
64
+ { default: '#FFEFEB', active: '#FF652E' },
65
+ { default: '#F4F1FF', active: '#997BFF' },
66
+ { default: '#E6F6F2', active: '#01A883' },
67
+ { default: '#FFF6E8', active: '#FFA522' },
68
+ { default: '#ffe5e5', active: '#e62340' },
69
+ { default: '#dbffff', active: '#13C2C2' },
70
+ { default: '#e2f1ff', active: '#003366' },
71
+ { default: '#e6cdff', active: '#722ED1' },
72
+ { default: '#ffccd6', active: '#ff5d7a' }
73
+ ]
74
+ }
75
+ },
76
+ cardBtns: {
77
+ type: Array,
78
+ default() {
79
+ return [
80
+ { name: '功能菜单', value: 'menus', icon: 'ios-apps' },
81
+ { name: '操作指南', value: 'guides', icon: 'ios-navigate', placement: 'bottom-end' },
82
+ { name: '待办事项', value: 'todo', icon: 'md-calendar' },
83
+ { name: '已办事项', value: 'untodo', icon: 'ios-calendar', placement: 'bottom-end' }
84
+ ]
85
+ }
86
+ }
87
+ },
88
+ data() {
89
+ return {
90
+ poptipWidth: 320,
91
+ cardActive: ''
92
+ }
93
+ },
94
+ computed: {
95
+ colsConfig() {
96
+ return {
97
+ xs: { span: 24 },
98
+ sm: { span: 24 },
99
+ md: { span: 12 },
100
+ lg: { span: 8 },
101
+ xl: { span: 8 },
102
+ xxl: { span: 6 }
103
+ }
104
+ }
105
+ },
106
+ methods: {
107
+ // 重新生成卡片列表
108
+ resetRenderList(list) {
109
+ return this.$vUtils.mapTree(list, item => {
110
+ return {
111
+ buttons: this.cardBtns.map(btn => {
112
+ return {
113
+ visible: false,
114
+ placement: 'bottom-start',
115
+ ...btn
116
+ }
117
+ }),
118
+ ...item
119
+ }
120
+ })
121
+ },
122
+ // 动态角标配置
123
+ btnCornerConfig(cardBtn, menuitem, menuindex) {
124
+ return {
125
+ title: this.getBudgeNum(menuitem, cardBtn),
126
+ dark: true,
127
+ width: '30',
128
+ height: '30',
129
+ color: this.getMenuColor(menuindex)
130
+ }
131
+ },
132
+ getMenuColor(menuindex, active) {
133
+ return this.getCardStyle(menuindex, true)[active ? 'color' : 'backgroundColor']
134
+ },
135
+ getCardStyle(index, active) {
136
+ let themeLength = this.menuColors.length
137
+ let backgroundColor = this.menuColors[index % themeLength][active ? 'active' : 'default']
138
+ let color = active ? '#fff' : ''
139
+ return { backgroundColor, color }
140
+ },
141
+ getBudgeNum(menu, card) {
142
+ switch (card.value) {
143
+ case 'menus':
144
+ return this.$vUtils.toTreeArray(menu.children || []).length
145
+ default:
146
+ return ''
147
+ }
148
+ },
149
+ handleCardBtn($event, cardBtn, menu, menuIndex) {
150
+ if (!menu.children || menu.children.length < 1) {
151
+ cardBtn.visible = false
152
+ return this.routerTo(menu)
153
+ }
154
+ let windowWidth = window.document.body.clientWidth
155
+ let selfOffsetRight = windowWidth - $event.pageX
156
+ cardBtn.placement = selfOffsetRight < this.poptipWidth ? 'bottom-end' : 'bottom-start'
157
+ cardBtn.visible = true
158
+ },
159
+ handleFocusBtn(card, index) {
160
+ this.cardActive = card.value + index
161
+ },
162
+ handleBlurBtn(card, index) {
163
+ if (this.cardActive === card.value + index) this.cardActive = ''
164
+ }
165
+ }
166
+ }
167
+ </script>
168
+
169
+ <style lang="scss">
170
+ .menuCard {
171
+ margin-bottom: 10px;
172
+ }
173
+ .cardPoptipContent {
174
+ max-height: 400px;
175
+ overflow: auto;
176
+ }
177
+ .cardBtnsWrap {
178
+ position: relative;
179
+ display: flex;
180
+ justify-content: space-between;
181
+ align-items: center;
182
+ flex-wrap: wrap;
183
+ > div {
184
+ width: 47%;
185
+ display: inline-flex;
186
+ align-items: center;
187
+ margin: 1.5%;
188
+ > .ivu-poptip-rel,
189
+ > .ivu-tooltip-rel,
190
+ > .ivu-dropdown-rel {
191
+ width: 100%;
192
+ display: block;
193
+ }
194
+ }
195
+ .cardBtn {
196
+ display: flex;
197
+ align-items: center;
198
+ background-color: #eee;
199
+ font-size: 1.1em;
200
+ padding: 10px;
201
+ box-sizing: border-box;
202
+ cursor: pointer;
203
+ position: relative;
204
+ &:hover {
205
+ opacity: 0.8;
206
+ }
207
+ }
208
+ }
209
+ .menuBoxWrap {
210
+ padding-left: 2em;
211
+ position: relative;
212
+ &.first {
213
+ padding-left: 0;
214
+ }
215
+ .menuBoxFilter {
216
+ margin-bottom: 5px;
217
+ }
218
+ .menuBoxTitle {
219
+ display: block;
220
+ padding: 5px 0;
221
+ cursor: pointer;
222
+ }
223
+ }
224
+ </style>
@@ -0,0 +1,68 @@
1
+ <template>
2
+ <div class="menuBoxWrap" :class="{ first }">
3
+ <template v-if="menus.length > 0">
4
+ <div v-if="first" class="menuBoxFilter">
5
+ <vxe-input v-model="filterText" size="mini" class="w-100" clearable placeholder="请输入关键词" prefix-icon="vxe-icon-search"></vxe-input>
6
+ </div>
7
+ <template v-for="(item, itemindex) in menuBoxList" :key="itemindex">
8
+ <a class="menuBoxTitle" @click="routerTo(item)">{{ formatTitle(item) }}</a>
9
+ <menuBox v-if="hasChildren(item)" :menu="item"></menuBox>
10
+ </template>
11
+ </template>
12
+ <sh-empty v-else></sh-empty>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ export default {
18
+ name: 'MenuBox',
19
+ props: {
20
+ menu: {
21
+ type: [Object, Array],
22
+ default() {
23
+ return {}
24
+ }
25
+ },
26
+ first: {
27
+ type: Boolean
28
+ }
29
+ },
30
+ data() {
31
+ return {
32
+ filterText: '',
33
+ filterData: null,
34
+ filterChangeDebounce: this.$vUtils.debounce(this.handleMenuFilter, 500)
35
+ }
36
+ },
37
+ computed: {
38
+ menus() {
39
+ return Array.isArray(this.menu) ? this.menu : this.menu?.children || []
40
+ },
41
+ menuBoxList() {
42
+ return this.filterData || this.menus
43
+ }
44
+ },
45
+ watch: {
46
+ filterText: {
47
+ handler(newvalue, oldValue) {
48
+ this.filterChangeDebounce(newvalue)
49
+ }
50
+ }
51
+ },
52
+ methods: {
53
+ // 全局搜索过滤事件
54
+ handleMenuFilter(text) {
55
+ const that = this
56
+ let filterText = that.$vUtils.toValueString(text).trim().toLowerCase()
57
+ let filterData = null
58
+ if (filterText) {
59
+ filterData = that.$vUtils.searchTree(that.menus, menu => this.formatTitle(menu).indexOf(filterText) > -1)
60
+ }
61
+ if (that.filterData === null && !filterText) {
62
+ return
63
+ }
64
+ that.filterData = filterData
65
+ }
66
+ }
67
+ }
68
+ </script>
@@ -0,0 +1,113 @@
1
+ <template>
2
+ <sh-header size="large">
3
+ <template #title>
4
+ <div v-html="headerTitle.title"></div>
5
+ </template>
6
+ <div>{{ headerTitle.desc }}</div>
7
+ </sh-header>
8
+ </template>
9
+
10
+ <script>
11
+ export default {
12
+ name: 'SystemTip',
13
+ props: {
14
+ name: {
15
+ type: String,
16
+ default: ''
17
+ }
18
+ },
19
+ data() {
20
+ return {
21
+ nowdate: new Date()
22
+ }
23
+ },
24
+ computed: {
25
+ headerDate() {
26
+ let hours = this.nowdate.getHours()
27
+ let month = this.nowdate.getMonth() + 1
28
+ let day = this.nowdate.getDate()
29
+ let week = this.nowdate.getDay()
30
+ return { date: this.nowdate, hours, month, day, week }
31
+ },
32
+ headerWeek() {
33
+ let { week } = this.headerDate
34
+ let tw = ''
35
+ switch (week) {
36
+ case 0:
37
+ tw = '星期天'
38
+ break
39
+ case 1:
40
+ tw = '星期一'
41
+ break
42
+ case 2:
43
+ tw = '星期二'
44
+ break
45
+ case 3:
46
+ tw = '星期三'
47
+ break
48
+ case 4:
49
+ tw = '星期四'
50
+ break
51
+ case 5:
52
+ tw = '星期五'
53
+ break
54
+ case 6:
55
+ tw = '星期六'
56
+ break
57
+ }
58
+ return tw
59
+ },
60
+ headerTitle() {
61
+ let { hours } = this.headerDate
62
+ let title = ''
63
+ let desc = ''
64
+ switch (true) {
65
+ case hours === 0 || (hours >= 23 && hours <= 24):
66
+ title = '午夜啦,早点休息喔'
67
+ desc = '思念不因劳累而改变,问候不因疲惫而变懒,祝福不因休息而变缓,关怀随星星眨眼,牵挂在深夜依然,轻轻道声:祝你晚安!'
68
+ break
69
+ case hours >= 1 && hours <= 4:
70
+ title = '凌晨啦,注意身体喔'
71
+ desc = '时间不早啦,记得早点休息,保证睡眠质量!'
72
+ break
73
+ case hours >= 5 && hours <= 6:
74
+ title = '清晨啦,准备迎接新的一天吧'
75
+ desc = '睁开眼,缓一缓,快起床,伸懒腰;笑一笑,美好的一天又开始了.早安,祝你今天好心情,工作顺利,生活甜美!'
76
+ break
77
+ case hours >= 7 && hours <= 8:
78
+ title = '早上好,记得吃早餐喔'
79
+ desc = '一日之计在于晨,愿我这阳光初露时的小小问候能将快乐带给你,愿你用快乐开启,用微笑结束这美好的一天.'
80
+ break
81
+ case hours >= 9 && hours <= 10:
82
+ title = '上午好,时刻保持好心情呀'
83
+ desc = '上午好,一束阳光照在身,祝你天天都开心,财神家中去,梦想变成真,今天中大奖,明天去上任.'
84
+ break
85
+ case hours >= 11 && hours <= 12:
86
+ title = '中午好,午餐时间到啦'
87
+ desc = '中午好,到了吃午餐的时间了,吃完午餐记得午睡一小会,保证下午可以有良好的精神状态.'
88
+ break
89
+ case hours >= 13 && hours <= 16:
90
+ title = '下午好,别太辛苦了'
91
+ desc = '送各位一杯下午茶:已祝福为叶,叮咛做花,热情为水,包容当杯,喝出你一天好心情和一生的幸福,下午愉快!'
92
+ break
93
+ case hours >= 17 && hours <= 18:
94
+ title = '傍晚啦,看看窗外的风景吧'
95
+ desc = '工作是做不完的,身体可是累的垮的!看看外面的天空吧!'
96
+ break
97
+ case hours >= 19 && hours <= 22:
98
+ title = '晚上好,准备好进入梦乡啦'
99
+ desc = '睡前请把窗户打开,让"幸福"进来,睡前请把"心情"打开,让"快乐"入驻,睡前请把"思想"放飞,让甜蜜入梦!今晚祝你好梦成真,幸福一生!晚安!'
100
+ break
101
+ }
102
+ return { title: `Hi! <span class="primary">${this.name}</span> ${title}`, desc }
103
+ }
104
+ },
105
+ watch: {},
106
+ created() {},
107
+ mounted() {},
108
+ beforeUnmount() {},
109
+ methods: {}
110
+ }
111
+ </script>
112
+
113
+ <style lang="scss" scoped></style>
@@ -0,0 +1,6 @@
1
+ import '../assets/icons/iconfont.css'
2
+
3
+ import '../assets/css/theme.scss'
4
+ import '../assets/css/loader.scss'
5
+ import '../assets/css/main.scss'
6
+ import '../assets/css/animated.scss'
@@ -0,0 +1,27 @@
1
+ import draggable from './module/draggable'
2
+ import { utils } from 'sh-tools'
3
+ import ripple from 'vue-ripple-directive'
4
+ ripple.color = 'rgba(0, 0, 0, 0.15)'
5
+
6
+ const preventClick = {
7
+ inserted(el, binding) {
8
+ el.addEventListener('click', () => {
9
+ if (!el.disabled) {
10
+ el.disabled = true
11
+ if (!domUtil.hasClass(el, 'prevent--disabled')) utils.addClass(el, 'prevent--disabled')
12
+ setTimeout(() => {
13
+ el.disabled = false
14
+ if (domUtil.hasClass(el, 'prevent--disabled')) utils.removeClass(el, 'prevent--disabled')
15
+ }, binding.value || 1500)
16
+ }
17
+ })
18
+ }
19
+ }
20
+
21
+ const directives = {
22
+ draggable,
23
+ preventClick,
24
+ ripple
25
+ }
26
+
27
+ export default directives
@@ -0,0 +1,19 @@
1
+ import directive from './directives'
2
+
3
+ const index = {
4
+ install: function (Vue) {
5
+ /**
6
+ * 拖拽指令 v-draggable="options"
7
+ * options = {
8
+ * trigger: /这里传入作为拖拽触发器的CSS选择器/,
9
+ * body: /这里传入需要移动容器的CSS选择器/,
10
+ * recover: /拖动结束之后是否恢复到原来的位置/
11
+ * }
12
+ */
13
+ Vue.directive('draggable', directive.draggable)
14
+ Vue.directive('debounce', directive.preventClick)
15
+ Vue.directive('ripple', directive.ripple)
16
+ }
17
+ }
18
+
19
+ export default index
@@ -0,0 +1,42 @@
1
+ import { utils } from 'sh-tools'
2
+
3
+ export default {
4
+ inserted: (el, binding, vnode) => {
5
+ let triggerDom = document.querySelector(binding.value.trigger)
6
+ triggerDom.style.cursor = 'move'
7
+ let bodyDom = document.querySelector(binding.value.body)
8
+ let pageX = 0
9
+ let pageY = 0
10
+ let transformX = 0
11
+ let transformY = 0
12
+ let canMove = false
13
+ const handleMousedown = e => {
14
+ let transform = /\(.*\)/.exec(bodyDom.style.transform)
15
+ if (transform) {
16
+ transform = transform[0].slice(1, transform[0].length - 1)
17
+ let splitxy = transform.split('px, ')
18
+ transformX = parseFloat(splitxy[0])
19
+ transformY = parseFloat(splitxy[1].split('px')[0])
20
+ }
21
+ pageX = e.pageX
22
+ pageY = e.pageY
23
+ canMove = true
24
+ }
25
+ const handleMousemove = e => {
26
+ let xOffset = e.pageX - pageX + transformX
27
+ let yOffset = e.pageY - pageY + transformY
28
+ if (canMove) bodyDom.style.transform = `translate(${xOffset}px, ${yOffset}px)`
29
+ }
30
+ const handleMouseup = e => {
31
+ canMove = false
32
+ }
33
+ utils.on(triggerDom, 'mousedown', handleMousedown)
34
+ utils.on(document, 'mousemove', handleMousemove)
35
+ utils.on(document, 'mouseup', handleMouseup)
36
+ },
37
+ update: (el, binding, vnode) => {
38
+ if (!binding.value.recover) return
39
+ let bodyDom = document.querySelector(binding.value.body)
40
+ bodyDom.style.transform = ''
41
+ }
42
+ }
@@ -0,0 +1,40 @@
1
+ import packageConfig from '../package.json'
2
+ import { utils } from 'sh-tools'
3
+ import { VueMasonryPlugin } from 'vue-masonry'
4
+ import directive from './directive/index'
5
+ import iview from './iview/index'
6
+ import vxeTable from './vxeTable/index'
7
+ import globalComponents from './components/index'
8
+ import mixin from './mixin/index'
9
+ import './css/index'
10
+
11
+ // 全局公共封装组件
12
+ const install = function (root) {
13
+ if (install.installed) return
14
+ root.config.globalProperties.$vUtils = utils
15
+ root.mixin(mixin)
16
+ root.use(VueMasonryPlugin)
17
+ root.use(directive)
18
+ root.use(iview)
19
+ root.use(vxeTable)
20
+ root.use(globalComponents)
21
+ }
22
+
23
+ const ShUI = {
24
+ name: packageConfig.name,
25
+ version: packageConfig.version,
26
+ install
27
+ }
28
+
29
+ let consInfo = ''
30
+ let defaultBg = 'padding: 5px; color: #111; background: #f5f7f9; font-weight: bold;'
31
+ let tagBg1 = 'padding: 5px; color: #fff; background: #8e2eff; font-weight: bold;'
32
+ let tagBg2 = 'padding: 5px; color: #333; background: #ffee2e; font-weight: bold;'
33
+ if ((window.navigator.language || window.navigator.browserLanguage).toLowerCase() === 'zh-cn') {
34
+ consInfo = `%c由%c${ShUI.name}%c提供技术支持,版本%c${ShUI.version}%c`
35
+ } else {
36
+ consInfo = `%cPowered by%c${ShUI.name}%c,version%c${ShUI.version}%c`
37
+ }
38
+ console.info(consInfo, defaultBg, tagBg1, defaultBg, tagBg2, defaultBg)
39
+
40
+ export default ShUI
@@ -0,0 +1,32 @@
1
+ $primary-color : #1890ff; // 全局主色
2
+ $danger-color : #ff3552; // 危险色
3
+ $link-color : #1890ff; // 链接色
4
+ $success-color : #25ad4a; // 成功色
5
+ $warning-color : #faad14; // 警告色
6
+ $error-color : #f5222d; // 错误色
7
+ $info-color : #2db7f5; // 信息色
8
+
9
+ .ivu{
10
+ &-tabs-tab,
11
+ &-btn
12
+ {
13
+ border-radius: var(--border-radius) !important;
14
+ }
15
+ }
16
+
17
+
18
+ // 加载动画
19
+ .sh-circular-spin {
20
+ width: 30px;
21
+ height: 30px;
22
+ animation: circularRotate 2s linear infinite;
23
+ transform-origin: center center;
24
+ display: inline-flex;
25
+ align-items: center;
26
+ justify-content: center;
27
+ }
28
+ @keyframes circularRotate {
29
+ from { transform: rotate(0deg); }
30
+ 50% { transform: rotate(180deg); }
31
+ to { transform: rotate(360deg); }
32
+ }