<template>
    <div class="home-box">
        <el-container>
            <el-aside :class="{ 'aside-show': isActive }">
                <div class="logo-box" :class="{ 'logo-box-show': isActive }">
                    <img
                            class="logo-img"
                            src="@/assets/images/logo-realestate.png"
                            alt=""
                    />
                    <span class="logo-text" v-show="!textLogo">不动产权籍调查系统</span>
                </div>
                <div class="treeModule">
                    <LineTree :pd="pd" @itemClick="itemClick"></LineTree>
                </div>
            </el-aside>
            <el-container>
                <el-header height="100px">
                    <div class="header-top">
                        <div class="top-items" @click="toggleClick">
                            <i class="fa fa-outdent hamburger" v-show="!isActive"></i>
                            <i class="fa fa-indent hamburger" v-show="isActive"></i>
                        </div>
                        <div
                                class="top-items"
                                v-for="(item, index) in headTop"
                                :key="index + '1'"
                                :class="{ 'is-active': item.select }"
                                @click="selectTopItems(index)"
                        >
                            <i :class="item.icon"></i>
                            <span>{{ item.name }}</span>
                        </div>
                    </div>
                    <div class="header-bottom">
                        <Navigation ref="navigation"></Navigation>
                    </div>
                    <el-dialog
                            title="新建"
                            :visible.sync="dialogVisible"
                            width="40%"
                    >
                        <Create @closeDialog="closeDialog"></Create>
                    </el-dialog>
                </el-header>
                <el-main>
                    <router-view/>
                </el-main>
            </el-container>
        </el-container>
    </div>
</template>
<script>
    import util from "@/libs/util.js";
    import Navigation from "../components/IvyElement/navigation";
    import Create from "./panel/create/index";
    import LineTree from "../components/lineTree/lineTree";
    import {setTimeout} from "timers";
    import {getTree} from "../api/common"

    export default {
        components: {
            Navigation,
            LineTree,
            Create,
        },
        data() {
            return {
                navigationList: [],
                isActive: false,
                textLogo: false,
                activePath: "",
                defaultActive: "",
                headTop: [
                    {
                        path: "/create",
                        select: false,
                    },
                    {
                        path: "/add",
                        select: false,
                    },
                    {
                        path: "/modify",
                        select: false,
                    },
                    {
                        path: "/change",
                        select: false,
                    },
                    {
                        path: "/search",
                        select: false,
                    },
                ],
                tempTab: [
                    {
                        path: "/zrz",
                        name: "自然幢",
                    },
                    {
                        path: "/dz",
                        name: "多幢",
                    },
                    {
                        path: "/h",
                        name: "户",
                    },
                    {
                        path: "/zd",
                        name: "宗地",
                    },
                ],
                // 上导航选中id
                indId: undefined,
                menuList: [],
                pathAndCodeObj: {
                    "/article-draft": "PSH004",
                    "/article-publish": "PSH005",
                    "/article-recycle": "PSH006",
                    "/notice-draft": "PSH007",
                    "/notice-publish": "PSH008",
                    "/notice-recycle": "PSH009",
                    "/column_management": "PSH018",
                    "/announcement_template": "PSH019",
                    "/business_management": "PSH020",
                },
                pd: [
                    {
                        mc: "行政区(1)",
                        children: [],
                    },
                    {
                        mc: "行政区(2)",
                        children: [
                            {
                                mc: "地籍区1",
                                children: [],
                            },
                            {
                                mc: "地籍区2",
                                children: [
                                    {
                                        mc: "国有",
                                        children: [
                                            {
                                                mc: "宗地代码1933",
                                                isZD: true,
                                            },
                                            {
                                                mc: "自然幢2100",
                                                isZD: false,
                                            },
                                        ],
                                    },
                                ],
                            },
                            {
                                label: "地籍区3",
                                children: [],
                            },
                            {
                                label: "地籍区4",
                                children: [],
                            },
                        ],
                    },
                    {
                        mc: "行政区(3)",
                        children: [],
                    },
                    {
                        mc: "行政区(4)",
                        children: [],
                    },
                    {
                        mc: "行政区(5)",
                        children: [],
                    },
                ],
                dialogVisible: false,
            };
        },
        computed: {
            permission_routes() {
                return this.$store.state.permission_routes.navigation;
            },
        },
        watch: {
            "$route.path": function (newPath) {
                //监测路由变化,高亮顶部导航
                this.headTop.forEach((item, index) => {
                    item.select = false;
                    if (item.path == newPath) {
                        item.select = true;
                    }
                });
            },
            "$store.state.zdbsm": function (bsm) {
                this.getRightTree(bsm)
            }
        },
        created() {
            if (this.$route.meta) {
                this.defaultActive = this.$route.meta.code;
            }
            if (this.permission_routes.length !== 0) {
                this.navigationList = this.permission_routes;
            } else {
                // let list = JSON.parse(util.cookies.get('navigation-1')).concat(JSON.parse(util.cookies.get('navigation')))
                //mock数据
                let list = [
                    {
                        name: "新建",
                        icon: "fa fa-address-card-o",
                        path: "/create",
                    },
                    {
                        name: "添加",
                        icon: "fa fa-address-card-o",
                        path: "/add",
                    },
                    {name: "更正", icon: "fa fa-address-card-o", path: "/modify"},
                    {
                        name: "变更",
                        icon: "fa fa-address-card-o",
                        path: "/change",
                    },
                    {
                        name: "综合查询",
                        icon: "fa fa-address-card-o",
                        path: "/search",
                    },
                ];
                this.navigationList = list;
            }
            this.sortNavigation(this.navigationList, 0);
            // if (util.cookies.get("indId")) {
            // 	let indId = util.cookies.get("indId") - 0;
            // 	this.navSelect(indId);
            // 	this.sortNavigation(this.navigationList, indId);
            // }
        },
        methods: {
            getRightTree(bsm) {
                getTree(bsm).then(res => {
                    console.log("=========================================")
                    console.log(res)
                    if (res.success) {
                        this.pd=res.result
                    }
                })
            },
            sortNavigation(data, selectId) {
                let headTop = this.headTop;
                data.forEach((item, index) => {
                    headTop[index].name = item.name;
                    headTop[index].icon = item.icon;
                });
            },
            // menuSelect(data, selectId) {
            // 	this.menuList = data[selectId].children;
            // },
            handleOpen(key, keyPath) {
                console.log(key, keyPath);
            },
            handleClose(key, keyPath) {
                console.log(key, keyPath);
            },
            toggleClick() {
                this.isActive = !this.isActive;
                if (!this.isActive) {
                    setTimeout(() => {
                        this.textLogo = this.isActive;
                    }, 200);
                } else {
                    this.textLogo = this.isActive;
                }
            },
            selectTopItems(ind) {
                if (ind == 0) {
                    //点击新建,弹框
                    this.dialogVisible = true;
                } else {
                    this.dialogVisible = false;
                    this.indId = ind;
                    // this.menuSelect(this.navigationList, ind);
                    // this.$store.dispatch("setTabs/init_tabs");
                    // this.$store.dispatch("setTabs/set_active_index", "/panel");
                    this.$router.push(this.headTop[ind].path);
                    this.navSelect(ind);
                    // util.cookies.set("indId", ind);
                }
            },
            // 上导航选中id
            navSelect(id) {
                this.headTop.forEach((item, index) => {
                    item.select = false;
                    if (index == id) {
                        item.select = true;
                    }
                });
            },
            //树控件点击事件
            itemClick(data) {
                console.log(data);
            },
            //关闭新建子组件弹框
            closeDialog() {
                this.dialogVisible = false;
            }
        },
    };
