/*
  @description:国际化信息
  @Modifier:肖文龙
  @routerPath:
  @date: 2020/2/4-17:08
  * */
import { mapGetters } from 'vuex'
import { initMutiLang } from '@/api/rolemanagment/internationLanguage'
const languageMixin = {
  data() {
    return {
      languageName: '', // 国际化状态
      languageList: [ // 国际化列表
        { code: 'zh', name: '简体中文' },
        { code: 'en', name: 'English' }
      ],
      // 国际化Key
      langKey: [
        'common', // 公共
        'bidProject', // 立项
        'bulletinInfo', // 项目管理
        'capital', // 资审公告
        'calibration', // 候选人
        'tenderDocList', // 项目管理
        'supplier' // 供应商模块
      ]
    }
  },
  computed: {
    ...mapGetters(['langCode'])
  },
  created() {
    this.$store.dispatch('setLanguage') // 初始化国际化语言
    this.initIfo(this.langCode) // 获取国际化
    this.getLanguage(this.langCode)
  },
  methods: {
    // 获取国际化
    initIfo(langCode) {
      this.langKey.forEach(key => {
        const language = langCode === 'zh' ? 'zh-cn' : langCode
        const data = {
          langCode: language, // 要获取国际化语言Code
          langKeyList: [
            key // 功能区域
          ]
        }
        initMutiLang(data).then(res => {
          const langData = {
            langKey: key, // 功能模块
            data: {
              ...res.data
            }
          }
          this.$store.commit('SET_LANGDATA', langData)
        })
      })
    },
    setLanguage(lang) {
      this.$i18n.locale = lang
      this.$store.dispatch('setLanguage', lang)
      this.getLanguage(lang)
      this.initIfo(lang) // 获取国际化
    },
    // 获取当前语言
    getLanguage(val) {
      this.languageList.forEach(item => {
        if (val === item.code) {
          this.languageName = item.name
        }
      })
    }
  }
}

export { languageMixin }
