@lambo-design/pro-layout 1.0.0-beta.2 → 1.0.0-beta.21

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.
package/package.json CHANGED
@@ -1,18 +1,17 @@
1
- {
2
- "name": "@lambo-design/pro-layout",
3
- "version": "1.0.0-beta.2",
4
- "description": "",
5
- "main": "index.js",
6
- "scripts": {
7
-
8
- },
9
- "author": "lambo",
10
- "license": "ISC",
11
- "publishConfig": {
12
- "access": "public"
13
- },
14
- "devDependencies": {
15
- "@lambo-design/core": "workspace:*",
16
- "@lambo-design/shared": "workspace:*"
17
- }
18
- }
1
+ {
2
+ "name": "@lambo-design/pro-layout",
3
+ "version": "1.0.0-beta.21",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "author": "lambo",
7
+ "license": "ISC",
8
+ "publishConfig": {
9
+ "access": "public",
10
+ "registry": "https://registry.npmjs.org/"
11
+ },
12
+ "dependencies": {
13
+ "@lambo-design/core": "4.7.1-beta.37",
14
+ "@lambo-design/shared": "1.0.0-beta.16"
15
+ },
16
+ "scripts": {}
17
+ }
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="pro-layout-header">
2
+ <div class="pro-layout-header-wrapper">
3
3
  <div class="trigger-box">
4
4
  <LamboProTrigger></LamboProTrigger>
5
5
  </div>
