<template>
    <header>
        <div class="header-wrap">
            <div class="header-con xs">
                <div class="wrapper1180 flex row-between">
                    <div class="flex" style="height: 100%">
                        <template
                            v-if="
                                publicData.article && publicData.article.length
                            "
                        >
                            <img
                                style="
                                    width: 16px;
                                    height: 16px;
                                    margin-right: 10px;
                                "
                                src="~/static/images/header_notice.png"
                            />
                            <client-only>
                                <swiper
                                    ref="headerSwiper"
                                    :options="swiperOptions"
                                >
                                    <swiper-slide
                                        class="swiper-item"
                                        v-for="(
                                            item, index
                                        ) in publicData.article"
                                        :key="index"
                                    >
                                        <nuxt-link
                                            class="flex-col row-center"
                                            style="height: 100%"
                                            :to="
                                                '/news_list/news_list_detail?id=' +
                                                item.id
                                            "
                                        >
                                            <div class="line1">
                                                {{ item.title }}
                                            </div>
                                        </nuxt-link>
                                    </swiper-slide>
                                </swiper>
                            </client-only>
                        </template>
                    </div>
                    <div class="user flex flex-none">
                        <div v-if="publicData.name">
                            您好,欢迎来到 {{ publicData.name }}!
                        </div>
                        <ul class="flex flex-none">
                            <li v-if="publicData.nickname">
                                <el-popover placement="bottom" trigger="hover">
                                    <div class="user-nav">
                                        <nuxt-link
                                            class="lighter xs item"
                                            to="/user/user_wallet"
                                            >我的钱包</nuxt-link
                                        >
                                        <nuxt-link
                                            class="lighter xs item"
                                            to="/user/coupons"
                                            >优惠券({{
                                                publicData.coupon_num
                                            }})</nuxt-link
                                        >
                                        <nuxt-link
                                            class="lighter xs item"
                                            to="/user/collection"
                                            >我的收藏</nuxt-link
                                        >
                                        <div
                                            class="lighter xs item"
                                            @click="onLogout"
                                        >
                                            退出登录
                                        </div>
                                    </div>
                                    <nuxt-link
                                        slot="reference"
                                        to="/user/profile"
                                    >
                                        {{ publicData.nickname }}
                                        <i class="el-icon-arrow-down"></i>
                                    </nuxt-link>
                                </el-popover>
                            </li>
                            <li v-else>
                                <nuxt-link to="/account/login">登录</nuxt-link>
                                |
                                <nuxt-link to="/account/register"
                                    >注册</nuxt-link
                                >
                            </li>
                            <li>
                                <nuxt-link to="/user/order">我的订单</nuxt-link>
                            </li>
                            <li>
                                <nuxt-link to="/user/profile"
                                    >个人中心</nuxt-link
                                >
                            </li>
                            <li>
                                <nuxt-link to="/help_center"
                                    >帮助中心</nuxt-link
                                >
                            </li>
                            <li>
                                <nuxt-link to="/store_settled"
                                    >商家入驻</nuxt-link
                                >
                            </li>
                            <li
                                id="tel-phone-block"
                                v-if="
                                    publicData.mnp_qr_code ||
                                    publicData.oa_qr_code
                                "
                            >
                                <nuxt-link to="/"
                                    >手机端
                                    <i class="el-icon-arrow-down"></i>
                                </nuxt-link>
                                <div class="float-code flex bg-white">
                                    <div
                                        class="flex-col col-center bg-white"
                                        v-if="publicData.mnp_qr_code"
                                    >
                                        <img
                                            style="width: 100px; height: 100px"
                                            :src="publicData.mnp_qr_code"
                                            alt=""
                                        />
                                        <div class="lighter m-t-10">
                                            官方小程序
                                        </div>
                                    </div>
                                    <div
                                        class="flex-col col-center"
                                        style="margin-left: 30px"
                                        v-if="publicData.oa_qr_code"
                                    >
                                        <img
                                            style="width: 100px; height: 100px"
                                            :src="publicData.oa_qr_code"
                                            alt=""
                                        />
                                        <div class="lighter m-t-10">公众号</div>
                                    </div>
                                </div>
                            </li>
                            <li>
                                <nuxt-link to="/">返回官网</nuxt-link>
                            </li>
                        </ul>
                    </div>
                </div>
            </div>
            <div class="header-main bg-white">
                <div class="wrapper1180">
                    <div class="search-wrap flex row-between">
                        <nuxt-link to="/" class="flex row-center">
                            <img
                                :src="config.shop_login_logo"
                                class="logo"
                                alt="logo"
                            />
                        </nuxt-link>
                        <div class="flex">
                            <div class="search flex">
                                <input
                                    type="text"
                                    v-model="name"
                                    placeholder="请输入要搜索的商品名称"
                                    @keyup.enter="toSearch"
                                />
                                <el-button
                                    class="search-btn"
                                    type="primary"
                                    @click="toSearch"
                                >
                                    搜索
                                </el-button>
                            </div>
                            <el-button type="primary" plain class="cart">
                                <nuxt-link to="/shop_cart"
                                    >购物车({{
                                        publicData.cart_num
                                    }})</nuxt-link
                                >
                            </el-button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </header>
