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
@@ -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,3 @@
1
+ <template>
2
+ <router-view />
3
+ </template>
@@ -1,68 +1,81 @@
1
- <template>
2
- <div :class="classObj" class="app-wrapper">
3
- <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside" />
4
- <sidebar class="sidebar-container" />
5
- <div class="main-container">
6
- <app-main />
7
- </div>
8
- </div>
9
- </template>
10
-
11
- <script>
12
- import { Sidebar, AppMain } from './components'
13
- import ResizeMixin from './mixin/ResizeHandler'
14
-
15
- export default {
16
- name: 'Layout',
17
- components: {
18
- // Navbar,
19
- Sidebar,
20
- AppMain
21
- },
22
- mixins: [ResizeMixin],
23
- computed: {
24
- sidebar() {
25
- return this.$store.state.app.sidebar
26
- },
27
- device() {
28
- return this.$store.state.app.device
29
- },
30
- classObj() {
31
- return {
32
- hideSidebar: !this.sidebar.opened,
33
- openSidebar: this.sidebar.opened,
34
- withoutAnimation: this.sidebar.withoutAnimation,
35
- mobile: this.device === 'mobile'
36
- }
37
- }
38
- },
39
- methods: {
40
- handleClickOutside() {
41
- this.$store.dispatch('closeSidebar', { withoutAnimation: false })
42
- }
43
- }
44
- }
45
- </script>
46
-
47
- <style rel="stylesheet/scss" lang="scss" scoped>
48
- @import "../../styles/mixin.scss";
49
- .app-wrapper {
50
- @include clearfix;
51
- position: relative;
52
- height: 100%;
53
- width: 100%;
54
- &.mobile.openSidebar{
55
- position: fixed;
56
- top: 0;
57
- }
58
- }
59
- .drawer-bg {
60
- background: #000;
61
- opacity: 0.3;
62
- width: 100%;
63
- top: 0;
64
- height: 100%;
65
- position: absolute;
66
- z-index: 999;
67
- }
68
- </style>
1
+ <template>
2
+ <div :class="classObj" class="app-wrapper">
3
+ <div
4
+ v-if="device === 'mobile' && sidebar.opened"
5
+ class="drawer-bg"
6
+ @click="handleClickOutside"
7
+ />
8
+ <sidebar class="sidebar-container" />
9
+ <div class="main-container">
10
+ <breadcrumb v-if="showMenuRoute" />
11
+ <app-main />
12
+ </div>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ import { Sidebar, AppMain, Breadcrumb } from './components'
18
+ import ResizeMixin from './mixin/ResizeHandler'
19
+ import { isShowMenuRoute } from '../../../src/utils/common-util'
20
+
21
+ export default {
22
+ name: 'Layout',
23
+ components: {
24
+ Sidebar,
25
+ AppMain,
26
+ Breadcrumb,
27
+ },
28
+ mixins: [ResizeMixin],
29
+ data() {
30
+ // 是否显示菜单路径,默认是不显示
31
+ const showMenuRoute = isShowMenuRoute()
32
+ return {
33
+ showMenuRoute,
34
+ }
35
+ },
36
+ computed: {
37
+ sidebar() {
38
+ return this.$store.state.app.sidebar
39
+ },
40
+ device() {
41
+ return this.$store.state.app.device
42
+ },
43
+ classObj() {
44
+ return {
45
+ hideSidebar: !this.sidebar.opened,
46
+ openSidebar: this.sidebar.opened,
47
+ withoutAnimation: this.sidebar.withoutAnimation,
48
+ mobile: this.device === 'mobile',
49
+ }
50
+ },
51
+ },
52
+ methods: {
53
+ handleClickOutside() {
54
+ this.$store.dispatch('closeSidebar', { withoutAnimation: false })
55
+ },
56
+ },
57
+ }
58
+ </script>
59
+
60
+ <style lang="scss" rel="stylesheet/scss" scoped>
61
+ @import '../../styles/mixin.scss';
62
+ .app-wrapper {
63
+ @include clearfix;
64
+ position: relative;
65
+ height: 100%;
66
+ width: 100%;
67
+ &.mobile.openSidebar {
68
+ position: fixed;
69
+ top: 0;
70
+ }
71
+ }
72
+ .drawer-bg {
73
+ background: #000;
74
+ opacity: 0.3;
75
+ width: 100%;
76
+ top: 0;
77
+ height: 100%;
78
+ position: absolute;
79
+ z-index: 999;
80
+ }
81
+ </style>
@@ -0,0 +1,18 @@
1
+ <template>
2
+ <div class="app-wrapper">
3
+ <div class="tab-main-container">
4
+ <!-- <tab-content/> -->
5
+ <app-main />
6
+ </div>
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ import { AppMain } from './components/index'
12
+ export default {
13
+ name: 'EmptyLayout',
14
+ components: {
15
+ AppMain,
16
+ },
17
+ }
18
+ </script>