<template>
    <view class="status-box" :style="{marginBottom: marginBottom,paddingTop:statusBarHeight+'px'}">
		<!-- 头部背景图片 -->
		<image class="backImg" src="/static/public/icon-head.png" mode=""></image>
		<!-- 头部状态栏 start -->
        <view class="status-nav" :style="{background: backgroudColor,height:navBarHeight}">
            <!-- 返回键 start -->
			<view class="disjcac left-box" @tap="backEv" v-if="ifReturn" :style="{height: navBarHeight}" >
				<slot name="leftcontent">
					<i class="icon icon-return" style="font-size: 38rpx;" :style="{color: returnColor}"></i>
				</slot>
			</view>
			<!-- 返回键 end -->
			
            <!-- 标题 start -->
			<view class=" tab-title " 
				:style="{
					color: titleColor,
					justifyContent: ifCenter ? 'center' : '',
					padding: ifCenter ? '0px' : `${ifReturn ? '0 60' : '0 30'}rpx`}">
				<view class="title-box" :class="['','clips1','clips2'][clipNumber*1]" :style="{maxWidth: ifCenter ? '360rpx' : '70%'}">
					<!-- 有网络 -->
					<view v-if="ifTitle && ifNet" >{{navBarTitle}}</view>
					<!-- 无网络 -->
					<view v-if="!ifNet">{{netText}}<text @tap="refreshEv" style="color: #3875F6;margin-left: 20rpx;">刷新</text></view>
				</view>
			</view>
			<!-- 标题 end -->
			
			<!-- 右侧图标 start -->
			<view class="right-box disjcac" :style="{height: navBarHeight}">
				<slot name="rightcontent"></slot>
			</view>
			<!-- 右侧图标 end -->
        </view>
		<!-- 头部状态栏 end -->
    </view>
</template>

<script>
    export default {
		name:'status-nav',
        props:{
			//状态栏、导航栏背景颜色
			backgroudColor:{
			    type:String,
			    default:'#FFFFFF'
			},
			// 默认导航栏高度
			navBarHeight: {
				type:String,
				default:'42px'
			},
			//是否显示返回键
            ifReturn:{
                type:Boolean,
                default:true
            },
			// 返回键颜色
			returnColor: {
				type:String,
				default:'#000'
			},
			//是否显示标题
			ifTitle:{
			    type:Boolean,
			    default:true
			},
			// 导航栏标题
			navBarTitle: {
				type:String,
				default:''
			},
			// 标题最多几行显示
			clipNumber: {
				type:String,
				default:'1'
			},
			//标题颜色
            titleColor:{
                type:String,
                default:'#333333'
            },
			// 标题是否居中
			ifCenter: {
				type:Boolean,
				default: true
			},
			// 底部距离内容多高
			marginBottom: {
				type:String,
				default:'20rpx'
			},
        },
		data(){
			return {
				statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
				ifNet:true ,// 是否有网络
				netText:'当前无网络',
				netTimer:null
			}
		},
		mounted() {
			// 网络监测
			this.$toolAll.tools.networkStatus();
			// 获取当前页面路径
			this.$toolAll.tools.obtainPagePath();
			setTimeout(()=>{
				this.ifNet = uni.getStorageSync('isNet');
			},500)
		},
		methods:{
			// 刷新网络事件
			refreshEv(){
				this.netText = '正在刷新...';
				let outTime = 0;//十秒超时
				this.netTimer = setInterval(()=>{
					outTime++;
					this.$toolAll.tools.networkStatus();
					if(uni.getStorageSync('isNet')) {
						clearInterval(this.netTimer);
						this.ifNet = true;
					} 
					if(outTime==10) {
						clearInterval(this.netTimer);
						this.netText = '刷新失败';
						outTime = 0;
					}
				},1000)
			},
			//返回事件
			backEv(){
				uni.navigateBack({delta:1})
			}
		}
    }
</script>

<style scoped>
	.disjcac{display: flex;justify-content: center;align-items: center;}
	.clips1{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
	.clips2{display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;overflow: hidden;text-overflow: ellipsis;word-wrap: break-word;word-break:break-all;}
	.status-box{position: sticky;top: 0;left: 0;right: 0;z-index: 10;}
	.status-nav{
		width: 100%;
		position: relative;display: flex;align-items: center;
		overflow: hidden;
	}
	.backImg{position: absolute;top: 0;left: 0;right: 0;vertical-align: middle;width: 100%;z-index: -1;height: 100%;}
	.left-box {position: absolute;padding: 0 20rpx;}
	.right-box {position: absolute;right: 0; padding: 0 20rpx;}
	.tab-title {width: 100%;font-size: 42rpx;display: flex;}
	.tab-title .title-box {margin-top: -4rpx;}
</style>