diff --git a/src/api/request.js b/src/api/request.js index b34168a..1705053 100644 --- a/src/api/request.js +++ b/src/api/request.js @@ -31,10 +31,17 @@ service.interceptors.response.use( if (code === 0) { return result; } else { + if (code === 401) { + localStorage.removeItem('token'); + msg.error('登录已过期,请重新登录').then(r => { + window.location.href = '/' + msg.destroy() + }) + return; + } msg.error(message).then(r => { msg.destroy() }) - return Promise.reject(new Error(result)); } }, error => { diff --git a/src/api/request/collection.js b/src/api/request/collection.js new file mode 100644 index 0000000..99042fa --- /dev/null +++ b/src/api/request/collection.js @@ -0,0 +1,22 @@ +import {get, post} from '../request.js' + +const prefix = 'collection' + +export function collectionListApi(credentials) { + return get(`${prefix}/list`, credentials) +} +export function collectionOptionApi(credentials) { + return get(`${prefix}/option`, credentials) +} +export function createCollectionApi(credentials) { + return post(`${prefix}/create`, credentials) +} +export function unCollectionApi(credentials) { + return post(`${prefix}/un-collection`, credentials) +} +export function updateCollectionApi(credentials) { + return post(`${prefix}/update`, credentials) +} +export function deleteCollectionApi(credentials) { + return post(`${prefix}/delete`, credentials) +} \ No newline at end of file diff --git a/src/api/request/home.js b/src/api/request/home.js new file mode 100644 index 0000000..0d1903f --- /dev/null +++ b/src/api/request/home.js @@ -0,0 +1,30 @@ +import {get, post} from '../request.js' + +const prefix = 'home' + +/** + * 获取首页精选项目列表 + * @param credentials + * @returns {Promise>} + */ +export function homeProjectListApi(credentials) { + return get(`${prefix}/list`, credentials) +} + +/** + * 获取首页轮播图列表 + * @param credentials + * @returns {Promise>} + */ +export function homeCarouselListApi(credentials) { + return get(`${prefix}/carousel`, credentials) +} + +/** + * 获取首页项目详情 + * @param credentials + * @returns {Promise>} + */ +export function homeProjectDetailApi(credentials) { + return get(`${prefix}/detail`, credentials) +} diff --git a/src/api/request/user.js b/src/api/request/user.js index e0688da..54a22dc 100644 --- a/src/api/request/user.js +++ b/src/api/request/user.js @@ -10,6 +10,14 @@ const prefix = 'user' export function loginApi(credentials) { return post('login', credentials) } +/** + * 注册 + * @param credentials + * @returns {Promise>} + */ +export function registerApi(credentials) { + return post('register', credentials) +} /** * 获取用户列表 @@ -20,6 +28,24 @@ export function userListApi(credentials) { return get(`${prefix}/list`, credentials) } +/** + * 获取当前登录用户信息 + * @param credentials + * @returns {Promise>} + */ +export function userMyInfoApi(credentials) { + return get(`${prefix}/my-info`, credentials) +} + +/** + * 获取用户统计信息 + * @param credentials + * @returns {Promise>} + */ +export function userStatsApi(credentials) { + return get(`${prefix}/user-stats`, credentials) +} + /** * 创建用户 * @param credentials @@ -54,4 +80,13 @@ export function deleteUserApi(credentials) { */ export function resetPasswordApi(credentials) { return post(`${prefix}/reset-password`, credentials) +} + +/** + * 重置密码 + * @param credentials + * @returns {Promise>} + */ +export function changePasswordApi(credentials) { + return post(`${prefix}/change-password`, credentials) } \ No newline at end of file diff --git a/src/components/common/AuthModal.vue b/src/components/common/AuthModal.vue index c4ec31b..ddacc3f 100644 --- a/src/components/common/AuthModal.vue +++ b/src/components/common/AuthModal.vue @@ -3,6 +3,7 @@ import { ref, onMounted } from 'vue' import { useUserStore } from '@/stores/user' import AOS from 'aos' import 'aos/dist/aos.css' +import {registerApi} from "@/api/request/user.js"; const visible = ref(false) const loading = ref(false) @@ -44,8 +45,17 @@ const close = () => visible.value = false const handleSubmit = async () => { loading.value = true try { - await userStore.login(formState.value) - close() + await userStore.login(formState.value, close) + } catch (e) { + console.error(e) + } finally { + loading.value = false + } +} +const handleRegister = async () => { + loading.value = true + try { + await userStore.register(formState.value, close) } catch (e) { console.error(e) } finally { @@ -222,7 +232,7 @@ defineExpose({ -
+