xs-common-plugins 1.2.4 → 1.2.5

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 (188) hide show
  1. package/README.md +298 -298
  2. package/common.js +110 -110
  3. package/index.js +1 -1
  4. package/package.json +16 -16
  5. package/src/App.vue +12 -12
  6. package/src/common/common.js +551 -549
  7. package/src/common/createMenuId.js +7 -7
  8. package/src/common/uploadImgToBase64.js +12 -12
  9. package/src/common/utils.js +95 -95
  10. package/src/components/Breadcrumb/index.vue +81 -81
  11. package/src/components/CheckBox_Cmp/index.vue +62 -62
  12. package/src/components/Col_TableCell/data.js +4 -4
  13. package/src/components/Col_TableCell/index.scss +77 -77
  14. package/src/components/Col_TableCell/index.vue +43 -43
  15. package/src/components/Col_TableCell/methods.js +19 -19
  16. package/src/components/FormItem/index.vue +92 -92
  17. package/src/components/Hamburger/index.vue +44 -44
  18. package/src/components/ReportCmp/data.js +3 -3
  19. package/src/components/ReportCmp/index.scss +29 -29
  20. package/src/components/ReportCmp/index.vue +76 -76
  21. package/src/components/ReportCmp/methods.js +30 -30
  22. package/src/components/Search/cascader/data.js +3 -3
  23. package/src/components/Search/cascader/index.scss +17 -17
  24. package/src/components/Search/cascader/index.vue +96 -96
  25. package/src/components/Search/cascader/methods.js +41 -41
  26. package/src/components/Search/data.js +5 -5
  27. package/src/components/Search/hk_cascader/index.vue +104 -104
  28. package/src/components/Search/hk_cascader_qudao/index.vue +94 -94
  29. package/src/components/Search/index.scss +219 -219
  30. package/src/components/Search/index.vue +410 -410
  31. package/src/components/Search/methods.js +86 -86
  32. package/src/components/Search/product_option/data.js +3 -3
  33. package/src/components/Search/product_option/index.scss +68 -68
  34. package/src/components/Search/product_option/index.vue +412 -412
  35. package/src/components/Search/product_option/methods.js +58 -58
  36. package/src/components/Search/select/data.js +3 -3
  37. package/src/components/Search/select/index.scss +2 -2
  38. package/src/components/Search/select/index.vue +114 -114
  39. package/src/components/Search/select/methods.js +51 -51
  40. package/src/components/Search_filter/data.js +5 -5
  41. package/src/components/Search_filter/index.scss +104 -104
  42. package/src/components/Search_filter/index.vue +88 -88
  43. package/src/components/Search_filter/methods.js +43 -43
  44. package/src/components/TableCmp/data.js +3 -3
  45. package/src/components/TableCmp/index.scss +22 -22
  46. package/src/components/TableCmp/index.vue +98 -98
  47. package/src/components/TableCmp/methods.js +35 -35
  48. package/src/components/TableItem/TableItem.vue +55 -55
  49. package/src/components/TextOVer/index.vue +55 -55
  50. package/src/components/UploadImg/index.vue +177 -177
  51. package/src/components/home/BarChart.vue +118 -118
  52. package/src/components/home/LineChart.vue +146 -146
  53. package/src/components/home/Panel.vue +135 -135
  54. package/src/components/home/PanelGroup.vue +146 -146
  55. package/src/components/home/PieChart.vue +81 -81
  56. package/src/components/home/RaddarChart.vue +119 -119
  57. package/src/components/home/TabLayout.vue +88 -88
  58. package/src/components/home/TableList.vue +158 -158
  59. package/src/components/home/Teng.vue +248 -248
  60. package/src/components/home/TransactionTable.vue +49 -49
  61. package/src/components/home/mixins/resize.js +55 -55
  62. package/src/components/im/index.vue +155 -155
  63. package/src/components/im/methods.js +25 -25
  64. package/src/components/im/pages/chatList/index.vue +45 -45
  65. package/src/components/im/pages/chatRoom/index.vue +159 -159
  66. package/src/components/image-singleUpload/data.js +3 -3
  67. package/src/components/image-singleUpload/index.scss +26 -26
  68. package/src/components/image-singleUpload/index.vue +56 -56
  69. package/src/components/image-singleUpload/methods.js +30 -30
  70. package/src/components/image-upload/data.js +7 -7
  71. package/src/components/image-upload/index.vue +41 -41
  72. package/src/components/image-upload/methods.js +80 -80
  73. package/src/components/multiple-image-upload/data.js +11 -11
  74. package/src/components/multiple-image-upload/index.scss +8 -8
  75. package/src/components/multiple-image-upload/index.vue +63 -63
  76. package/src/components/multiple-image-upload/methods.js +45 -45
  77. package/src/components/pro-upload/data.js +3 -3
  78. package/src/components/pro-upload/index.scss +4 -4
  79. package/src/components/pro-upload/index.vue +89 -89
  80. package/src/components/pro-upload/methods.js +86 -86
  81. package/src/components/report_set/index.scss +44 -44
  82. package/src/components/report_set/index.vue +153 -153
  83. package/src/components/search-page/src/index.scss +5 -5
  84. package/src/components/search-page/src/index.vue +76 -76
  85. package/src/components/search-page/src/methods.js +36 -36
  86. package/src/components/xsSelect/index.vue +125 -125
  87. package/src/mixin/dialog.js +31 -31
  88. package/src/mixin/dlg.js +46 -46
  89. package/src/mixin/keepAlive.js +53 -53
  90. package/src/mixin/newDialog.js +19 -19
  91. package/src/mixin/report.js +82 -82
  92. package/src/mixin/table.js +93 -93
  93. package/src/mixin/tableCell/colTableCell_analysis.js +103 -103
  94. package/src/mixin/upload.js +22 -22
  95. package/src/mixin/vmodel.js +26 -26
  96. package/src/plugins/im/components/chat/index.scss +163 -163
  97. package/src/plugins/im/components/chat/index.vue +144 -144
  98. package/src/plugins/im/components/chat/methods.js +149 -149
  99. package/src/plugins/im/components/conversation-list/index.css +91 -91
  100. package/src/plugins/im/components/conversation-list/index.json +3 -3
  101. package/src/plugins/im/components/conversation-list/index.vue +89 -89
  102. package/src/plugins/im/components/loading/loading.css +69 -69
  103. package/src/plugins/im/components/loading/loading.json +3 -3
  104. package/src/plugins/im/components/loading/loading.vue +14 -14
  105. package/src/plugins/im/components/msg-image/index.json +3 -3
  106. package/src/plugins/im/components/msg-image/index.vue +40 -40
  107. package/src/plugins/im/components/msg-text/index.json +3 -3
  108. package/src/plugins/im/components/msg-text/index.vue +24 -24
  109. package/src/plugins/im/components/send-msg/index.scss +164 -164
  110. package/src/plugins/im/components/send-msg/index.vue +107 -107
  111. package/src/plugins/im/components/send-msg/methods.js +125 -125
  112. package/src/plugins/im/components/template-message/index.vue +76 -76
  113. package/src/plugins/im/components/without.vue +19 -19
  114. package/src/plugins/im/im-plug-in/Protobuf-2.3.7.min.js +1 -1
  115. package/src/plugins/im/im-plug-in/RongCallLib-3.1.5.min.js +74 -74
  116. package/src/plugins/im/im-plug-in/RongIMLib-4.1.0.js +17420 -17420
  117. package/src/plugins/im/im-plug-in/init.js +216 -216
  118. package/src/plugins/im/im-plug-in/qiniu.js +266 -266
  119. package/src/plugins/im/im-plug-in/send-data.js +431 -431
  120. package/src/plugins/im/im-plug-in/upload.js +232 -232
  121. package/src/plugins/im/index.js +31 -31
  122. package/src/plugins/im/lib/RongIMEmoji-2.2.6.js +332 -332
  123. package/src/plugins/im/lib/RongIMLib-3.0.7.2-dev.js +11635 -11635
  124. package/src/plugins/im/lib/RongIMLib-3.0.7.2-dev.min.js +6 -6
  125. package/src/plugins/im/utils/services.js +625 -625
  126. package/src/plugins/im/utils/underscore-1.8.3.js +1531 -1531
  127. package/src/plugins/im/utils/utils.js +149 -149
  128. package/src/plugins/index.js +60 -60
  129. package/src/plugins/row-col-cmp/colCmp/data.js +3 -3
  130. package/src/plugins/row-col-cmp/colCmp/index.scss +50 -50
  131. package/src/plugins/row-col-cmp/colCmp/index.vue +53 -53
  132. package/src/plugins/row-col-cmp/colCmp/methods.js +25 -25
  133. package/src/plugins/row-col-cmp/index.js +20 -20
  134. package/src/plugins/row-col-cmp/rowCmp/data.js +3 -3
  135. package/src/plugins/row-col-cmp/rowCmp/index.scss +3 -3
  136. package/src/plugins/row-col-cmp/rowCmp/index.vue +43 -43
  137. package/src/plugins/row-col-cmp/rowCmp/methods.js +29 -29
  138. package/src/router/index.js +58 -58
  139. package/src/router/permission.js +126 -126
  140. package/src/store/getters.js +13 -13
  141. package/src/store/index.js +60 -60
  142. package/src/store/modules/app.js +55 -55
  143. package/src/store/modules/dic.js +74 -74
  144. package/src/store/modules/oss.js +40 -40
  145. package/src/store/modules/settings.js +28 -28
  146. package/src/store/modules/tagsView.js +160 -160
  147. package/src/store/modules/user.js +94 -94
  148. package/src/store/modules/widgetdata.js +42 -42
  149. package/src/styles/element-ui.scss +49 -49
  150. package/src/styles/index.scss +91 -91
  151. package/src/styles/mixin.scss +28 -28
  152. package/src/styles/sidebar.scss +210 -210
  153. package/src/styles/table.scss +90 -90
  154. package/src/styles/transition.scss +48 -48
  155. package/src/styles/variables.scss +25 -25
  156. package/src/utils/api.js +54 -54
  157. package/src/utils/auth.js +38 -38
  158. package/src/utils/concat_batch_btns.js +88 -88
  159. package/src/utils/enum.js +150 -150
  160. package/src/utils/filter.js +5 -5
  161. package/src/utils/filterRules.js +55 -55
  162. package/src/utils/get-page-title.js +10 -10
  163. package/src/utils/getMenu.js +82 -82
  164. package/src/utils/global-config.js +15 -15
  165. package/src/utils/global_directive.js +10 -10
  166. package/src/utils/index.js +332 -332
  167. package/src/utils/localStorage.js +21 -21
  168. package/src/utils/ossService.js +55 -55
  169. package/src/utils/prototype.js +46 -46
  170. package/src/utils/search.js +33 -33
  171. package/src/utils/signalR.js +24 -24
  172. package/src/utils/validate.js +20 -20
  173. package/src/views/callback/index.vue +35 -35
  174. package/src/views/home/index.vue +25 -25
  175. package/src/views/layout/components/AllSearch/index.vue +44 -44
  176. package/src/views/layout/components/AppMain.vue +66 -66
  177. package/src/views/layout/components/Sidebar/FixiOSBug.js +26 -26
  178. package/src/views/layout/components/Sidebar/Item.vue +28 -28
  179. package/src/views/layout/components/Sidebar/Link.vue +34 -34
  180. package/src/views/layout/components/Sidebar/Logo.vue +79 -79
  181. package/src/views/layout/components/Sidebar/SidebarItem.vue +67 -67
  182. package/src/views/layout/components/Sidebar/index.vue +114 -114
  183. package/src/views/layout/components/TagsView/ScrollPane.vue +94 -94
  184. package/src/views/layout/components/TagsView/index.vue +330 -330
  185. package/src/views/layout/components/index.js +3 -3
  186. package/src/views/layout/index.vue +107 -107
  187. package/src/views/redirect/index.vue +12 -12
  188. package/src/views/slienceAuth/index.vue +42 -42
