From 77aa6c77049b480a9645a50f8679bf27cdec53b4 Mon Sep 17 00:00:00 2001
From: wf <2547096351@qq.com>
Date: Tue, 8 Oct 2024 15:14:10 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=8E=A5=E5=8F=A3=E8=AF=B7=E6=B1=82?=
=?UTF-8?q?=E6=B5=8B=E8=AF=95=EF=BC=8C=E6=89=93=E5=8C=85=E8=B7=AF=E5=BE=84?=
=?UTF-8?q?=E3=80=81=E5=BC=80=E5=8F=91=E8=AF=B7=E6=B1=82=E8=B7=AF=E5=BE=84?=
=?UTF-8?q?=E5=AE=8C=E5=96=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.env.development | 5 +++-
.env.production | 3 ++
.env.test | 5 +++-
index.html | 2 +-
src/api/index.ts | 36 ++++++++++++++---------
src/api/modules/home.ts | 4 ---
src/api/modules/login.ts | 10 +++++++
src/assets/logo/snow.svg | 1 +
src/views/login/components/login-form.vue | 16 ++++++----
vite.config.ts | 15 +++++++---
10 files changed, 66 insertions(+), 31 deletions(-)
delete mode 100644 src/api/modules/home.ts
create mode 100644 src/api/modules/login.ts
create mode 100644 src/assets/logo/snow.svg
diff --git a/.env.development b/.env.development
index 3a3adad..5d2653c 100644
--- a/.env.development
+++ b/.env.development
@@ -1,7 +1,10 @@
# 开发环境
VITE_USER_NODE_ENV = development
-# 开发环境地址前缀 (一般 '/' 或 './' 都可以,如果开发环境 '/' 打包预览白屏,请使用 './')
+# 打包路径 开发环境地址前缀 (一般 '/' 或 './' 都可以,如果开发环境 '/' 打包预览白屏,请使用 './')
VITE_PUBLIC_PATH = './'
+# 请求路径 管理系统/开发环境
+VITE_APP_BASE_URL = '/your-request-path'
+
VITE_GLOB_APP_TITLE = SnowAdmin
\ No newline at end of file
diff --git a/.env.production b/.env.production
index bbfa6b5..899679f 100644
--- a/.env.production
+++ b/.env.production
@@ -4,4 +4,7 @@ VITE_USER_NODE_ENV = production
# 打包路径 (就是网站前缀, 例如部署到 http://dcodes.gitee.io/SnowAdmin/ 域名下, 就需要填写 /SnowAdmin/), 一般填一个斜杠 /
VITE_PUBLIC_PATH = '/'
+# 请求路径 管理系统/开发环境
+VITE_APP_BASE_URL = '/'
+
VITE_GLOB_APP_TITLE = SnowAdmin
diff --git a/.env.test b/.env.test
index 2075598..3a8c45b 100644
--- a/.env.test
+++ b/.env.test
@@ -1,7 +1,10 @@
# 开发环境
-VITE_USER_NODE_ENV = development
+VITE_USER_NODE_ENV = test
# 开发环境地址前缀 (一般 '/' 或 './' 都可以)
VITE_PUBLIC_PATH = '/test'
+# 请求路径 管理系统/开发环境
+VITE_APP_BASE_URL = '/'
+
VITE_GLOB_APP_TITLE = SnowAdmin
\ No newline at end of file
diff --git a/index.html b/index.html
index 3b536a6..9c43e06 100644
--- a/index.html
+++ b/index.html
@@ -2,7 +2,7 @@
-
+
<%= title %>
diff --git a/src/api/index.ts b/src/api/index.ts
index ba40802..7c0b478 100644
--- a/src/api/index.ts
+++ b/src/api/index.ts
@@ -1,17 +1,15 @@
import axios from "axios";
-import { useRouter } from "vue-router";
-const router = useRouter();
+import router from "@/router";
+import { Message } from "@arco-design/web-vue";
// 创建axios实例
const service = axios.create({
- baseURL: "https://mock.apifox.com/m1/4457302-4103374-default",
- timeout: 5000
+ baseURL: "/api"
});
// 请求拦截器
service.interceptors.request.use(
function (config: any) {
// 发送请求之前做什么
// 获取token鉴权
- console.log("token?", localStorage.getItem("user-info"));
let userInfo: any = {};
if (localStorage.getItem("user-info")) {
userInfo = JSON.parse(localStorage.getItem("user-info") as string);
@@ -19,12 +17,6 @@ service.interceptors.request.use(
if (userInfo.token) {
// 有token,在请求头中携带token
config.headers.Authorization = userInfo.token;
- } else {
- // 如果没有token,则不允许发送请求,并且跳转至登录页要求登录,获取对应的token
- if (config.url !== "/login") {
- router.push("/login");
- Promise.reject("未登录");
- }
}
return config;
},
@@ -37,11 +29,27 @@ service.interceptors.request.use(
// 响应拦截器
service.interceptors.response.use(
function (response: any) {
- return response.data;
+ if (response.status != 200) {
+ Message.error("服务器异常,请联系管理员");
+ return Promise.reject(response.data);
+ }
+ let res = response.data;
+ if (res.code == 401) {
+ Message.error("登录状态已过期");
+ router.push("/login");
+ return Promise.reject(res);
+ } else if (res.code == 404) {
+ Message.error("请求连接超时");
+ return Promise.reject(res);
+ } else if (res.code != 200) {
+ Message.error(res.msg);
+ return Promise.reject(res);
+ } else {
+ // 返回数据
+ return Promise.resolve(res);
+ }
},
function (error: any) {
- console.log("响应拦截", error, router);
- console.log("身份信息过期");
localStorage.removeItem("user-info");
router.push("/login");
return Promise.reject(error);
diff --git a/src/api/modules/home.ts b/src/api/modules/home.ts
deleted file mode 100644
index 86e8813..0000000
--- a/src/api/modules/home.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import axios from "@/api";
-
-// 第三板指标
-export const getTargetAPI = () => axios.get("/notice-list");
diff --git a/src/api/modules/login.ts b/src/api/modules/login.ts
new file mode 100644
index 0000000..5e17545
--- /dev/null
+++ b/src/api/modules/login.ts
@@ -0,0 +1,10 @@
+import axios from "@/api";
+
+// 登录
+export const LoginAPI = (data: any) => {
+ return axios({
+ url: "store/store.php?action=Login",
+ method: "post",
+ data
+ });
+};
diff --git a/src/assets/logo/snow.svg b/src/assets/logo/snow.svg
new file mode 100644
index 0000000..3390a7d
--- /dev/null
+++ b/src/assets/logo/snow.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/views/login/components/login-form.vue b/src/views/login/components/login-form.vue
index 8cb8a66..dab96eb 100644
--- a/src/views/login/components/login-form.vue
+++ b/src/views/login/components/login-form.vue
@@ -41,6 +41,7 @@
import { Message } from "@arco-design/web-vue";
import { useRouter } from "vue-router";
import { useUserInfoStore } from "@/store/modules/user-info";
+
const router = useRouter();
const form = ref({
username: "admin",
@@ -102,16 +103,19 @@ const verify = ref({
});
const verifyCodeChange = (code: string) => (verify.value.verifyCode = code);
-const onSubmit = ({ errors }: any) => {
+const onSubmit = async ({ errors }: any) => {
if (errors) return;
- // 存储用户信息
+ // 你的登录请求
+ // ......
+
+ // 登录成功-存储用户信息
let stores = useUserInfoStore();
let account = {
- username: form.value.username,
- roles: ["admin"]
+ username: form.value.username, // 用户名
+ roles: ["admin"] // 角色权限
};
- stores.setAccount(account);
- stores.setToken("DC-Admin");
+ stores.setAccount(account); // 存储用户信息
+ stores.setToken("Your-Token");
Message.success("登录成功");
router.replace("/home");
};
diff --git a/vite.config.ts b/vite.config.ts
index 2deb6d1..2343f07 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -18,12 +18,19 @@ export default defineConfig(({ mode }) => {
// 获取跟路径对应的文件
const env = loadEnv(mode, root);
return {
- // 开发或生产环境服务的公共基础路径
+ // 生产环境服务的公共基础路径-用于生出环境的代理的路径
base: env.VITE_PUBLIC_PATH,
server: {
- // host: "0.0.0.0",
- // open: true,
- proxy: {}
+ host: "0.0.0.0",
+ open: true,
+ // 为开发服务器配置自定义代理规则-用于开发时的代理
+ proxy: {
+ "/api": {
+ target: env.VITE_APP_BASE_URL,
+ changeOrigin: true,
+ rewrite: path => path.replace(/^\/api/, "")
+ }
+ }
},
plugins: [
vue(),