Commit fc124286 authored by 张莎莎's avatar 张莎莎

提交

parent d08ba565
......@@ -12,7 +12,7 @@ export const getDepartmentList = (companyId, data) => {
// 获取部门下拉框列表(公司+部门)
export const getDepartmentSelector = (id) => {
return request({
url: '/api/permission/Organize/Department/Selector/' + (!!id ? id : 0),
url: '/api/permission/Organize/getAllOrganizeV2',
method: 'GET'
})
}
......
......@@ -45,7 +45,7 @@
</div>
<div class="transfer-pane__body">
<el-tree :data="treeData" :props="props" check-on-click-node
:expand-on-click-node="false" default-expand-all @node-click="handleNodeClick"
:expand-on-click-node="false" @node-click="handleNodeClick"
class="JNPF-common-el-tree" node-key="id" v-loading="loading" ref="tree"
:filter-node-method="filterNode">
<span class="custom-tree-node" slot-scope="{ node, data }">
......
......@@ -334,55 +334,80 @@ const actions = {
校级管理员 675251512758259397 能看到“信息推报”+“联系人管理”
8大部门登录时候去掉组织管理
*/
/* 720246726413345669 通讯录市级管理员
720247312500220805 通讯录区级管理员
720247536941622149 通讯录校级管理员 */
// ”管理员“ 角色
/* 市区级管理员可以看到组织管理,部门管理,岗位管理,人员管理 */
/* 学校看到部门管理,岗位管理,人员管理 */
/* 超级管理员可以看到组织管理部门管理岗位管理人员管理,角色管理,用户管理 */
// ”校级管理员“ 角色
if (userInfo.roleIds.includes('675251512758259397')) {
foundMenus = menuList.filter(item => item.id === '674881042645011077' || item.id === '706789105014466053')
// foundpermission = permissionList.filter(item => item.modelId === '674881042645011077' || item.modelId === '706779315873834501')
console.log(userInfo.roleIds,'bbbbbbbbb')
console.log(menuList,'ccccc')
const targetIds = [
"715555003443536389",
"715555344570475013",
"715555656253399557",
"715555905168564741"
];
if (userInfo.roleIds.includes('720246726413345669')||userInfo.roleIds.includes('720247312500220805')) {
/* 市区级 */
foundMenus = menuList.filter(item => targetIds.includes(item.id));
console.log(foundMenus,'xxxxxxxxxxxx')
setData(foundMenus)
commit('SET_MENULIST', foundMenus)
commit('SET_USERINFO', userInfo)
commit('SET_PERMISSION_LIST', permissionList)
resolve(routerList)
} else if (userInfo.roleIds.includes('698180744190671109')) { // 管理员,隐藏调度系统的“工作台菜单”(废弃) “管理员”角色:只允许查看3个页面【“信息推报”+“联系人管理”+“数据统计分析”】(现在)
// foundMenus = menuList.filter(item => item.id != '594768393702216901')
/*8大部门登录时候去掉组织管理*/
let organizeId=userInfo.departmentId;
if(organizeId=='675258640529117125'||
organizeId=='675258831919402949'||organizeId=='675258893537923013'||organizeId=='675258958432194501'||organizeId=='675259022626017221'
||organizeId=='675259359013392325'||organizeId=='702160182041433861'||organizeId=='702160336307934981'){
console.log(menuList,'dffffffffffffffffff')
let arr = menuList.filter(item => item.id === '674881042645011077' || item.id === '706789105014466053' || item.id === '699609646528249477' )
function removeById(arr, targetId) {
return arr.map(item => {
} else if (userInfo.roleIds.includes('720247536941622149')) {
/* 校级 */
const targetIds1 = [
"715555344570475013",
"715555656253399557",
"715555905168564741"
];
foundMenus = menuList.filter(item => targetIds1.includes(item.id));
const newItem = { ...item };
setData(foundMenus)
commit('SET_MENULIST', foundMenus)
commit('SET_USERINFO', userInfo)
commit('SET_PERMISSION_LIST', permissionList)
resolve(routerList)
} else if(userInfo.roleIds.includes('440486157969526149')){
/* 超级管理员 */
const targetIds = [
"715555003443536389",
"715555344570475013",
"715555656253399557",
"715555905168564741",
"07029F61-993A-4A46-BF56-20DE382F4F66",
"4DDA6A84-A432-421C-9CE9-DB7A56033B02"
];
if (newItem.children && newItem.children.length > 0) {
newItem.children = newItem.children.filter(child => child.id !== targetId);
// 查找所有匹配项
const allMatchedItems = menuList.flatMap(item =>
[item, ...(item.children || [])]
.filter(item => targetIds.includes(item.id)))
// 分离出需要放在后面的两个ID
const specialIds = [
"07029F61-993A-4A46-BF56-20DE382F4F66",
"4DDA6A84-A432-421C-9CE9-DB7A56033B02"
];
if (newItem.children.length === 0 && newItem.parentId !== "-1") {
delete newItem.hasChildren;
}
}
return newItem;
});
}
foundMenus=removeById(arr, "706789480631166469");
console.log(foundMenus,'zzzzzzzzzzzzzzzzz')
}else{
foundMenus = menuList.filter(item => item.id === '674881042645011077' || item.id === '706789105014466053' || item.id === '699609646528249477')
// 分离普通项和特殊项
const normalItems = allMatchedItems.filter(item => !specialIds.includes(item.id));
const specialItems = allMatchedItems.filter(item => specialIds.includes(item.id));
}
// foundpermission = permissionList.filter(item => item.modelId === '674881042645011077' || item.modelId === '706779315873834501')
// 合并数组,特殊项放在最后
const finalArray = [...normalItems, ...specialItems];
foundMenus=finalArray
setData(foundMenus)
commit('SET_MENULIST', foundMenus)
commit('SET_USERINFO', userInfo)
commit('SET_PERMISSION_LIST', permissionList)
resolve(routerList)
} else {
}else{
setData(menuList)
commit('SET_MENULIST', menuList)
commit('SET_USERINFO', userInfo)
......
......@@ -19,13 +19,13 @@
<el-input placeholder="输入关键字" v-model="filterText" suffix-icon="el-icon-search" clearable />
</div>
<el-scrollbar class="JNPF-common-el-tree-scrollbar" v-loading="treeLoading">
<el-tree ref="treeBox" :data="treeData" :props="defaultProps" :default-expand-all="expands"
highlight-current :expand-on-click-node="false" node-key="id"
<el-tree ref="treeBox" :data="treeData" :props="defaultProps" :default-expanded-keys="expandedKeys"
highlight-current node-key="id"
@node-click="handleNodeClick" class="JNPF-common-el-tree" v-if="refreshTree"
:filter-node-method="filterNode">
<span class=" custom-tree-node" slot-scope="{ data }" :title="data.fullName">
<i :class="data.icon" />
<span class="text" :title="data.fullName">{{data.fullName}}</span>
<span class="text" :title="data.fullName" :class="{ 'disabled-node': data.id === null }">{{data.fullName}}</span>
</span>
</el-tree>
</el-scrollbar>
......@@ -146,7 +146,8 @@ export default {
currentView: null,
expands: true,
refreshTree: true,
filterText: ''
filterText: '',
expandedKeys:[]
}
},
watch: {
......@@ -197,21 +198,30 @@ export default {
this.treeLoading = true
getDepartmentSelector().then(res => {
let firstItem = {
fullName: "全局",
hasChildren: false,
id: "0",
parentId: "-1",
icon: 'icon-ym icon-ym-global-role'
fullName: "全部",
hasChildren: true,
id: "",
children: res.data.list
}
this.treeData = [firstItem, ...res.data.list]
this.treeData = [firstItem]
this.$nextTick(() => {
this.treeLoading = false
if (isInit) this.initData()
this.$refs.treeBox.setCurrentKey(this.treeData[0].id)
this.getcommontree()
})
}).catch(() => {
this.treeLoading = false
})
},
getcommontree(){
this.treeData.map(firstLevel => {
this.expandedKeys.push(firstLevel.id);
});
},
initData() {
this.listLoading = true
getRoleList(this.listQuery).then(res => {
......@@ -230,6 +240,10 @@ export default {
},
handleNodeClick(data) {
if (this.listQuery.organizeId === data.id) return
if (data.id === null) {
this.$message.warning('这一级不能点击');
return;
}
this.listQuery.organizeId = data.id
this.reset()
},
......@@ -296,3 +310,9 @@ export default {
}
}
</script>
<style scoped>
.disabled-node {
color: #c0c4cc;
cursor: not-allowed;
}
</style>
......@@ -19,13 +19,13 @@
<el-input placeholder="输入关键字" v-model="filterText" suffix-icon="el-icon-search" clearable />
</div>
<el-scrollbar class="JNPF-common-el-tree-scrollbar" v-loading="treeLoading">
<el-tree ref="treeBox" :data="treeData" :props="defaultProps" :default-expand-all="expands"
<el-tree ref="treeBox" :data="treeData" :props="defaultProps" :default-expanded-keys="expandedKeys"
highlight-current :expand-on-click-node="false" node-key="id"
@node-click="handleNodeClick" class="JNPF-common-el-tree" v-if="refreshTree"
:filter-node-method="filterNode">
<span class="custom-tree-node" slot-scope="{ data, node }" :title="data.fullName">
<i :class="data.icon" />
<span class="text" :title="data.fullName">{{node.label}}</span>
<span class="text" :title="data.fullName" :class="{ 'disabled-node': data.id === null }">{{node.label}}</span>
</span>
</el-tree>
</el-scrollbar>
......@@ -161,6 +161,7 @@ export default {
},
total: 0,
type: '',
expandedKeys:[],
formVisible: false,
diagramVisible: false,
resetFormVisible: false,
......@@ -215,9 +216,22 @@ export default {
this.filterText = ''
this.treeLoading = true
getDepartmentSelector().then(res => {
this.treeData = res.data.list
this.treeLoading = false
let topItem = {
fullName: "全部",
hasChildren: true,
id: "",
children: res.data.list
}
this.treeData =[topItem]
this.$nextTick(()=>{
this.$refs.treeBox.setCurrentKey(this.treeData[0].id)
this.getcommontree()
})
if (isInit) this.initData()
}).catch(() => {
this.treeLoading = false
})
......@@ -232,8 +246,17 @@ export default {
this.listLoading = false
})
},
getcommontree(){
this.treeData.map(firstLevel => {
this.expandedKeys.push(firstLevel.id);
});
},
handleNodeClick(data) {
if (this.listQuery.organizeId === data.id) return
if (data.id === null) {
this.$message.warning('这一级不能点击');
return;
}
this.listQuery.organizeId = data.id
this.type = data.type
this.reset()
......@@ -328,3 +351,9 @@ export default {
}
}
</script>
<style scoped>
.disabled-node {
color: #c0c4cc;
cursor: not-allowed;
}
</style>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment