feat: 🚀 token无感刷新

This commit is contained in:
2025-03-29 16:12:35 +08:00
parent e0f8d6c574
commit 2d7470c133
20 changed files with 32 additions and 27 deletions

View File

@@ -2,7 +2,7 @@ ENV = 'dev'
VITE_APP_API_BASEURL =https://dev.ow.f2b211.com/admapi/v1 VITE_APP_API_BASEURL =https://dev.ow.f2b211.com/admapi/v1
#前端回显图片之类的地址 #前端回显图片之类的地址
VITE_APP_API_BASE_UPLOAD_URL =https://dev.ow.f2b211.com/ VITE_APP_API_BASE_UPLOAD_URL =https://dev.ow.f2b211.com
# 本地环境 # 本地环境
VITE_USER_NODE_ENV = development VITE_USER_NODE_ENV = development

View File

@@ -6,7 +6,7 @@ import { showFullScreenLoading, tryHideFullScreenLoading } from "@/config/servic
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { ResultData } from "@/api/interface"; import { ResultData } from "@/api/interface";
import { ResultEnum } from "@/enums/httpEnum"; import { ResultEnum } from "@/enums/httpEnum";
import { checkStatus } from "./helper/checkStatus"; // import { checkStatus } from "./helper/checkStatus";
import { useUserStore } from "@/stores/modules/user"; import { useUserStore } from "@/stores/modules/user";
import router from "@/routers"; import router from "@/routers";
//获取导出表格name //获取导出表格name
@@ -54,7 +54,7 @@ class RequestHttp {
// 当前请求不需要显示 loading在 api 服务中通过指定的第三个参数: { noLoading: true } 来控制 // 当前请求不需要显示 loading在 api 服务中通过指定的第三个参数: { noLoading: true } 来控制
config.noLoading || showFullScreenLoading(); config.noLoading || showFullScreenLoading();
if (config.headers && typeof config.headers.set === "function") { if (config.headers && typeof config.headers.set === "function") {
config.headers.set("Authorization", "Bearer" + " " + userStore.token); config.headers.set("Authorization", userStore.token);
} }
return config; return config;
}, },
@@ -74,7 +74,7 @@ class RequestHttp {
//获取导出表格名称 //获取导出表格名称
getDispositionName(response); getDispositionName(response);
// 获取响应头中的 Authorization 信息 // 获取响应头中的 Authorization 信息
const authorization = response.headers["Authorization"]; const authorization = response.headers["authorization"];
if (authorization) { if (authorization) {
// 可以在这里更新用户的 token 信息 // 可以在这里更新用户的 token 信息
const userStore = useUserStore(); const userStore = useUserStore();
@@ -103,7 +103,7 @@ class RequestHttp {
// 根据服务器响应的错误状态码,做不同的处理 // 根据服务器响应的错误状态码,做不同的处理
if (response) { if (response) {
console.log("error-走到了这里", response.status); console.log("error-走到了这里", response.status);
checkStatus(response.status, response.data); // checkStatus(response.status, response.data);
} }
// 服务器结果都没有返回(可能服务器错误可能客户端断网),断网处理:可以跳转到断网页面 // 服务器结果都没有返回(可能服务器错误可能客户端断网),断网处理:可以跳转到断网页面
if (!window.navigator.onLine) router.replace("/500"); if (!window.navigator.onLine) router.replace("/500");

View File

@@ -36,3 +36,7 @@ export const getProductListSortApi = (params: any) => {
const { id, sort } = params; const { id, sort } = params;
return http.post<any>(`${PRODUCT}/sort/${id}`, { sort }); return http.post<any>(`${PRODUCT}/sort/${id}`, { sort });
}; };
// getProductCategoryListApi
export const getProductCategoryListApi = () => {
return http.get<any>(`/product/categorys`);
};

View File

@@ -15,7 +15,7 @@
<el-input v-model="scope.row.sort" @blur="handleBlur(scope.row)" @input="handleInput(scope.row)"></el-input> <el-input v-model="scope.row.sort" @blur="handleBlur(scope.row)" @input="handleInput(scope.row)"></el-input>
</template> </template>
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #operation="scope"> <template #operation="scope">

View File

@@ -13,7 +13,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #enabled="scope"> <template #enabled="scope">
<el-tag type="success" effect="dark">{{ scope.row.enabled === 1 ? "启用" : "禁用" }}</el-tag> <el-tag type="success" effect="dark">{{ scope.row.enabled === 1 ? "启用" : "禁用" }}</el-tag>

View File

@@ -9,7 +9,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">

View File

@@ -12,7 +12,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #is_audited="scope"> <template #is_audited="scope">
<el-tag :type="scope.row.is_audited ? 'success' : 'danger'" effect="dark">{{ <el-tag :type="scope.row.is_audited ? 'success' : 'danger'" effect="dark">{{

View File

@@ -12,7 +12,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">
<el-tag type="success" effect="dark">{{ scope.row.status }}</el-tag> <el-tag type="success" effect="dark">{{ scope.row.status }}</el-tag>

View File

@@ -12,7 +12,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #sort="scope"> <template #sort="scope">
<el-input v-model="scope.row.sort" @blur="handleBlur(scope.row)" @input="handleInput(scope.row)"></el-input> <el-input v-model="scope.row.sort" @blur="handleBlur(scope.row)" @input="handleInput(scope.row)"></el-input>

View File

@@ -12,7 +12,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">
<el-tag type="success" effect="dark">{{ scope.row.status }}</el-tag> <el-tag type="success" effect="dark">{{ scope.row.status }}</el-tag>

View File

@@ -12,7 +12,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">
<el-tag :type="scope.row.status === 1 ? 'success' : 'danger'" effect="dark">{{ <el-tag :type="scope.row.status === 1 ? 'success' : 'danger'" effect="dark">{{

View File

@@ -9,7 +9,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">
<el-tag type="danger" effect="dark">{{ scope.row.status ? "删除" : "删除" }}</el-tag> <el-tag type="danger" effect="dark">{{ scope.row.status ? "删除" : "删除" }}</el-tag>

View File

@@ -268,7 +268,7 @@ const setUserData = (data: any) => {
const { username, uid, token, avatar } = data; const { username, uid, token, avatar } = data;
console.log(); console.log();
// 设置token // 设置token
userStore.setToken(token); userStore.setToken("Bearer" + " " + token);
userStore.setUid(uid); userStore.setUid(uid);
userStore.setNickname(username); userStore.setNickname(username);
userStore.setAvatar(avatar); userStore.setAvatar(avatar);

View File

@@ -14,9 +14,9 @@
:request-api="getProductBuypassListApi" :request-api="getProductBuypassListApi"
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #imgUrl="scope"> <!-- <template #imgUrl="scope">
<el-image :src="scope.row.imgUrl" style="width: 60px; height: 60px" /> <el-image :src="scope.row.imgUrl ? h + scope.row.imgUrl : ''" style="width: 60px; height: 60px" />
</template> </template> -->
<template #status="scope"> <template #status="scope">
<el-tag type="success" effect="dark">{{ scope.row.status }}</el-tag> <el-tag type="success" effect="dark">{{ scope.row.status }}</el-tag>
</template> </template>

View File

@@ -12,7 +12,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #cover_image="scope"> <template #cover_image="scope">
<el-image :src="h + scope.row.cover_image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.cover_image ? h + scope.row.cover_image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">
<el-tag effect="dark" :type="scope.row.status === 1 ? 'success' : 'danger'">{{ <el-tag effect="dark" :type="scope.row.status === 1 ? 'success' : 'danger'">{{
@@ -59,9 +59,10 @@ import {
getProductListApi, getProductListApi,
getProductUpOrShelvesApi, getProductUpOrShelvesApi,
getProductListSortApi, getProductListSortApi,
getProductListExportApi getProductListExportApi,
getProductCategoryListApi
} from "@/api/modules/productList"; } from "@/api/modules/productList";
import { getProductCategoryListApi } from "@/api/modules/productClass"; // import { getProductCategoryListApi } from "@/api/modules/productClass";
import { addLabelValue } from "./utils/common/addLabelValue"; import { addLabelValue } from "./utils/common/addLabelValue";
//深拷贝方法 //深拷贝方法
@@ -112,7 +113,7 @@ const getProductListSort = async (row: any) => {
//产品分类(后端大佬说直接掉列表接口) //产品分类(后端大佬说直接掉列表接口)
const getProductCategoryList = async () => { const getProductCategoryList = async () => {
const result = await getProductCategoryListApi({ page: 1, size: 500 }); const result = await getProductCategoryListApi();
if (result?.code === 0) { if (result?.code === 0) {
let dataClone: any = cloneDeep(result?.data); let dataClone: any = cloneDeep(result?.data);
dataStore.formData[2].options = addLabelValue(dataClone); dataStore.formData[2].options = addLabelValue(dataClone);

View File

@@ -9,7 +9,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">
<el-tag type="danger" effect="dark"> {{ scope.row.status === 1 ? "删除" : "删除" }}</el-tag> <el-tag type="danger" effect="dark"> {{ scope.row.status === 1 ? "删除" : "删除" }}</el-tag>

View File

@@ -12,7 +12,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">
<el-tag type="success" effect="dark">{{ scope.row.status }}</el-tag> <el-tag type="success" effect="dark">{{ scope.row.status }}</el-tag>

View File

@@ -13,7 +13,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">
<el-tag :type="scope.row.status === 1 ? 'success' : 'danger'" effect="dark">{{ <el-tag :type="scope.row.status === 1 ? 'success' : 'danger'" effect="dark">{{

View File

@@ -9,7 +9,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">

View File

@@ -12,7 +12,7 @@
:init-param="dataStore.initParam" :init-param="dataStore.initParam"
> >
<template #image="scope"> <template #image="scope">
<el-image :src="h + scope.row.image" style="width: 60px; height: 60px" /> <el-image :src="scope.row.image ? h + scope.row.image : ''" style="width: 60px; height: 60px" />
</template> </template>
<template #status="scope"> <template #status="scope">
<el-tag type="success" effect="dark">{{ scope.row.status }}</el-tag> <el-tag type="success" effect="dark">{{ scope.row.status }}</el-tag>