<template>
	<div class="header">
		<!-- 折叠按钮 -->
		<div class="collapse-btn" @click="collapseChage">
			<i v-if="!collapse" class="el-icon-s-fold"></i>
			<i v-else class="el-icon-s-unfold"></i>
		</div>
		<div class="logo">后台管理系统</div>
		<div class="header-right">
			<div class="header-user-con">
				<!-- 全屏显示 -->
				<div class="btn-fullscreen" @click="handleFullScreen">
					<el-tooltip effect="dark" :content="fullscreen?`取消全屏`:`全屏`" placement="bottom">
						<i class="el-icon-rank"></i>
					</el-tooltip>
				</div>
				<!-- 更新操作 -->
				<div v-if="this.user_role == 0">
					<el-button @click="synChroNize" type="warning" style="background-color: #242f42;border: none;">同步CN</el-button>
				</div>
				<!-- 用户名下拉菜单 -->
				<el-dropdown class="user-name" trigger="click" @command="handleCommand">
					<span class="el-dropdown-link">
						{{username}}
						<i class="el-icon-caret-bottom"></i>
					</span>
					<el-dropdown-menu slot="dropdown">
						<el-dropdown-item command="loginout">退出登录</el-dropdown-item>
					</el-dropdown-menu>
				</el-dropdown>
			</div>
		</div>
	</div>
</template>
<script>
	import bus from '../common/bus';
	export default {
		data() {
			return {
				collapse: false,
				fullscreen: false,
				name: 'linxin',
				message: 2,
				fullscreenLoading: false,
				user_role: localStorage.getItem('admin_role')
			};
		},
		computed: {
			username() {
				let username = localStorage.getItem('admin_username');
				return username ? username : this.name;
			}
		},
		methods: {
			// 用户名下拉菜单选择事件
			handleCommand(command) {
				if (command == 'loginout') {
					// 二次确认
					this.$confirm('确定要退出登录', '提示', {
							type: 'warning'
						})
						.then(() => {
							localStorage.removeItem('admin_username')
							localStorage.removeItem('admin_id')
							localStorage.removeItem('admin_role')
							localStorage.removeItem('admin_time')
							this.$router.push('/login');
						})
						.catch(() => {});
				}
			},
			// 侧边栏折叠
			collapseChage() {
				this.collapse = !this.collapse;
				bus.$emit('collapse', this.collapse);
			},
			// 同步CN事件
			synChroNize() {
				// 二次确认更新
				this.$confirm('每十分钟可以操作一次，确定要同步吗？', '提示', {
						type: 'warning'
					})
					.then(() => {
						const loading = this.$loading({
							lock: true,
							text: 'Loading',
							spinner: 'el-icon-loading',
							background: 'rgba(0, 0, 0, 0.7)'
						});
						this.$api
							.post('master/Admin/admin_synchronization')
							.then(res => {
								if (res.code == 0) {
									this.$alert('您已同步成功！', '同步成功', {
										confirmButtonText: '确定'
									}).then(res => {}).catch(() => {});
									loading.close();
								} else {
									this.$alert(res.msg, '同步失败', {
										confirmButtonText: '确定'
									}).then(res => {}).catch(() => {});
									loading.close();
								}
							})
							.catch(err => {
								this.$alert('您已同步成功！', '同步成功', {
									confirmButtonText: '确定'
								}).then(res => {}).catch(() => {});
								loading.close();
								// this.$message.error(err);
							});
					})
					.catch(() => {});

			},
			// 全屏事件
			handleFullScreen() {
				let element = document.documentElement;
				if (this.fullscreen) {
					if (document.exitFullscreen) {
						document.exitFullscreen();
					} else if (document.webkitCancelFullScreen) {
						document.webkitCancelFullScreen();
					} else if (document.mozCancelFullScreen) {
						document.mozCancelFullScreen();
					} else if (document.msExitFullscreen) {
						document.msExitFullscreen();
					}
				} else {
					if (element.requestFullscreen) {
						element.requestFullscreen();
					} else if (element.webkitRequestFullScreen) {
						element.webkitRequestFullScreen();
					} else if (element.mozRequestFullScreen) {
						element.mozRequestFullScreen();
					} else if (element.msRequestFullscreen) {
						// IE11
						element.msRequestFullscreen();
					}
				}
				this.fullscreen = !this.fullscreen;
			}
		},
		mounted() {
			if (document.body.clientWidth < 1500) {
				this.collapseChage();
			}
		}
	};
</script>
<style scoped>
	.header {
		position: relative;
		box-sizing: border-box;
		width: 100%;
		height: 70px;
		font-size: 22px;
		color: #fff;
	}

	.collapse-btn {
		float: left;
		padding: 0 21px;
		cursor: pointer;
		line-height: 70px;
	}

	.header .logo {
		float: left;
		width: 250px;
		line-height: 70px;
	}

	.header-right {
		float: right;
		padding-right: 50px;
	}

	.header-user-con {
		display: flex;
		height: 70px;
		align-items: center;
	}

	.btn-fullscreen {
		transform: rotate(45deg);
		margin-right: 5px;
		font-size: 24px;
	}

	.btn-bell,
	.btn-fullscreen {
		position: relative;
		width: 30px;
		height: 30px;
		text-align: center;
		border-radius: 15px;
		cursor: pointer;
	}

	.btn-bell-badge {
		position: absolute;
		right: 0;
		top: -2px;
		width: 8px;
		height: 8px;
		border-radius: 4px;
		background: #f56c6c;
		color: #fff;
	}

	.btn-bell .el-icon-bell {
		color: #fff;
	}

	.user-name {
		margin-left: 10px;
	}

	.user-avator {
		margin-left: 20px;
	}

	.user-avator img {
		display: block;
		width: 40px;
		height: 40px;
		border-radius: 50%;
	}

	.el-dropdown-link {
		color: #fff;
		cursor: pointer;
	}

	.el-dropdown-menu__item {
		text-align: center;
	}
</style>
