<template>
    <van-config-provider :theme-vars='themeVars'>
        <div class='h-full resident-home'>
            <router-view v-slot='{ Component }'>
                <Transition name='route' mode='out-in'>
                    <component :is='Component' v-if='visible' />
                </Transition>
            </router-view>
        </div>
    </van-config-provider>
</template>

<script>
import { getDict, getResidentByInfo } from '@/api/base.js'
import { useStore } from './store/index.js'
import { getQueryVariable, isResidentInfo, showNav } from '@/utils/common'
import { showNotify } from 'vant'

export default {
    data() {
        return {
            visible: false,
            themeVars: {
                primaryColor: '#54CCBD',
                // 按键
                buttonPrimaryBackground: '#54CCBD',
                buttonPrimaryBorderColor: '#54CCBD',
                buttonDefaultBorderColor: '#BFBFBF',
                buttonNormalFontSize: '.16rem',
                pickerConfirmActionColor: '#54CCBD',
                checkboxCheckedIconColor: '#54CCBD',
                // tab
                tabsBottomBarColor: '#54CCBD',
                tabActiveTextColor: '#54CCBD',
                tabTextColor: '#8C8C8C',
                tabFontSize: '.16rem',
                // 级联选项
                cascaderActiveColor: '#54CCBD',
                // 表单相关
                cellVerticalPadding: '.15rem',
                cellTextColor: '#262626',
                fieldLabelColor: '#262626',
                cellBorderColor: '#d9d9d9',
                // 进度条
                sliderActiveBackground: '#54CCBD',
            }
        }
    },
    setup() {
        const store = useStore()
        return { store }
    },
    created() {
        this.init()
    },
    provide() {
      return {
          showNav: showNav,
          isResidentInfo: isResidentInfo,
      }
    },
    methods: {
        async init() {
            const res = await getDict()
            this.store.$patch({ dict: res.data || {} })
            let idCard = getQueryVariable('idCard')
            let embed = getQueryVariable('embed')
            if (embed) {
                window.sessionStorage.setItem('embed', embed)
            }
            if (idCard) {
                const user = await getResidentByInfo({ idCard: idCard })
                // if (!user.data) {
                //     showNotify({ type: 'warning', message: '未获取到慢病信息', duration: 0 })
                //     return
                // }
                this.store.$patch({ userInfo: user.data || {} })
                window.sessionStorage.setItem('userInfo', JSON.stringify(user.data || {}))
            } else {
                let user = JSON.parse(window.sessionStorage.getItem('userInfo'))
                this.store.$patch({ userInfo: user || {} })
            }
            this.visible = true
        }
    }
}
</script>

<style lang='less' scoped>

</style>