</template>

<script>
import { directive } from 'vue-awesome-swiper'
import { mapState, mapMutations, mapActions } from 'vuex'
export default {
    directives: {
        swiper: directive,
    },
    data() {
        return {
            name: '',
            swiperOptions: {
                direction: 'vertical',
                // autoHeight: true,
                height: 40,
                initialSlide: 0,
                autoplay: true,
            },
        }
    },

    methods: {
        ...mapMutations(['logout']),
        ...mapActions(['getPublicData']),
        toSearch() {
            if (!this.name) return this.$message.error('请输入商品名称')
            this.$router.push({
                path: '/goods_list',
                query: {
                    name: this.name,
                },
            })
        },
        onLogout() {
            this.logout()
            this.$message({
                message: '退出成功',
                type: 'success',
            })
            setTimeout(() => location.reload(), 1500)
        },
    },
    watch: {
        $route: {
            immediate: true,
            handler: function (val) {
                console.log(val)
                if (val.path == '/goods_list') {
                    this.name = val.query.name
                } else {
                    this.name = ''
                }
            },
        },
    },
    computed: {
        ...mapState(['publicData', 'config']),
    },
}
</script>

<style lang="scss" scoped>
.header-wrap {
    min-width: 1180px;
    position: relative;
    z-index: 1000;
    ::v-deep .swiper-container {
        margin-left: 0;
        margin-right: 0;
        height: 100%;
        width: 400px;
    }
    .swiper-item {
        color: #ccc;
        height: 17px;
    }
    .header-con {
        background-color: #101010;
        height: 40px;
        color: #f2f2f2;
        > div {
            height: 100%;
            color: #cccccc;
            a {
                color: #cccccc;
                &:hover {
                    color: #fff;
                }
            }
            ul {
                li {
                    margin-left: 20px;
                }

                #tel-phone-block {
                    position: relative;
                    &:hover .float-code {
                        display: flex;
                        box-shadow: 0 2px 8px 0 rgb(0 0 0 / 10%);
                    }
                    .float-code {
                        display: none;
                        position: absolute;
                        padding: 22px 16px;
                        background-color: white;
                        top: 24px;
                        right: -20px;
                        &::after {
                            content: '';
                            width: 8px;
                            box-shadow: 0 2px 8px 0 rgb(0 0 0 / 10%);
                            transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
                            right: 35px;
                            top: -4px;
                            height: 8px;
                            background-color: #fff;
                            position: absolute;
                        }
                    }
                }
            }
        }
    }
    .header-main {

        .search-wrap {
            height: 80px;
            .logo {
                height: 48px;
                width: auto;
            }
            .search {
                width: 460px;
                height: 42px;
                overflow: hidden;
                input {
                    flex: 1;
                    height: 100%;
                    border-radius: 4px 0 0 4px;
                    border: 1px solid $--color-primary;
                    border-right-width: 0;
                    padding: 0 10px;
                }
                .search-btn {
                    width: 82px;
                    height: 42px;
                    cursor: pointer;
                    border-radius: 0 4px 4px 0;
                }
            }
            .cart {
                cursor: pointer;
                border-radius: 4px;
                width: 108px;
                height: 42px;
                margin-left: 16px;
            }
        }
    }
   
}
.user-nav {
    .item {
        text-align: center;
        line-height: 34px;
        display: block;
        cursor: pointer;
        &:not(:last-child) {
            border-bottom: 1px solid #e5e5e5;
        }
        &:hover {
            color: $--color-primary;
        }
    }
}
</style>