@@ -32,13 +32,12 @@ export default {
32
32
  </script>
33
33
 
34
34
  <style scoped lang="less">
35
- .pro-layout-header{
35
+ .pro-layout-header-wrapper{
36
36
  width: auto;
37
37
  height: 64px;
38
38
  .trigger-box{
39
39
  float: left;
40
40
  height: inherit;
41
- border: 1px solid #000000;
42
41
  }
43
42
  .logo-box{
44
43
  float: left;
@@ -1,6 +1,6 @@
1
1
  <template>
2
- <div class="pro-layout-logo">
3
- <div class="logo"></div>
2
+ <div class="pro-layout-logo-wrapper">
3
+ <div class="logo" :style="logoStyle"></div>
4
4
  <div class="divider"></div>
5
5
  <div class="system-name">{{systemName}}</div>
6
6
  </div>
@@ -12,20 +12,34 @@ export default {
12
12
  name: "pro-layout-logo",
13
13
  data(){
14
14
  return {
15
+ systemInfo: {},
15
16
  systemName: '后台管理系统'
16
17
  }
17
18
  },
19
+ computed:{
20
+ logoStyle(){
21
+ if (this.systemInfo && this.systemInfo.systemLogo) {
22
+ return 'background: url("' + this.systemInfo.systemLogo + '") no-repeat;background-size: 100%;'
23
+ }
24
+ return '';
25
+ }
26
+ },
18
27
  methods: {
19
28
  initListener(){
20
- Bus.$on('system-name-change',(data)=>{
21
- this.systemNameChange(data)
29
+ Bus.$on('system-info',(data)=>{
30
+ this.initSystem(data)
22
31
  });
23
32
  },
24
33
  destroyListener(){
25
- Bus.$off('system-name-change')
34
+ Bus.$off('system-info')
26
35
  },
27
- systemNameChange(data){
28
- this.systemName = data;
36
+ initSystem(data){
37
+ if (data) {
38
+ this.systemInfo = data;
39
+ if (data.systemName) {
40
+ this.systemName = data.systemName;
41
+ }
42
+ }
29
43
  }
30
44
  },
31
45
  created(){
@@ -38,9 +52,8 @@ export default {
38
52
  </script>
39
53
 
40
54
  <style scoped lang="less">
41
- .pro-layout-logo{
55
+ .pro-layout-logo-wrapper{
42
56
  overflow: hidden;
43
- border-bottom: 1px solid #000000;
44
57
  .logo{
45
58
  width: 150px;
46
59
  height: 55px;
@@ -48,7 +61,6 @@ export default {
48
61
  background-size: 100%;
49
62
  float: left;
50
63
  margin-top: 8px;
51
- border-bottom: 1px solid #000000;
52
64
  }
53
65
  .divider{
54
66
  height: 33px;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="pro-layout-nav">
2
+ <div class="pro-layout-nav-wrapper">
3
3
  <Menu ref="topNav" mode="horizontal" theme="dark" :active-name="activeName" @on-select="selectApp">
4
4
  <MenuItem :name="item.appId" v-for="item in topMenList" :key="item.appId">
5
5
  {{item.name}}
@@ -104,7 +104,7 @@ export default {
104
104
 
105
105
  <style scoped lang="less">
106
106
  @import '@lambo-design/core/src/styles/default.less';
107
- .pro-layout-nav{
107
+ .pro-layout-nav-wrapper{
108
108
  .ivu-menu{
109
109
  .ivu-menu-item{
110
110
  &:hover{
@@ -1,13 +1,13 @@
1
1
  <template>
2
2
  <Dropdown ref="dropdown" :class="hideTitle ? '' : 'collased-menu-dropdown'" :placement="placement"
3
- :transfer="hideTitle" @on-click="handleClick">
4
- <a :style="{textAlign: !hideTitle ? 'left' : ''}" class="drop-menu-a" type="text"
3
+ :transfer="true" @on-click="handleClick">
4
+ <a :style="{textAlign: !hideTitle ? 'left' : '',padding: !hideTitle ? '0px' : ''}" class="drop-menu-a" type="text"
5
5
  @mouseover="handleMousemove($event, children)">
6
- <ProLayoutSiderIcon :icon-type="parentItem.meta.icon"></ProLayoutSiderIcon>
6
+ <ProLayoutSiderIcon :icon-type="parentItem.meta.icon" :icon-size="hideTitle ? 26 : 14"></ProLayoutSiderIcon>
7
7
  <span v-if="!hideTitle" class="menu-title">{{ showTitle(parentItem) }}</span>
8
- <Icon v-if="!hideTitle" :size="20" style="float: right;" type="ios-arrow-forward"/>
8
+ <Icon v-if="!hideTitle" :size="16"type="ios-arrow-forward"/>
9
9
  </a>
10
- <DropdownMenu ref="dropdown" slot="list">
10
+ <DropdownMenu ref="dropdown" slot="list" style="width: auto">
11
11
  <template v-for="child in children">
12
12
  <ProLayoutSiderCollapsedMenu v-if="showChildren(child)" :key="`drop-${child.name}`"
13
13
  :parent-item="child">
@@ -69,26 +69,23 @@ export default {
69
69
  list-style: none;
70
70
  cursor: pointer;
71
71
  transition: background 0.2s ease-in-out;
72
+ display: block;
72
73
  &:hover{
73
74
  color: var(--heading-color, @_heading-color);
74
75
  background: rgba(26,26,26,0.05);
75
76
  }
76
- a.drop-menu-a{
77
- display: inline-block;
78
- width: 100%;
79
- font-weight: normal;
80
- color: var(--text-color, @_text-color);
81
- &:hover{
82
- color: var(--heading-color, @_heading-color);
77
+ /deep/.ivu-dropdown-rel{
78
+ a.drop-menu-a{
79
+ display: inline-block;
80
+ width: 100%;
81
+ font-weight: normal;
82
+ margin-left: -5px;
83
+ color: var(--text-color, @_text-color) !important;
84
+ text-decoration: none;
85
+ &:hover{
86
+ color: var(--heading-color, @_heading-color) !important;
87
+ }
83
88
  }
84
89
  }
85
90
  }
86
- </style>
87
- <style lang="less">
88
- .ivu-select-dropdown {
89
- &.ivu-dropdown-transfer {
90
- max-height: 400px;
91
- max-width: 150px;
92
- }
93
- }
94
91
  </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="pro-layout-sider">
2
+ <div class="pro-layout-sider-wrapper">
3
3
  <Menu v-show="!collapsed" ref="menu"
4
4
  :accordion="accordion" :active-name="activeName"
5
5
  :open-names="openedNames" theme="dark"
@@ -55,7 +55,7 @@ import ProLayoutSiderMenuItem from './pro-layout-sider-menu-item'
55
55
  import ProLayoutSiderCollapsedMenu from './pro-layout-sider-collapsed-menu'
56
56
  import {
57
57
  filterMenuName,
58
- filterMenuUri,
58
+ filterMenuUri, routeEqual,
59
59
  tagExists
60
60
  } from "@lambo-design/shared/utils/platform";
61
61
 
@@ -153,7 +153,6 @@ export default {
153
153
  }
154
154
  Bus.$emit('tag-list', tagList, menu.name)
155
155
  }
156
- //Bus.$emit('menu-click', name)
157
156
  },
158
157
  triggerChange(data){
159
158
  this.collapsed = data;
@@ -163,7 +162,21 @@ export default {
163
162
  this.value = name;
164
163
  },
165
164
  menuClick(current) {
166
- this.activeName = current;
165
+ let item = this.originMenuList.filter(menu => menu.name === current);
166
+ console.log("item=",item)
167
+ if (item && item.length > 0){
168
+ let type = item.type;
169
+ if (type == 2) {
170
+ this.activeName = current;
171
+ } else {
172
+ let pItem = this.originMenuList.filter(menu => menu.permissionId === item.pid);
173
+ if (pItem && pItem.length > 0){
174
+ this.activeName = pItem.name;
175
+ }
176
+ }
177
+ } else {
178
+ this.activeName = current;
179
+ }
167
180
  },
168
181
  getOpenedNamesByActiveName(){
169
182
  let res = filterMenuName(this.menuList,this.activeName);
@@ -204,7 +217,7 @@ export default {
204
217
 
205
218
  <style scoped lang="less">
206
219
  @import "@lambo-design/core/src/styles/default";
207
- .pro-layout-sider{
220
+ .pro-layout-sider-wrapper{
208
221
  /deep/.ivu-menu-submenu{
209
222
  .ivu-menu{
210
223
  background: #1A1A1A;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="pro-layout-tabs">
2
+ <div class="pro-layout-tabs-wrapper">
3
3
  <div class="close-con">
4
4
  <Dropdown transfer @on-click="handleTagsOption">
5
5
  <Icon :size="24" type="ios-close-circle-outline" class="btn-close"/>
@@ -44,6 +44,7 @@
44
44
  <script>
45
45
  import {
46
46
  getPreviousTagIndex,
47
+ getDelTagIndex,
47
48
  setTagNavListInLocalstorage,
48
49
  showTitle
49
50
  } from '@lambo-design/shared/utils/platform'
@@ -56,6 +57,8 @@ export default {
56
57
  name: 'pro-layout-tabs',
57
58
  data() {
58
59
  return {
60
+ systemInfo: {},
61
+ tabNum : 8,
59
62
  appId: '',
60
63
  appInfo: {},
61
64
  navList: [],
@@ -76,6 +79,9 @@ export default {
76
79
  },
77
80
  methods: {
78
81
  initListener(){
82
+ Bus.$on('system-info',(data)=>{
83
+ this.initSystem(data)
84
+ });
79
85
  Bus.$on('nav-list',(data)=>{
80
86
  this.initNav(data)
81
87
  });
@@ -90,11 +96,20 @@ export default {
90
96
  })
91
97
  },
92
98
  destroyListener(){
99
+ Bus.$off('system-info')
93
100
  Bus.$off('nav-list')
94
101
  Bus.$off('menu-list')
95
102
  Bus.$off('tag-list')
96
103
  Bus.$off('change-app')
97
104
  },
105
+ initSystem(data){
106
+ if (data) {
107
+ this.systemInfo = data;
108
+ if (data.tabNum) {
109
+ this.tabNum = data.tabNum;
110
+ }
111
+ }
112
+ },
98
113
  initNav(data){
99
114
  if (data.toString() === this.navList.toString()) {
100
115
  return;
@@ -105,7 +120,11 @@ export default {
105
120
  this.originMenuList = deepCopy(data);
106
121
  },
107
122
  initTags(data,current){
108
- setTagNavListInLocalstorage(data);
123
+ if (data.length > this.tabNum) {
124
+ let index = getDelTagIndex(data,current);
125
+ data.splice(index,1);
126
+ }
127
+ setTagNavListInLocalstorage(data, config.routerBase + '-tagNavList');
109
128
  this.tagList = data;
110
129
  if (current !== this.value) {
111
130
  this.value = current;
@@ -186,7 +205,7 @@ export default {
186
205
  },
187
206
  handleClick(item) {
188
207
  this.value = item.name
189
- Bus.$emit('menu-click', item.name)
208
+ Bus.$emit('menu-click', item.name , item)
190
209
  if (item.meta && item.meta.appId
191
210
  && item.meta.appId != this.appId
192
211
  && item.meta.appId != config.homeRouter.meta.appId) {
@@ -238,7 +257,7 @@ export default {
238
257
  this.visible = true
239
258
  const offsetLeft = this.$el.getBoundingClientRect().left
240
259
  this.contextMenuLeft = e.clientX - offsetLeft + 10
241
- this.contextMenuTop = e.clientY - 114
260
+ this.contextMenuTop = e.clientY - 54
242
261
  },
243
262
  closeMenu() {
244
263
  this.visible = false
@@ -278,13 +297,13 @@ export default {
278
297
  user-select: none;
279
298
  }
280
299
 
281
- .pro-layout-tabs {
300
+ .pro-layout-tabs-wrapper {
282
301
  position: relative;
283
302
  border-top: 1px solid #F0F0F0;
284
303
  border-bottom: 1px solid #F0F0F0;
285
304
  width: 100%;
286
- height: 50px;
287
- line-height: 38px;
305
+ height: 46px;
306
+ line-height: 42px;
288
307
  color: var(--text-color, @_text-color);
289
308
  .no-select;
290
309
 
@@ -368,6 +387,7 @@ export default {
368
387
  margin: 0;
369
388
  padding: 5px 15px;
370
389
  cursor: pointer;
390
+ line-height: 18px;
371
391
 
372
392
  &:hover {
373
393
  background: #eee;
@@ -4,7 +4,7 @@
4
4
  <span>欢迎,{{ userInfo.userName }}</span>
5
5
  <Icon type="ios-arrow-down" />
6
6
  <DropdownMenu v-if="userInfo.dropList.length > 0" slot="list">
7
- <DropdownItem v-for="item in userInfo.dropList" :name="item.name">&nbsp;{{item.value}}</DropdownItem>
7
+ <DropdownItem v-for="item in userInfo.dropList" :name="item.name" :key="item.name">&nbsp;{{item.value}}</DropdownItem>
8
8
  </DropdownMenu>
9
9
  </Dropdown>
10
10
  </div>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="pro-layout-tools">
2
+ <div class="pro-layout-tools-wrapper">
3
3
  <LamboProLayoutToolsUser></LamboProLayoutToolsUser>
4
4
  </div>
5
5
  </template>
@@ -15,7 +15,7 @@ export default {
15
15
  </script>
16
16
 
17
17
  <style scoped lang="less">
18
- .pro-layout-tools{
18
+ .pro-layout-tools-wrapper{
19
19
  margin-right: 15px;
20
20
  }
21
21
  </style>
package/src/index.vue CHANGED
@@ -1,19 +1,20 @@
1
1
  <template>
2
- <i-layout class="pro-layout">
3
- <i-header>
2
+ <i-layout class="pro-layout" :class="layoutClass">
3
+ <i-header class="pro-layout-header">
4
4
  <LamboProLayoutHeader></LamboProLayoutHeader>
5
5
  </i-header>
6
6
  <i-layout>
7
7
  <i-sider
8
+ class="pro-layout-sider"
8
9
  hide-trigger
9
10
  collapsible
10
- :width="256"
11
+ :width="220"
11
12
  :collapsed-width="64"
12
13
  v-model="collapsed">
13
14
  <LamboProLayoutSider ref="sider"></LamboProLayoutSider>
14
15
  </i-sider>
15
16
  <i-content class="pro-layout-content">
16
- <i-layout>
17
+ <i-layout class="pro-layout-content-layout">
17
18
  <div class="pro-layout-tabs">
18
19
  <LamboProLayoutTabs></LamboProLayoutTabs>
19
20
  </div>
@@ -34,14 +35,21 @@ import LamboProLayoutTabs from './components/pro-layout-tabs'
34
35
  import Bus from '@lambo-design/shared/utils/bus'
35
36
  import config from "@lambo-design/shared/config/config";
36
37
  import {
37
- getTagNavListFromLocalstorage, tagExists,
38
+ getTagNavListFromLocalstorage, routeEqual, tagExists,
38
39
  } from "@lambo-design/shared/utils/platform";
39
40
  import {deepCopy} from "@lambo-design/shared/utils/assist";
40
41
  export default {
41
42
  props:{
42
43
  systemInfo: {
43
44
  type: Object,
44
- default: () => {}
45
+ default: () => {
46
+ return {
47
+ systemName: '后台管理系统',
48
+ systemLogo: '',
49
+ layoutSize: '',
50
+ tabNum: 8,
51
+ }
52
+ }
45
53
  },
46
54
  userInfo: {
47
55
  type: Object,
@@ -85,6 +93,17 @@ export default {
85
93
  menuList,
86
94
  homeRouter
87
95
  }
96
+ },
97
+ layoutClass(){
98
+ if (this.systemInfo && this.systemInfo.layoutSize) {
99
+ let layoutSize = this.systemInfo.layoutSize;
100
+ if (layoutSize == 'default') {
101
+ return '';
102
+ } else {
103
+ return 'small';
104
+ }
105
+ }
106
+ return '';
88
107
  }
89
108
  },
90
109
  watch: {
@@ -107,8 +126,8 @@ export default {
107
126
  Bus.$on('user-action', (name)=> {
108
127
  this.userAction(name)
109
128
  })
110
- Bus.$on('menu-click',(name)=>{
111
- this.menuClick(name)
129
+ Bus.$on('menu-click',(name, item)=>{
130
+ this.menuClick(name, item)
112
131
  })
113
132
  Bus.$on('tag-list',(data,current)=>{
114
133
  this.changeTabs(data,current)
@@ -122,15 +141,13 @@ export default {
122
141
  Bus.$off('tag-list')
123
142
  },
124
143
  initEmit(){
125
- if (this.systemInfo && this.systemInfo.systemName) {
126
- Bus.$emit('system-name-change',this.systemInfo.systemName)
127
- }
144
+ Bus.$emit('system-info',this.systemInfo)
128
145
  Bus.$emit('user-info',this.userInfo)
129
146
  Bus.$emit('nav-list',this.navList)
130
147
  Bus.$emit('menu-list',this.menuList)
131
148
  },
132
149
  initTags(){
133
- let tagList = getTagNavListFromLocalstorage();
150
+ let tagList = getTagNavListFromLocalstorage(config.routerBase + '-tagNavList');
134
151
  if (tagList.length == 0) {
135
152
  tagList.push(this.homeRouter);
136
153
  }
@@ -154,10 +171,15 @@ export default {
154
171
  userAction(name){
155
172
  this.$emit('user-action',name)
156
173
  },
157
- menuClick(name){
158
- let res = this.menuList.filter(item => item.name == name);
174
+ menuClick(name, item){
175
+ if (!item) {
176
+ let res = this.menuList.filter(item => item.name == name);
177
+ if (res && res.length > 0) {
178
+ item = res[0];
179
+ }
180
+ }
159
181
  sessionStorage.setItem('activeName',name);
160
- this.$emit('menu-click', name, res[0])
182
+ this.$emit('menu-click', name, item)
161
183
  },
162
184
  changeTabs(data,current){
163
185
  this.$emit('change-tabs',data,current)
@@ -175,9 +197,17 @@ export default {
175
197
  } else {
176
198
  name = menu.name;
177
199
  menuItem = deepCopy(menu);
178
- let tagList = getTagNavListFromLocalstorage();
200
+ let tagList = getTagNavListFromLocalstorage(config.routerBase + '-tagNavList');
179
201
  if (!tagExists(tagList,name)) {
180
202
  tagList.push(menuItem);
203
+ } else {
204
+ let tag = tagList.filter(item => item.name == name)[0];
205
+ if (!routeEqual(tag,menuItem)) {
206
+ let res = tagList.filter(item => item.name !== name);
207
+ tag = Object.assign(tag, menu);
208
+ res.push(tag);
209
+ tagList = deepCopy(res);
210
+ }
181
211
  }
182
212
  Bus.$emit('tag-list', tagList, name)
183
213
  }
@@ -195,13 +225,67 @@ export default {
195
225
  }
196
226
  </script>
197
227
 
198
- <style scoped lang="less">
228
+ <style lang="less">
229
+ @import "@lambo-design/core/src/styles/default";
199
230
  .pro-layout{
200
231
  color: #ffffff;
201
- min-width: 1100px;
202
- min-height: 600px;
232
+ height: 100vh;
233
+ width: 100%;
234
+ overflow: hidden;
203
235
  .ivu-layout-header{
204
236
  padding: 0;
205
237
  }
238
+ .pro-layout-sider{
239
+ overflow: hidden;
240
+ /deep/.ivu-layout-sider-children{
241
+ height: ~"calc(100vh - 65px)";
242
+ overflow-y: scroll;
243
+ margin-right: -18px;
244
+ }
245
+ }
246
+ .pro-layout-content{
247
+ .pro-layout-content-layout{
248
+ height: ~"calc(100vh - 65px)";
249
+ .pro-layout-page{
250
+ overflow: hidden;
251
+ color: var(--text-color,@_text-color);
252
+ }
253
+ }
254
+ }
255
+ &.small {
256
+ .ivu-layout-header{
257
+ height: 50px;
258
+ line-height: 50px;
259
+ .pro-layout-header-wrapper{
260
+ height: 50px;
261
+ .trigger-box{
262
+ .sider-trigger-a{
263
+ margin-top: 5px;
264
+ }
265
+ }
266
+ .logo-box{
267
+ .pro-layout-logo-wrapper{
268
+ .logo{
269
+ height: 45px;
270
+ margin-top: 5px;
271
+ }
272
+ .divider{
273
+ height: 26px;
274
+ margin: 12px;
275
+ }
276
+ }
277
+ }
278
+ .nav-box{
279
+ .pro-layout-nav-wrapper{
280
+ .ivu-menu-horizontal{
281
+ height: 46px;
282
+ line-height: 46px;
283
+ }
284
+ }
285
+ }
286
+ }
287
+ }
288
+
289
+ }
206
290
  }
207
291
  </style>
@@ -1,92 +0,0 @@
1
- .pro-layout{
2
- .logo-con{
3
- height: 64px;
4
- padding: 10px;
5
- background-color: #1890ff;
6
- position: sticky;
7
- top: 0px;
8
- z-index: 1000;
9
- img{
10
- height: 44px;
11
- width: 44px;
12
- margin-left: 15px;
13
- float: left;
14
- }
15
- .system-title{
16
- float: left;
17
- font-weight: bolder;
18
- font-size: 30px;
19
- margin-right: 20px;
20
- color: #ffffff;
21
- }
22
- }
23
- .header-con{
24
- background: #1890ff;
25
- color: #ffffff;
26
- padding: 0 0px;
27
- width: 100%;
28
- }
29
- .main-layout-con{
30
- height: 100%;
31
- overflow: hidden;
32
- }
33
- .main-content-con{
34
- height: ~"calc(100% - 60px)";
35
- overflow: hidden;
36
- }
37
- //tab框样式
38
- .tags-nav .scroll-outer {
39
- background: #f5f7f9;
40
- box-shadow: 0px 0 3px 2px #f5f7f9 inset
41
- }
42
- .tag-nav-wrapper{
43
- padding: 0;
44
- height:40px;
45
- background:#F0F0F0;
46
- }
47
- .content-wrapper{
48
- height: ~"calc(100% - 80px)";
49
- background: #ffffff;
50
- }
51
- .left-sider{
52
- background: #f5f7f9;
53
- .ivu-layout-sider-children{
54
- overflow-y: scroll;
55
- margin-right: -18px;
56
- }
57
- }
58
- }
59
- .ivu-menu-item > i{
60
- margin-right: 12px !important;
61
- }
62
- .ivu-menu-submenu > .ivu-menu > .ivu-menu-item > i {
63
- margin-right: 8px !important;
64
- }
65
- .collased-menu-dropdown{
66
- width: 100%;
67
- margin: 0;
68
- line-height: normal;
69
- padding: 7px 0 6px 16px;
70
- clear: both;
71
- font-size: 12px !important;
72
- white-space: nowrap;
73
- list-style: none;
74
- cursor: pointer;
75
- transition: background 0.2s ease-in-out;
76
- &:hover{
77
- background: rgba(100, 100, 100, 0.1);
78
- }
79
- & * {
80
- color: #515a6e;
81
- }
82
- .ivu-menu-item > i{
83
- margin-right: 12px !important;
84
- }
85
- .ivu-menu-submenu > .ivu-menu > .ivu-menu-item > i {
86
- margin-right: 8px !important;
87
- }
88
- }
89
-
90
- .ivu-select-dropdown.ivu-dropdown-transfer{
91
- max-height: 400px;
92
- }