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

提交

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