From 1a5453bb32536f8acecc9f65779ab6b47c51e66d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=90=8C=E7=8B=BC=E8=93=9D=E5=A4=A9?= Date: Thu, 13 Mar 2025 16:52:05 +0800 Subject: [PATCH] =?UTF-8?q?feat(back):=20=E5=90=8E=E5=8F=B0=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E3=80=81=E4=B9=A6=E7=B1=8D=E5=8A=A0=E8=BD=BD=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 1 + package.json | 1 + src/App.vue | 10 + src/apis/apis_book.js | 24 ++ src/components/back/layout/AsideVue.vue | 71 +++++ src/components/back/layout/HeaderVue.vue | 59 ++++ src/main.js | 2 + src/pages/IndexPage.vue | 10 +- src/pages/back/BackIndex.vue | 5 + src/pages/back/BackUser.vue | 0 src/pages/back/BookVueAdmin.vue | 333 +++++++++++++++++++++++ src/router/index.js | 12 +- src/store/modules/user.js | 31 ++- src/views/BackView.vue | 50 +++- 14 files changed, 591 insertions(+), 18 deletions(-) create mode 100644 src/apis/apis_book.js create mode 100644 src/components/back/layout/AsideVue.vue create mode 100644 src/components/back/layout/HeaderVue.vue create mode 100644 src/pages/back/BackIndex.vue create mode 100644 src/pages/back/BackUser.vue create mode 100644 src/pages/back/BookVueAdmin.vue diff --git a/package-lock.json b/package-lock.json index 55ea88b..d2df880 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "@ant-design/icons-vue": "^7.0.1", "ant-design-vue": "^4.2.6", "axios": "^1.8.2", + "dayjs": "^1.11.13", "vue": "^3.5.13", "vue-router": "^4.5.0", "vue3-slide-verify": "^1.1.6", diff --git a/package.json b/package.json index bef64fa..0a4f2ac 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@ant-design/icons-vue": "^7.0.1", "ant-design-vue": "^4.2.6", "axios": "^1.8.2", + "dayjs": "^1.11.13", "vue": "^3.5.13", "vue-router": "^4.5.0", "vue3-slide-verify": "^1.1.6", diff --git a/src/App.vue b/src/App.vue index dd6c8a0..cb526aa 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,9 +1,19 @@ diff --git a/src/main.js b/src/main.js index b8c5180..d4f4336 100644 --- a/src/main.js +++ b/src/main.js @@ -4,6 +4,8 @@ import router from "./router/index.js"; import Antd from 'ant-design-vue'; import App from './App.vue' import 'ant-design-vue/dist/reset.css'; +import store from "@/store/index.js"; let app = createApp(App) +app.use(store) app.use(router).use(Antd).mount('#app') diff --git a/src/pages/IndexPage.vue b/src/pages/IndexPage.vue index 71f0be9..8f90595 100644 --- a/src/pages/IndexPage.vue +++ b/src/pages/IndexPage.vue @@ -14,7 +14,13 @@ const isAdmin = computed(() => store.state.user.info?.isAdmin || false) onMounted(async () => { await store.dispatch('user/initialize') }) - +// 跳转后台 +const goToBackend = () => { + console.log("go to backend") + router.push({ + path: '/back', + }) +} const logout = () => { // 调用 Vuex action store.dispatch('user/logout') @@ -98,7 +104,7 @@ const handleBorrow = (book) => {

- 进入后台 + 进入后台 退出登录

diff --git a/src/pages/back/BackIndex.vue b/src/pages/back/BackIndex.vue new file mode 100644 index 0000000..ac2aabb --- /dev/null +++ b/src/pages/back/BackIndex.vue @@ -0,0 +1,5 @@ + + diff --git a/src/pages/back/BackUser.vue b/src/pages/back/BackUser.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/back/BookVueAdmin.vue b/src/pages/back/BookVueAdmin.vue new file mode 100644 index 0000000..4efede2 --- /dev/null +++ b/src/pages/back/BookVueAdmin.vue @@ -0,0 +1,333 @@ + + + + + diff --git a/src/router/index.js b/src/router/index.js index 9916821..ff97295 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -20,7 +20,17 @@ const routes = [ path: '/auth', name: 'AuthView', component: () => import('../views/AuthView.vue'), - } + }, + { + name:'BackView', + path:'/back', + component:()=>import('../views/BackView.vue'), + redirect:'/back/index', + children:[ + {name:'BackIndex',path:'/back/index',component:()=>import('../pages/back/BackIndex.vue')}, + {name:'BackUser',path:'user',component:()=>import('../pages/back/BackUser.vue')}, + {name:'BackBookAdmin',path:'/back/admin/book',component:()=>import('../pages/back/BookVueAdmin.vue')}, + ]}, ]; // 创建路由实例 diff --git a/src/store/modules/user.js b/src/store/modules/user.js index 8c1d792..654ea0a 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,6 +1,17 @@ import service from '@/apis/axios'; import axios from 'axios'; import {auth_logout} from "@/apis/apis_auth.js"; +// 清除会话的辅助函数 +const clearSession = (state, commit) => { + state.info = null; + state.lastLogin = null; + localStorage.removeItem('userInfo'); + if (state.refreshTimer) { + clearTimeout(state.refreshTimer); + state.refreshTimer = null; + } + commit('CLEAR_SESSION'); +}; export default { namespaced: true, @@ -18,13 +29,14 @@ export default { state.lastLogin = new Date().toISOString(); }, CLEAR_SESSION(state) { - state.info = null; - state.lastLogin = null; - localStorage.removeItem('userInfo'); - if (state.refreshTimer) { - clearTimeout(state.refreshTimer); - state.refreshTimer = null; - } + // state.info = null; + // state.lastLogin = null; + // localStorage.removeItem('userInfo'); + // if (state.refreshTimer) { + // clearTimeout(state.refreshTimer); + // state.refreshTimer = null; + // } + clearSession(state, () => {}); }, }, actions: { @@ -44,8 +56,9 @@ export default { } }, CLEAR_SESSION({ commit }) { - commit('CLEAR_SESSION'); - localStorage.removeItem('userInfo'); + // commit('CLEAR_SESSION'); + // localStorage.removeItem('userInfo'); + clearSession(this.state, commit); }, async logout({commit}) { //向后端发起退出登录的请求 diff --git a/src/views/BackView.vue b/src/views/BackView.vue index 5176044..df439c0 100644 --- a/src/views/BackView.vue +++ b/src/views/BackView.vue @@ -1,11 +1,49 @@ - - -