refactor(axios): 优化HTTP请求拦截器和错误处理机制

- 移除调试用的console.log语句
- 调整表格列对齐方式,将操作列从居中改为右对齐
- 添加搜索表单功能,包括账单号、店铺名称、生成时间等筛选条件
- 重构axios拦截器逻辑,简化错误处理流程
- 实现统一的token刷新机制,使用单例模式避免重复请求
- 优化防抖函数实现,提高性能表现
- 添加401和403状态码的特殊处理逻辑
- 统一错误提示信息的显示方式
- 优化表格列宽度设置,调整金额相关列的显示效果
- 删除未使用的组件文件和样式代码
- 移除调试相关的代码和注释
- 优化图标组件的导入方式,使用markRaw包装
- 优化热词统计图表的数据显示逻辑,添加空数据提示
This commit is contained in:
pikachu1995@126.com
2026-10-08 14:39:12 +08:00
parent 1b275cf592
commit 8484936e3d
53 changed files with 293 additions and 1790 deletions

View File

@@ -461,7 +461,6 @@ export default {
});
}
})
.catch(() => {})
.finally(() => {
this.loading = false;
});

View File

@@ -286,6 +286,8 @@ export default {
storeId: e.storeId,
storeName: e.storeName,
skuId: e.id,
goodsId: e.goodsId,
thumbnail: e.thumbnail || "",
goodsType: e.goodsType,
});
});

View File

@@ -60,29 +60,19 @@
style="width: 100%"
@sort-change="changeSort"
>
<el-table-column prop="goodsId" label="商品编号" width="180" show-overflow-tooltip />
<el-table-column label="商品图片" width="100" align="center">
<template #default="{ row }">
<img
v-if="row && row.thumbnail"
:src="row.thumbnail"
style="height: 50px; width: 50px; object-fit: cover"
/>
</template>
</el-table-column>
<el-table-column label="商品名称" min-width="200" show-overflow-tooltip>
<template #default="{ row }">
<template v-if="row">
<a class="link-text mr_10" @click="linkTo(row.goodsId, row.skuId)">{{ row.goodsName }}</a>
<el-popover trigger="hover" title="扫码在手机中查看" placement="top" width="180">
<template #reference>
<img
src="../../../assets/qrcode.svg"
class="hover-pointer"
width="20"
height="20"
alt="qrcode"
/>
</template>
<vue-qr
:text="wapLinkTo(row.goodsId, row.skuId)"
:margin="0"
color-dark="#000"
color-light="#fff"
:size="150"
/>
</el-popover>
</template>
<a v-if="row" class="link-text" @click="linkTo(row.goodsId, row.skuId)">{{ row.goodsName }}</a>
</template>
</el-table-column>
<el-table-column label="库存数量" width="100">
@@ -156,11 +146,9 @@
<script>
import { getKanJiaGoodsList, delKanJiaGoods } from "@/api/promotion";
import vueQr from "vue-qr";
export default {
name: "kanjia-activity-goods",
components: { vueQr },
data() {
return {
selectDate: [],
@@ -290,13 +278,6 @@ export default {
</script>
<style lang="scss" scoped>
.mr_10 {
margin-right: 10px;
}
.hover-pointer {
cursor: pointer;
vertical-align: middle;
}
.padding-row {
margin-bottom: 10px;
}

View File

@@ -69,29 +69,19 @@
class="mt_10"
style="width: 100%"
>
<el-table-column label="商品名称" min-width="200" fixed="left" show-overflow-tooltip>
<el-table-column prop="goodsId" label="商品编号" width="180" show-overflow-tooltip />
<el-table-column label="商品图片" width="100" align="center">
<template #default="{ row }">
<template v-if="row">
<a class="link-text mr_10" @click="linkTo(row.goodsId, row.skuId)">{{ row.goodsName }}</a>
<el-popover trigger="hover" title="扫码在手机中查看" placement="top" width="180">
<template #reference>
<img
src="../../../assets/qrcode.svg"
class="hover-pointer"
width="20"
height="20"
alt="qrcode"
/>
</template>
<vue-qr
:text="wapLinkTo(row.goodsId, row.skuId)"
:margin="0"
color-dark="#000"
color-light="#fff"
:size="150"
/>
</el-popover>
</template>
<img
v-if="row && row.thumbnail"
:src="row.thumbnail"
style="height: 50px; width: 50px; object-fit: cover"
/>
</template>
</el-table-column>
<el-table-column label="商品名称" min-width="200" show-overflow-tooltip>
<template #default="{ row }">
<a v-if="row" class="link-text" @click="linkTo(row.goodsId, row.skuId)">{{ row.goodsName }}</a>
</template>
</el-table-column>
<el-table-column label="市场价" width="110">
@@ -171,11 +161,9 @@ import {
editPointsGoodsStatus,
deletePointsGoodsStatus,
} from "@/api/promotion";
import vueQr from "vue-qr";
export default {
name: "pointsGoods",
components: { vueQr },
data() {
return {
loading: true,
@@ -307,13 +295,6 @@ export default {
cursor: pointer;
text-decoration: none;
}
.mr_10 {
margin-right: 10px;
}
.hover-pointer {
cursor: pointer;
vertical-align: middle;
}
.op-split {
margin: 0 8px;
color: #dcdee2;