</script>
<style lang="less" scoped>
    .home-box {
        width: 100%;
        height: 100vh;
        .el-container {
            height: 100%;
        }
        .el-header {
            background-color: #fff;
            padding: 0 !important;
            .header-top {
                height: 60px;
                border-bottom: 1px solid rgba(242, 242, 242, 1);
                box-sizing: border-box;
                .top-items {
                    cursor: pointer;
                    height: 60px;
                    padding: 0 30px;
                    font-size: 16px;
                    line-height: 60px;
                    float: left;
                    position: relative;
                    color: #4a4a4a;
                    i {
                        margin-right: 6px;
                    }
                    .hamburger {
                        font-size: 16px;
                        line-height: 60px;
                        color: #000;
                    }
                }
                .top-items:not(:last-child)::after {
                    content: "";
                    width: 1px;
                    height: 14px;
                    background: #eaeaea;
                    position: absolute;
                    right: -1px;
                    top: 24px;
                }
                .top-items.is-active {
                    color: #006cff;
                }
            }
            .header-bottom {
                height: 50px;
                box-shadow: 0px 2px 4px 0px rgba(222, 222, 222, 0.7);
                border-bottom: 1px solid rgba(234, 234, 234, 1);
                box-sizing: border-box;
            }
        }
        .el-aside {
            width: 290px !important;
            background-color: #1d50dd;
            color: #333;
            // text-align: center;
            overflow: hidden;
            transition: width 0.3s;
            .logo-box {
                width: 100%;
                height: 120px;
                border-bottom: 1px solid rgba(255, 255, 255, 0.2);
                padding: 30px 0 28px 0;
                box-sizing: border-box;
                display: flex;
                flex-direction: column;
                justify-content: space-between;
                align-items: center;
                transition: width 0.3s;
                .logo-img {
                    width: 38px;
                    height: 38px;
                }
                .logo-text {
                    font-size: 14px;
                    color: rgba(255, 255, 255, 1);
                    line-height: 14px;
                }
            }
            .treeModule {
                box-sizing: border-box;
                padding: 20px 20px;
            }
            .logo-box-show {
                width: 64px;
            }
            .el-menu {
                border-right: 0;
            }
            .el-submenu .el-menu-item {
                text-align: left;
                text-indent: 15px;
            }
        }
        .aside-show {
            width: 64px !important;
        }

        .el-main {
            background-color: #f1f4fc;
            color: #333;
            // text-align: center;
            // line-height: 160px;
            padding: 0;
        }
    }
</style>