import { http } from "./request"; import moment from 'moment'; import 'moment/locale/zh-cn'; import { SketonVue } from "../types/sketon.vue"; export default { methods: { async loadLocalI18n(this: SketonVue) : Promise { let lang = localStorage.getItem('lang') let langModule = localStorage.getItem('langModule') this.ctx.i18n.locales = this.langConfig.langs if (!lang || !langModule) { this.switchLang(lang || this.ctx.i18n.locales[0].code, false) } else { let data = JSON.parse(langModule) this.ctx.i18n.setLocaleMessage(lang, data) this.ctx.i18n.setLocale(lang) this.defaultLangName = this.ctx.i18n.locales.find( (val:any) => val.code == lang).name } }, async switchLang(this: SketonVue , lang:string, isRefresh:boolean) : Promise { let { data } = await http.get(`http://yly.gycloud.net.cn/yly-common/onlcode/languageConfig/queryLanguageJson?language=${lang}`, { headers: { Authorization: 'bearer ' + this.user.token } }) if (data.code == 200) { let langData = data.result this.ctx.i18n.setLocaleMessage(lang, langData) this.ctx.i18n.setLocale(lang) this.defaultLangName = this.ctx.i18n.locales.find((val:any) => val.code == lang).name localStorage.setItem('lang', lang) localStorage.setItem('langModule', JSON.stringify(langData)) // 加载组件 if (lang == 'zh') { moment.locale('zh-cn') this.antLang = this.langConfig.componentslang[lang].ant } else { this.antLang = null moment.locale('en') } if (!isRefresh) { this.ctx.redirect(this.ctx.route.path, this.ctx.route.query) } } } } }