<template>
    <div class="min-w-[1200px] bg-[#fff]">
        <div class="bg-[#f0f0f0] h-[40px]">
            <div class="flex items-center w-[1200px]  mx-auto justify-between h-[40px]">
                <div class="flex items-center">
                    <NuxtLink to="/">
                        <div class="text-[#666] flex items-center hover:text-[var(--el-color-primary)]">
                            <i class="iconfont icon-shouye mr-[5px]  !text-[16px]"></i>
                            <span class="text-[12px] leading-[18px]">首页</span>
                        </div>
                    </NuxtLink>
                    <div class="ml-[30px]">
                        <el-popover placement="bottom" width="130px" trigger="hover" popper-class="!min-w-[130px]">
                            <template #reference>
                                <div class="text-[#666] flex items-center cursor-pointer hover:text-[var(--el-color-primary)]">
                                    <i class="iconfont icon-shoujiV6xx mr-[5px] !text-[14px]"></i>
                                    <span class="text-[12px] leading-[18px]">手机商城</span>
                                </div>
                            </template>
                            <div class="text-center  flex items-center justify-center mb-[10px]">
                                <span class="text-[12px]">打开微信扫码分享</span>
                            </div>
                            <div class="promote-img flex justify-center items-center">
                                <el-image :src="wapImage" class=" w-[100px] h-[100px]" />
                            </div>
                        </el-popover>
                    </div>
                </div>
                <div class="flex items-center  whitespace-pre text-[#666] text-[12px] ">
                    <div class="mr-[8px] pl-[8px]">
                        <div class="flex items-center" v-if="info">
                            <NuxtLink to="/member/center">
                                <div class="flex items-center">
                                    <img v-if="!info.headimg" class="w-[22px] h-[22px] rounded-full" src="@/assets/images/default_headimg.png" alt="">
                                    <img v-else :src="img(info.headimg)" class="w-[22px] h-[22px] rounded-full" alt="">
                                    <span class="cursor-pointer ml-[8px] text-[var(--el-color-primary)]">{{ info.nickname }}</span>
                                </div>
                            </NuxtLink>
                            <span class="mx-2"></span>
                            <span class="cursor-pointer hover:text-[var(--el-color-primary)]" @click="logoutFn">退出</span>
                        </div>
                        <div v-else class="mr-[8px] pl-[8px] cursor-pointer" @click="toLogin">{{ t('login') }}/{{ t('register') }}</div>
                    </div>
                    <NuxtLink v-if="info" to="/order/list">
                            <div class="mr-[12px] pl-[12px] user-item hover:text-[var(--el-color-primary)]">我的订单</div>
                    </NuxtLink>
                    <div v-else class="mr-[12px] pl-[12px] user-item  cursor-pointer hover:text-[var(--el-color-primary)]"  @click="toLogin">我的订单</div>

                    <NuxtLink to="/article/list">
                            <div class="mr-[12px] pl-[12px] user-item hover:text-[var(--el-color-primary)]">资讯信息</div>
                    </NuxtLink>
                    <div class="pl-[12px]">
                        <el-dropdown trigger="hover" @command="handleCommand">
                            <div class="text-[#666] text-[12px] mr-[8px] cursor-pointer hover:text-[var(--el-color-primary)]">
                                <span>商户入驻</span>
                                <span class="iconfont icon-xiaV6xx !text-[12px] ml-[5px]"></span>
                            </div>
                            <template #dropdown>
                                <el-dropdown-menu >
                                    <el-dropdown-item command="enter">
                                        <div class="text-[12px] py-[5px] hover:text-[var(--el-color-primary)]">商户入驻</div>
                                    </el-dropdown-item>
                                    <el-dropdown-item command="record">
                                        <div class="text-[12px] py-[5px] hover:text-[var(--el-color-primary)]">申请记录</div>
                                    </el-dropdown-item>
                                </el-dropdown-menu>
                            </template>
                        </el-dropdown>
                    </div>
                </div>
            </div>
        </div>
        <div class="h-[100px] bg-[#fff]">
            <div class="w-[1200px] h-[100px] mx-auto flex items-center justify-between">
                <NuxtLink to="/">
                    <div class="w-[184px] mr-[10px]">
                        <img :src="img(siteInfo.front_end_logo)"  class="w-[184px] max-h-[28px]" v-if="siteInfo.front_end_logo"/>
                        <img :src="img(siteInfo.logo)"  class="w-[184px] max-h-[28px]" v-else-if="siteInfo.logo"/>
                        <img :src="img(siteInfo.icon)"  class="w-[184px] max-h-[28px]" v-else-if="siteInfo.icon"/>
                    </div>
                </NuxtLink>
                <div class="search w-[610px] h-[40px] border-primary rounded-[100px] border-solid border-[1px] flex items-center border-box">
                    <el-input v-model="search" style="width: 530px" class="oppoSans-M" size="large" placeholder="搜索商品或店铺">
                        <template #prepend>
                            <el-select v-model="type" style="width:74px;font-size: 14px;margin: 0;">
                                <el-option label="商品" value="goods" />
                                <el-option label="店铺" value="shop" />
                            </el-select>
                        </template>
                    </el-input>
                    <div class="w-[80px] h-full flex justify-center items-center leading-[38px] text-[#fff] bg-primary  cursor-pointer rounded-[100px]" @click="searchFn">
                        <span class="iconfont icon-sousuo !text-[16px]"></span>
                    </div>
                </div>
                <div class="h-[40px] w-[140px] flex-center border-[#ddd] border-solid border-[1px]  text-primary cursor-pointer rounded-[100px]" @click="toLink">
                    <span class="iconfont icon-gouwucheV6xx-2 text-[14px] mr-[10px]"></span>
                    <span class="text-[14px]">购物车({{cartTotalNum}})</span>
                </div>
            </div>
        </div>
        <LoadingDialog/>
    </div>
