From 75a5d784ac7542c7609127f43c7aa7f40de2063b Mon Sep 17 00:00:00 2001 From: "gary.fu" Date: Wed, 3 Jan 2024 17:11:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E3=80=81=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=AD=89=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=8A=A0=E5=85=A5fastmock?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 4 + package-lock.json | 20 ---- package.json | 1 - src/assets/main.css | 9 ++ src/authority/index.js | 19 +++ src/components/common-form/index.vue | 4 + src/components/common-menu-item/index.vue | 10 +- src/config.js | 15 +++ src/layout/LeftMenu.vue | 8 +- src/layout/TopNav.vue | 8 +- src/messages/common_cn.js | 5 + src/messages/common_en.js | 5 + src/messages/index.js | 3 +- src/route/routes.js | 14 ++- src/services/global/GlobalService.js | 65 ----------- src/services/login/LoginService.js | 13 +++ src/services/menu/MenuService.js | 136 ++++++++++++++++++++++ src/services/mock/MockGlobalService.js | 76 ------------ src/stores/LoginConfigStore.js | 51 ++++++++ src/stores/MenuConfigStore.js | 37 ++++++ src/stores/MenuStore.js | 28 ----- src/stores/TabsViewStore.js | 6 + src/stores/index.js | 11 +- src/vendors/axios.js | 53 +++++++++ src/views/HomeView.vue | 8 +- src/views/Login.vue | 105 +++++++++++++++++ 26 files changed, 494 insertions(+), 220 deletions(-) create mode 100644 src/authority/index.js create mode 100644 src/config.js delete mode 100644 src/services/global/GlobalService.js create mode 100644 src/services/login/LoginService.js create mode 100644 src/services/menu/MenuService.js delete mode 100644 src/services/mock/MockGlobalService.js create mode 100644 src/stores/LoginConfigStore.js create mode 100644 src/stores/MenuConfigStore.js delete mode 100644 src/stores/MenuStore.js create mode 100644 src/vendors/axios.js create mode 100644 src/views/Login.vue diff --git a/.env b/.env index ba49ad2..fd3be9a 100644 --- a/.env +++ b/.env @@ -1,3 +1,7 @@ # 程序名称 VITE_APP_NAME=Simple Element+ +# 接口地址 +VITE_APP_API_BASE_URL=https://www.fastmock.site/mock/80793bea9d60828fda74202f7017e953/simple +# 超时配置 +VITE_APP_API_TIMEOUT=10000 diff --git a/package-lock.json b/package-lock.json index db2cbec..2e31294 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,6 @@ "dayjs": "^1.11.10", "element-plus": "^2.4.4", "lodash": "^4.17.21", - "mockjs": "^1.1.0", "pinia": "^2.1.7", "pinia-plugin-persistedstate": "^3.2.1", "vue": "^3.3.13", @@ -893,14 +892,6 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", - "engines": { - "node": ">=16" - } - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2564,17 +2555,6 @@ "resolved": "https://registry.npmjs.org/mitt/-/mitt-2.1.0.tgz", "integrity": "sha512-ILj2TpLiysu2wkBbWjAmww7TkZb65aiQO+DkVdUTBpBXq+MHYiETENkKFMtsJZX1Lf4pe4QOrTSjIfUwN5lRdg==" }, - "node_modules/mockjs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mockjs/-/mockjs-1.1.0.tgz", - "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==", - "dependencies": { - "commander": "*" - }, - "bin": { - "random": "bin/random" - } - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", diff --git a/package.json b/package.json index 03525f4..e3ccffb 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "dayjs": "^1.11.10", "element-plus": "^2.4.4", "lodash": "^4.17.21", - "mockjs": "^1.1.0", "pinia": "^2.1.7", "pinia-plugin-persistedstate": "^3.2.1", "vue": "^3.3.13", diff --git a/src/assets/main.css b/src/assets/main.css index d3b7ca2..60fbc67 100644 --- a/src/assets/main.css +++ b/src/assets/main.css @@ -72,6 +72,15 @@ html, body, #app, .index-container { background:var(--el-text-color-disabled) } +.login-form .el-card__header{ + padding-top: 0; + padding-bottom: 0; +} + +.login-form .el-card__footer { + text-align: center; +} + /** * slide-fade动画 */ diff --git a/src/authority/index.js b/src/authority/index.js new file mode 100644 index 0000000..c5d3d32 --- /dev/null +++ b/src/authority/index.js @@ -0,0 +1,19 @@ +import { useLoginConfigStore } from '@/stores/LoginConfigStore' + +/** + * 检查路有权限 + * @param to {RouteRecordSingleViewWithChildren} 目的地路由 + * @param from 出事路由 + * @returns {{name: string}|boolean} + */ +export const checkRouteAuthority = (to, from) => { + const loginConfigStore = useLoginConfigStore() + if (loginConfigStore.isLoginIn()) { + // check权限 + return true + } + if (to.meta?.beforeLogin) { // 登录前的路由添加meta信息:beforeLogin: true + return true + } + return { name: 'Login' } +} diff --git a/src/components/common-form/index.vue b/src/components/common-form/index.vue index 9ab0172..f63bb07 100644 --- a/src/components/common-form/index.vue +++ b/src/components/common-form/index.vue @@ -76,6 +76,10 @@ defineEmits(['submitForm']) const form = ref() +defineExpose({ + form +}) +