<template>
    <div class="float-nav bg-white flex-col col-center">
        <div class="nav-list">
            <nuxt-link to="/shop_cart" class="item flex-col col-center lighter">
                <el-badge :value="publicData.cart_num" type="primary">
                    <span class="iconfont icon-cart-Empty"></span>
                </el-badge>
                <div class="sm">购物车</div>
            </nuxt-link>
            <nuxt-link
                class="item flex-col col-center lighter"
                to="/user/coupons"
            >
                <el-badge :value="publicData.coupon_num" type="primary">
                    <span class="iconfont icon-coupons"></span>
                </el-badge>
                <div class="sm">优惠券</div>
            </nuxt-link>
            <nuxt-link
                class="item flex-col col-center lighter"
                to="/user/order"
            >
                <span class="iconfont icon-icon_order"></span>
                <div class="sm">订单</div>
            </nuxt-link>
            <nuxt-link
                class="item flex-col col-center lighter"
                to="/user/collection"
            >
                <span class="iconfont icon-collection"></span>
                <div class="sm">收藏</div>
            </nuxt-link>
            <nuxt-link
                class="item flex-col col-center lighter"
                to="/help_center"
            >
                <span class="iconfont icon-survey"></span>
                <div class="sm">帮助</div>
            </nuxt-link>
            <el-popover placement="left" width="165" trigger="hover">
                <div
                    style="text-align: center; margin: 0"
                    class="flex-col col-center"
                >
                    <img
                        style="width: 100px; height: 100px"
                        :src="server.image"
                        alt=""
                    />
                    <div class="sm m-t-8">{{ server.phone }}</div>
                    <div class="sm m-t-10">
                        在线时间:{{ server.business_time }}
                    </div>
                </div>
                <div class="item flex-col col-center lighter" slot="reference">
                    <span class="iconfont icon-service"></span>
                    <div class="sm">客服</div>
                </div>
            </el-popover>
        </div>
        <div class="back-top">
            <span class="iconfont icon-top" @click="scrollTop"></span>
        </div>
    </div>
</template>

<script>
import { mapState } from 'vuex'
export default {
    data() {
        return {
            server: {},
        }
    },
    created() {
        this.getService()
    },
    methods: {
        async getService() {
            const { data, code } = await this.$get(
                'setting/getPlatformCustomerService'
            )
            if (code == 1) {
                this.server = data
            }
        },
        scrollTop() {
            cancelAnimationFrame(this.timer)
            const self = this
            this.timer = requestAnimationFrame(function fn() {
                var oTop =
                    document.body.scrollTop ||
                    document.documentElement.scrollTop
                if (oTop > 0) {
                    scrollTo(0, oTop - 250)
                    self.timer = requestAnimationFrame(fn)
                } else {
                    cancelAnimationFrame(self.timer)
                }
            })
        },
    },
    computed: {
        ...mapState(['publicData']),
    },
}
</script>

<style lang="scss" scoped>
.float-nav {
    height: 100vh;
    position: fixed;
    right: 0;
    top: 0;
    width: 60px;
    z-index: 999;
    box-shadow: -3px 1px 2px rgba(0, 0, 0, 0.04);
    .nav-list {
        position: absolute;
        bottom: 120px;
        .item {
            padding: 10px 4px;
            text-align: center;
            cursor: pointer;
            &:hover {
                color: $--color-primary;
            }
            .iconfont {
                font-size: 24px;
            }
            ::v-deep .el-badge__content {
                height: 16px;
                line-height: 16px;
                padding: 0 5px;
            }
        }
    }
    .back-top {
        position: absolute;
        bottom: 20px;
        cursor: pointer;
    }
}
</style>