</template>

<script lang="ts" setup>
import {ref, computed,watch} from 'vue'
import useMemberStore from '@/stores/member'
import useSystemStore from '@/stores/system'
import { ElMessageBox } from 'element-plus'
import { useRouter,useRoute } from 'vue-router'
import { img, getToken } from '@/utils/common'
import useCartStore from '@/addon/mall/stores/cart'
import useConfigStore from '@/stores/config'
import LoadingDialog from '@/components/login-dialog/index.vue'
import QRCode from 'qrcode'

const router = useRouter()
const route = useRoute()
const memberStore = useMemberStore()
const configStore = useConfigStore()
const info = computed(() => memberStore.info)
// 站点信息
useSystemStore().getSiteInfoFn()
const systemStore = useSystemStore()
const siteInfo = computed(() => systemStore.site)
// 购物车数量
const cartStore = useCartStore();
cartStore.getList()
let cartTotalNum = computed(() => cartStore.totalNum)

const logoutFn = () => {
    ElMessageBox.confirm('您确定要退出账号吗?', '提示',
        {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            confirmButtonClass:'!bg-[var(--el-color-primary)] !border-[var(--el-color-primary)]',
            cancelButtonClass:'!border-[#dcdfe6]',
            type: 'warning'
        }
    ).then(() => {
        memberStore.logout()
        navigateTo(`/`)
    })
}
const search = ref('')
const type = ref('goods')
const searchFn = () =>{
    if(type.value == 'goods'){
        if(route.query.site_id){
            router.push({path:'/shop/detail',query:{keyword:search.value,site_id:route.query.site_id}})
        }else{
            router.push({path:'/goods/list',query:{keyword:search.value}})
        }
    }else{
        router.push({path:'/shop/list',query:{keyword:search.value}})
    }
    
}
const toLink = ()=>{
    if(!getToken()){
        if(!configStore.login.is_username && !configStore.login.is_mobile && !configStore.login.is_bind_mobile){
            ElMessage.error('商家未开启普通账号登录注册')
            return false
        }else{
            memberStore.logOpen()
            return false
        }
    }
    router.push(`/goods/cart`)
}
// 未登录
const toLogin = () =>{
    if(!getToken() && !configStore.login.is_username && !configStore.login.is_mobile && !configStore.login.is_bind_mobile){
        ElMessage.error('商家未开启普通账号登录注册')
        return false
    }
    memberStore.logOpen()
}
watch(()=> route.path ,(newValue,oldValue)=>{
    if(route.query.keyword) search.value = route.query.keyword as string
    else search.value = ''
},{immediate:true,deep: true})

const wapPreview = ref('')
const wapImage = ref('')
const loadQrcode = () => {
    wapPreview.value = `${location.origin}/wap/`
    // errorCorrectionLevel:密度容错率L(低)H(高)
    QRCode.toDataURL(wapPreview.value, { errorCorrectionLevel: 'L', margin: 0, width: 120 }).then(url => {
        wapImage.value = url
    })
}
loadQrcode()

// 商户入驻
const handleCommand = (type:string) =>{
    if(!getToken()){
        if(!configStore.login.is_username && !configStore.login.is_mobile && !configStore.login.is_bind_mobile){
            ElMessage.error('商家未开启普通账号登录注册')
            return false
        }else{
            memberStore.logOpen()
            return false
        }
    }
    if(type == 'enter'){
        router.push(`/member/merchant_settled`)
    }else{
        router.push(`/member/merchant_record`)
    }
}
</script>

<style lang="scss" scoped>
:deep(.el-input__wrapper){
    background-color: inherit;
    box-shadow: none;
    padding-left: 20px !important;
}
:deep(.el-input .el-input__inner){
    font-family:  'oppoSans-M';
}
:deep(.search .el-input-group__prepend){
    background-color: inherit;
    box-shadow: none;
    padding: 0;
}
:deep(.search .el-input-group__prepend .el-select .el-input .el-input__wrapper){
    background-color: inherit;
    box-shadow: none;
    padding: 0 ;
    padding-left: 20px;
}
:deep(.search .el-input-group--prepend .el-input-group__prepend .el-select:hover .el-input__wrapper){
    box-shadow: none !important;
}
:deep(.search .el-select .el-input.is-focus .el-input__wrapper){
    box-shadow: none !important;
}
:deep(.search .el-select .el-input__wrapper.is-focus){
    box-shadow: none !important;
}
:deep(:focus-visible) {
    outline: none;
}
:deep(.el-dropdown-menu__item) {
	&:focus {
		background-color: transparent !important;
		color: #333 !important;
	}
}
</style>