@lambo-design/pro-layout 1.0.0-beta.9 → 1.0.0-beta.90

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
1
  {
2
2
  "name": "@lambo-design/pro-layout",
3
- "version": "1.0.0-beta.9",
3
+ "version": "1.0.0-beta.90",
4
4
  "description": "",
5
5
  "main": "index.js",
6
- "scripts": {
7
-
8
- },
6
+ "scripts": {},
9
7
  "author": "lambo",
10
8
  "license": "ISC",
11
9
  "publishConfig": {
12
- "access": "public"
10
+ "access": "public",
11
+ "registry": "https://registry.npmjs.org/"
13
12
  },
14
13
  "devDependencies": {
15
- "@lambo-design/core": "workspace:*",
16
- "@lambo-design/shared": "workspace:*"
14
+ "@lambo-design/core": "workspace:^",
15
+ "@lambo-design/shared": "workspace:^"
17
16
  }
18
17
  }
@@ -38,7 +38,6 @@ export default {
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
2
  <div class="pro-layout-logo-wrapper">
3
- <div class="logo"></div>
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(){
@@ -40,15 +54,13 @@ export default {
40
54
  <style scoped lang="less">
41
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;
47
- background: url("../styles/images/logo.png") no-repeat;
60
+ background: url("../styles/images/inspur.png") no-repeat;
48
61
  background-size: 100%;
49
62
  float: left;
50
- margin-top: 8px;
51
- border-bottom: 1px solid #000000;
63
+ margin-top: 20px;
52
64
  }
53
65
  .divider{
54
66
  height: 33px;
@@ -64,4 +76,4 @@ export default {
64
76
  margin-right: 15px;
65
77
  }
66
78
  }
67
- </style>
79
+ </style>
@@ -0,0 +1,137 @@
1
+ <template>
2
+ <div :class="classes">
3
+ <div class="other-menu-item" @click="onChange('history')">
4
+ <Tooltip :disabled="!collapsed" content="历史" placement="right" transfer>
5
+ <div>
6
+ <Icon class="other-menu-icon" type="md-time"/>
7
+ <span class="other-menu-title"> 历史</span>
8
+ </div>
9
+ </Tooltip>
10
+ </div>
11
+ <div class="other-menu-item" @click="onChange('collect')">
12
+ <Tooltip :disabled="!collapsed" content="收藏" placement="right" transfer>
13
+ <div>
14
+ <Icon class="other-menu-icon" type="md-star-outline"/>
15
+ <span class="other-menu-title"> 收藏</span>
16
+ </div>
17
+
18
+ </Tooltip>
19
+ </div>
20
+ <Drawer v-model="drawer.model"
21
+ :class-name="drawerClasses"
22
+ :closable="false"
23
+ :mask-style="{backgroundColor: 'unset'}"
24
+ :scrollable="true"
25
+ :title="drawer.title"
26
+ placement="left"
27
+ >
28
+ <div v-if="drawer.type=='history'" class="other-menu-history">
29
+ <div v-for="item in list" class="other-menu-history-item">
30
+ <div class="content" @click="handleClick(item)">
31
+ <common-icon :type="item.icon"></common-icon>
32
+ <span> {{ item.label }}</span>
33
+ </div>
34
+ <div class="delete">
35
+ <common-icon type="ios-close" @click.native="handleHistoryDelete(item)"></common-icon>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ <div v-if="drawer.type=='collect'" class="other-menu-collect">
40
+ <div v-for="item in list" class="other-menu-collect-item" @click="handleClick(item)">
41
+ <div class="content">
42
+ <Tooltip :content="item.label" :delay="1000">
43
+ <common-icon :size="40" :type="item.icon"></common-icon>
44
+ </Tooltip>
45
+ </div>
46
+ <div class="delete">
47
+ <common-icon type="ios-close" @click.native.stop="handleCollectDelete(item)"></common-icon>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ </Drawer>
52
+ </div>
53
+ </template>
54
+
55
+ <script>
56
+ import ajax from '@lambo-design/shared/utils/ajax';
57
+ import config from "@lambo-design/shared/config/config";
58
+
59
+ export default {
60
+ name: "other-menu",
61
+ components: {},
62
+ props: {
63
+ collapsed: {
64
+ type: Boolean
65
+ },
66
+ },
67
+ data() {
68
+ return {
69
+ drawer: {
70
+ model: false,
71
+ url: '',
72
+ title: '',
73
+ type: '',
74
+ },
75
+ list: []
76
+ }
77
+ },
78
+ computed: {
79
+ classes() {
80
+ let classes = ["other-menu"]
81
+ return this.collapsed ? ["other-menu-collapsed", ...classes] : [...classes]
82
+ },
83
+ drawerClasses() {
84
+ return this.collapsed ? "other-menu-drawer-wrap-collapsed" : "other-menu-drawer-wrap"
85
+ }
86
+ },
87
+ methods: {
88
+ onChange(value) {
89
+ if (value == 'history') {
90
+ this.drawer.title = '历史菜单'
91
+ this.drawer.url = '/manage/upmsMenuHistory/list'
92
+
93
+ } else {
94
+ this.drawer.title = '收藏菜单'
95
+ this.drawer.url = '/manage/upmsMenuCollect/list'
96
+ }
97
+ this.getList()
98
+ this.drawer.type = value
99
+ this.drawer.model = !this.drawer.model
100
+ },
101
+ getList() {
102
+ this.list = []
103
+ ajax.get(config.upmsServerContext + this.drawer.url).then(resp => {
104
+ if (resp.data.code == 1) {
105
+ this.list = resp.data.data
106
+ if (this.drawer.type == 'collect') {
107
+ this.$store.commit('setCollectMenuList', this.list)
108
+ }
109
+ }
110
+ })
111
+ },
112
+ handleClick(item) {
113
+ this.$emit('on-select', item.name)
114
+ this.drawer.model = false
115
+ },
116
+ handleHistoryDelete(item) {
117
+ ajax.get(config.upmsServerContext + "/manage/upmsMenuHistory/delete/" + item.historyId).then(resp => {
118
+ if (resp.data.code == 1) {
119
+ this.getList()
120
+ }
121
+ })
122
+ },
123
+ handleCollectDelete(item) {
124
+ ajax.get(config.upmsServerContext + "/manage/upmsMenuCollect/delete/" + item.collectId).then(resp => {
125
+ if (resp.data.code == 1) {
126
+ this.getList()
127
+ }
128
+ })
129
+ }
130
+ }
131
+ }
132
+ </script>
133
+
134
+
135
+ <style lang="less">
136
+ @import '../styles/other-menu.less';
137
+ </style>
@@ -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,20 @@ 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
+ if (item && item.length > 0){
167
+ let type = item[0].type;
168
+ if (type == 2) {
169
+ this.activeName = current;
170
+ } else {
171
+ let pItem = this.originMenuList.filter(menu => menu.permissionId === item[0].pid);
172
+ if (pItem && pItem.length > 0){
173
+ this.activeName = pItem[0].name;
174
+ }
175
+ }
176
+ } else {
177
+ this.activeName = current;
178
+ }
167
179
  },
168
180
  getOpenedNamesByActiveName(){
169
181
  let res = filterMenuName(this.menuList,this.activeName);
@@ -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
@@ -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>
@@ -26,7 +26,7 @@ export default {
26
26
  .trans{
27
27
  transition: transform .2s ease;
28
28
  }
29
- @size: 40px;
29
+ @size: 64px;
30
30
  .sider-trigger-a{
31
31
  float: left;
32
32
  padding: 6px;
package/src/index.vue CHANGED
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <i-layout class="pro-layout">
2
+ <i-layout class="pro-layout" :class="layoutClass">
3
3
  <i-header class="pro-layout-header">
4
4
  <LamboProLayoutHeader></LamboProLayoutHeader>
5
5
  </i-header>
@@ -8,7 +8,7 @@
8
8
  class="pro-layout-sider"
9
9
  hide-trigger
10
10
  collapsible
11
- :width="256"
11
+ :width="220"
12
12
  :collapsed-width="64"
13
13
  v-model="collapsed">
14
14
  <LamboProLayoutSider ref="sider"></LamboProLayoutSider>
@@ -35,14 +35,25 @@ import LamboProLayoutTabs from './components/pro-layout-tabs'
35
35
  import Bus from '@lambo-design/shared/utils/bus'
36
36
  import config from "@lambo-design/shared/config/config";
37
37
  import {
38
- getTagNavListFromLocalstorage, tagExists,
38
+ getTagNavListFromLocalstorage, routeEqual, tagExists,
39
39
  } from "@lambo-design/shared/utils/platform";
40
40
  import {deepCopy} from "@lambo-design/shared/utils/assist";
41
41
  export default {
42
42
  props:{
43
43
  systemInfo: {
44
44
  type: Object,
45
- default: () => {}
45
+ default: () => {
46
+ return {
47
+ systemName: '后台管理系统',
48
+ systemLogo: '',
49
+ layoutSize: '',
50
+ tabNum: 8,
51
+ }
52
+ }
53
+ },
54
+ acceptAppId:{
55
+ type: String,
56
+ default: ''
46
57
  },
47
58
  userInfo: {
48
59
  type: Object,
@@ -86,6 +97,17 @@ export default {
86
97
  menuList,
87
98
  homeRouter
88
99
  }
100
+ },
101
+ layoutClass(){
102
+ if (this.systemInfo && this.systemInfo.layoutSize) {
103
+ let layoutSize = this.systemInfo.layoutSize;
104
+ if (layoutSize == 'default') {
105
+ return '';
106
+ } else {
107
+ return 'small';
108
+ }
109
+ }
110
+ return '';
89
111
  }
90
112
  },
91
113
  watch: {
@@ -108,8 +130,8 @@ export default {
108
130
  Bus.$on('user-action', (name)=> {
109
131
  this.userAction(name)
110
132
  })
111
- Bus.$on('menu-click',(name)=>{
112
- this.menuClick(name)
133
+ Bus.$on('menu-click',(name, item)=>{
134
+ this.menuClick(name, item)
113
135
  })
114
136
  Bus.$on('tag-list',(data,current)=>{
115
137
  this.changeTabs(data,current)
@@ -123,15 +145,13 @@ export default {
123
145
  Bus.$off('tag-list')
124
146
  },
125
147
  initEmit(){
126
- if (this.systemInfo && this.systemInfo.systemName) {
127
- Bus.$emit('system-name-change',this.systemInfo.systemName)
128
- }
148
+ Bus.$emit('system-info',this.systemInfo)
129
149
  Bus.$emit('user-info',this.userInfo)
130
150
  Bus.$emit('nav-list',this.navList)
131
151
  Bus.$emit('menu-list',this.menuList)
132
152
  },
133
153
  initTags(){
134
- let tagList = getTagNavListFromLocalstorage();
154
+ let tagList = getTagNavListFromLocalstorage(config.routerBase + '-tagNavList');
135
155
  if (tagList.length == 0) {
136
156
  tagList.push(this.homeRouter);
137
157
  }
@@ -145,9 +165,27 @@ export default {
145
165
  triggerChange(data){
146
166
  this.collapsed = data;
147
167
  },
168
+ initApp(){
169
+ let appInfo = {}
170
+ if (this.acceptAppId !== ''){
171
+ console.log('执行了')
172
+ console.log(this.navList)
173
+ appInfo = this.navList.filter(item => item.appId == this.acceptAppId)[0];
174
+ }
175
+ this.appId = this.acceptAppId;
176
+ let appId;
177
+ appId = this.appId
178
+ console.log("lambodesign-appId:",appId)
179
+ console.log("lambodesign-appInfo:",appInfo)
180
+ this.$emit('change-app',{appId,appInfo})
181
+ },
148
182
  changeApp(appId,appInfo) {
149
183
  if (!appInfo) {
150
- appInfo = this.navList.filter(item => item.appId == appId)[0];
184
+ if (this.appId !== ''){
185
+ appInfo = this.navList.filter(item => item.appId == this.appId)[0];
186
+ }else {
187
+ appInfo = this.navList.filter(item => item.appId == appId)[0];
188
+ }
151
189
  }
152
190
  this.appId = appId;
153
191
  this.$emit('change-app',{appId,appInfo})
@@ -155,10 +193,15 @@ export default {
155
193
  userAction(name){
156
194
  this.$emit('user-action',name)
157
195
  },
158
- menuClick(name){
159
- let res = this.menuList.filter(item => item.name == name);
196
+ menuClick(name, item){
197
+ if (!item) {
198
+ let res = this.menuList.filter(item => item.name == name);
199
+ if (res && res.length > 0) {
200
+ item = res[0];
201
+ }
202
+ }
160
203
  sessionStorage.setItem('activeName',name);
161
- this.$emit('menu-click', name, res[0])
204
+ this.$emit('menu-click', name, item)
162
205
  },
163
206
  changeTabs(data,current){
164
207
  this.$emit('change-tabs',data,current)
@@ -176,15 +219,24 @@ export default {
176
219
  } else {
177
220
  name = menu.name;
178
221
  menuItem = deepCopy(menu);
179
- let tagList = getTagNavListFromLocalstorage();
222
+ let tagList = getTagNavListFromLocalstorage(config.routerBase + '-tagNavList');
180
223
  if (!tagExists(tagList,name)) {
181
224
  tagList.push(menuItem);
225
+ } else {
226
+ let tag = tagList.filter(item => item.name == name)[0];
227
+ if (!routeEqual(tag,menuItem)) {
228
+ let res = tagList.filter(item => item.name !== name);
229
+ tag = Object.assign(tag, menu);
230
+ res.push(tag);
231
+ tagList = deepCopy(res);
232
+ }
182
233
  }
183
234
  Bus.$emit('tag-list', tagList, name)
184
235
  }
185
236
  }
186
237
  },
187
238
  mounted(){
239
+ this.initApp();
188
240
  this.initTags();
189
241
  },
190
242
  created(){
@@ -196,7 +248,8 @@ export default {
196
248
  }
197
249
  </script>
198
250
 
199
- <style scoped lang="less">
251
+ <style lang="less">
252
+ @import "@lambo-design/core/src/styles/default";
200
253
  .pro-layout{
201
254
  color: #ffffff;
202
255
  height: 100vh;
@@ -207,19 +260,61 @@ export default {
207
260
  }
208
261
  .pro-layout-sider{
209
262
  overflow: hidden;
210
- /deep/.ivu-layout-sider-children{
211
- height: ~"calc(100vh - 65px)";
263
+ .ivu-layout-sider-children{
264
+ height: calc(100vh - 65px);
212
265
  overflow-y: scroll;
213
266
  margin-right: -18px;
214
267
  }
215
268
  }
216
269
  .pro-layout-content{
217
270
  .pro-layout-content-layout{
218
- height: ~"calc(100vh - 65px)";
271
+ height: ~"calc(100vh - 53px)";
219
272
  .pro-layout-page{
220
273
  overflow: hidden;
274
+ color: var(--text-color,@_text-color);
275
+ }
276
+ }
277
+ }
278
+ &.small {
279
+ .ivu-layout-header{
280
+ height: 50px;
281
+ line-height: 50px;
282
+ .pro-layout-header-wrapper{
283
+ height: 50px;
284
+ .trigger-box{
285
+ .sider-trigger-a{
286
+ margin-top: 5px;
287
+ width: 64px;
288
+ height: 50px;
289
+ }
290
+ }
291
+ .logo-box{
292
+ .pro-layout-logo-wrapper{
293
+ .logo{
294
+ height: 45px;
295
+ margin-top: 14px;
296
+ }
297
+ .divider{
298
+ height: 26px;
299
+ margin: 12px;
300
+ }
301
+ }
302
+ }
303
+ .nav-box{
304
+ .pro-layout-nav-wrapper{
305
+ .ivu-menu-horizontal{
306
+ height: 46px;
307
+ line-height: 46px;
308
+ }
309
+ }
310
+ }
311
+ }
312
+ }
313
+ .pro-layout-sider{
314
+ .ivu-layout-sider-children{
315
+ height: calc(100vh - 50px);
221
316
  }
222
317
  }
223
318
  }
224
319
  }
225
- </style>
320
+ </style>
Binary file
@@ -0,0 +1,159 @@
1
+ .other-menu {
2
+ width: 100%;
3
+ border-top: 3px solid #000000;
4
+ position: absolute;
5
+ bottom: 0;
6
+ z-index: 1000;
7
+ background: #061629;
8
+
9
+ &.other-menu-collapsed {
10
+ .other-menu-item {
11
+ border-top: 2px solid #000000;
12
+ width: 100%;
13
+
14
+ &:hover {
15
+ color: #ffffff;
16
+ background: #061629;
17
+ }
18
+
19
+ .ivu-tooltip {
20
+ width: 100%;
21
+
22
+ .ivu-tooltip-rel {
23
+ width: 100%;
24
+ }
25
+
26
+ .ivu-tooltip-popper .ivu-tooltip-content {
27
+ .ivu-tooltip-arrow {
28
+ border-right-color: #fff;
29
+ }
30
+
31
+ .ivu-tooltip-inner {
32
+ background: #fff;
33
+ color: #495060;
34
+ }
35
+ }
36
+ }
37
+
38
+ .other-menu-icon {
39
+ font-size: 20px;
40
+ }
41
+
42
+ .other-menu-title {
43
+ display: none;
44
+ }
45
+ }
46
+
47
+ }
48
+
49
+
50
+ .other-menu-item {
51
+ color: #F0F0F0;
52
+ text-align: center;
53
+ line-height: 50px;
54
+ height: 50px;
55
+ width: 100px;
56
+ display: inline-block;
57
+ border-right: 2px solid #000000;
58
+ cursor: pointer;
59
+ border-radius: 3px;
60
+
61
+ &:hover {
62
+ color: #ffffff;
63
+ background: var(--primary-color,@_primary-color);
64
+ }
65
+
66
+ }
67
+ }
68
+
69
+
70
+ .other-menu-drawer-wrap {
71
+
72
+
73
+ .ivu-drawer {
74
+ left: 256px;
75
+ height: calc(100% - 110px);
76
+ bottom: 0;
77
+ top: auto;
78
+
79
+ .other-menu-history {
80
+
81
+ .other-menu-history-item {
82
+ width: 100%;
83
+ height: 35px;
84
+ line-height: 35px;
85
+ position: relative;
86
+
87
+ .delete {
88
+ display: none;
89
+ position: absolute;
90
+ right: 15px;
91
+ top: 0px;
92
+ cursor: pointer;
93
+ }
94
+
95
+ &:hover {
96
+ .content {
97
+ cursor: pointer;
98
+ height: 38px;
99
+ font-weight: bold;
100
+ color: var(--primary-color,@_primary-color);
101
+ }
102
+
103
+ .delete {
104
+ display: inline;
105
+ }
106
+ }
107
+ }
108
+ }
109
+
110
+ .other-menu-collect {
111
+ .other-menu-collect-item {
112
+ display: inline-block;
113
+ margin: 8px;
114
+ position: relative;
115
+
116
+ .delete {
117
+ display: none;
118
+ position: absolute;
119
+ right: -5px;
120
+ top: -5px;
121
+ z-index: 100;
122
+ cursor: pointer;
123
+ }
124
+
125
+ &:hover {
126
+ .content {
127
+ cursor: pointer;
128
+ color: var(--primary-color,@_primary-color);
129
+
130
+ .ivu-tooltip {
131
+ .ivu-tooltip-rel {
132
+ .ivu-icon {
133
+ font-size: 43px;
134
+ }
135
+ }
136
+ }
137
+ }
138
+
139
+ .delete {
140
+ display: inline;
141
+ }
142
+ }
143
+
144
+ }
145
+
146
+ }
147
+ }
148
+
149
+
150
+ }
151
+
152
+ .other-menu-drawer-wrap-collapsed {
153
+ .ivu-drawer {
154
+ left: 65px;
155
+ height: calc(100% - 110px);
156
+ bottom: 0;
157
+ top: auto;
158
+ }
159
+ }
File without changes