sasp-admin 0.2.62 → 0.2.64

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 (63) hide show
  1. package/index.js +38 -31
  2. package/package.json +1 -1
  3. package/router.js +5 -1
  4. package/src/assets/font/iconfont.css +1902 -1846
  5. package/src/assets/font/iconfont.eot +0 -0
  6. package/src/assets/font/iconfont.js +1 -1
  7. package/src/assets/font/iconfont.svg +959 -825
  8. package/src/assets/font/iconfont.ttf +0 -0
  9. package/src/assets/font/iconfont.woff +0 -0
  10. package/src/assets/js/api/apiAdmin.js +10 -0
  11. package/src/assets/js/global/dataGlobal.js +7 -3
  12. package/src/assets/js/global/userGlobal.js +9 -3
  13. package/src/components/complexViewRendering.vue +214 -198
  14. package/src/components/ifmLink.vue +20 -3
  15. package/src/components/public/data/plDataSelect.vue +8 -6
  16. package/src/components/public/org/sysOrgPosUserSelect.vue +61 -22
  17. package/src/components/public/upload/images/ofd.png +0 -0
  18. package/src/components/public/upload/plImage.vue +3 -1
  19. package/src/components/public/upload/plUpload.vue +167 -40
  20. package/src/components/public/upload/preview/OfdPreview.vue +223 -0
  21. package/src/components/public/upload/preview/officeViewer.vue +116 -0
  22. package/src/components/public/upload/preview/pdfPreview.vue +91 -0
  23. package/src/{views → components/public/upload}/preview/pdfViewer.vue +1 -1
  24. package/src/views/VueMenuView.vue +11 -13
  25. package/src/views/data/dataManage.vue +51 -5
  26. package/src/views/event/eventManager/vueEventDiy.vue +4 -6
  27. package/src/views/log/loginlog/logManageDevOrSup.vue +8 -5
  28. package/src/views/log/loginlog/logManageEnt.vue +96 -55
  29. package/src/views/log/loginlog/logManageGov.vue +8 -5
  30. package/src/views/menu/component/menuManageComponent.vue +3 -5
  31. package/src/views/menuRouter/menuView.vue +226 -117
  32. package/src/views/menuRouter/urlMenuRouter.vue +13 -16
  33. package/src/views/org/entOrgTree.vue +1 -3
  34. package/src/views/org/js/sysOrgUserDetailMixins.js +646 -0
  35. package/src/views/org/sysEntOrgUserDetail.vue +10 -632
  36. package/src/views/org/sysOrgDimension.vue +4 -8
  37. package/src/views/org/sysOrgPosUserDetail.vue +4 -619
  38. package/src/views/org/sysOrgTree.vue +7 -9
  39. package/src/views/param/sysParam.vue +2 -0
  40. package/src/views/resources/resRouter/resView.vue +9 -11
  41. package/src/views/resources/tabs/comp/pageResRegister.vue +3 -5
  42. package/src/views/resources/tabs/dataResources.vue +3 -1
  43. package/src/views/resources/tabs/pageResources.vue +3 -1
  44. package/src/views/role/authRole/component/allocateSetting.vue +2 -589
  45. package/src/views/role/authRole/component/authSetting.vue +2 -597
  46. package/src/views/role/authRole/component/js/authMixins.js +622 -0
  47. package/src/views/role/commonRole/commonRole.vue +122 -3
  48. package/src/views/role/commonRole/compoment/commonSetting.vue +4 -6
  49. package/src/views/role/commonRole/compoment/commonSettingAdjust.vue +2 -89
  50. package/src/views/role/commonRole/compoment/commonSettingNew.vue +13 -97
  51. package/src/views/role/commonRole/compoment/js/commonSettingMixins.js +90 -0
  52. package/src/views/role/commonRole/compoment/roleMenuPower.vue +17 -2
  53. package/src/views/role/commonRole/compoment/roleMenuSetting.vue +12 -5
  54. package/src/views/sms/sendSms.vue +1 -1
  55. package/src/views/threeinone/init/safeInitRegion.vue +2 -4
  56. package/src/views/threeinone/safeManager.vue +1 -0
  57. package/src/views/threeinone/safeOrgSpv.vue +360 -337
  58. package/src/views/threeinone/safeSpvEconView.vue +37 -17
  59. package/src/views/uploadManage/uploadManage.vue +133 -0
  60. package/src/views/user/empowerUser/empowerUserListViewMenuTree.vue +6 -2
  61. package/src/views/user/stationUserManage.vue +3 -5
  62. package/src/views/user/userManage.vue +99 -3
  63. package/src/views/user/userMangement.vue +4 -6
