<template>
    <view :loading="loading">
        <view class="message">
            <view class="message-nav" @click="jump('run')">
                <image mode="aspectFill" class="message-nav-icon" src="/static/message3.png" />
                <view class="message-nav-label">运行事件</view>
                <uni-badge :text="messageCount.runCount"></uni-badge>
                <uni-icons type="forward" color="#aaa" size="20"></uni-icons>
            </view>
            <view class="message-nav" @click="jump('transient')">
                <image mode="aspectFill" class="message-nav-icon" src="/static/incident.png" />
                <view class="message-nav-label">暂态事件</view>
                <uni-badge :text="messageCount.eventCount"></uni-badge>
                <uni-icons type="forward" color="#aaa" size="20"></uni-icons>
            </view>
            <view class="message-nav" @click="jump('steady')">
                <image mode="aspectFill" class="message-nav-icon" src="/static/report.png" />
                <view class="message-nav-label">稳态事件</view>
                <uni-badge :text="messageCount.harmonicCount"></uni-badge>
                <uni-icons type="forward" color="#aaa" size="20"></uni-icons>
            </view>
            <view class="message-nav" @click="jump('report')">
                <image mode="aspectFill" class="message-nav-icon" src="/static/term.png" />
                <view class="message-nav-label">设备告警</view>
                <uni-badge :text="messageCount.alarmCount"></uni-badge>
                <uni-icons type="forward" color="#aaa" size="20"></uni-icons>
            </view>
        </view>
    </view>
</template>

<script>
export default {
    data() {
        return {
            loading: false,
            userInfo: {},
            messageCount: {},
            timer: null,
        }
    },
    methods: {
        init() {
            this.userInfo = uni.getStorageSync('userInfo')
        },
        upgrade(code) {
            console.log(code)
            uni.showToast({
                title: '升级成功',
                icon: 'none',
            })
        },
        jump(type) {
            switch (type) {
                case 'login':
                    uni.navigateTo({
                        url: `/pages/user/login`,
                    })
                    break
                case 'gateway':
                    uni.navigateTo({
                        url: `/pages/gateway/list`,
                    })
                    break
                case 'upgrade':
                    this.$refs.inputDialog.open()
                    break
                default:
                    uni.navigateTo({
                        url: `/pages/message/${type}`,
                    })
                    break
            }
        },
    },
    onLoad(options) {},
    onShow() {
        this.init()
        this.messageCount = uni.getStorageSync(this.$cacheKey.messageCount) || {}
        this.timer = setInterval(() => {
            this.messageCount = uni.getStorageSync(this.$cacheKey.messageCount) || {}
        }, 3000) // 定时请求
    },
    onHide() {
        clearInterval(this.timer)
    }
}
</script>

<style lang="scss">
.message {
    padding-top: 20rpx;

    .message-header {
        padding: 200rpx 34rpx 34rpx;
        display: flex;
        align-items: center;
        background: $uni-theme-white;
        margin-bottom: 20rpx;
        box-shadow: 0 4rpx 8rpx #e7e7e74c;

        .message-header-head {
            margin-right: 30rpx;
            height: 128rpx;
            width: 128rpx;
            border-radius: $uni-theme-radius;
            overflow: hidden;
        }

        .message-header-name {
            margin-right: 30rpx;
            flex: 1;
            font-size: 36rpx;
            color: #111;
            font-weight: 700;

            .tag {
                margin-top: 10rpx;
                font-size: 24rpx;
                color: #aaa;
            }
        }
    }

    .message-nav {
        padding: 34rpx;
        display: flex;
        align-items: center;
        background: $uni-theme-white;
        border-bottom: 1rpx solid #e8e8e8;

        &-icon {
            margin-right: 30rpx;
            height: 44rpx;
            width: 44rpx;
            border-radius: $uni-theme-radius;
            overflow: hidden;
        }

        &-label {
            margin-right: 30rpx;
            flex: 1;
            font-size: 28rpx;
            color: #111;
        }
    }
}
</style>
