imatrix-ui 0.0.15 → 0.1.1-up

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 (171) hide show
  1. package/.vscode/extensions.json +3 -0
  2. package/README.md +7 -0
  3. package/components/dynamic-source-select/dynamic-source-select-service.js +106 -0
  4. package/components/dynamic-source-select/dynamic-source-select.vue +673 -0
  5. package/components/dynamic-source-select/events.js +77 -0
  6. package/components/fs-preview/fs-preview.vue +287 -0
  7. package/components/index.js +26 -0
  8. package/components/plugins/export-data-new.js +623 -0
  9. package/components/plugins/export-data.js +431 -0
  10. package/components/plugins/index.js +15 -0
  11. package/components/plugins/public-method.js +47 -0
  12. package/components/rich-editor/index-bak.vue +306 -0
  13. package/components/rich-editor/index.vue +236 -0
  14. package/components/rich-editor/langs/zh-Hans.js +438 -0
  15. package/components/rich-editor/viewer.vue +105 -0
  16. package/components/super-grid/apis.js +1065 -0
  17. package/components/super-grid/columns-config.vue +430 -0
  18. package/components/super-grid/custom-formatter.js +330 -0
  19. package/components/super-grid/dynamic-input.vue +1706 -0
  20. package/components/super-grid/eventBus.js +2 -0
  21. package/components/super-grid/events.js +56 -0
  22. package/components/super-grid/formValidatorUtil.js +300 -0
  23. package/components/super-grid/formatter.js +190 -0
  24. package/components/super-grid/group-column.vue +100 -0
  25. package/components/super-grid/header-context-menu.vue +82 -0
  26. package/components/super-grid/index-column.vue +69 -0
  27. package/components/super-grid/normal-column.vue +1148 -0
  28. package/components/super-grid/public-methods.js +30 -0
  29. package/components/super-grid/row-operation.vue +193 -0
  30. package/components/super-grid/search-button.vue +74 -0
  31. package/components/super-grid/search-condition-input.vue +73 -0
  32. package/components/super-grid/search-condition-list.vue +68 -0
  33. package/components/super-grid/search-form-advancedQuery.vue +820 -0
  34. package/components/super-grid/search-form-dialog.vue +77 -0
  35. package/components/super-grid/search-form-item.vue +470 -0
  36. package/components/super-grid/search-form-number.vue +111 -0
  37. package/components/super-grid/search-form-open.vue +178 -0
  38. package/components/super-grid/search-form-ordinarySearch.vue +218 -0
  39. package/components/super-grid/search-form.vue +756 -0
  40. package/components/super-grid/search-methods.js +484 -0
  41. package/components/super-grid/selection-column.vue +46 -0
  42. package/components/super-grid/store.js +3 -0
  43. package/components/super-grid/super-grid-service.js +682 -0
  44. package/components/super-grid/super-grid.vue +2893 -0
  45. package/components/super-grid/utils.js +851 -0
  46. package/components/super-grid/view-image-dialog.vue +173 -0
  47. package/components/utils/gogocodeTransfer.js +59 -0
  48. package/components/utils/utils.js +180 -0
  49. package/components/utils/value-set.js +98 -0
  50. package/components/z-test-utton/index.vue +82 -0
  51. package/package.json +29 -40
  52. package/public/index.html +13 -0
  53. package/public/vite.svg +1 -0
  54. package/src/api/sso-service.js +172 -19
  55. package/src/api/tab.js +36 -0
  56. package/src/api/user-service.js +11 -11
  57. package/src/assets/401/401.gif +0 -0
  58. package/src/assets/404/404-cloud.png +0 -0
  59. package/src/assets/404/404.png +0 -0
  60. package/src/assets/cloud.png +0 -0
  61. package/src/directives/permission/index.js +13 -13
  62. package/src/directives/permission/permission.js +20 -15
  63. package/src/i18n/i18n.js +16 -0
  64. package/src/i18n/langs/cn.js +254 -0
  65. package/src/i18n/langs/en.js +264 -0
  66. package/src/permission.js +157 -71
  67. package/src/plugins.js +18 -18
  68. package/src/router/index.js +96 -69
  69. package/src/store/getters.js +15 -10
  70. package/src/store/index.js +19 -19
  71. package/src/store/modules/app.js +54 -42
  72. package/src/store/modules/permission.js +137 -73
  73. package/src/store/modules/tab-content.js +36 -0
  74. package/src/store/modules/user.js +293 -80
  75. package/src/styles/display-layout.scss +34 -0
  76. package/src/styles/element-ui.scss +29 -29
  77. package/src/styles/index.scss +157 -78
  78. package/src/styles/mixin.scss +27 -27
  79. package/src/styles/theme/black/font-style.scss +70 -0
  80. package/src/styles/theme/black/index.scss +306 -0
  81. package/src/styles/theme/black/sidebar.scss +189 -0
  82. package/src/styles/theme/blue/font-style.scss +46 -0
  83. package/src/styles/theme/blue/index.scss +172 -0
  84. package/src/styles/{sidebar.scss → theme/blue/sidebar.scss} +171 -141
  85. package/src/styles/theme/blue2/font-style.scss +70 -0
  86. package/src/styles/theme/blue2/index.scss +188 -0
  87. package/src/styles/theme/blue2/sidebar.scss +201 -0
  88. package/src/styles/theme/dark-blue/button.scss +9 -0
  89. package/src/styles/theme/dark-blue/card.scss +62 -0
  90. package/src/styles/theme/dark-blue/checkbox.scss +10 -0
  91. package/src/styles/theme/dark-blue/dark-blue-var.scss +8 -0
  92. package/src/styles/theme/dark-blue/dialog.scss +21 -0
  93. package/src/styles/theme/dark-blue/element-variables.scss +7 -0
  94. package/src/styles/theme/dark-blue/font.scss +71 -0
  95. package/src/styles/theme/dark-blue/form.scss +51 -0
  96. package/src/styles/theme/dark-blue/index.scss +269 -0
  97. package/src/styles/theme/dark-blue/input.scss +15 -0
  98. package/src/styles/theme/dark-blue/message.scss +8 -0
  99. package/src/styles/theme/dark-blue/pagination.scss +14 -0
  100. package/src/styles/theme/dark-blue/scrollbar-style.scss +32 -0
  101. package/src/styles/theme/dark-blue/sidebar.scss +266 -0
  102. package/src/styles/theme/dark-blue/tab.scss +83 -0
  103. package/src/styles/theme/dark-blue/table.scss +60 -0
  104. package/src/styles/theme/dark-blue/tree.scss +31 -0
  105. package/src/styles/theme/dark-blue/var.scss +1028 -0
  106. package/src/styles/theme/gray/card-style.scss +54 -0
  107. package/src/styles/theme/gray/font-style.scss +70 -0
  108. package/src/styles/theme/gray/index.scss +172 -0
  109. package/src/styles/theme/gray/input-style.scss +19 -0
  110. package/src/styles/theme/gray/scrollbar-style.scss +32 -0
  111. package/src/styles/theme/gray/sidebar.scss +231 -0
  112. package/src/styles/theme/gray/tab-style.scss +81 -0
  113. package/src/styles/transition.scss +47 -46
  114. package/src/utils/auth-api.js +159 -0
  115. package/src/utils/auth.js +61 -15
  116. package/src/utils/calculator/calculator-factory-wf.js +558 -0
  117. package/src/utils/calculator/calculator-factory.js +145 -0
  118. package/src/utils/calculator/calculator-util.js +166 -0
  119. package/src/utils/common-util.js +305 -0
  120. package/src/utils/eventBus.js +2 -0
  121. package/src/utils/iconUtils.js +28 -0
  122. package/src/utils/index.js +102 -86
  123. package/src/utils/jump-page-utils.js +814 -0
  124. package/src/utils/local-storage.js +33 -31
  125. package/src/utils/menu.js +19 -0
  126. package/src/utils/permission.js +31 -26
  127. package/src/utils/permissionAuth.js +90 -0
  128. package/src/utils/range-selector.js +188 -0
  129. package/src/utils/request.js +270 -116
  130. package/src/utils/restful-interface-utils.js +57 -0
  131. package/src/utils/util.js +698 -0
  132. package/src/utils/validate.js +34 -33
  133. package/src/utils/watermark.js +108 -0
  134. package/src/utils/workflow-util.js +93 -0
  135. package/src/views/404.vue +248 -228
  136. package/src/views/dsc-component/Sidebar/Item.vue +84 -0
  137. package/src/views/dsc-component/Sidebar/Link.vue +38 -0
  138. package/src/views/dsc-component/Sidebar/SidebarItem.vue +196 -0
  139. package/src/views/dsc-component/Sidebar/index.vue +220 -0
  140. package/src/views/dsc-component/tabs/tab-content.vue +199 -0
  141. package/src/views/error-page/401.vue +106 -91
  142. package/src/views/error-page/404.vue +248 -228
  143. package/src/views/layout/EmptyLayout.vue +3 -0
  144. package/src/views/layout/Layout.vue +81 -68
  145. package/src/views/layout/NewLayout.vue +18 -0
  146. package/src/views/layout/components/AppMain.vue +39 -29
  147. package/src/views/layout/components/Breadcrumb/index.vue +156 -0
  148. package/src/views/layout/components/Menubar/Item.vue +57 -0
  149. package/src/views/layout/components/Menubar/Link.vue +38 -0
  150. package/src/views/layout/components/Menubar/SidebarItem.vue +164 -0
  151. package/src/views/layout/components/Menubar/index.vue +210 -0
  152. package/src/views/layout/components/Sidebar/Item.vue +53 -29
  153. package/src/views/layout/components/Sidebar/Link.vue +38 -39
  154. package/src/views/layout/components/Sidebar/SidebarItem.vue +135 -100
  155. package/src/views/layout/components/Sidebar/index.vue +141 -48
  156. package/src/views/layout/components/iframe-page.vue +38 -0
  157. package/src/views/layout/components/index.js +4 -3
  158. package/src/views/layout/components/tabs/tab-content.vue +207 -0
  159. package/src/views/layout/mixin/ResizeHandler.js +41 -41
  160. package/src/views/layout/tab-content-iframe-index.vue +38 -0
  161. package/src/views/layout/tab-content-index.vue +93 -0
  162. package/src/views/login/authredirect.vue +10 -10
  163. package/src/views/login/index.vue +296 -203
  164. package/src/views/login/update-password.vue +243 -0
  165. package/src/views/redirect/index.vue +14 -12
  166. package/src/views/wf-history/tache-subprocess-history.vue +45 -0
  167. package/vite.config.js +31 -0
  168. package/lib/super-ui.css +0 -1
  169. package/lib/super-ui.umd.min.js +0 -2
  170. package/src/styles/variables.scss +0 -4
  171. package/src/views/layout/components/Navbar.vue +0 -92
