| applications/task-work-order/src/App.vue | ●●●●● patch | view | raw | blame | history | |
| applications/task-work-order/src/api/zkxt/index.js | ●●●●● patch | view | raw | blame | history | |
| applications/task-work-order/src/axiosXT.js | ●●●●● patch | view | raw | blame | history | |
| applications/task-work-order/src/store/modules/user.js | ●●●●● patch | view | raw | blame | history |
applications/task-work-order/src/App.vue
@@ -1,27 +1,27 @@ <template> <router-view /> <router-view /> </template> <script setup> import { loginWithMiniProgramApi } from '@/api/zkxt' import { useStore } from 'vuex' const store = useStore() function getToken() { loginWithMiniProgramApi({username: 'admin'}).then(res => { console.log(res) function getXTToken() { loginWithMiniProgramApi({ username: 'admin' }).then(res => { store.commit('setXtToken', res.data.data.access_token) }) } getToken() setInterval(() => { getToken() }, 600000) getXTToken() setInterval(getXTToken, 600000) </script> <style> html, body, #app { width: 100%; height: 100%; width: 100%; height: 100%; } </style> applications/task-work-order/src/api/zkxt/index.js
@@ -1,9 +1,20 @@ import request from '@/axiosXT' // 免密登陆 export const loginWithMiniProgramApi = (data) => { return request({ url: `/auth/loginWithMiniProgram`, method: 'post', data, authorization: false, }) } // 字典 export const dictListApi = (data) => { return request({ url: `/system/dict/type/list`, method: 'post', data:{"size":100,"current":1}, }) } applications/task-work-order/src/axiosXT.js
@@ -1,36 +1,24 @@ import axios from 'axios' import store from '@/store/' import { serialize } from '@/utils/util' import { getToken, removeToken, removeRefreshToken } from '@/utils/auth' import { isURL, validatenull } from '@/utils/validate' import { ElMessage } from 'element-plus' import website from '@/config/website' import { Base64 } from 'js-base64' import { baseUrl } from '@/config/env' import crypto from '@/utils/crypto' // 全局未授权错误提示状态,只提示一次 const { VITE_APP_API_XT } = import.meta.env // 创建作用域的 axios 实例 const serviceXT = axios.create({ // 超时时间设置为10分钟,部分接口上传比较慢,如固件上传 timeout: 600000, baseURL: VITE_APP_API_XT, //返回其他状态码 validateStatus: function (status) { return status >= 200 && status <= 500 // 默认的 }, //跨域请求,允许保存cookie withCredentials: true, withCredentials: false, }) //http request拦截 serviceXT.interceptors.request.use( config => { //headers判断是否需要 const authorization = config.authorization === false if (!authorization) { config.headers['Authorization'] = `Basic ${Base64.encode(`${website.clientId}:${website.clientSecret}`)}` const xtToken = store.state.user.xtToken if (xtToken && !authorization) { config.headers['Authorization'] = xtToken } const meta = config.meta || {} @@ -51,17 +39,11 @@ //http response拦截 serviceXT.interceptors.response.use( res => { const status = res.data.error_code || res.data.code || res.status const statusWhiteList = website.statusWhiteList || [] const status = res?.data?.code || res?.data?.error_code || res?.status const message = res?.data?.msg || res?.data?.message || '系统错误' //如果在白名单里则自行catch逻辑处理 if (statusWhiteList.includes(status)) return Promise.reject(res) // 如果请求为非200默认统一处理 if (status !== 200 && status !== 0) { ElMessage({ message: message, type: 'error', }) ElMessage({ message: message, type: 'error', }) return Promise.reject(new Error(message)) } return res applications/task-work-order/src/store/modules/user.js
@@ -33,6 +33,7 @@ token: getStore({ name: 'token' }) || '', refreshToken: getStore({ name: 'refreshToken' }) || '', parentDeptInfo: getStore({ name: 'parentDeptInfo' }) || '', xtToken: getStore({ name: 'xtToken' }) || '', }, actions: { //根据用户名登录 @@ -297,6 +298,10 @@ }, }, mutations: { setXtToken:(state,token) =>{ state.xtToken = token setStore({ name: 'xtToken', content: token }) }, SET_PARENT_DEPT_INFO(state, deptId) { getParentDeptInfo({ deptId: deptId }).then(res => { const data = res.data.data