@@ -21,7 +21,7 @@
21
21
  <el-container class="econ-container">
22
22
  <safe-spv-main
23
23
  ref="safeSpvEconMain"
24
- :safe-spv-info="safeSpvInfo"
24
+ :safe-spv-info="safeSpvInfoObj"
25
25
  :currentClickSpv="currentClickSpv"
26
26
  :econDataArr="econDataArr"
27
27
  :checkedEconObj="checkedEconObj"
@@ -95,6 +95,8 @@
95
95
  },
96
96
  data(){
97
97
  return {
98
+ regionId:"",
99
+ safeSpvInfoObj:{},
98
100
  roleFlag:true,//访问权限
99
101
  message:"",//无访问权限时的描述文字
100
102
  spvTitle:"",//左侧树标题
@@ -129,10 +131,24 @@
129
131
  this.safeSpvInfo.isOpen = "0";
130
132
  this.safeSpvInfo.openStatus = "0";
131
133
  this.safeSpvInfo.econOneToMany = "N";*/
134
+ if(!this.defaultRegionId){
135
+ this.regionId = this.USER_GLOBAL.getLoginDept().regionId;
136
+ this.axios.post(this.api.safeRegion.getById,{id:this.regionId}).then(res => {
137
+ if(res&&res.data){
138
+ this.safeSpvInfoObj = res.data;
139
+ }
140
+ this.getSafeSpvData();
141
+ this.initSpv();
142
+ this.isView();
143
+ })
144
+ }else{
145
+ this.regionId = this.defaultRegionId;
146
+ this.safeSpvInfoObj = this.safeSpvInfo;
147
+ this.getSafeSpvData();
148
+ this.initSpv();
149
+ this.isView();
150
+ }
132
151
 
133
- this.getSafeSpvData();
134
- this.initSpv();
135
- this.isView();
136
152
  },
137
153
 
138
154
  watch:{
@@ -158,12 +174,12 @@
158
174
 
159
175
  initSpv(){
160
176
  //无权限
161
- if(this.safeSpvInfo.regionTier == "4"){
177
+ if(this.safeSpvInfoObj.regionTier == "4"){
162
178
  this.roleFlag = false;
163
179
  this.message = "街道用户无地区监管配置的权限,已沿用区县监管配置!";
164
180
  return;
165
181
  }
166
- if(this.source != "1" && (!this.safeSpvInfo || !this.safeSpvInfo.id)){
182
+ if(this.source != "1" && (!this.safeSpvInfoObj || !this.safeSpvInfoObj.id)){
167
183
  this.roleFlag = false;
168
184
  this.message = "未找到当前账号所属的监管地区!!";
169
185
  return;
@@ -177,10 +193,10 @@
177
193
  if(this.source == "1"){
178
194
  this.spvTitle = "“默认”";
179
195
  this.$set(this.showBtn,"save",true);
180
- }else if(this.safeSpvInfo.isOpen == "1" && this.safeSpvInfo.openStatus == '1'){//开启个性化按钮
196
+ }else if(this.safeSpvInfoObj.isOpen == "1" && this.safeSpvInfoObj.openStatus == '1'){//开启个性化按钮
181
197
  this.spvTitle = "“使用默认配置”";
182
198
  this.$set(this.showBtn,"personalize",true);
183
- }else if(this.safeSpvInfo.isOpen == "1" && this.safeSpvInfo.openStatus == '9'){//开启默认配置、修改按钮
199
+ }else if(this.safeSpvInfoObj.isOpen == "1" && this.safeSpvInfoObj.openStatus == '9'){//开启默认配置、修改按钮
184
200
  this.spvTitle = "“使用个性化配置”";
185
201
  if(this.isEdit){
186
202
  this.$set(this.showBtn,"return",true);
@@ -189,7 +205,7 @@
189
205
  this.$set(this.showBtn,"reduction",true);
190
206
  this.$set(this.showBtn,"edit",true);
191
207
  }
192
- }else if(this.safeSpvInfo.isOpen == "0"){//默认配置
208
+ }else if(this.safeSpvInfoObj.isOpen == "0"){//默认配置
193
209
  this.spvTitle = "“使用默认配置”";
194
210
  }
195
211
 
@@ -202,11 +218,15 @@
202
218
  * */
203
219
  async getSafeSpvData(){
204
220
  this.showTree = false;
205
- let regionId = this.defaultRegionId;
206
- if(this.safeSpvInfo.openStatus == "9"){
207
- regionId = this.safeSpvInfo.id;
221
+ if(this.safeSpvInfoObj.openStatus == "9"){
222
+ this.regionId = this.safeSpvInfoObj.id;
223
+ }else if(this.safeSpvInfoObj.openStatus === "1"){
224
+ let defaultSpvList = await this.axios.post(this.api.safeRegion.find,{openStatus:"0"});
225
+ if(defaultSpvList&&defaultSpvList.data){
226
+ this.regionId = defaultSpvList.data[0].id;
227
+ }
208
228
  }
209
- let treeRes = await this.axios.post(this.api.safeSpv.findAndCount,{order:"TB.SPV_ORDER ASC",regionId:regionId,countSql:"1"});
229
+ let treeRes = await this.axios.post(this.api.safeSpv.findAndCount,{order:"TB.SPV_ORDER ASC",regionId:this.regionId,countSql:"1"});
210
230
  if(treeRes && treeRes.data && (treeRes.data || []).length > 0){
211
231
  let treeData = treeRes.data;
212
232
  //整理树数据
@@ -251,7 +271,7 @@
251
271
 
252
272
  //置灰被其他监管行业选择的所属行业
253
273
  if((this.source == "1" || this.isEdit) && !this.econSwitch){
254
- this.axios.post(this.api.safeSpvEcon.getEconSelected,{regionId:this.defaultRegionId}).then(otherSelectedRes => {
274
+ this.axios.post(this.api.safeSpvEcon.getEconSelected,{regionId:this.regionId}).then(otherSelectedRes => {
255
275
  if(otherSelectedRes && otherSelectedRes.data){
256
276
  this.econSelected = otherSelectedRes.data || [];
257
277
  }
@@ -269,9 +289,9 @@
269
289
  result = true;
270
290
  }
271
291
  (this.econDataObj[econId] || []).forEach(econData => {
272
- if(this.currentNodeOwnEconId.indexOf(econData.id) == -1){
292
+ // if(this.currentNodeOwnEconId.indexOf(econData.id) == -1){
273
293
  this.$set(this.checkedEconObj,econData.id,result);
274
- }
294
+ // }
275
295
  });
276
296
  },
277
297
 
@@ -310,7 +330,7 @@
310
330
  */
311
331
  openSafeSpvDialog(command){
312
332
  this.$set(this.safeSpvForm,"spvOrder",1);
313
- this.$set(this.safeSpvForm,"regionId",this.safeSpvInfo.id || this.defaultRegionId);
333
+ this.$set(this.safeSpvForm,"regionId",this.safeSpvInfoObj.id || this.regionId);
314
334
  if(command == "1"){
315
335
  this.$set(this.safeSpvForm,"name","");
316
336
  this.$set(this.safeSpvForm,"parentId",this.currentClickSpv.parentId);
@@ -0,0 +1,133 @@
1
+ <template>
2
+ <el-container style="height: 100%">
3
+ <el-header style="height: auto">
4
+ <div class="search-form-parent el-card" style="padding-left:10px;padding-right:10px">
5
+ <el-form size="small" :inline="true"
6
+ @keyup.enter.native="crud.doSearch()" onSubmit="return false;">
7
+ <el-form-item label="上传文件名" label-width="100px">
8
+ <el-input placeholder="请输入" v-model="crud.searchForm.name"></el-input>
9
+ </el-form-item>
10
+ <el-form-item label="生成文件名" label-width="120px">
11
+ <el-input placeholder="请输入" v-model="crud.searchForm.realName" ></el-input>
12
+ </el-form-item>
13
+ <el-form-item label="文件扩展名" label-width="120px">
14
+ <el-input placeholder="请输入" v-model="crud.searchForm.extension" ></el-input>
15
+ </el-form-item>
16
+ <el-button type="primary" icon="el-icon-search" size="small" style="margin-top: 5px" @click="crud.doSearch()">查询</el-button>
17
+ <el-button icon="el-icon-close" size="small" style="margin-top: 5px" @click="crud.resetSearch()">清空</el-button>
18
+ </el-form>
19
+ </div>
20
+ </el-header>
21
+ <el-main id="tableMain" style="height: 100%">
22
+ <el-container style="height:100%" class="table-list-container">
23
+ <el-header style="height: auto;" size="small">
24
+ <el-button type="danger" round size="small" icon="el-icon-delete" @click="remove()">删除</el-button>
25
+ </el-header>
26
+ <el-main style="height:100%">
27
+ <el-table :data="crud.dataStore.records" :ref="crud.tableRef" stripe border height="100%" style="width: 100%;"
28
+ header-row-class-name="list-default-row" :row-style="{'height':'60px'}">
29
+ <el-table-column type="selection" width="40" align="center"></el-table-column>
30
+ <el-table-column type="index" label="序号" align="center" width="60"></el-table-column>
31
+ <el-table-column label="上传文件名" prop="name" min-width="350"></el-table-column>
32
+ <el-table-column label="生成文件名" prop="realName" width="320"></el-table-column>
33
+ <el-table-column label="文件大小" prop="fileSize" width="100"></el-table-column>
34
+ <el-table-column label="文件扩展名" prop="extension" width="100" align="center"></el-table-column>
35
+ <el-table-column label="文件目录" prop="directory" show-overflow-tooltip width="150"></el-table-column>
36
+ <el-table-column label="文件上传时间" prop="createTime" width="180"></el-table-column>
37
+ <!--<el-table-column label="操作" align="center" width="120">
38
+ <template slot-scope="scope">
39
+ <el-button size="small" type="primary" @click="clickQuery(scope.row)">查看</el-button>
40
+ </template>
41
+ </el-table-column>-->
42
+ </el-table>
43
+ </el-main>
44
+ </el-container>
45
+ </el-main>
46
+ <el-footer>
47
+ <el-pagination
48
+ :ref="crud.pageRef"
49
+ :page-sizes="crud.pageSizes"
50
+ :page-size="crud.pageSize"
51
+ :current-page="crud.page"
52
+ :total="crud.dataStore.total"
53
+ @size-change="crud.sizeChange()"
54
+ @current-change="crud.currentPage()"
55
+ layout="total, sizes, prev, pager, next, jumper">
56
+ </el-pagination>
57
+ </el-footer>
58
+ </el-container>
59
+ </template>
60
+ <script>
61
+ export default {
62
+ name:'upload-manage',
63
+ data() {
64
+ return {
65
+ crud: new this.CrudUtil({
66
+ vue: this,
67
+ entityName: "uploadFileInfo",
68
+ url: this.api.upload.url,
69
+ searchForm: {
70
+ order: 'CREATE_TIME DESC',
71
+ },
72
+ noClearSearchColumns: ["order"],
73
+ }),
74
+ extensionArr:["avi","mp4","mp3"],
75
+ initStatus:false,
76
+ }
77
+ },
78
+ watch :{
79
+ "crud.dataStore.records"(){
80
+ if(this.initStatus){
81
+ let arr=[];
82
+ this.crud.dataStore.records.forEach(val=>{
83
+ arr.push(val.extension);
84
+ });
85
+ this.extensionArr=new Set(arr);
86
+ this.initStatus=false;
87
+ }
88
+ }
89
+ },
90
+ created() {
91
+ this.initStatus=true;
92
+ },
93
+ methods:{
94
+ //删除附件
95
+ remove(){
96
+ let selection = this.$refs[this.crud.setting.tableRef].selection;
97
+ if ((selection || []).length === 0) {
98
+ this.$message({
99
+ duration: 1500,
100
+ type: 'info',
101
+ message: '请至少选择一条需要删除的数据!'
102
+ });
103
+ return;
104
+ }
105
+ // 如果当前删除的数据与dataStore中的数据条目相同,那么将页码置为第一页重新查询
106
+ if (selection.length == (this.crud.dataStore.rows || this.crud.dataStore.records).length) {
107
+ this.crud.searchForm.page = '1';
108
+ this.$refs[this.crud.setting.pageRef]["internalCurrentPage"] = 1;
109
+ }
110
+ this.$confirm('是否确定删除选择的“' + selection.length + '”条数据?', '警告', {
111
+ confirmButtonText: '确定',
112
+ cancelButtonText: '取消',
113
+ }).then(res => {
114
+ let arrIds = [];
115
+ selection.forEach(data => {
116
+ arrIds.push(data.id);
117
+ });
118
+ this.axios.post(this.api.upload.deleteFilesById, {"ids": arrIds.join(",")}).then(res => {
119
+ this.$message({
120
+ type: 'success',
121
+ message: res.data.operateMessage || '删除成功!'
122
+ });
123
+ this.crud.search();
124
+ });
125
+ })
126
+ },
127
+ //查看附件
128
+ clickQuery(row){
129
+ console.log("查看")
130
+ },
131
+ }
132
+ }
133
+ </script>
@@ -95,8 +95,12 @@
95
95
  vm.isLoadTree = true;
96
96
  return;
97
97
  }
98
- url = vm.api.menu.findNormalUserByUserId;
99
- dataObj = {"userId":vm.userId};
98
+ url = vm.api.auth.getOwnMenu;//menu.findNormalUserByUserId
99
+ let userTypeMenu = vm.userType;
100
+ if(!vm.userType){
101
+ userTypeMenu = 'ent';
102
+ }
103
+ dataObj = {userId:vm.userId,userType:userTypeMenu};
100
104
  }
101
105
 
102
106
  vm.axios.post(url,dataObj).then(function (res) {
@@ -828,11 +828,9 @@
828
828
  let orgId = '';
829
829
  let principalUser = {};
830
830
  (selection || []).forEach(item =>{
831
- if(item.principal && item.principal.indexOf("1") > -1){
832
- if(item.orgId){
833
- orgId = item.orgId;
834
- principalUser = item;
835
- }
831
+ if(item.principal && item.principal.indexOf("1") > -1 && item.orgId){
832
+ orgId = item.orgId;
833
+ principalUser = item;
836
834
  }
837
835
  });
838
836
  if(orgId){
@@ -52,7 +52,7 @@
52
52
  </el-tag>
53
53
  </template>
54
54
  </el-table-column>
55
- <el-table-column label="操作" align="center" width="350">
55
+ <el-table-column label="操作" align="center" width="460">
56
56
  <template slot-scope="scope">
57
57
  <!--v-if="queryUserType != 'ent' && (scope.row.created == loginUser.id || mayOperate)"-->
58
58
  <el-button size="small" icon="el-icon-edit" type="primary"
@@ -67,6 +67,10 @@
67
67
  @click="resetPwd(scope.row)">
68
68
  重置密码
69
69
  </el-button>
70
+ <el-button size="small" icon="el-icon-s-custom" type="success"
71
+ @click="viewRoles(scope.row)">
72
+ 查看角色
73
+ </el-button>
70
74
  <el-button size="small" icon="el-icon-zoom-in" type="warning"
71
75
  v-if="queryUserType != 'dev'"
72
76
  @click="viewMenu(scope.row)">
@@ -174,6 +178,30 @@
174
178
  </el-button>
175
179
  </div>
176
180
  </el-dialog>
181
+
182
+ <el-dialog :close-on-click-modal=false :title="roleUserName+' 的角色'" top="10vh" width="700px"
183
+ :visible.sync="viewRolesDialog" class="userViewRolesClass">
184
+ <div v-loading="viewRolesLoading" style="min-height: 120px;">
185
+ <div class="role-summary">
186
+ 共 <b>{{roleList.length}}</b> 个角色
187
+ </div>
188
+ <div v-if="roleList.length === 0 && !viewRolesLoading" class="role-empty">
189
+ 该用户当前没有角色
190
+ </div>
191
+ <div v-else class="role-tags">
192
+ <el-tag v-for="item in roleList" :key="item.id"
193
+ :type="item.locked ? 'info' : ''"
194
+ :effect="item.locked ? 'plain' : 'light'"
195
+ class="role-tag">
196
+ {{item.roleName}}<span v-if="item.locked" class="role-locked">(已锁定)</span>
197
+ </el-tag>
198
+ </div>
199
+ </div>
200
+ <div slot="footer" class="dialog-footer">
201
+ <el-button type="primary" @click="viewRolesDialog = false" size="small" icon="el-icon-error">关闭
202
+ </el-button>
203
+ </div>
204
+ </el-dialog>
177
205
  </el-container>
178
206
  </template>
179
207
 
@@ -209,8 +237,9 @@
209
237
  entityName: "sysUser",
210
238
  url:this.api.sysUser.url,
211
239
  searchUrl: this.api.sysUser.findPageParam,
212
- searchForm: {"orderSql": "TB.CREATE_TIME DESC,TB.USER_STATUS DESC", "getOrgName": "true","parentOrg": "true"}, // 加上排序
213
- noClearSearchColumns: ["userType", "unsup", "ids", "order", "sort", "showCreated", "getOrgName","parentOrg","empowerUser","empowerOrgId"],
240
+ // searchForm: {"orderSql": "TB.CREATE_TIME DESC,TB.USER_STATUS DESC", "getOrgName": "true","parentOrg": "true"}, // 加上排序
241
+ searchForm: {"orderSql": "max(TB.CREATE_TIME) DESC,max(TB.USER_STATUS) DESC", "getOrgName": "true","parentOrg": "true"}, // 加上排序(达梦)
242
+ noClearSearchColumns: ["userType", "unsup", "ids", "orderSql", "sort", "showCreated", "getOrgName","parentOrg","empowerUser","empowerOrgId"],
214
243
  addDefaultData: {"userStatus": "10"},
215
244
  initNoSearch: true,
216
245
  uploadArr:['zd1']
@@ -228,6 +257,10 @@
228
257
  menuUserId: '', // 查看菜单时的userId
229
258
  menuUserName: '', // 查看菜单时的用户名
230
259
  viewMenuDialog: false, // 查看菜单的对话框
260
+ viewRolesDialog: false, // 查看角色的对话框
261
+ viewRolesLoading: false, // 查看角色的加载中
262
+ roleUserName: '', // 查看角色时的用户名
263
+ roleList: [], // 查看角色时的角色列表
231
264
  formDataDialog: false, // 用户信息对话框
232
265
  loading: true, // 加载条
233
266
  formData: {
@@ -469,6 +502,34 @@
469
502
  vm.menuUserName = row.userName;
470
503
  vm.viewMenuDialog = true;
471
504
  },
505
+
506
+ viewRoles(row) { // 查看用户拥有的角色(含直接授权与部门/岗位授权)
507
+ let vm = this;
508
+ if (!row.id) { // 行数据id不存在
509
+ vm.$message("数据异常,请重新加载页面!");
510
+ return;
511
+ }
512
+ vm.roleUserName = row.userName;
513
+ vm.roleList = [];
514
+ vm.viewRolesDialog = true;
515
+ vm.viewRolesLoading = true;
516
+ vm.axios.post(vm.api.auth.getUserRoles, {userId: row.id}).then(res => {
517
+ // 接口返回 OperateInfo:operateObj = roleId 串,operateMap = {roleId: roleObj}
518
+ let roleMap = (res.data && res.data.operateMap) || {};
519
+ vm.roleList = Object.keys(roleMap).map(roleId => {
520
+ let r = roleMap[roleId] || {};
521
+ return {
522
+ id: roleId,
523
+ roleName: r.roleName || '(角色名缺失)',
524
+ locked: r.roleStatus == '20'
525
+ };
526
+ });
527
+ }).catch(() => {
528
+ vm.$message.error("获取角色失败,请稍后重试!");
529
+ }).finally(() => {
530
+ vm.viewRolesLoading = false;
531
+ });
532
+ },
472
533
  updateData(row) { // 修改用户的基本信息(新增系统参数,是否允许修改用户详情)
473
534
  let vm = this;
474
535
  if (!row.id) {
@@ -734,4 +795,39 @@
734
795
  .viewMenuDialog /deep/ .el-dialog__body {
735
796
  height: calc(100% - 60px);
736
797
  }
798
+
799
+ .role-summary {
800
+ font-size: 13px;
801
+ color: #5a6b85;
802
+ margin-bottom: 12px;
803
+ }
804
+
805
+ .role-summary b {
806
+ color: #409eff;
807
+ font-size: 15px;
808
+ padding: 0 2px;
809
+ }
810
+
811
+ .role-tags {
812
+ max-height: 46vh;
813
+ overflow-y: auto;
814
+ line-height: 1.2;
815
+ }
816
+
817
+ .role-tag {
818
+ margin: 0 8px 8px 0;
819
+ max-width: 100%;
820
+ }
821
+
822
+ .role-locked {
823
+ color: #909399;
824
+ font-size: 12px;
825
+ }
826
+
827
+ .role-empty {
828
+ font-size: 13px;
829
+ color: #909399;
830
+ text-align: center;
831
+ padding: 30px 0;
832
+ }
737
833
  </style>
@@ -883,11 +883,9 @@
883
883
  operateArr.push(data);
884
884
  }
885
885
  }else{
886
- if(vm.openLowLevelCheckbox){
887
- if(!vm.stopChange){
888
- vm.isChecked[data.id] = false;
889
- vm.dChange(data,false);
890
- }
886
+ if(vm.openLowLevelCheckbox&&!vm.stopChange){
887
+ vm.isChecked[data.id] = false;
888
+ vm.dChange(data,false);
891
889
  }
892
890
  vm[tempObj[data["nodeType"]]] = operateArr.filter(item => {
893
891
  return item["id"] != data["id"];
@@ -911,7 +909,7 @@
911
909
  saveSetting(){
912
910
  let vm = this;
913
911
  let checkedNodes = vm.$refs.orgTreeRef.getTreeCheckedNodes();
914
- let checkedSet = new Array(); // 已选择组织
912
+ let checkedSet = []; // 已选择组织
915
913
  checkedNodes.forEach(function (data) {
916
914
  checkedSet.push(data.id);
917
915
  /*if(data.menuPath){