From 12c8ed581f31f16205078d6e4e8a2ef1c31b1040 Mon Sep 17 00:00:00 2001 From: "LAPTOP-MI\\Lau-mi" Date: Wed, 19 Jun 2024 17:30:00 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E8=AF=B7=E6=B1=82?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA=E5=86=85=E5=AE=B9=EF=BC=8C?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E5=A4=9A=E8=AF=AD=E8=A8=80=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 13 +++++++++-- src/api/login.js | 6 ++++- src/hooks/gui/useMessage.js | 0 src/locales/lang/zh-CN/common.js | 16 +++++++++++++ src/locales/useLocale.js | 12 ++++++++++ src/main.js | 2 +- src/store/module/locale.store.js | 25 +++++++++++++++++++++ src/store/module/{user.js => user.store.js} | 0 src/utils/request/errMsg.js | 10 +++++++++ src/utils/request/index.js | 18 +++++++++------ src/views/Home/src/Home.vue | 4 +++- 11 files changed, 94 insertions(+), 12 deletions(-) create mode 100644 src/hooks/gui/useMessage.js create mode 100644 src/locales/lang/zh-CN/common.js create mode 100644 src/locales/useLocale.js create mode 100644 src/store/module/locale.store.js rename src/store/module/{user.js => user.store.js} (100%) create mode 100644 src/utils/request/errMsg.js diff --git a/src/App.vue b/src/App.vue index 2ce9019..c7f4eec 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,7 +1,16 @@ - + diff --git a/src/api/login.js b/src/api/login.js index 20285e4..fdb921b 100644 --- a/src/api/login.js +++ b/src/api/login.js @@ -18,6 +18,10 @@ export const test = () => { return http({ url: '/test', method: 'post', - data: { uname: 'tom' } + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + data: { + name: 'test', + files: 123 + } }) } diff --git a/src/hooks/gui/useMessage.js b/src/hooks/gui/useMessage.js new file mode 100644 index 0000000..e69de29 diff --git a/src/locales/lang/zh-CN/common.js b/src/locales/lang/zh-CN/common.js new file mode 100644 index 0000000..2de0840 --- /dev/null +++ b/src/locales/lang/zh-CN/common.js @@ -0,0 +1,16 @@ +export default { + apiMsg: { + 200: '成功', + 201: '创建成功', + 202: '操作成功', + 204: '操作成功', + 400: '请求错误', + 401: '未授权,请重新登录', + 403: '拒绝访问', + 404: '请求错误,未找到该资源', + 405: '请求方法未允许', + 408: '请求超时', + 500: '服务器错误', + 501: '网络未实现' + } +} diff --git a/src/locales/useLocale.js b/src/locales/useLocale.js new file mode 100644 index 0000000..66004ea --- /dev/null +++ b/src/locales/useLocale.js @@ -0,0 +1,12 @@ +import { ref } from 'vue' +import zhCn from 'element-plus/dist/locale/zh-cn.mjs' +import en from 'element-plus/dist/locale/en.mjs' + +const useElementPlusLocale = (l = 'en') => { + const locale = ref(l === 'zh-CN' ? zhCn : en) + return { + locale + } +} + +export { useElementPlusLocale } diff --git a/src/main.js b/src/main.js index 771d828..5da77b6 100644 --- a/src/main.js +++ b/src/main.js @@ -26,7 +26,7 @@ const bootstrap = async () => { setupLocales(app) // router setupRouter(app) - + app.mount('#app') } diff --git a/src/store/module/locale.store.js b/src/store/module/locale.store.js new file mode 100644 index 0000000..01ff246 --- /dev/null +++ b/src/store/module/locale.store.js @@ -0,0 +1,25 @@ +import { defineStore } from 'pinia' + +const useLocaleStore = defineStore('locale', { + state: () => { + return { + LOCALE_MAP: { + 'zh-CN': 'zh-CN', + en: 'en' + }, + currentLocale: navigator.language + } + }, + getters: {}, + actions: { + setCurrentLocale(l) { + this.currentLocale = this.LOCALE_MAP[l] + } + }, + // 持久化存储 + persist: { + storage: window.localStorage + } +}) + +export { useLocaleStore } diff --git a/src/store/module/user.js b/src/store/module/user.store.js similarity index 100% rename from src/store/module/user.js rename to src/store/module/user.store.js diff --git a/src/utils/request/errMsg.js b/src/utils/request/errMsg.js new file mode 100644 index 0000000..4553e34 --- /dev/null +++ b/src/utils/request/errMsg.js @@ -0,0 +1,10 @@ +import { ElMessage, ElMessageBox, Notification } from 'element-plus' + + +export const errorMsg = ()=>{ + ElMessage({ + message: '操作失败', + type: 'error', + duration: 5 * 1000 + }) +} diff --git a/src/utils/request/index.js b/src/utils/request/index.js index e2febf1..b33c10f 100644 --- a/src/utils/request/index.js +++ b/src/utils/request/index.js @@ -1,8 +1,7 @@ import axios from 'axios' -import { useRouter } from 'vue-router' import { ElMessage, ElNotification } from 'element-plus' -const router = useRouter() +import { router } from '@/router' const API_URL = import.meta.env.VITE_API_BASE_URL @@ -17,7 +16,7 @@ const $http = axios.create({ // 表示跨域请求时是否需要使用凭证 withCredentials: false, // 服务器响应的数据类型,可以是 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream' - responseType: 'json' + responseType: 'json' }) // 请求拦截 @@ -25,7 +24,7 @@ $http.interceptors.request.use( (config) => { config.headers.Authorization = localStorage.getItem('token') ? `Bearer ${localStorage.getItem('token')}` - : 'NO TOKEN' + : '' return config }, (error) => { @@ -48,8 +47,7 @@ $http.interceptors.response.use( router.push({ path: '/login' }) } } else { - ElNotification({ - title: '错误', + ElMessage({ message: res.data.message, type: 'error', duration: 2000 @@ -58,8 +56,14 @@ $http.interceptors.response.use( return res.data }, - + // 请求出错 (error) => { + ElNotification({ + title: '请求错误', + message: error.message, + type: 'error', + duration: 2000 + }) return Promise.reject(error) } ) diff --git a/src/views/Home/src/Home.vue b/src/views/Home/src/Home.vue index 150940f..b7f946b 100644 --- a/src/views/Home/src/Home.vue +++ b/src/views/Home/src/Home.vue @@ -11,7 +11,9 @@ test()