@@ -1,66 +1,66 @@
1
- <template>
2
- <section class="app-main">
3
- <keep-alive>
4
- <router-view v-if="!$route.meta.noCache && isRouterAlive" :key="key" />
5
- </keep-alive>
6
- <router-view v-if="$route.meta.noCache" :key="key" />
7
- </section>
8
- </template>
9
-
10
- <script>
11
- export default {
12
- name: "AppMain",
13
- data() {
14
- return {
15
- framepath: "",
16
- isRouterAlive: true,
17
- };
18
- },
19
- provide() {
20
- return {
21
- reload: this.reload,
22
- };
23
- },
24
- computed: {
25
- key() {
26
- return this.$route.path;
27
- },
28
- },
29
- methods: {
30
- reload() {
31
- this.isRouterAlive = false;
32
- this.$nextTick(function () {
33
- this.isRouterAlive = true;
34
- });
35
- },
36
- },
37
- };
38
- </script>
39
-
40
- <style lang="scss" scoped>
41
- .app-main {
42
- display: flex;
43
- /*50 = navbar */
44
- height: calc(100vh - 85px);
45
- width: 100%;
46
- position: relative;
47
- overflow: auto;
48
- }
49
- .footer {
50
- position: absolute;
51
- bottom: -10px;
52
- line-height: 1.5;
53
- height: 50px;
54
- }
55
- .fixed-header + .app-main {
56
- padding-top: 50px;
57
- }
58
- </style>
59
-
60
- <style lang="scss">
61
- .el-popup-parent--hidden {
62
- .fixed-header {
63
- padding-right: 15px;
64
- }
65
- }
66
- </style>
1
+ <template>
2
+ <section class="app-main">
3
+ <keep-alive>
4
+ <router-view v-if="!$route.meta.noCache && isRouterAlive" :key="key" />
5
+ </keep-alive>
6
+ <router-view v-if="$route.meta.noCache" :key="key" />
7
+ </section>
8
+ </template>
9
+
10
+ <script>
11
+ export default {
12
+ name: "AppMain",
13
+ data() {
14
+ return {
15
+ framepath: "",
16
+ isRouterAlive: true,
17
+ };
18
+ },
19
+ provide() {
20
+ return {
21
+ reload: this.reload,
22
+ };
23
+ },
24
+ computed: {
25
+ key() {
26
+ return this.$route.path;
27
+ },
28
+ },
29
+ methods: {
30
+ reload() {
31
+ this.isRouterAlive = false;
32
+ this.$nextTick(function () {
33
+ this.isRouterAlive = true;
34
+ });
35
+ },
36
+ },
37
+ };
38
+ </script>
39
+
40
+ <style lang="scss" scoped>
41
+ .app-main {
42
+ display: flex;
43
+ /*50 = navbar */
44
+ height: calc(100vh - 85px);
45
+ width: 100%;
46
+ position: relative;
47
+ overflow: auto;
48
+ }
49
+ .footer {
50
+ position: absolute;
51
+ bottom: -10px;
52
+ line-height: 1.5;
53
+ height: 50px;
54
+ }
55
+ .fixed-header + .app-main {
56
+ padding-top: 50px;
57
+ }
58
+ </style>
59
+
60
+ <style lang="scss">
61
+ .el-popup-parent--hidden {
62
+ .fixed-header {
63
+ padding-right: 15px;
64
+ }
65
+ }
66
+ </style>
@@ -1,26 +1,26 @@
1
- export default {
2
- computed: {
3
- device() {
4
- return this.$store.state.app.device
5
- }
6
- },
7
- mounted() {
8
- // In order to fix the click on menu on the ios device will trigger the mouseleave bug
9
- // https://github.com/PanJiaChen/vue-element-admin/issues/1135
10
- this.fixBugIniOS()
11
- },
12
- methods: {
13
- fixBugIniOS() {
14
- const $subMenu = this.$refs.subMenu
15
- if ($subMenu) {
16
- const handleMouseleave = $subMenu.handleMouseleave
17
- $subMenu.handleMouseleave = (e) => {
18
- if (this.device === 'mobile') {
19
- return
20
- }
21
- handleMouseleave(e)
22
- }
23
- }
24
- }
25
- }
26
- }
1
+ export default {
2
+ computed: {
3
+ device() {
4
+ return this.$store.state.app.device
5
+ }
6
+ },
7
+ mounted() {
8
+ // In order to fix the click on menu on the ios device will trigger the mouseleave bug
9
+ // https://github.com/PanJiaChen/vue-element-admin/issues/1135
10
+ this.fixBugIniOS()
11
+ },
12
+ methods: {
13
+ fixBugIniOS() {
14
+ const $subMenu = this.$refs.subMenu
15
+ if ($subMenu) {
16
+ const handleMouseleave = $subMenu.handleMouseleave
17
+ $subMenu.handleMouseleave = (e) => {
18
+ if (this.device === 'mobile') {
19
+ return
20
+ }
21
+ handleMouseleave(e)
22
+ }
23
+ }
24
+ }
25
+ }
26
+ }
@@ -1,28 +1,28 @@
1
- <script>
2
- export default {
3
- name: 'MenuItem',
4
- functional: true,
5
- props: {
6
- icon: {
7
- type: String,
8
- default: ''
9
- },
10
- title: {
11
- type: String,
12
- default: ''
13
- }
14
- },
15
- render(h, context) {
16
- const { icon, title } = context.props
17
- const vnodes = []
18
-
19
- if (icon) {
20
- vnodes.push(<i class={[icon, 'iconfont']} ></i>)
21
- }
22
- if (title) {
23
- vnodes.push(<span slot='title' style="marginLeft:10px">{(title)}</span>)
24
- }
25
- return vnodes
26
- }
27
- }
28
- </script>
1
+ <script>
2
+ export default {
3
+ name: 'MenuItem',
4
+ functional: true,
5
+ props: {
6
+ icon: {
7
+ type: String,
8
+ default: ''
9
+ },
10
+ title: {
11
+ type: String,
12
+ default: ''
13
+ }
14
+ },
15
+ render(h, context) {
16
+ const { icon, title } = context.props
17
+ const vnodes = []
18
+
19
+ if (icon) {
20
+ vnodes.push(<i class={[icon, 'iconfont']} ></i>)
21
+ }
22
+ if (title) {
23
+ vnodes.push(<span slot='title' style="marginLeft:10px">{(title)}</span>)
24
+ }
25
+ return vnodes
26
+ }
27
+ }
28
+ </script>
@@ -1,34 +1,34 @@
1
-
2
- <template>
3
- <!-- eslint-disable vue/require-component-is -->
4
- <component v-bind="linkProps(to)">
5
- <slot />
6
- </component>
7
- </template>
8
-
9
- <script>
10
- import { isExternal } from "@/utils/validate";
11
-
12
- export default {
13
- props: {
14
- to: {
15
- type: String,
16
- required: true
17
- }
18
- },
19
- methods: {
20
- linkProps(url) {
21
- if (isExternal(url)) {
22
- return {
23
- is: "a",
24
- href: url,
25
- };
26
- }
27
- return {
28
- is: "router-link",
29
- to: url
30
- };
31
- }
32
- }
33
- };
34
- </script>
1
+
2
+ <template>
3
+ <!-- eslint-disable vue/require-component-is -->
4
+ <component v-bind="linkProps(to)">
5
+ <slot />
6
+ </component>
7
+ </template>
8
+
9
+ <script>
10
+ import { isExternal } from "@/utils/validate";
11
+
12
+ export default {
13
+ props: {
14
+ to: {
15
+ type: String,
16
+ required: true
17
+ }
18
+ },
19
+ methods: {
20
+ linkProps(url) {
21
+ if (isExternal(url)) {
22
+ return {
23
+ is: "a",
24
+ href: url,
25
+ };
26
+ }
27
+ return {
28
+ is: "router-link",
29
+ to: url
30
+ };
31
+ }
32
+ }
33
+ };
34
+ </script>
@@ -1,79 +1,79 @@
1
- <template>
2
- <div class="sidebar-logo-container" :class="{'collapse':collapse}">
3
- <router-link key="collapse" class="sidebar-logo-link" to="/" v-if="collapse">
4
- <img src="/Res/logo/small.png" class="sidebar-logo" />
5
- </router-link>
6
- <router-link key="expand" class="sidebar-logo-link" to="/">
7
- <img src="/Res/logo/big.png" class="sidebar-logo" />
8
- </router-link>
9
- </div>
10
- </template>
11
-
12
- <script>
13
-
14
- export default {
15
- name: "SidebarLogo",
16
- props: {
17
- collapse: {
18
- type: Boolean,
19
- required: true
20
- }
21
- }
22
- };
23
- </script>
24
-
25
- <style lang="scss" scoped>
26
- .sidebarLogoFade-enter-active {
27
- transition: opacity 1.5s;
28
- }
29
-
30
- .sidebarLogoFade-enter,
31
- .sidebarLogoFade-leave-to {
32
- opacity: 0;
33
- }
34
-
35
- .sidebar-logo-container {
36
- position: relative;
37
- width: 100%;
38
- height: 50px;
39
- line-height: 50px;
40
- background: #2b2f3a;
41
- text-align: center;
42
- overflow: hidden;
43
-
44
- & .sidebar-logo-link {
45
- height: 100%;
46
- width: 100%;
47
-
48
- & .sidebar-logo {
49
- width: 210px;
50
- height: 50px;
51
- vertical-align: middle;
52
- margin-right: 12px;
53
- img {
54
- width: 100%;
55
- height: 100%;
56
- }
57
- }
58
-
59
- & .sidebar-title {
60
- display: inline-block;
61
- margin: 0;
62
- color: #fff;
63
- font-weight: 600;
64
- line-height: 50px;
65
- font-size: 14px;
66
- font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
67
- vertical-align: middle;
68
- }
69
- }
70
-
71
- &.collapse {
72
- .sidebar-logo {
73
- margin-right: 0px;
74
- width: 56px;
75
- height: 50px;
76
- }
77
- }
78
- }
79
- </style>
1
+ <template>
2
+ <div class="sidebar-logo-container" :class="{'collapse':collapse}">
3
+ <router-link key="collapse" class="sidebar-logo-link" to="/" v-if="collapse">
4
+ <img src="/Res/logo/small.png" class="sidebar-logo" />
5
+ </router-link>
6
+ <router-link key="expand" class="sidebar-logo-link" to="/">
7
+ <img src="/Res/logo/big.png" class="sidebar-logo" />
8
+ </router-link>
9
+ </div>
10
+ </template>
11
+
12
+ <script>
13
+
14
+ export default {
15
+ name: "SidebarLogo",
16
+ props: {
17
+ collapse: {
18
+ type: Boolean,
19
+ required: true
20
+ }
21
+ }
22
+ };
23
+ </script>
24
+
25
+ <style lang="scss" scoped>
26
+ .sidebarLogoFade-enter-active {
27
+ transition: opacity 1.5s;
28
+ }
29
+
30
+ .sidebarLogoFade-enter,
31
+ .sidebarLogoFade-leave-to {
32
+ opacity: 0;
33
+ }
34
+
35
+ .sidebar-logo-container {
36
+ position: relative;
37
+ width: 100%;
38
+ height: 50px;
39
+ line-height: 50px;
40
+ background: #2b2f3a;
41
+ text-align: center;
42
+ overflow: hidden;
43
+
44
+ & .sidebar-logo-link {
45
+ height: 100%;
46
+ width: 100%;
47
+
48
+ & .sidebar-logo {
49
+ width: 210px;
50
+ height: 50px;
51
+ vertical-align: middle;
52
+ margin-right: 12px;
53
+ img {
54
+ width: 100%;
55
+ height: 100%;
56
+ }
57
+ }
58
+
59
+ & .sidebar-title {
60
+ display: inline-block;
61
+ margin: 0;
62
+ color: #fff;
63
+ font-weight: 600;
64
+ line-height: 50px;
65
+ font-size: 14px;
66
+ font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;
67
+ vertical-align: middle;
68
+ }
69
+ }
70
+
71
+ &.collapse {
72
+ .sidebar-logo {
73
+ margin-right: 0px;
74
+ width: 56px;
75
+ height: 50px;
76
+ }
77
+ }
78
+ }
79
+ </style>
@@ -1,67 +1,67 @@
1
- <template>
2
- <div class="menu-wrapper">
3
- <template v-if="item.subItems.length == 0">
4
- <template v-if="item.title">
5
- <app-link :to="getUrl(item.url, item)">
6
- <el-menu-item :class="{'submenu-title-noDropdown':!isNest}" :index="item.id">
7
- <item :title="item.title" :icon="item.icon" />
8
- </el-menu-item>
9
- </app-link>
10
- </template>
11
- </template>
12
- <el-submenu v-else ref="subMenu" :index="item.id" popper-append-to-body>
13
- <template slot="title">
14
- <item v-if="item.title" :title="item.title" :icon="item.icon" />
15
- </template>
16
- <sidebar-item
17
- v-for="child in item.subItems"
18
- :key="child.id"
19
- :is-nest="true"
20
- :item="child"
21
- class="nest-menu"
22
- />
23
- </el-submenu>
24
- </div>
25
- </template>
26
-
27
- <script>
28
- import Item from "./Item";
29
- import AppLink from "./Link";
30
- import FixiOSBug from "./FixiOSBug";
31
-
32
- export default {
33
- name: "SidebarItem",
34
- components: { Item, AppLink },
35
- mixins: [FixiOSBug],
36
- props: {
37
- // route object
38
- item: {
39
- type: Object,
40
- required: true
41
- },
42
- isNest: {
43
- type: Boolean,
44
- default: false
45
- },
46
- basePath: {
47
- type: String,
48
- default: ""
49
- }
50
- },
51
- data() {
52
- // To fix https://github.com/PanJiaChen/vue-admin-template/issues/237
53
- // TODO: refactor with render function
54
- this.onlyOneChild = null;
55
- return {};
56
- },
57
- methods: {
58
- getUrl (url, item) {
59
- if(process.env.NODE_ENV == 'development') {
60
- return url
61
- } else {
62
- return item.host + item.url
63
- }
64
- }
65
- }
66
- };
67
- </script>
1
+ <template>
2
+ <div class="menu-wrapper">
3
+ <template v-if="item.subItems.length == 0">
4
+ <template v-if="item.title">
5
+ <app-link :to="getUrl(item.url, item)">
6
+ <el-menu-item :class="{'submenu-title-noDropdown':!isNest}" :index="item.id">
7
+ <item :title="item.title" :icon="item.icon" />
8
+ </el-menu-item>
9
+ </app-link>
10
+ </template>
11
+ </template>
12
+ <el-submenu v-else ref="subMenu" :index="item.id" popper-append-to-body>
13
+ <template slot="title">
14
+ <item v-if="item.title" :title="item.title" :icon="item.icon" />
15
+ </template>
16
+ <sidebar-item
17
+ v-for="child in item.subItems"
18
+ :key="child.id"
19
+ :is-nest="true"
20
+ :item="child"
21
+ class="nest-menu"
22
+ />
23
+ </el-submenu>
24
+ </div>
25
+ </template>
26
+
27
+ <script>
28
+ import Item from "./Item";
29
+ import AppLink from "./Link";
30
+ import FixiOSBug from "./FixiOSBug";
31
+
32
+ export default {
33
+ name: "SidebarItem",
34
+ components: { Item, AppLink },
35
+ mixins: [FixiOSBug],
36
+ props: {
37
+ // route object
38
+ item: {
39
+ type: Object,
40
+ required: true
41
+ },
42
+ isNest: {
43
+ type: Boolean,
44
+ default: false
45
+ },
46
+ basePath: {
47
+ type: String,
48
+ default: ""
49
+ }
50
+ },
51
+ data() {
52
+ // To fix https://github.com/PanJiaChen/vue-admin-template/issues/237
53
+ // TODO: refactor with render function
54
+ this.onlyOneChild = null;
55
+ return {};
56
+ },
57
+ methods: {
58
+ getUrl (url, item) {
59
+ if(process.env.NODE_ENV == 'development') {
60
+ return url
61
+ } else {
62
+ return item.host + item.url
63
+ }
64
+ }
65
+ }
66
+ };
67
+ </script>