Explorar el Código

登录默认语言优化

kevin_zhangl hace 2 años
padre
commit
9707e39d8e
Se han modificado 5 ficheros con 47 adiciones y 9 borrados
  1. 8 0
      src/api/user.js
  2. 2 2
      src/lang/en.js
  3. 10 1
      src/store/modules/app.js
  4. 6 1
      src/store/modules/user.js
  5. 21 5
      src/views/login/index.vue

+ 8 - 0
src/api/user.js

@@ -49,3 +49,11 @@ export function noLoginModifyPassword(data) {
   })
 }
 
+// 切换语言
+export function changeLanguage(data) {
+  return request({
+    url: '/v1/admin/change-language',
+    method: 'post',
+    data
+  })
+}

+ 2 - 2
src/lang/en.js

@@ -663,9 +663,9 @@ export default {
     tourBonusPercent: 'Travel Fund Ratio',
     carFundBonusPercent: 'Car Fund Ratio',
     villaFundBonusPercent: 'Villa Fund ratio',
-    achieveMemberNo: 'The number of recommended members reaching the standard',
+    achieveMemberNo: 'The number of sponsor members reaching the standard',
     achievePerfBV: 'Recommended to meet the standard and pass the bonus BV',
-    achieveBV: 'Awarded for failing to meet the recommended standards BV',
+    achieveBV: 'Awarded for failing to meet the sponsor standards BV',
     crownStarConfig: 'Crown star configuration',
     levelScore: 'Level points(BV)',
     upgradeScore: 'Upgrade points(BV)',

+ 10 - 1
src/store/modules/app.js

@@ -1,5 +1,7 @@
 import Cookies from 'js-cookie'
 import { getLanguage } from '@/lang'
+import usersInfo from "@/utils/usersInfo";
+import {changeLanguage} from "@/api/user";
 
 const state = {
   sidebar: {
@@ -50,7 +52,14 @@ const actions = {
     commit('TOGGLE_DEVICE', device)
   },
   setLanguage({ commit }, language) {
-    commit('SET_LANGUAGE', language)
+    commit('SET_LANGUAGE', language);
+    return new Promise((resolve, reject) => {
+      changeLanguage({lang: language, adminName: usersInfo.adminName()}).then(response => {
+        resolve(response)
+      }).catch(error => {
+        reject(error)
+      })
+    })
   },
   setSize({ commit }, size) {
     commit('SET_SIZE', size)

+ 6 - 1
src/store/modules/user.js

@@ -5,6 +5,7 @@ import router, { resetRouter } from '@/router'
 import { Message } from 'element-ui'
 import { getBaseInfo } from '@/api/site'
 import baseInfo from '@/utils/baseInfo'
+import Cookies from "js-cookie";
 
 const state = {
   token: getToken(),
@@ -38,7 +39,8 @@ const actions = {
     const requestData = {
       adminName: userInfo.username,
       password: userInfo.password,
-      verifyCode: userInfo.verifyCode
+      verifyCode: userInfo.verifyCode,
+      lang: userInfo.lang,
     }
     return new Promise((resolve, reject) => {
       login({ LoginForm: requestData }, userInfo.pageId).then(response => {
@@ -65,6 +67,9 @@ const actions = {
         usersInfo.userId(result.ID)
         usersInfo.adminName(result.ADMIN_NAME)
         usersInfo.baseData({ roleId: result.ROLE_ID })
+        // 设置语言标识
+        const lang = result.LANG ? (result.LANG === 'zh-CN' ? 'zh' : 'en') : 'zh'
+        Cookies.set('language', lang)
         resolve(result)
       }).catch(error => {
         reject(error)

+ 21 - 5
src/views/login/index.vue

@@ -75,6 +75,7 @@ import SocialSign from './components/SocialSignin'
 import { daysDiff } from '@/api/site'
 import baseInfo from '@/utils/baseInfo'
 import usersInfo from '@/utils/usersInfo'
+import Cookies from "js-cookie";
 
 export default {
   name: 'Login',
@@ -84,7 +85,8 @@ export default {
       loginForm: {
         username: '',
         password: '',
-        verifyCode: ''
+        verifyCode: '',
+				lang: '',
       },
 
       passwordType: 'password',
@@ -110,7 +112,15 @@ export default {
     // }
   },
   beforeCreate() {
-    this.$store.dispatch('settings/getPageData', {})
+		// 获取浏览器语言类型
+		let lang = navigator.language
+		if (lang === 'zh-CN') {
+			Cookies.set('language', 'zh')
+		} else {
+			Cookies.set('language', 'en')
+		}
+
+		this.$store.dispatch('settings/getPageData', {})
       .then(response => {
         this.pageId = response.data.pageId
         this.captchaUrl = process.env.VUE_APP_BASE_API + '/v1/site/captcha?page_id=' + this.pageId + '&v=' + Math.random()
@@ -177,7 +187,8 @@ export default {
             username: this.loginForm.username,
             password: this.loginForm.password,
             verifyCode: this.loginForm.verifyCode,
-            pageId: this.pageId
+            pageId: this.pageId,
+						lang: Cookies.get('language')
           }
 
           if (!baseInfo.daysDiff()) {
@@ -197,7 +208,9 @@ export default {
           let loginName = this.loginForm.username;
           // 登录
           this.$store.dispatch('user/login', loginData)
-            .then(() => {})
+            .then(() => {
+							Cookies.remove('language')
+						})
             .then(() => {
               return this.$store.dispatch('user/getUserInfo', {})
             }).then(() => {
@@ -205,7 +218,10 @@ export default {
             }).then(() => {
               this.loading = false
               this.$router.push({ path: this.redirect || '/dashboard/index', query: this.otherQuery })
-            }).catch(error => {
+            }).then(() => {
+							// 强制刷新页面
+							location.reload()
+						}).catch(error => {
               this.loading = false
               let msg = error + '  '
               console.log('error-------->'+error)