lw-cdp-ui 1.2.48 → 1.2.49

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 (88) hide show
  1. package/package.json +1 -1
  2. package/dist/assets/images/empty.jpg +0 -0
  3. package/dist/assets/images/login.svg +0 -558
  4. package/dist/assets/images/logo.jpg +0 -0
  5. package/dist/assets/images/logo.svg +0 -78
  6. package/dist/assets/images/logo1.svg +0 -86
  7. package/dist/assets/images/register.svg +0 -351
  8. package/dist/components/lwCronSelect/index.vue +0 -218
  9. package/dist/components/lwFlow/components/lfControl.vue +0 -126
  10. package/dist/components/lwFlow/components/lfNodePanel.vue +0 -98
  11. package/dist/components/lwFlow/config/dagre.js +0 -279
  12. package/dist/components/lwFlow/config/nodesList.js +0 -243
  13. package/dist/components/lwFlow/index.vue +0 -781
  14. package/dist/components/lwFlow/nodeEdit/audienceReceive.vue +0 -262
  15. package/dist/components/lwFlow/nodeEdit/basicSettings.vue +0 -88
  16. package/dist/components/lwFlow/nodeEdit/eventReceive.vue +0 -145
  17. package/dist/components/lwFlow/nodeEdit/index.vue +0 -306
  18. package/dist/components/lwFlow/nodeEdit/sms.vue +0 -107
  19. package/dist/components/lwFlow/nodeEdit/styleSettings.vue +0 -236
  20. package/dist/components/lwFlow/nodes/basisEnd.js +0 -56
  21. package/dist/components/lwFlow/nodes/basisStart.js +0 -56
  22. package/dist/components/lwFlow/nodes/custom.js +0 -129
  23. package/dist/components/lwFlow/nodes/et2lTable.js +0 -132
  24. package/dist/components/lwFlow/nodesData/datas/audienceReceive.js +0 -137
  25. package/dist/components/lwFlow/nodesData/datas/base.js +0 -190
  26. package/dist/components/lwFlow/nodesData/datas/collap.js +0 -95
  27. package/dist/components/lwFlow/nodesData/datas/eventReceive.js +0 -106
  28. package/dist/components/lwFlow/nodesData/datas/expand.js +0 -85
  29. package/dist/components/lwFlow/nodesData/datas/filter.js +0 -85
  30. package/dist/components/lwFlow/nodesData/datas/joiner.js +0 -96
  31. package/dist/components/lwFlow/nodesData/datas/mapper.js +0 -111
  32. package/dist/components/lwFlow/nodesData/datas/reduce.js +0 -69
  33. package/dist/components/lwFlow/nodesData/datas/sms.js +0 -69
  34. package/dist/components/lwFlow/nodesData/datas/source.js +0 -142
  35. package/dist/components/lwFlow/nodesData/datas/target.js +0 -95
  36. package/dist/components/lwFlow/nodesData/datas/timer.js +0 -180
  37. package/dist/components/lwFlow/nodesData/index.js +0 -41
  38. package/dist/components/lwForm/index.vue +0 -631
  39. package/dist/components/lwFormJson/JsonItem.vue +0 -302
  40. package/dist/components/lwFormJson/StatsConfig.vue +0 -544
  41. package/dist/components/lwFormJson/TreeItem.vue +0 -149
  42. package/dist/components/lwFormJson/index.vue +0 -362
  43. package/dist/components/lwFormJson/menuList.js +0 -324
  44. package/dist/components/lwFormMini/FormItem.vue +0 -466
  45. package/dist/components/lwFormMini/ViewItem.vue +0 -391
  46. package/dist/components/lwFormMini/index.vue +0 -421
  47. package/dist/components/lwFormMini/textToPassword.vue +0 -61
  48. package/dist/components/lwFormView/index.vue +0 -390
  49. package/dist/components/lwFormView/textToPassword.vue +0 -59
  50. package/dist/components/lwIconSelect/iconSelect.js +0 -289
  51. package/dist/components/lwIconSelect/index.vue +0 -142
  52. package/dist/components/lwLayout/components/NavMenu.vue +0 -36
  53. package/dist/components/lwLayout/components/aside.vue +0 -295
  54. package/dist/components/lwLayout/components/bu.vue +0 -88
  55. package/dist/components/lwLayout/components/iframeView.vue +0 -57
  56. package/dist/components/lwLayout/components/lang.vue +0 -77
  57. package/dist/components/lwLayout/components/setting.vue +0 -102
  58. package/dist/components/lwLayout/components/sideM.vue +0 -135
  59. package/dist/components/lwLayout/components/tags.vue +0 -388
  60. package/dist/components/lwLayout/components/topbar.vue +0 -69
  61. package/dist/components/lwLayout/components/userbar.vue +0 -214
  62. package/dist/components/lwLayout/index.vue +0 -469
  63. package/dist/components/lwLogin/index.vue +0 -511
  64. package/dist/components/lwLogin/locale/en-us.js +0 -37
  65. package/dist/components/lwLogin/locale/zh-cn.js +0 -37
  66. package/dist/components/lwSearch/date/date.vue +0 -113
  67. package/dist/components/lwSearch/dateRange/dateRange.vue +0 -118
  68. package/dist/components/lwSearch/dates/dates.vue +0 -366
  69. package/dist/components/lwSearch/index.vue +0 -628
  70. package/dist/components/lwSearch/input/input.vue +0 -55
  71. package/dist/components/lwSearch/locale/en-us.js +0 -15
  72. package/dist/components/lwSearch/locale/zh-cn.js +0 -15
  73. package/dist/components/lwSearch/select/select.vue +0 -58
  74. package/dist/components/lwSvgIcon/index.vue +0 -29
  75. package/dist/components/lwTable/index.js +0 -286
  76. package/dist/components/lwTable/index.scss +0 -238
  77. package/dist/components/lwTable/index.vue +0 -346
  78. package/dist/components/lwTable/locale/en-US.js +0 -26
  79. package/dist/components/lwTable/locale/zh-CN.js +0 -26
  80. package/dist/components/lwTable/useFullscreen.js +0 -73
  81. package/dist/components/lwTableForm/index.vue +0 -662
  82. package/dist/components/lwTableSelect/index.vue +0 -266
  83. package/dist/components/lwTableSelect/tableSelect.js +0 -23
  84. package/dist/components/lwUpload/index.vue +0 -564
  85. package/dist/lw-cdp-ui.esm.js +0 -19906
  86. package/dist/lw-cdp-ui.umd.js +0 -22
  87. package/dist/style.css +0 -1
  88. package/dist/vite.svg +0 -1
