cloud-web-corejs 1.0.233 → 1.0.234

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,7 +1,7 @@
1
1
  {
2
2
  "name": "cloud-web-corejs",
3
3
  "private": false,
4
- "version": "1.0.233",
4
+ "version": "1.0.234",
5
5
  "scripts": {
6
6
  "dev": "vue-cli-service serve",
7
7
  "lint": "eslint --ext .js,.vue src",
@@ -1,12 +1,13 @@
1
1
  <template>
2
- <div :class="{ 'has-logo': showLogo }">
2
+ <div :class="{ 'has-logo': showLogo, telescopMenu: !isMenu }">
3
3
  <!-- <logo v-if="showLogo" :collapse="isCollapse" /> -->
4
4
 
5
5
  <div class="hamburger-box" ref="hamhurger" @click="openUserInfo">
6
6
  <!-- <hamburger :is-active="sidebar.opened" @toggleClick="toggleSideBar" /> -->
7
7
  <div>
8
8
  <p class="name">
9
- <i class="iconfont icon-ziyuan"></i><span>{{ userInfo.nickName }}</span>
9
+ <i class="iconfont icon-ziyuan"></i
10
+ ><span>{{ userInfo.nickName }}</span>
10
11
  </p>
11
12
  </div>
12
13
  </div>
@@ -46,7 +47,7 @@
46
47
  >
47
48
  <i
48
49
  class="iconfont icon-liuchengdaiban"
49
- @click="toWorkflowManage()"
50
+ @click="$router.push('/basic/wf/wf_manage/list')"
50
51
  />
51
52
  </el-tooltip>
52
53
  </div>
@@ -57,7 +58,10 @@
57
58
  :content="$t1('获取提取码')"
58
59
  :placement="direction"
59
60
  >
60
- <i class="el-icon-setting" @click="showExtractedCodeCreateDialog = true" />
61
+ <i
62
+ class="el-icon-setting"
63
+ @click="showExtractedCodeCreateDialog = true"
64
+ />
61
65
  </el-tooltip>
62
66
  </div>
63
67
  <div class="item" v-if="isBdAdmin">
@@ -67,7 +71,10 @@
67
71
  :content="$t1('查看提取码')"
68
72
  :placement="direction"
69
73
  >
70
- <i class="el-icon-tickets" @click="showExtractedCodeQueryDialog = true" />
74
+ <i
75
+ class="el-icon-tickets"
76
+ @click="showExtractedCodeQueryDialog = true"
77
+ />
71
78
  </el-tooltip>
72
79
  </div>
73
80
 
@@ -99,7 +106,10 @@
99
106
  <i :class="getMenuClass(router2, 2)"></i
100
107
  ><span>{{ getMenuName(router2) }}</span>
101
108
  </div>
102
- <dl v-for="(router3, index3) in router2.children" :key="'router3' + index3">
109
+ <dl
110
+ v-for="(router3, index3) in router2.children"
111
+ :key="'router3' + index3"
112
+ >
103
113
  <div
104
114
  class="item"
105
115
  v-if="!router3.hidden"
@@ -122,37 +132,57 @@
122
132
  :unique-opened="true"
123
133
  @mouseleave="showNav()"
124
134
  ref="seconMenus"
135
+ :collapse="!isMenu"
125
136
  >
126
137
  <el-scrollbar wrap-class="scrollbar-wrapper" id="menuUl">
127
- <el-submenu
138
+ <component
128
139
  v-for="menuModule in menuModules"
140
+ :is="getMenuType(menuModule)"
129
141
  :index="'' + menuModule.id"
130
142
  :key="'menuModule' + menuModule.id"
131
143
  @click.native="rourteTo(menuModule)"
132
144
  >
145
+ <i :class="getMenuClass(menuModule, 1)" v-if="menuModule.children.length <= 0"></i>
133
146
  <template slot="title">
134
- <i :class="getMenuClass(menuModule, 1)"></i>
147
+ <i :class="getMenuClass(menuModule, 1)" v-if="menuModule.children.length > 0"></i>
135
148
  <span>{{ getMenuName(menuModule) }}</span>
136
149
  </template>
137
- <el-menu-item
138
- v-for="(router1, index1) in menuModule.children"
150
+ <component
151
+ v-for="(router2, index1) in menuModule.children"
152
+ :is="getMenuType(router2)"
139
153
  :key="index1"
140
- :index="'' + router1.id"
141
- :class="getMenuClass(router1, 2)"
142
- @mouseenter.native="showNav(router1, $event)"
154
+ :index="'' + router2.id"
155
+ @mouseenter.native="showNav(router2, $event)"
143
156
  @mouseleave.native="showNav()"
144
- @click="rourteTo(router1)"
157
+ @click="rourteTo(router2)"
145
158
  >
146
- {{ getMenuName(router1) }}
147
- <i class="el-icon-caret-right" v-if="router1.children.length > 0" />
148
- </el-menu-item>
149
- </el-submenu>
150
- <el-submenu @click.native="openCreateCompanyDialog" index="xx" v-if="isFormDev">
159
+ <template slot="title">
160
+ <i :class="getMenuClass(router2, 2)"></i>
161
+ <span>{{ getMenuName(router2) }}</span>
162
+ </template>
163
+ <el-menu-item
164
+ v-for="(router3, index3) in router2.children"
165
+ :key="index3"
166
+ :index="'' + router3.id"
167
+ @click="rourteTo(router3)"
168
+ >
169
+ <template slot="title">
170
+ <i :class="getMenuClass(router3, 3)"></i>
171
+ <span>{{ getMenuName(router3) }}</span>
172
+ </template>
173
+ </el-menu-item>
174
+ </component>
175
+ </component>
176
+ <el-menu-item
177
+ @click.native="openCreateCompanyDialog"
178
+ index="xx"
179
+ v-if="isFormDev"
180
+ >
151
181
  <template slot="title">
152
182
  <i :class="getMenuClass({}, 1)"></i>
153
183
  <span>新建企业</span>
154
184
  </template>
155
- </el-submenu>
185
+ </el-menu-item>
156
186
  </el-scrollbar>
157
187
  </el-menu>
158
188
  <div class="menu-btn">
@@ -264,11 +294,13 @@ import extractedCodeCreateDialog from "../extractedCode/createDialog.vue";
264
294
  import extractedCodeQueryDialog from "../extractedCode/queryDialog.vue";
265
295
  import { getBdFlag } from "@base/api/user";
266
296
  import createCompanyDialog from "@base/layout/components/createCompany/createCompanyDialog.vue";
267
- import { getLogicParamValue } from "@base/api/user";
268
297
 
269
298
  export default {
270
299
  props: {
271
300
  option: Object,
301
+ isMenu: {
302
+ type: Boolean,
303
+ },
272
304
  },
273
305
  components: {
274
306
  userInfo,
@@ -313,7 +345,6 @@ export default {
313
345
  showExtractedCodeQueryDialog: false,
314
346
  isDev: false,
315
347
  showCreateCompanyDialog: false,
316
- workflowManageRoute: "",
317
348
  };
318
349
  },
319
350
  computed: {
@@ -369,22 +400,14 @@ export default {
369
400
  initPddLog(); //初始化拼多多日志
370
401
  this.initIsFormDev();
371
402
  this.getBdEnv();
372
- //初始化流程待办路由
373
- this.initWorkflowManageRoute();
374
403
  },
375
404
  methods: {
376
- initWorkflowManageRoute() {
377
- //初始化流程待办路由
378
- getLogicParamValue({
379
- data: { paramCode: "workflowManageRoute" },
380
- success: (res) => {
381
- let value = res?.objx;
382
- this.workflowManageRoute = value || "/basic/wf/wf_manage/list";
383
- },
384
- });
385
- },
386
- toWorkflowManage() {
387
- this.$router.push(this.workflowManageRoute);
405
+ getMenuType(item) {
406
+ if (item.children && item.children.length > 0) {
407
+ return "el-submenu";
408
+ } else {
409
+ return "el-menu-item";
410
+ }
388
411
  },
389
412
  getBdEnv() {
390
413
  getBdFlag({
@@ -449,7 +472,10 @@ export default {
449
472
  if (match) {
450
473
  const customReqUrl = decodeURIComponent(match[1]);
451
474
  // 移除匹配到的参数部分
452
- const newUrl = url.replace(match[0], match[0].startsWith("?") ? "?" : "");
475
+ const newUrl = url.replace(
476
+ match[0],
477
+ match[0].startsWith("?") ? "?" : ""
478
+ );
453
479
 
454
480
  return {
455
481
  custom_req_url: customReqUrl,
@@ -615,7 +641,9 @@ export default {
615
641
  // 异步树叶子节点懒加载逻辑
616
642
  loadNode(node, resolve) {
617
643
  let companyCode =
618
- node && node.data && node.data.companyCode ? node.data.companyCode || "" : "";
644
+ node && node.data && node.data.companyCode
645
+ ? node.data.companyCode || ""
646
+ : "";
619
647
  let url = !companyCode
620
648
  ? USER_PREFIX + "/user_company_info/getAllList"
621
649
  : USER_PREFIX + "/user_company_info/getChildren";
@@ -632,7 +660,6 @@ export default {
632
660
  datas.forEach((item) => {
633
661
  item.leaf = !item.hasChild;
634
662
  let label = this.$t1(item.companyName);
635
-
636
663
  /*if(companyCode){
637
664
  label = label + '('+companyTypeMap[item.companyType]+')'
638
665
  }*/
@@ -744,6 +771,7 @@ export default {
744
771
  this.showUserInfoDialog = true;
745
772
  },
746
773
  showNav(route, event) {
774
+ if (!this.isMenu) return;
747
775
  let id = route && route.id ? route.id : null;
748
776
  if (id != null) {
749
777
  if (!route.children || !route.children.length) {
@@ -756,7 +784,7 @@ export default {
756
784
  let dom = event.target;
757
785
  let domAttr = dom.getBoundingClientRect();
758
786
  // var sh1 = dom.offsetTop;
759
- var sh1 = domAttr.top;
787
+ var sh1 = domAttr.top + 5;
760
788
  let $snav = this.$refs["seconMenus" + id][0];
761
789
  let snavAttr = $snav.getBoundingClientRect();
762
790
 
@@ -769,10 +797,11 @@ export default {
769
797
  if (sh >= 0) {
770
798
  $snav.style["margin-top"] = sh1 + "px";
771
799
  } else if (sh < 0) {
772
- let bd = sh1 + sh;
800
+ let bd = sh1 + sh ;
773
801
 
774
802
  $snav.style["margin-top"] = bd + "px";
775
- $snav.querySelector(".ico-arrow").style["margin-top"] = sh1 - bd + "px";
803
+ $snav.querySelector(".ico-arrow").style["margin-top"] =
804
+ sh1 - bd + "px";
776
805
  }
777
806
  });
778
807
  } else {
@@ -905,6 +934,7 @@ export default {
905
934
  line-height: 16px;
906
935
  overflow: hidden;
907
936
  vertical-align: middle;
937
+ white-space: nowrap;
908
938
  }
909
939
 
910
940
  &.name {
@@ -929,6 +959,11 @@ export default {
929
959
 
930
960
  p {
931
961
  margin: 0;
962
+ display: -webkit-box;
963
+ overflow: hidden;
964
+ text-overflow: ellipsis;
965
+ -webkit-line-clamp: 2;
966
+ -webkit-box-orient: vertical;
932
967
  }
933
968
  }
934
969
 
@@ -1022,66 +1057,135 @@ export default {
1022
1057
  position: relative;
1023
1058
  background-color: rgba(0, 0, 0, 0.2);
1024
1059
  word-break: break-word;
1025
-
1026
- .el-submenu {
1027
- overflow: hidden; //有点电脑分辨率问题
1028
- .el-submenu__title {
1029
- padding: 0 11px !important;
1030
- height: 48px;
1031
- line-height: 48px;
1032
-
1033
- i {
1034
- color: #fff;
1035
- font-size: 13px;
1036
- margin-right: 0;
1037
- width: 18px;
1038
-
1039
- &.iconfont {
1040
- margin-right: 5px;
1041
- font-size: 19px;
1042
- float: left;
1060
+ .el-scrollbar__view >{
1061
+ .el-menu-item{padding:0 11px !important;
1062
+ span{font-size:14px;}
1063
+ }
1064
+ .el-submenu > .el-submenu__title{padding:0 11px !important;
1065
+ span{font-size:14px;}
1066
+ ~ .el-menu{
1067
+ padding:5px 0;display: grid;
1068
+ > .el-menu-item{
1069
+ span{line-height:1.4;height: 26px;}
1043
1070
  }
1044
-
1045
- &.el-submenu__icon-arrow {
1046
- right: 3px;
1047
- text-align: center;
1048
- font-size: 12px;
1049
- margin-top: -5px;
1050
- display: none;
1071
+ .el-submenu.is-opened .el-submenu__title{background-color:#FFF;opacity:1;
1072
+ span{color:$baseColor;}
1073
+ i.iconfont{color:$baseColor}
1051
1074
  }
1052
1075
  }
1053
1076
 
1054
- > span {
1055
- height: 48px;
1056
- display: table-cell;
1057
- width: 114px;
1058
- vertical-align: middle;
1059
- font-size: 13px;
1060
- white-space: normal;
1061
- line-height: 16px;
1077
+ }
1078
+ }
1079
+ .el-submenu__title,.el-menu-item {
1080
+ padding: 0 11px;
1081
+ height: 48px;
1082
+ line-height: 48px;
1083
+ &:hover,&.is-active{background-color:rgba(0, 0, 0, 0.29)}
1084
+ i {
1085
+ color: #fff;
1086
+ font-size: 13px;
1087
+ margin-right: 0;
1088
+ width: 18px;
1089
+
1090
+ &.iconfont {
1091
+ margin-right: 5px;
1092
+ font-size: 19px;
1093
+ float: left;
1094
+ }
1095
+
1096
+ &.el-submenu__icon-arrow {
1097
+ right: 3px;
1098
+ text-align: center;
1099
+ font-size: 12px;
1100
+ margin-top: -5px;
1101
+ display: none;
1062
1102
  }
1063
1103
  }
1064
1104
 
1105
+ > span {
1106
+ height: 48px;
1107
+ display: table-cell;
1108
+ width: 114px;
1109
+ vertical-align: middle;
1110
+ font-size: 13px;
1111
+ white-space: normal;
1112
+ line-height: 16px;
1113
+ }
1114
+ }
1115
+
1116
+ .el-submenu {
1117
+ overflow: hidden; //有点电脑分辨率问题
1118
+
1065
1119
  &.is-opened .el-submenu__title {
1066
1120
  //background-color: rgba(27, 66, 97) !important;
1067
1121
  }
1122
+ .el-submenu .el-menu{display:none}
1068
1123
  }
1069
1124
 
1070
1125
  .el-submenu {
1126
+ &.is-opened{
1127
+ > .el-submenu__title{background-color:rgba(0, 0, 0, 0.29)}
1128
+ }
1071
1129
  .el-menu {
1072
- background: rgba(0, 0, 0, 0.35) !important;
1130
+ background: rgba(0, 0, 0, 0.35);
1073
1131
  box-shadow: 0px -5px 8px #00000014 inset;
1074
1132
  //padding:4px 0;
1133
+ .el-submenu__title{
1134
+ height: auto;
1135
+ line-height: 1.4;
1136
+ font-size: 12px;
1137
+ opacity: 0.8;
1138
+ margin: 5px 0 5px 14px;
1139
+ padding: 7px 2px 7px 33px !important;
1140
+ border-radius: 8px;
1141
+ text-align: left;
1142
+ min-width: 81px;
1143
+ white-space: normal;
1144
+ margin-right: 10px;
1145
+ word-break: break-word;
1146
+ i.iconfont {
1147
+ position: absolute;
1148
+ top: 50%;
1149
+ height: 20px;
1150
+ margin-top: -10px;
1151
+ line-height: 20px;
1152
+ left: 7px;
1153
+ font-size: 18px;
1154
+ }
1155
+
1156
+ [class^="el-icon-"] {
1157
+ font-size: 12px;
1158
+ color: #fff;
1159
+ position: absolute;
1160
+ right: 2px;
1161
+ top: 50%;
1162
+ margin-top: -5px;
1163
+ width: 14px;
1164
+ zoom: 0.8;
1165
+ display: none;
1166
+ }
1167
+ span{height:auto;text-align: left !important;}
1168
+ &:hover,
1169
+ &.on {
1170
+ opacity: 1;
1171
+ background-color: #fbfdfe !important;
1172
+ color: $baseColor !important;
1173
+ i.iconfont{color:$baseColor}
1174
+ .el-icon-arrow-right {
1175
+ color: $baseColor;
1176
+ }
1177
+ }
1178
+ }
1075
1179
  }
1076
1180
 
1077
- .el-menu-item {
1181
+ .el-menu-item{
1078
1182
  height: auto;
1079
1183
  line-height: 1.4;
1080
1184
  padding-left: 33px !important;
1081
1185
  font-size: 12px;
1082
1186
  opacity: 0.8;
1083
- margin: 10px 0 10px 14px;
1084
- padding: 7px 2px 7px 0px;
1187
+ margin: 5px 0 5px 14px;
1188
+ padding: 2px 2px 2px 0px;
1085
1189
  border-radius: 8px;
1086
1190
  text-align: left;
1087
1191
  min-width: 81px !important;
@@ -1089,7 +1193,7 @@ export default {
1089
1193
  margin-right: 10px;
1090
1194
  word-break: break-word;
1091
1195
 
1092
- &:before {
1196
+ i.iconfont {
1093
1197
  position: absolute;
1094
1198
  top: 50%;
1095
1199
  height: 20px;
@@ -1097,6 +1201,7 @@ export default {
1097
1201
  line-height: 20px;
1098
1202
  left: 7px;
1099
1203
  font-size: 18px;
1204
+ color:#D0D6DB;
1100
1205
  }
1101
1206
 
1102
1207
  [class^="el-icon-"] {
@@ -1109,6 +1214,7 @@ export default {
1109
1214
  width: 14px;
1110
1215
  zoom: 0.8;
1111
1216
  display: none;
1217
+
1112
1218
  }
1113
1219
 
1114
1220
  &:hover,
@@ -1117,7 +1223,7 @@ export default {
1117
1223
  background-color: #fbfdfe !important;
1118
1224
  color: $baseColor !important;
1119
1225
 
1120
- .el-icon-arrow-right {
1226
+ .el-icon-arrow-right,i.iconfont {
1121
1227
  color: $baseColor;
1122
1228
  }
1123
1229
  }
@@ -1130,7 +1236,6 @@ export default {
1130
1236
  .el-submenu {
1131
1237
  .el-submenu__title {
1132
1238
  > span {
1133
- font-size: 14px;
1134
1239
  text-align: center;
1135
1240
  }
1136
1241
 
@@ -1438,8 +1543,62 @@ export default {
1438
1543
  }
1439
1544
  }
1440
1545
  }
1441
-
1442
1546
  // .el-submenu .el-menu {
1443
1547
  // height: auto !important;
1444
1548
  // }
1549
+ .el-menu--vertical{
1550
+ > .el-menu--popup{overflow: hidden;
1551
+ .el-submenu__title, .el-menu-item{
1552
+ height: auto !important;
1553
+ line-height: 1.4 !important;
1554
+ padding: 8px 0;
1555
+ text-align: left;
1556
+ white-space: normal;
1557
+ word-break: break-word;
1558
+ background:none;
1559
+ i.iconfont{color:#FFF;margin-right:8px;}
1560
+ }
1561
+ }
1562
+ .el-submenu{
1563
+ .el-submenu__title{
1564
+ .el-submenu__icon-arrow{display:none}
1565
+ }
1566
+ &:hover{
1567
+ .el-submenu__title{
1568
+ background-color: rgba(0, 0, 0, 0.29) !important;
1569
+ i.iconfont{color:$baseColor}
1570
+ }
1571
+ }
1572
+
1573
+ &.is-opened{
1574
+ .el-submenu__title{
1575
+ background-color: rgba(0, 0, 0, 0.29) !important;
1576
+ i.iconfont{color:$baseColor}
1577
+ }
1578
+ }
1579
+ }
1580
+ .el-menu-item{
1581
+ &:hover{
1582
+ background-color: rgba(0, 0, 0, 0.29) !important;
1583
+ i.iconfont{color:$baseColor}
1584
+ }
1585
+
1586
+ &.is-opened{
1587
+ background-color: rgba(0, 0, 0, 0.29) !important;
1588
+ i.iconfont{color:$baseColor}
1589
+ }
1590
+ }
1591
+ // .el-menu-item{
1592
+ // &:hover{
1593
+ // background:#FFF !important;opacity:1;
1594
+ // span{color:$baseColor}
1595
+ // i.iconfont{color:$baseColor}
1596
+ // }
1597
+ // &.is-opened{
1598
+ // background:#FFF;opacity:1;
1599
+ // span{color:$baseColor}
1600
+ // i.iconfont{color:$baseColor}
1601
+ // }
1602
+ // }
1603
+ }
1445
1604
  </style>
@@ -1,10 +1,15 @@
1
1
  <template>
2
- <defaultView></defaultView>
2
+ <defaultView :isMenu.sync="isMenu"></defaultView>
3
3
  </template>
4
4
 
5
5
  <script>
6
6
  import defaultView from "./default.vue";
7
7
  export default {
8
+ props: {
9
+ isMenu: {
10
+ type: Boolean
11
+ }
12
+ },
8
13
  data() {
9
14
  return {};
10
15
  },
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <div id="tags-view-container" class="navbar-tag">
3
+ <div @click="$baseEventBus.$emit('triggerMenu')" class="telescopMenuIcon"><i class="iconfont" :class="isMenu?'icon-shouqi':'icon-shouqi-copy'"></i></div>
3
4
  <scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll">
4
5
  <router-link
5
6
  v-for="tag in visitedViews"
@@ -15,7 +16,8 @@
15
16
  <i class="el-icon-s-home" v-if="tag.name =='home'"></i>
16
17
  {{ getMenuName(tag) }}
17
18
 
18
- <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)"/>
19
+ <span v-if="!!tag.meta.user_affix" class="el-icon-close is-disabled"/>
20
+ <span v-else-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)"/>
19
21
  </router-link>
20
22
  </scroll-pane>
21
23
  <div class="tags-operBox">
@@ -27,12 +29,25 @@
27
29
  <i class="el-icon-arrow-right" ayadmin-event="rightPage"
28
30
  one-link-mark="yes" @click="$refs.scrollPane.handleScrollRight()"/>
29
31
  </el-tooltip>
30
- <el-tooltip :enterable="false" class="item" effect="dark" :content="$t1('刷新')" placement="bottom">
32
+ <el-dropdown >
33
+ <span class="el-dropdown-link" style="padding-right:10px;padding-left:4px;">
34
+ <i class="el-icon-more el-icon--right"></i>
35
+ </span>
36
+ <el-dropdown-menu slot="dropdown">
37
+ <el-dropdown-item @click.native="refreshSelectedTag($route)" :disabled="getIsLock()">
38
+ <i class="el-icon-refresh"/><span>{{ $t1('刷新') }}</span>
39
+ </el-dropdown-item>
40
+ <el-dropdown-item @click.native="closeAllTags(selectedTag)">
41
+ <i class="el-icon-close"/><span>{{ $t1('全部关闭') }}</span>
42
+ </el-dropdown-item>
43
+ </el-dropdown-menu>
44
+ </el-dropdown>
45
+ <!-- <el-tooltip :enterable="false" class="item" effect="dark" :content="$t1('刷新')" placement="bottom">
31
46
  <i class="el-icon-refresh" @click="refreshSelectedTag($route)"/>
32
47
  </el-tooltip>
33
48
  <el-tooltip :enterable="false" class="item" effect="dark" :content="$t1('全部关闭')" placement="bottom">
34
49
  <i class="el-icon-close" @click="closeAllTags(selectedTag)"/>
35
- </el-tooltip>
50
+ </el-tooltip> -->
36
51
  </div>
37
52
  <!-- <ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
38
53
  <li @click="refreshSelectedTag(selectedTag)">Refresh</li>
@@ -49,6 +64,11 @@ import path from 'path'
49
64
 
50
65
  export default {
51
66
  components: {ScrollPane},
67
+ props: {
68
+ isMenu: {
69
+ type: Boolean
70
+ }
71
+ },
52
72
  data() {
53
73
  return {
54
74
  visible: false,
@@ -86,8 +106,8 @@ export default {
86
106
  methods: {
87
107
  getMenuName(item) {
88
108
  let locale = this.$i18n?.locale;
89
- let zhTitle = (item.meta ? item.meta.title : '');
90
- let enTitle = (item.meta ? item.meta.enTitle : '');
109
+ let zhTitle = item.meta?.title || "";
110
+ let enTitle = item.meta?.enTitle || '';
91
111
  let title;
92
112
  if (locale == "en") {
93
113
  title = enTitle || zhTitle;
@@ -178,6 +198,7 @@ export default {
178
198
  } */
179
199
  },
180
200
  closeSelectedTag(view) {
201
+ if(view.meta.user_affix)return
181
202
  this.$store.dispatch('tagsView/delView', view).then(({visitedViews}) => {
182
203
  if (this.isActive(view)) {
183
204
  this.toLastView(visitedViews, view)
@@ -191,11 +212,13 @@ export default {
191
212
  })
192
213
  },
193
214
  closeAllTags(view) {
194
- this.$store.dispatch('tagsView/delAllViews').then(({visitedViews}) => {
195
- if (this.affixTags.some(tag => tag.path === view.path)) {
196
- return
197
- }
198
- this.toLastView(visitedViews, view)
215
+ this.$baseConfirm(this.$t1('您确定要全部关闭吗?')).then(() => {
216
+ this.$store.dispatch('tagsView/delAllViews').then(({visitedViews}) => {
217
+ if (this.affixTags.some(tag => tag.path === view.path)) {
218
+ return
219
+ }
220
+ this.toLastView(visitedViews, view)
221
+ })
199
222
  })
200
223
  },
201
224
  toLastView(visitedViews, view) {
@@ -235,7 +258,13 @@ export default {
235
258
  },
236
259
  handleScroll() {
237
260
  this.closeMenu()
238
- }
261
+ },
262
+ getIsLock() {
263
+ let path = this.$route.path;
264
+ let visitedViews = this.$store.state.tagsView.visitedViews
265
+ let currentItem = visitedViews.find(item => item.path == path)
266
+ return !!currentItem?.meta?.user_affix;
267
+ },
239
268
  }
240
269
  }
241
270
  </script>
@@ -249,6 +278,9 @@ export default {
249
278
  </style>
250
279
  <style lang="scss">
251
280
  //reset element css of el-icon-close
281
+ span.el-icon-close.is-disabled{
282
+ cursor: not-allowed;
283
+ }
252
284
  .tags-view-wrapper {
253
285
  .tags-view-item {
254
286
  .el-icon-close {
@@ -1,10 +1,10 @@
1
1
  <template>
2
- <div class="app-wrapper openSidebar">
3
- <sidebar class="sidebar-container" :class="{ hoverold: hoverSidebar }" @selfClose="hoverSidebar = false"
4
- @selfEnter="hoverSidebar = true"/>
5
- <div class="main-container">
6
- <div class="fixed-header">
7
- <tags-view v-if="needTagsView"/>
2
+ <div :class="{'app-wrapper openSidebar':showSidebar,'empty-home-wrapper':!showSidebar}">
3
+ <sidebar v-show="showSidebar" class="sidebar-container" :class="{ hoverold: hoverSidebar }" @selfClose="hoverSidebar = false"
4
+ @selfEnter="hoverSidebar = true" :isMenu.sync="isMenu"/>
5
+ <div :class="{'main-container':showSidebar,telescopMenu:!isMenu}">
6
+ <div class="fixed-header" v-show="showSidebar">
7
+ <tags-view v-if="needTagsView" :isMenu.sync="isMenu"/>
8
8
  </div>
9
9
  <app-main v-if="showAppMain" ref="appMain"/>
10
10
  </div>
@@ -38,6 +38,10 @@ export default {
38
38
  withoutAnimation: this.sidebar.withoutAnimation,
39
39
  mobile: this.device === 'mobile'
40
40
  };
41
+ },
42
+ showSidebar() {
43
+ let result = true
44
+ return result;
41
45
  }
42
46
  },
43
47
  data() {
@@ -45,7 +49,8 @@ export default {
45
49
  hoverSidebar: false,
46
50
  showAppMain: false,
47
51
  showModifyPasswordDialog: true,
48
- passwordStatus: 2
52
+ passwordStatus: 2,
53
+ isMenu:true
49
54
  };
50
55
  },
51
56
  created() {
@@ -57,6 +62,9 @@ export default {
57
62
  success: res => {
58
63
  }
59
64
  });
65
+ this.$baseEventBus.$on("triggerMenu",(value)=>{
66
+ this.isMenu = !this.isMenu;
67
+ });
60
68
  },
61
69
  async mounted() {
62
70
  if (sessionStorage.getItem('toHome') == '1') {
@@ -92,7 +100,7 @@ export default {
92
100
  position: relative;
93
101
  height: 100%;
94
102
  width: 100%;
95
-
103
+ overflow: hidden;
96
104
  &.mobile.openSidebar {
97
105
  position: fixed;
98
106
  top: 0;
@@ -120,7 +128,7 @@ export default {
120
128
  padding-top: 2px;
121
129
  //box-shadow:0 2px 6px rgba(0,0,0,0.04);
122
130
  //background:#FFF;
123
- border-bottom: solid 2px $baseColor;
131
+ // border-bottom: solid 2px $baseColor;
124
132
  display: -moz-box;
125
133
  display: -webkit-box;
126
134
  display: box;