feat(mobile): 添加登录页面+租户选择+路由守卫

This commit is contained in:
2026-06-19 12:48:57 +08:00
parent 38bc99ee14
commit 9d486c3742
5 changed files with 143 additions and 5 deletions

View File

@@ -1,4 +1,5 @@
import axios from 'axios'
import { ElMessage } from 'element-plus'
const request = axios.create({
baseURL: '/dev-api',
@@ -8,19 +9,41 @@ const request = axios.create({
request.interceptors.request.use(config => {
const token = localStorage.getItem('token')
if (token) config.headers.Authorization = `Bearer ${token}`
const tenantId = localStorage.getItem('tenantId')
if (tenantId) config.headers['tenant-id'] = tenantId
return config
})
request.interceptors.response.use(
res => res.data,
err => { console.error(err); return Promise.reject(err) }
res => {
if (res.data?.code === 401) {
localStorage.removeItem('token')
window.location.href = '/login'
return Promise.reject(new Error('登录已过期'))
}
return res.data
},
err => {
if (err.response?.status === 401) {
localStorage.removeItem('token')
window.location.href = '/login'
}
ElMessage.error(err.response?.data?.msg || '请求失败')
return Promise.reject(err)
}
)
export const authApi = {
login: (data) => request.post('/login', data),
getTenants: () => request.get('/tenant/list'),
logout: () => request.post('/logout')
}
export const nursingApi = {
getTasks: (params) => request.get('/mp/nursing/tasks', { params }),
completeTask: (id, data) => request.post(`/mp/nursing/tasks/${id}/complete`, data),
getPatientList: (params) => request.get('/mp/nursing/patient/list', { params }),
getPatientInfo: (id) => request.get(`/mp/nursing/patient/${id}`),
getPatientList: (params) => request.get('/mp/nursing/patient/list', { params }),
getOrders: (patientId) => request.get(`/mp/nursing/orders/${patientId}`),
getVitalSigns: (patientId) => request.get(`/mp/nursing/vital-signs/${patientId}`),
submitVitalSign: (data) => request.post('/mp/nursing/vital-sign', data),