@@ -1,214 +0,0 @@
1
- <template>
2
- <div class="user-bar">
3
- <slot name="userbarActionBox"></slot>
4
- <bu v-if="isShowBu"
5
- :isInitialized="isInitialized" />
6
-
7
- <el-dropdown class="user panel-item"
8
- trigger="click"
9
- @command="handleUser">
10
- <div class="user-avatar">
11
- <el-avatar :size="30"
12
- :src="$store.state.user.img || empty"></el-avatar>
13
- </div>
14
- <template #dropdown>
15
- <el-dropdown-menu>
16
- <el-dropdown-item command="uc">
17
- <div class="user-body">
18
- <el-avatar :size="30"
19
- :src="$store.state.user.img || empty"></el-avatar>
20
- <div class="user-name">
21
- <label>{{ $store.state.user.realName }}</label>
22
- <label>{{ $store.state.user.username }}</label>
23
- </div>
24
- </div>
25
- </el-dropdown-item>
26
- <!-- <el-dropdown-item command="uc"
27
- divided>{{$t('layout.userData')}}</el-dropdown-item> -->
28
- <el-dropdown-item
29
- command="clearCache">{{$t('layout.clearCache')}}</el-dropdown-item>
30
- <el-dropdown-item divided
31
- command="outLogin">{{$t('layout.outLogin')}}</el-dropdown-item>
32
- </el-dropdown-menu>
33
- </template>
34
- </el-dropdown>
35
- </div>
36
-
37
- </template>
38
-
39
- <script>
40
- import bu from './bu.vue'
41
- import empty from '@/assets/images/empty.jpg'
42
- export default {
43
- props: {
44
- isShowBu: {
45
- type: Boolean,
46
- default: true
47
- },
48
- isInitialized: {
49
- type: Boolean,
50
- default: true
51
- },
52
- },
53
- components: {
54
- bu
55
- },
56
- data() {
57
- return {
58
- empty,
59
- userName: "",
60
- userNameF: "",
61
- searchVisible: false,
62
- tasksVisible: false,
63
- msg: false,
64
-
65
- }
66
- },
67
- created() {
68
- this.$store.state.user = this.$tool.data.get('userAuthInfo')
69
- },
70
- methods: {
71
- //个人信息
72
- handleUser(command) {
73
- if (command == "uc") {
74
- this.$router.push({ path: '/user' });
75
- }
76
- if (command == "cmd") {
77
- this.$router.push({ path: '/cmd' });
78
- }
79
- if (command == "clearCache") {
80
- this.$confirm('清除缓存会将系统初始化,包括登录状态、主题、语言设置等,是否继续?', '提示', {
81
- type: 'info',
82
- }).then(() => {
83
- this.$tool.data.clear()
84
-
85
- window.location.href = '/#/passport-login';
86
- }).catch(() => {
87
- //取消
88
- })
89
- }
90
- if (command == "outLogin") {
91
- this.$confirm('确认是否退出当前用户?', '提示', {
92
- type: 'warning',
93
- confirmButtonText: '退出',
94
- confirmButtonClass: 'el-button--danger'
95
- }).then(() => {
96
- this.$store.commit("clearViewTags");
97
- this.$store.commit("clearKeepLive");
98
- this.$store.commit("clearIframeList")
99
- window.location.href = '/#/passport-login';
100
- }).catch(() => {
101
- //取消退出
102
- })
103
- }
104
- },
105
- //全屏
106
- screen() {
107
- var element = document.documentElement;
108
- this.$tool.screen(element)
109
- },
110
- //显示短消息
111
- showMsg() {
112
- this.msg = true
113
- },
114
- //搜索
115
- search() {
116
- this.searchVisible = true
117
- },
118
- //任务
119
- tasks() {
120
- this.tasksVisible = true
121
- }
122
- }
123
- }
124
- </script>
125
-
126
- <style scoped lang="scss">
127
- .user-bar {
128
- display: flex;
129
- align-items: center;
130
- height: 100%;
131
- }
132
- .user-bar .panel-item {
133
- padding: 0 10px;
134
- cursor: pointer;
135
- height: 100%;
136
- display: flex;
137
- align-items: center;
138
- }
139
- .user-bar .panel-item i {
140
- font-size: 16px;
141
- }
142
- .user-bar .panel-item:hover {
143
- background: rgba(0, 0, 0, 0.1);
144
- }
145
- .user-bar .user-avatar {
146
- height: 49px;
147
- display: flex;
148
- align-items: center;
149
- }
150
- .user-bar .user-avatar label {
151
- display: inline-block;
152
- margin-left: 5px;
153
- font-size: 12px;
154
- cursor: pointer;
155
- }
156
-
157
- .msg-list li {
158
- border-top: 1px solid #eee;
159
- }
160
- .msg-list li a {
161
- display: flex;
162
- padding: 20px;
163
- }
164
- .msg-list li a:hover {
165
- background: #ecf5ff;
166
- }
167
- .msg-list__icon {
168
- width: 40px;
169
- margin-right: 15px;
170
- }
171
- .msg-list__main {
172
- flex: 1;
173
- }
174
- .msg-list__main h2 {
175
- font-size: 15px;
176
- font-weight: normal;
177
- color: #333;
178
- }
179
- .msg-list__main p {
180
- font-size: 12px;
181
- color: #999;
182
- line-height: 1.8;
183
- margin-top: 5px;
184
- }
185
- .msg-list__time {
186
- width: 100px;
187
- text-align: right;
188
- color: #999;
189
- }
190
-
191
- .dark .msg-list__main h2 {
192
- color: #d0d0d0;
193
- }
194
- .dark .msg-list li {
195
- border-top: 1px solid #363636;
196
- }
197
- .dark .msg-list li a:hover {
198
- background: #383838;
199
- }
200
-
201
- .user-body {
202
- display: flex;
203
- align-items: center;
204
- gap: 20px;
205
- width: 150px;
206
- :deep(.el-avatar) {
207
- min-width: 30px;
208
- }
209
- .user-name {
210
- display: flex;
211
- flex-direction: column;
212
- }
213
- }
214
- </style>
@@ -1,469 +0,0 @@
1
- <template>
2
- <!-- 通栏布局 -->
3
- <template v-if="layout == 'header'">
4
- <header class="adminui-header">
5
- <div class="adminui-header-left">
6
- <div class="logo-bar">
7
- <img class="logo"
8
- src="../../assets/images/logo.svg">
9
- <span>{{ $config.APP_NAME }}</span>
10
- </div>
11
- <ul v-if="!ismobile"
12
- class="nav">
13
- <li v-for="item in menu"
14
- :key="item"
15
- :class="pmenu.path == item.path ? 'active' : ''"
16
- @click="showMenu(item)">
17
- <el-icon>
18
- <component :is="item.meta.icon || 'el-icon-menu'" />
19
- </el-icon>
20
- <span>{{ item.meta.title }}</span>
21
- </li>
22
- </ul>
23
- </div>
24
- <div class="adminui-header-right">
25
- <userbar :isShowBu="isShowBu"
26
- :isInitialized="isInitialized">
27
- <template #userbarActionBox>
28
- <slot name="userbarActionBox"></slot>
29
- </template>
30
- </userbar>
31
- </div>
32
- </header>
33
- <section class="aminui-wrapper">
34
- <div v-if="!ismobile && nextMenu.length > 0 || !pmenu.component"
35
- :class="menuIsCollapse ? 'aminui-side isCollapse' : 'aminui-side'">
36
- <div v-if="!menuIsCollapse"
37
- class="adminui-side-top">
38
- <h2>{{ pmenu.meta.title }}</h2>
39
- </div>
40
- <div class="adminui-side-scroll">
41
- <el-scrollbar>
42
- <el-menu :default-active="active"
43
- router
44
- :collapse="menuIsCollapse"
45
- :unique-opened="$config.MENU_UNIQUE_OPENED">
46
- <NavMenu :navMenus="nextMenu"></NavMenu>
47
- </el-menu>
48
- </el-scrollbar>
49
- </div>
50
- <div class="adminui-side-bottom"
51
- @click="$store.commit('TOGGLE_menuIsCollapse')">
52
- <el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold
53
- v-else /></el-icon>
54
- </div>
55
- </div>
56
- <Side-m v-if="ismobile"></Side-m>
57
- <div class="aminui-body el-container">
58
- <Topbar v-if="!ismobile"></Topbar>
59
- <Tags v-if="!ismobile && layoutTags"
60
- :tagShowID="tagShowID"></Tags>
61
- <div class="adminui-main"
62
- id="adminui-main">
63
- <slot name="routerView">
64
- <router-view v-slot="{ Component }">
65
- <keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
66
- <component :is="Component"
67
- :key="$route.fullPath"
68
- v-if="$store.state.keepAlive.routeShow" />
69
- </keep-alive>
70
- </router-view>
71
- </slot>
72
- <iframe-view></iframe-view>
73
- </div>
74
- </div>
75
- </section>
76
- </template>
77
-
78
- <!-- 经典布局 -->
79
- <template v-else-if="layout == 'menu'">
80
- <section class="aminui-body-menu">
81
- <div class="aminui-side-split-left">
82
- <Aside></Aside>
83
- </div>
84
-
85
- <section class="aminui-wrapper">
86
- <div v-if="!ismobile"
87
- :class="menuIsCollapse ? 'aminui-side isCollapse' : 'aminui-side'">
88
- <div class="aminui-title-name">
89
- {{ menuIsCollapse ? $config.APP_NAME.charAt(0) : $config.APP_NAME }}
90
- </div>
91
- <div class="adminui-side-scroll">
92
- <el-scrollbar>
93
- <el-menu :default-active="active"
94
- router
95
- :collapse="menuIsCollapse"
96
- :unique-opened="$config.MENU_UNIQUE_OPENED">
97
- <NavMenu :navMenus="menu"></NavMenu>
98
- </el-menu>
99
- </el-scrollbar>
100
- </div>
101
- <div class="adminui-side-bottom"
102
- @click="$store.commit('TOGGLE_menuIsCollapse')">
103
- <el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold
104
- v-else /></el-icon>
105
- </div>
106
- </div>
107
- <Side-m v-if="ismobile"></Side-m>
108
- <div class="aminui-body el-container">
109
- <div class="aminui-body-menu-top">
110
- <div class="top-bar-title">
111
- <span class="title">{{ $t("layout.topbar") }}:</span>
112
- <Topbar v-if="!ismobile"></Topbar>
113
- </div>
114
- <userbar :isShowBu="isShowBu"
115
- :isInitialized="isInitialized">
116
- <template #userbarActionBox>
117
- <slot name="userbarActionBox"></slot>
118
- </template>
119
- </userbar>
120
- </div>
121
- <Tags v-if="!ismobile && layoutTags"
122
- :tagShowID="tagShowID"></Tags>
123
- <div class="adminui-main"
124
- id="adminui-main">
125
- <slot name="routerView">
126
- <router-view v-slot="{ Component }">
127
- <keep-alive
128
- :include="this.$store.state.keepAlive.keepLiveRoute">
129
- <component :is="Component"
130
- :key="$route.fullPath"
131
- v-if="$store.state.keepAlive.routeShow" />
132
- </keep-alive>
133
- </router-view>
134
- </slot>
135
- <iframe-view></iframe-view>
136
- </div>
137
- </div>
138
- </section>
139
- </section>
140
- </template>
141
-
142
- <!-- 功能坞布局 -->
143
- <template v-else-if="layout == 'dock'">
144
- <header class="adminui-header">
145
- <div class="adminui-header-left">
146
- <div class="logo-bar">
147
- <img class="logo"
148
- src="../../assets/images/logo.svg">
149
- <span>{{ $config.APP_NAME }}</span>
150
- </div>
151
- </div>
152
- <div class="adminui-header-right">
153
- <div v-if="!ismobile"
154
- class="adminui-header-menu">
155
- <el-menu mode="horizontal"
156
- :default-active="active"
157
- router
158
- background-color="#222b45"
159
- text-color="#fff"
160
- active-text-color="var(--el-color-primary)">
161
- <NavMenu :navMenus="menu"></NavMenu>
162
- </el-menu>
163
- </div>
164
- <Side-m v-if="ismobile"></Side-m>
165
- <userbar :isShowBu="isShowBu"
166
- :isInitialized="isInitialized">
167
- <template #userbarActionBox>
168
- <slot name="userbarActionBox"></slot>
169
- </template>
170
- </userbar>
171
- </div>
172
- </header>
173
- <section class="aminui-wrapper">
174
- <div class="aminui-body el-container">
175
- <Tags v-if="!ismobile && layoutTags"
176
- :tagShowID="tagShowID"></Tags>
177
- <div class="adminui-main"
178
- id="adminui-main">
179
- <slot name="routerView">
180
- <router-view v-slot="{ Component }">
181
- <keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
182
- <component :is="Component"
183
- :key="$route.fullPath"
184
- v-if="$store.state.keepAlive.routeShow" />
185
- </keep-alive>
186
- </router-view>
187
- </slot>
188
- <iframe-view></iframe-view>
189
- </div>
190
- </div>
191
- </section>
192
- </template>
193
-
194
- <!-- 默认布局 -->
195
- <template v-else>
196
- <section class="aminui-wrapper">
197
- <div v-if="!ismobile"
198
- class="aminui-side-split">
199
- <div class="aminui-side-split-top">
200
- <Aside></Aside>
201
- </div>
202
-
203
- <div class="adminui-side-split-scroll">
204
- <el-scrollbar>
205
- <ul>
206
- <li v-for="item in menu"
207
- :key="item"
208
- :class="pmenu.path == item.path ? 'active' : ''"
209
- @click="showMenu(item)">
210
- <el-icon>
211
- <component :is="item.meta.icon || el - icon - menu" />
212
- </el-icon>
213
- <p>{{ item.meta.title }}</p>
214
- </li>
215
- </ul>
216
- </el-scrollbar>
217
- </div>
218
- </div>
219
- <div v-if="!ismobile && nextMenu.length > 0 || !pmenu.component"
220
- :class="menuIsCollapse ? 'aminui-side isCollapse' : 'aminui-side'">
221
- <div v-if="!menuIsCollapse"
222
- class="adminui-side-top">
223
- <h2>{{ pmenu.meta.title }}</h2>
224
- </div>
225
- <div class="adminui-side-scroll">
226
- <el-scrollbar>
227
- <el-menu :default-active="active"
228
- router
229
- :collapse="menuIsCollapse"
230
- :unique-opened="$config.MENU_UNIQUE_OPENED">
231
- <NavMenu :navMenus="nextMenu"></NavMenu>
232
- </el-menu>
233
- </el-scrollbar>
234
- </div>
235
- <div class="adminui-side-bottom"
236
- @click="$store.commit('TOGGLE_menuIsCollapse')">
237
- <el-icon><el-icon-expand v-if="menuIsCollapse" /><el-icon-fold
238
- v-else /></el-icon>
239
- </div>
240
- </div>
241
- <Side-m v-if="ismobile"></Side-m>
242
- <div class="aminui-body el-container">
243
- <Topbar>
244
- <userbar :isShowBu="isShowBu"
245
- :isInitialized="isInitialized">
246
- <template #userbarActionBox>
247
- <slot name="userbarActionBox"></slot>
248
- </template>
249
- </userbar>
250
- </Topbar>
251
- <Tags v-if="!ismobile && layoutTags"
252
- :tagShowID="tagShowID"></Tags>
253
- <div class="adminui-main"
254
- id="adminui-main">
255
- <slot name="routerView">
256
- <router-view v-slot="{ Component }">
257
- <keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
258
- <component :is="Component"
259
- :key="$route.fullPath"
260
- v-if="$store.state.keepAlive.routeShow" />
261
- </keep-alive>
262
- </router-view>
263
- </slot>
264
- <iframe-view></iframe-view>
265
- </div>
266
- </div>
267
- </section>
268
- </template>
269
-
270
- <div class="main-maximize-exit"
271
- @click="exitMaximize"><el-icon><el-icon-close /></el-icon></div>
272
-
273
- <div class="layout-setting"
274
- @click="openSetting"><el-icon><el-icon-brush-filled /></el-icon></div>
275
-
276
- <el-drawer title="布局实时演示"
277
- v-model="settingDialog"
278
- :size="400"
279
- append-to-body
280
- destroy-on-close>
281
- <setting></setting>
282
- </el-drawer>
283
- </template>
284
-
285
- <script>
286
- import SideM from './components/sideM.vue';
287
- import Aside from './components/aside.vue';
288
- import Topbar from './components/topbar.vue';
289
- import Tags from './components/tags.vue';
290
- import NavMenu from './components/NavMenu.vue';
291
- import userbar from './components/userbar.vue';
292
- import setting from './components/setting.vue';
293
- import iframeView from './components/iframeView.vue';
294
- export default {
295
- name: 'lwLayout',
296
- props: {
297
- isShowBu: {
298
- type: Boolean,
299
- default: true
300
- },
301
- // 是否要校验初始化
302
- isInitialized: {
303
- type: Boolean,
304
- default: true
305
- },
306
- // 标签是否显示ID
307
- tagShowID: {
308
- type: Boolean,
309
- default: false
310
- }
311
- },
312
- components: {
313
- Aside,
314
- SideM,
315
- Topbar,
316
- Tags,
317
- NavMenu,
318
- userbar,
319
- setting,
320
- iframeView
321
- },
322
- data() {
323
- return {
324
- settingDialog: false,
325
- changeMenu: false,
326
- menu: [],
327
- nextMenu: [],
328
- pmenu: {},
329
- active: ''
330
- }
331
- },
332
- computed: {
333
- ismobile() {
334
- return this.$store.state.global.ismobile
335
- },
336
- layout() {
337
- return this.$store.state.global.layout
338
- },
339
- layoutTags() {
340
- return this.$store.state.global.layoutTags
341
- },
342
- menuIsCollapse() {
343
- return this.$store.state.global.menuIsCollapse
344
- }
345
- },
346
- beforeCreate() {
347
- // 挂载菜单订阅
348
- this.$bus.$on('setMenu', (menu) => {
349
- this.changeMenu = true
350
- this.menu = this.filterUrl(menu)
351
- })
352
-
353
- // 处理标签状态
354
- let isHideTab = this.$tool.data.get("APP_LAYOUTTAGS")
355
- if (isHideTab) {
356
- this.$store.state.global.layoutTags = false
357
- }
358
- let isMenuIsCollapse = this.$tool.data.get("APP_menuIsCollapse")
359
- this.$store.state.global.menuIsCollapse = !!isMenuIsCollapse
360
- },
361
- async created() {
362
- // 标识当前项目
363
- let isCombined = this.$tool.data.get("MENUCOMBINED")
364
- if (isCombined) {
365
- this.$tool.data.set("MENUCOMBINEDNMAE", this.$config.APP_NAME);
366
- }
367
-
368
- this.onLayoutResize();
369
- window.addEventListener('resize', this.onLayoutResize);
370
- this.getUserInfo();
371
- if (!this.changeMenu) {
372
- var menu = this.$router.sc_getMenu();
373
- this.menu = this.filterUrl(menu);
374
- }
375
- this.showThis()
376
- this.$store.commit("LOAD_USER_FROM_LOCAL_STORAGE")
377
- },
378
- watch: {
379
- async $route() {
380
- this.showThis()
381
- },
382
- '$i18n.locale'() {
383
- var menu = this.$router.sc_getMenu();
384
- this.menu = this.filterUrl(menu);
385
- },
386
- layout: {
387
- handler(val) {
388
- document.body.setAttribute('data-layout', val)
389
- },
390
- immediate: true,
391
- },
392
-
393
- },
394
- methods: {
395
- // 获取用户信息 - 用于从demo环境直接跳转
396
- async getUserInfo() {
397
-
398
- // 获取所有bu
399
- let bu = await this.$api.auth.bu()
400
- this.$tool.data.set('buList', bu)
401
-
402
- // 获取用户信息
403
- let user = await this.$api.auth.user()
404
-
405
- // 处理应用显示逻辑
406
- let application = [...new Set(user.userAuthInfo.menus.map(permission => permission.split('.')[0]))]
407
- user.userAuthInfo.grantedApplications = user.userAuthInfo.grantedApplications.filter(x => application.includes(x.code))
408
-
409
- this.$tool.data.set('tenantId', user.userAuthInfo.tenantId)
410
- this.$tool.data.set('userAuthInfo', user.userAuthInfo)
411
- this.$tool.data.set('MenuPath', user.userAuthInfo.grantedApplications)
412
- this.$store.state.user = user.userAuthInfo
413
- },
414
-
415
-
416
-
417
- openSetting() {
418
- this.settingDialog = true;
419
- },
420
- onLayoutResize() {
421
- this.$store.commit("SET_ismobile", document.body.clientWidth < 992)
422
- },
423
- //路由监听高亮
424
- showThis() {
425
- this.pmenu = this.$route.meta.breadcrumb ? this.$route.meta.breadcrumb[0] : {}
426
- this.nextMenu = this.filterUrl(this.pmenu.children);
427
- this.$nextTick(() => {
428
- this.active = this.$route.meta.active || this.$route.fullPath;
429
- })
430
- },
431
- //点击显示
432
- showMenu(route) {
433
- this.pmenu = route;
434
- this.nextMenu = this.filterUrl(route.children);
435
- if ((!route.children || route.children.length == 0) && route.component) {
436
- this.$router.push({ path: route.path })
437
- }
438
- },
439
- //转换外部链接的路由
440
- filterUrl(map) {
441
-
442
- var newMap = []
443
- map && map.forEach(item => {
444
- item.meta = item.meta ? item.meta : {};
445
- //处理隐藏
446
- if (item.meta.hidden || item.meta.type == "button") {
447
- return false
448
- }
449
- //处理http
450
- if (item.meta.type == 'iframe') {
451
- item.path = `/i/${item.name}`;
452
- }
453
- //递归循环
454
- if (item.children && item.children.length > 0) {
455
- item.children = this.filterUrl(item.children)
456
- }
457
- newMap.push(item)
458
- })
459
-
460
- this.changeMenu = false
461
- return newMap;
462
- },
463
- //退出最大化
464
- exitMaximize() {
465
- document.getElementById('app').classList.remove('main-maximize')
466
- }
467
- }
468
- }
469
- </script>