package/src/views/404.vue CHANGED
@@ -1,228 +1,248 @@
1
- <template>
2
- <div class="wscn-http404-container">
3
- <div class="wscn-http404">
4
- <div class="pic-404">
5
- <img class="pic-404__parent" src="@/assets/404/404.png" alt="404">
6
- <img class="pic-404__child left" src="@/assets/404/404-cloud.png" alt="404">
7
- <img class="pic-404__child mid" src="@/assets/404/404-cloud.png" alt="404">
8
- <img class="pic-404__child right" src="@/assets/404/404-cloud.png" alt="404">
9
- </div>
10
- <div class="bullshit">
11
- <div class="bullshit__oops">OOPS!</div>
12
- <div class="bullshit__info">版权所有
13
- <a class="link-type" href="https://wallstreetcn.com" target="_blank">华尔街见闻</a>
14
- </div>
15
- <div class="bullshit__headline">{{ message }}</div>
16
- <div class="bullshit__info">请检查您输入的网址是否正确,请点击以下按钮返回主页或者发送错误报告</div>
17
- <a href="" class="bullshit__return-home">返回首页</a>
18
- </div>
19
- </div>
20
- </div>
21
- </template>
22
-
23
- <script>
24
-
25
- export default {
26
- name: 'Page404',
27
- computed: {
28
- message() {
29
- return '网管说这个页面你不能进......'
30
- }
31
- }
32
- }
33
- </script>
34
-
35
- <style rel="stylesheet/scss" lang="scss" scoped>
36
- .wscn-http404-container{
37
- transform: translate(-50%,-50%);
38
- position: absolute;
39
- top: 40%;
40
- left: 50%;
41
- }
42
- .wscn-http404 {
43
- position: relative;
44
- width: 1200px;
45
- padding: 0 50px;
46
- overflow: hidden;
47
- .pic-404 {
48
- position: relative;
49
- float: left;
50
- width: 600px;
51
- overflow: hidden;
52
- &__parent {
53
- width: 100%;
54
- }
55
- &__child {
56
- position: absolute;
57
- &.left {
58
- width: 80px;
59
- top: 17px;
60
- left: 220px;
61
- opacity: 0;
62
- animation-name: cloudLeft;
63
- animation-duration: 2s;
64
- animation-timing-function: linear;
65
- animation-fill-mode: forwards;
66
- animation-delay: 1s;
67
- }
68
- &.mid {
69
- width: 46px;
70
- top: 10px;
71
- left: 420px;
72
- opacity: 0;
73
- animation-name: cloudMid;
74
- animation-duration: 2s;
75
- animation-timing-function: linear;
76
- animation-fill-mode: forwards;
77
- animation-delay: 1.2s;
78
- }
79
- &.right {
80
- width: 62px;
81
- top: 100px;
82
- left: 500px;
83
- opacity: 0;
84
- animation-name: cloudRight;
85
- animation-duration: 2s;
86
- animation-timing-function: linear;
87
- animation-fill-mode: forwards;
88
- animation-delay: 1s;
89
- }
90
- @keyframes cloudLeft {
91
- 0% {
92
- top: 17px;
93
- left: 220px;
94
- opacity: 0;
95
- }
96
- 20% {
97
- top: 33px;
98
- left: 188px;
99
- opacity: 1;
100
- }
101
- 80% {
102
- top: 81px;
103
- left: 92px;
104
- opacity: 1;
105
- }
106
- 100% {
107
- top: 97px;
108
- left: 60px;
109
- opacity: 0;
110
- }
111
- }
112
- @keyframes cloudMid {
113
- 0% {
114
- top: 10px;
115
- left: 420px;
116
- opacity: 0;
117
- }
118
- 20% {
119
- top: 40px;
120
- left: 360px;
121
- opacity: 1;
122
- }
123
- 70% {
124
- top: 130px;
125
- left: 180px;
126
- opacity: 1;
127
- }
128
- 100% {
129
- top: 160px;
130
- left: 120px;
131
- opacity: 0;
132
- }
133
- }
134
- @keyframes cloudRight {
135
- 0% {
136
- top: 100px;
137
- left: 500px;
138
- opacity: 0;
139
- }
140
- 20% {
141
- top: 120px;
142
- left: 460px;
143
- opacity: 1;
144
- }
145
- 80% {
146
- top: 180px;
147
- left: 340px;
148
- opacity: 1;
149
- }
150
- 100% {
151
- top: 200px;
152
- left: 300px;
153
- opacity: 0;
154
- }
155
- }
156
- }
157
- }
158
- .bullshit {
159
- position: relative;
160
- float: left;
161
- width: 300px;
162
- padding: 30px 0;
163
- overflow: hidden;
164
- &__oops {
165
- font-size: 32px;
166
- font-weight: bold;
167
- line-height: 40px;
168
- color: #1482f0;
169
- opacity: 0;
170
- margin-bottom: 20px;
171
- animation-name: slideUp;
172
- animation-duration: 0.5s;
173
- animation-fill-mode: forwards;
174
- }
175
- &__headline {
176
- font-size: 20px;
177
- line-height: 24px;
178
- color: #222;
179
- font-weight: bold;
180
- opacity: 0;
181
- margin-bottom: 10px;
182
- animation-name: slideUp;
183
- animation-duration: 0.5s;
184
- animation-delay: 0.1s;
185
- animation-fill-mode: forwards;
186
- }
187
- &__info {
188
- font-size: 13px;
189
- line-height: 21px;
190
- color: grey;
191
- opacity: 0;
192
- margin-bottom: 30px;
193
- animation-name: slideUp;
194
- animation-duration: 0.5s;
195
- animation-delay: 0.2s;
196
- animation-fill-mode: forwards;
197
- }
198
- &__return-home {
199
- display: block;
200
- float: left;
201
- width: 110px;
202
- height: 36px;
203
- background: #1482f0;
204
- border-radius: 100px;
205
- text-align: center;
206
- color: #ffffff;
207
- opacity: 0;
208
- font-size: 14px;
209
- line-height: 36px;
210
- cursor: pointer;
211
- animation-name: slideUp;
212
- animation-duration: 0.5s;
213
- animation-delay: 0.3s;
214
- animation-fill-mode: forwards;
215
- }
216
- @keyframes slideUp {
217
- 0% {
218
- transform: translateY(60px);
219
- opacity: 0;
220
- }
221
- 100% {
222
- transform: translateY(0);
223
- opacity: 1;
224
- }
225
- }
226
- }
227
- }
228
- </style>
1
+ <template>
2
+ <div class="wscn-http404-container">
3
+ <div class="wscn-http404">
4
+ <div class="pic-404">
5
+ <img class="pic-404__parent" src="../../assets/404/404.png" alt="404" />
6
+ <img
7
+ class="pic-404__child left"
8
+ src="../../assets/404/404-cloud.png"
9
+ alt="404"
10
+ />
11
+ <img
12
+ class="pic-404__child mid"
13
+ src="../../assets/404/404-cloud.png"
14
+ alt="404"
15
+ />
16
+ <img
17
+ class="pic-404__child right"
18
+ src="../../assets/404/404-cloud.png"
19
+ alt="404"
20
+ />
21
+ </div>
22
+ <div class="bullshit">
23
+ <!-- <div class="bullshit__oops">
24
+ OOPS!
25
+ </div>
26
+ <div class="bullshit__info">
27
+ 版权所有
28
+ <a class="link-type" href="https://wallstreetcn.com" target="_blank">
29
+ 华尔街见闻
30
+ </a>
31
+ </div> -->
32
+ <div class="bullshit__headline">
33
+ {{ message }}
34
+ </div>
35
+ <div class="bullshit__info">请检查您输入的网址是否正确</div>
36
+ <!-- <a href="" class="bullshit__return-home">
37
+ 返回首页
38
+ </a> -->
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </template>
43
+
44
+ <script>
45
+ export default {
46
+ name: 'Page404',
47
+ computed: {
48
+ message() {
49
+ return '页面不存在'
50
+ },
51
+ },
52
+ }
53
+ </script>
54
+
55
+ <style lang="scss" rel="stylesheet/scss" scoped>
56
+ .wscn-http404-container {
57
+ transform: translate(-50%, -50%);
58
+ position: absolute;
59
+ top: 40%;
60
+ left: 50%;
61
+ }
62
+ .wscn-http404 {
63
+ position: relative;
64
+ width: 1200px;
65
+ padding: 0 50px;
66
+ overflow: hidden;
67
+ .pic-404 {
68
+ position: relative;
69
+ float: left;
70
+ width: 600px;
71
+ overflow: hidden;
72
+ &__parent {
73
+ width: 100%;
74
+ }
75
+ &__child {
76
+ position: absolute;
77
+ &.left {
78
+ width: 80px;
79
+ top: 17px;
80
+ left: 220px;
81
+ opacity: 0;
82
+ animation-name: cloudLeft;
83
+ animation-duration: 2s;
84
+ animation-timing-function: linear;
85
+ animation-fill-mode: forwards;
86
+ animation-delay: 1s;
87
+ }
88
+ &.mid {
89
+ width: 46px;
90
+ top: 10px;
91
+ left: 420px;
92
+ opacity: 0;
93
+ animation-name: cloudMid;
94
+ animation-duration: 2s;
95
+ animation-timing-function: linear;
96
+ animation-fill-mode: forwards;
97
+ animation-delay: 1.2s;
98
+ }
99
+ &.right {
100
+ width: 62px;
101
+ top: 100px;
102
+ left: 500px;
103
+ opacity: 0;
104
+ animation-name: cloudRight;
105
+ animation-duration: 2s;
106
+ animation-timing-function: linear;
107
+ animation-fill-mode: forwards;
108
+ animation-delay: 1s;
109
+ }
110
+ @keyframes cloudLeft {
111
+ 0% {
112
+ top: 17px;
113
+ left: 220px;
114
+ opacity: 0;
115
+ }
116
+ 20% {
117
+ top: 33px;
118
+ left: 188px;
119
+ opacity: 1;
120
+ }
121
+ 80% {
122
+ top: 81px;
123
+ left: 92px;
124
+ opacity: 1;
125
+ }
126
+ 100% {
127
+ top: 97px;
128
+ left: 60px;
129
+ opacity: 0;
130
+ }
131
+ }
132
+ @keyframes cloudMid {
133
+ 0% {
134
+ top: 10px;
135
+ left: 420px;
136
+ opacity: 0;
137
+ }
138
+ 20% {
139
+ top: 40px;
140
+ left: 360px;
141
+ opacity: 1;
142
+ }
143
+ 70% {
144
+ top: 130px;
145
+ left: 180px;
146
+ opacity: 1;
147
+ }
148
+ 100% {
149
+ top: 160px;
150
+ left: 120px;
151
+ opacity: 0;
152
+ }
153
+ }
154
+ @keyframes cloudRight {
155
+ 0% {
156
+ top: 100px;
157
+ left: 500px;
158
+ opacity: 0;
159
+ }
160
+ 20% {
161
+ top: 120px;
162
+ left: 460px;
163
+ opacity: 1;
164
+ }
165
+ 80% {
166
+ top: 180px;
167
+ left: 340px;
168
+ opacity: 1;
169
+ }
170
+ 100% {
171
+ top: 200px;
172
+ left: 300px;
173
+ opacity: 0;
174
+ }
175
+ }
176
+ }
177
+ }
178
+ .bullshit {
179
+ position: relative;
180
+ float: left;
181
+ width: 300px;
182
+ padding: 30px 0;
183
+ overflow: hidden;
184
+ &__oops {
185
+ font-size: 32px;
186
+ font-weight: bold;
187
+ line-height: 40px;
188
+ color: #1482f0;
189
+ opacity: 0;
190
+ margin-bottom: 20px;
191
+ animation-name: slideUp;
192
+ animation-duration: 0.5s;
193
+ animation-fill-mode: forwards;
194
+ }
195
+ &__headline {
196
+ font-size: 20px;
197
+ line-height: 24px;
198
+ color: #222;
199
+ font-weight: bold;
200
+ opacity: 0;
201
+ margin-bottom: 10px;
202
+ animation-name: slideUp;
203
+ animation-duration: 0.5s;
204
+ animation-delay: 0.1s;
205
+ animation-fill-mode: forwards;
206
+ }
207
+ &__info {
208
+ font-size: 13px;
209
+ line-height: 21px;
210
+ color: grey;
211
+ opacity: 0;
212
+ margin-bottom: 30px;
213
+ animation-name: slideUp;
214
+ animation-duration: 0.5s;
215
+ animation-delay: 0.2s;
216
+ animation-fill-mode: forwards;
217
+ }
218
+ &__return-home {
219
+ display: block;
220
+ float: left;
221
+ width: 110px;
222
+ height: 36px;
223
+ background: #1482f0;
224
+ border-radius: 100px;
225
+ text-align: center;
226
+ color: #ffffff;
227
+ opacity: 0;
228
+ font-size: 14px;
229
+ line-height: 36px;
230
+ cursor: pointer;
231
+ animation-name: slideUp;
232
+ animation-duration: 0.5s;
233
+ animation-delay: 0.3s;
234
+ animation-fill-mode: forwards;
235
+ }
236
+ @keyframes slideUp {
237
+ 0% {
238
+ transform: translateY(60px);
239
+ opacity: 0;
240
+ }
241
+ 100% {
242
+ transform: translateY(0);
243
+ opacity: 1;
244
+ }
245
+ }
246
+ }
247
+ }
248
+ </style>
@@ -0,0 +1,84 @@
1
+ <script>
2
+ import * as Vue from 'vue'
3
+ export default function render(_props, _context) {
4
+ const context = {
5
+ ..._context,
6
+ props: _props,
7
+ data: _context.attr,
8
+ children: _context.slots,
9
+ }
10
+ let icon = context.props.icon
11
+ const { title, hasChildren, isRoot } = context.props
12
+ const vnodes = []
13
+
14
+ if (icon) {
15
+ if (icon.indexOf('fa-') === 0) {
16
+ // 表示以“fa-”开头,使用font-awesome中的图标
17
+ icon = 'fa ' + icon
18
+ vnodes.push(
19
+ <div style="display: inline-block;overflow:hidden;">
20
+ <i class={icon} />
21
+ </div>
22
+ )
23
+ } else if (icon.indexOf('svg-') === 0) {
24
+ icon = icon.substring(icon.indexOf('svg-') + 4)
25
+ vnodes.push(
26
+ <div style="display: inline-block;overflow:hidden;">
27
+ <svg-icon icon-class={icon} />
28
+ </div>
29
+ )
30
+ } else {
31
+ icon += ' svg-icon'
32
+ vnodes.push(
33
+ <div style="display: inline-block;overflow:hidden;">
34
+ <i class={icon} />
35
+ </div>
36
+ )
37
+ }
38
+ }
39
+
40
+ if (title) {
41
+ let width = '130px'
42
+ if (hasChildren) {
43
+ // 当是父菜单时,为了使后面的三角能显示出来,需要将宽度设小点
44
+ // width = '100px'
45
+ // boe 反应左侧菜单栏无法展示全部文字,调整
46
+ width = '130px'
47
+ }
48
+ if (isRoot) {
49
+ // 是否是根目录,没有子菜单时
50
+ vnodes.push(
51
+ <div style="display: inline-block">
52
+ <div
53
+ title={title}
54
+ style={
55
+ 'display: inline-block;width:' +
56
+ width +
57
+ ';overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;'
58
+ }
59
+ >
60
+ {title}
61
+ </div>
62
+ </div>
63
+ )
64
+ } else {
65
+ // 有子菜单时
66
+ vnodes.push(
67
+ <div slot="title" style="display: inline-block">
68
+ <div
69
+ title={title}
70
+ style={
71
+ 'display: inline-block;width:' +
72
+ width +
73
+ ';overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:keep-all;'
74
+ }
75
+ >
76
+ {title}
77
+ </div>
78
+ </div>
79
+ )
80
+ }
81
+ }
82
+ return vnodes
83
+ }
84
+ </script>
@@ -0,0 +1,38 @@
1
+ <template>
2
+ <div>
3
+ <!-- eslint-disable vue/require-component-is-->
4
+ <!-- <a v-if="isExter" :href="to.path" target="_blank" rel="noopener">
5
+ <slot />
6
+ </a> -->
7
+
8
+ <router-link v-if="!isOpenNewTab" :to="to">
9
+ <slot />
10
+ </router-link>
11
+ <div v-else>
12
+ <slot />
13
+ </div>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ export default {
19
+ props: {
20
+ to: {
21
+ type: Object,
22
+ required: true,
23
+ },
24
+ },
25
+ data() {
26
+ const isExter = this.to.isExternal
27
+ const openWay = this.to.openWay
28
+ let isOpenNewTab = false
29
+ if (openWay && openWay === 'NEW_PAGE_OPEN') {
30
+ isOpenNewTab = true
31
+ }
32
+ return {
33
+ isExter,
34
+ isOpenNewTab,
35
+ }
36
+ },
37
+ }
38
+ </script>