数通互联化工云平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

284 lines
6.3 KiB

<!--
@ 作者: 秦东
@ 时间: 2025-10-21 10:06:51
@ 备注: 在线人数
-->
<script lang='ts' setup>
import {
getMyPeoplceAndSunOrg
} from "@/api/system/roleapi/postrole";
import type { LoadFunction } from 'element-plus'
interface Tree {
name: string
leaf?: boolean
}
const props = {
label: 'name',
children: 'zones',
isLeaf: 'isLeaf',
}
let time = 0
const loadNode: LoadFunction<Tree> = (node, resolve, reject) => {
console.log("node============>",node)
console.log("resolve===>",resolve)
if (node.level === 0) {
getMyPeoplceAndSunOrg({id:"313",level:node.level}).then((res) => {
console.log("res================>",res)
resolve(res.data)
})
}
if (node.level > 0){
getMyPeoplceAndSunOrg({id:node.data.id.toString(),level:1}).then((res) => {
console.log("res=========1=======>",res.data)
if(res.data && Array.isArray(res.data) && res.data.length > 0){
resolve(res.data)
}else{
resolve([])
}
}).catch(() => {
return reject()
})
}
// time++
// if (node.level > 0){
// setTimeout(() => {
// if (time > 3) {
// console.log("node.id============>",node.id)
// console.log("node.level============>",node.level)
// getMyPeoplceAndSunOrg({id:node.data.id.toString(),level:1}).then((res) => {
// console.log("res=========1=======>",res.data)
// // resolve(res.data.data?.map((item: any) => ({
// // name: item.orgName,
// // id: item.orgId,
// // isLeaf: item.isLeaf,
// // zones: []
// // })) || [])
// if(res.data && Array.isArray(res.data) && res.data.length > 0){
// resolve(res.data)
// }else{
// resolve([])
// }
// })
// }else{
// return reject()
// }
// }, 3000)
// }
}
//选择行政组织
const pickOrgTree = (data:any) => {
console.log("监测赋权组------->",data)
}
</script>
<template>
<div class="roleBox">
<el-tree
style="max-width: 100%"
:props="props"
:load="loadNode"
:highlight-current="true"
:expand-on-click-node="false"
node-key="id"
lazy
@node-click="pickOrgTree"
/>
</div>
</template>
<style lang='scss' scoped>
.roleBox{
display: flex;
width: 100%;
height: calc(100vh - 170px);
padding: 15px 20px 0 20px;
justify-content: space-between;
.roleLeft{
width: 350px;
height: calc(100vh - 185px);
background-color: #FFFFFF;
.butBox{
display: flex;
justify-content: space-between;
padding: 0 10px 10px 10px;
}
.searchBox{
padding: 0 10px 5px 10px;
}
.treeBox{
height: calc(100vh - 330px);
}
}
.roleright{
width: calc(100% - 370px);
height: calc(100vh - 185px);
background-color: #FFFFFF;
overflow: hidden;
:deep .el-tabs__content{
padding: 15px 15px 15px 0px;
}
:deep .el-main{
padding: 0 15px;
}
.userTitleBox{
display: flex;
justify-content: space-between;
padding: 0px 0px 15px 0px;
border-bottom: 1px solid rgba($color: #000000, $alpha: 0.2);
}
.userTitleBoxes{
display: flex;
justify-content: space-between;
}
.pickButBox{
display: flex;
align-items: center;
justify-content: space-between;
}
.scrollBox{
margin-top: 5px;
height: calc(100vh - 320px);
}
}
.tabsTitle{
padding: 0 15px;
}
.tabsTitleCont{
padding: 0 35px;
}
.treeRoleBox{
display: flex;
justify-content: space-between;
width: 100%;
align-items: center;
}
.spanButBox{
span{
padding: 0 5px;
}
}
}
.tree_sapn {
padding: 0 10px 0 0;
}
.table_body {
background-color: #ffffff;
width: 100%;
border-collapse: collapse;
/*
* 设置边框
*/
td,
th {
border: 1px solid #cccccc;
padding: 5px;
table {
width: 100%;
td,
th {
border: 0px solid #cccccc;
padding: 0px;
}
}
}
}
.appListBox {
width: 100%;
li {
padding: 10px 2px;
border-bottom: 1px solid #ececec;
cursor: pointer;
}
li.active {
background-color: #a0cfff;
}
}
.tab_pane_box {
height: calc(100vh - 310px);
overflow: hidden;
overflow-y: auto;
.table_body {
background-color: #ffffff;
width: 100%;
border-collapse: collapse;
/*
* 设置边框
*/
td,
th {
border: 1px solid #cccccc;
padding: 5px;
table {
width: 100%;
td,
th {
border: 0px solid #cccccc;
padding: 0px;
}
}
}
}
}
.row_head{
background-color: #f5f7fa;
color: #000000;
text-align: center;
border: 1px solid #E4E7ED;
}
.roe_col_head{
padding: 5px 5px;
}
.left_right{
border-left: 1px solid #E4E7ED;
border-right: 1px solid #E4E7ED;
border-bottom: 1px solid #E4E7ED;
}
.left_line{
border-right: 1px solid #E4E7ED;
}
.tab_pane_body {
height: calc(100vh - 340px);
overflow: hidden;
overflow-y: auto;
}
.tab_pane_bodyes {
height: calc(100vh - 320px);
overflow: hidden;
overflow-y: auto;
}
.appPickPower{
display: flex;
justify-content: space-between;
align-items: center;
}
.userBox{
width: 100%;
height: 50px;
display: flex;
align-items: center;
justify-items: space-between;
padding: 0 10px;
border-bottom: 1px dashed rgba($color: #000000, $alpha: 0.2);
div{
span{
display: flex;
width: 100%;
padding: 0 5px;
color:rgba($color: #000000, $alpha: 0.6);
}
}
}
</style>