diff --git a/src/utils/utils/request.js b/src/utils/utils/request.js new file mode 100644 index 0000000..35ed9d6 --- /dev/null +++ b/src/utils/utils/request.js @@ -0,0 +1,48 @@ +import axios from "axios"; +import {ElMessage} from "element-plus"; +import { getLanguage } from '@/lang/index.js'; +import { getToken } from '@/utils/auth.js'; + +const request = axios.create({ + baseURL: 'http://localhost:8888', + timeout: 30000, // 后台接口超时时间 + headers: { + "Content-Language": getLanguage(), + Authorization: 'Bearer ' + getToken(), + clientid: import.meta.env.VITE_APP_CLIENT_ID + } +}) + +// request 拦截器 +// 可以自请求发送前对请求做一些处理 +request.interceptors.request.use(config => { + config.headers['Content-Type'] = 'application/json;charset=utf-8'; + return config +}, error => { + return Promise.reject(error) +}); + +// response 拦截器 +// 可以在接口响应后统一处理结果 +request.interceptors.response.use( + response => { + let res = response.data; + // 兼容服务端返回的字符串数据 + if (typeof res === 'string') { + res = res ? JSON.parse(res) : res + } + return res; + }, + error => { + if (error.response.status === 404) { + ElMessage.error('未找到请求接口') + } else if (error.response.status === 500) { + ElMessage.error('系统异常,请查看后端控制台报错') + } else { + console.error(error.message) + } + return Promise.reject(error) + } +) + +export default request diff --git a/src/views/school/cls/index.vue b/src/views/school/cls/index.vue new file mode 100644 index 0000000..27e3ea7 --- /dev/null +++ b/src/views/school/cls/index.vue @@ -0,0 +1,173 @@ + + +