<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>
					<div class="header-top">
						<div class="top-items" @click="toggleClick">
							<i class="fa fa-outdent" v-show="!isActive"></i>
							<i class="fa fa-indent" 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" :auth="false"></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,getDdicByMC,getTreeList,getTreeByZrzbsm } 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: [],
			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;
				}
			});
			if (newPath == "/zd") {
				this.getRightTree(this.$store.state.zdbsm);
			}else if (newPath == "/zrz") {
				this.getRightTreeByZrzbsm(this.$store.state.zrzbsm);
			}else {
				this.getTreeList();
			}
		},
		// "$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-plus-square",
					path: "/create",
				},
				{
					name: "添加",
					icon: "fa fa-plus-circle",
					path: "/add",
				},
				{ name: "更正", icon: "fa fa-pencil-square", path: "/modify" },
				{
					name: "变更",
					icon: "fa fa-exchange",
					path: "/change",
				},
				{
					name: "综合查询",
					icon: "fa fa-search",
					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);
		// }
		this.getDic();
		this.getTreeList();
	},
	methods: {
		//请求字典数据
		async getDic() {
			let s = this.$store.state;
			s.zjzlList = s.zjzlList.length == 0 ?await this.getDicData("证件种类") : s.zjzlList;
			s.gjList = s.gjList.length == 0 ?await this.getDicData("国家和地区") : s.gjList;
			s.ssList = s.ssList.length == 0 ?await this.getDicData("省市") : s.ssList;
			s.qlrlxList = s.qlrlxList.length == 0 ?await this.getDicData("权利人类型") : s.qlrlxList;
			s.xbList = s.xbList.length == 0 ? await this.getDicData("性别") : s.xbList;
			s.sshyList = s.sshyList.length == 0 ?await this.getDicData("所属行业") : s.sshyList;
			s.qllxList = s.qllxList.length == 0 ?await this.getDicData("权利类型") : s.qllxList;
			s.zdtzmList = s.zdtzmList.length == 0 ?await this.getDicData("宗地(宗海)特征码") : s.zdtzmList;
			s.qlsdfsList = s.qlsdfsList.length == 0 ?await this.getDicData("权利设定方式") : s.qlsdfsList;
            s.gyfsList = s.gyfsList.length == 0 ?await this.getDicData("共有方式") : s.gyfsList;
			s.qlxzList = s.qlxzList.length == 0 ?await this.getDicData("权利性质") : s.qlxzList;
			s.tdytList = s.tdytList.length == 0 ?await this.getDicData("土地用途") : s.tdytList;
			s.fwytList = s.fwytList.length == 0 ?await this.getDicData("房屋用途") : s.fwytList;
			s.tddjList = s.tddjList.length == 0 ?await this.getDicData("土地等级") : s.tddjList;
			s.fwlxList = s.fwlxList.length == 0 ?await this.getDicData("房屋类型") : s.fwlxList;
			s.hxList = s.hxList.length == 0 ?await this.getDicData("户型") : s.hxList;
			s.hxjgList = s.hxjgList.length == 0 ?await this.getDicData("户型结构") : s.hxjgList;
			s.fwjgList = s.fwjgList.length == 0 ?await this.getDicData("户型结构") : s.fwjgList;

			s.fwxzOptions = s.fwxzOptions.length == 0 ?await this.getDicData("房屋性质") : s.fwxzOptions;
			s.cbOptions = s.cbOptions.length == 0 ?await this.getDicData("房屋产别") : s.cbOptions;
			s.cqlyOptions = s.cqlyOptions.length == 0 ?await this.getDicData("产权来源") : s.cqlyOptions;
			s.jgOptions = s.jgOptions.length == 0 ?await this.getDicData("房屋结构") : s.jgOptions;
			s.gmjjhyflbsmList = s.gmjjhyflbsmList.length == 0 ?await this.getDicData("国民经济行业分类代码") : s.gmjjhyflbsmList;
		},
		async getDicData(name) {
			return await getDdicByMC(name).then((res)=> {
					return res.result  
				   });
		},
		getRightTree(bsm) {
			getTree(bsm).then((res) => {
				if (res.success) {
					this.pd = res.result;
				}
			});
		},

		getRightTreeByZrzbsm(bsm) {
			getTreeByZrzbsm(bsm).then((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;
		},
		getTreeList(){
			getTreeList().then((res)=>{
				this.pd=res.result;
			})
		}
	},
};
</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#EAEAEA;
			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;
				border-left: 1px solid #EAEAEA;
    			border-right: 1px solid #EAEAEA;
				height: 59px;
				border-bottom: 1px solid #FFF;
			}
		}
		.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: #EAEDF5;
		color: #333;
		// text-align: center;
		// line-height: 160px;
		padding: 0;
	}
}
</style>