docs: 更新优惠券相关文档- 新增优惠券API集成文档
- 新增优惠券卡片对齐修复文档 - 新增优惠券状态显示调试文档 - 新增优惠券组件警告修复文档- 更新用ShopInfo Hook字段迁移文档 - 更新Arguments关键字修复文档
This commit is contained in:
191
docs/MODULE_NOT_FOUND_FIX.md
Normal file
191
docs/MODULE_NOT_FOUND_FIX.md
Normal file
@@ -0,0 +1,191 @@
|
||||
# 🚨 模块导入错误修复
|
||||
|
||||
## 问题描述
|
||||
|
||||
错误信息:`Error: Cannot find module '@/api/user/coupon'`
|
||||
|
||||
这是因为某些文件导入了不存在的模块路径。
|
||||
|
||||
## 🔍 问题分析
|
||||
|
||||
### 错误原因
|
||||
1. **路径不存在**:`src/api/user/coupon` 目录不存在
|
||||
2. **接口迁移**:优惠券相关接口已迁移到 `src/api/shop/shopUserCoupon`
|
||||
3. **导入未更新**:部分文件仍使用旧的导入路径
|
||||
|
||||
### 实际目录结构
|
||||
```
|
||||
src/api/user/
|
||||
├── balance-log/
|
||||
├── points/
|
||||
└── (没有coupon目录)
|
||||
|
||||
src/api/shop/
|
||||
├── shopUserCoupon/ ← 正确的优惠券接口位置
|
||||
└── ...
|
||||
```
|
||||
|
||||
## 🔧 修复内容
|
||||
|
||||
### 1. **src/user/coupon/coupon.tsx**
|
||||
|
||||
#### 修复前
|
||||
```typescript
|
||||
import {pageUserCoupon, getUserCouponCount} from "@/api/user/coupon";
|
||||
import {UserCoupon as UserCouponType} from "@/api/user/coupon/model";
|
||||
```
|
||||
|
||||
#### 修复后
|
||||
```typescript
|
||||
import {pageShopUserCoupon as pageUserCoupon, getMyAvailableCoupons, getMyUsedCoupons, getMyExpiredCoupons} from "@/api/shop/shopUserCoupon";
|
||||
import {ShopUserCoupon as UserCouponType} from "@/api/shop/shopUserCoupon/model";
|
||||
```
|
||||
|
||||
#### 函数实现更新
|
||||
```typescript
|
||||
// 修复前
|
||||
const loadCouponCount = () => {
|
||||
getUserCouponCount(parseInt(userId))
|
||||
.then((res: any) => {
|
||||
setCouponCount(res)
|
||||
})
|
||||
}
|
||||
|
||||
// 修复后
|
||||
const loadCouponCount = async () => {
|
||||
try {
|
||||
// 并行获取各种状态的优惠券数量
|
||||
const [availableCoupons, usedCoupons, expiredCoupons] = await Promise.all([
|
||||
getMyAvailableCoupons().catch(() => []),
|
||||
getMyUsedCoupons().catch(() => []),
|
||||
getMyExpiredCoupons().catch(() => [])
|
||||
])
|
||||
|
||||
setCouponCount({
|
||||
unused: availableCoupons.length || 0,
|
||||
used: usedCoupons.length || 0,
|
||||
expired: expiredCoupons.length || 0
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('Coupon count error:', error)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2. **src/pages/user/components/UserCard.tsx**
|
||||
|
||||
#### 修复前
|
||||
```typescript
|
||||
import {getUserCouponCount} from "@/api/user/coupon";
|
||||
|
||||
// 函数调用
|
||||
getUserCouponCount(userId)
|
||||
.then((res: any) => {
|
||||
setCouponCount(res.unused || 0)
|
||||
})
|
||||
```
|
||||
|
||||
#### 修复后
|
||||
```typescript
|
||||
import {getMyAvailableCoupons} from "@/api/shop/shopUserCoupon";
|
||||
|
||||
// 函数调用
|
||||
getMyAvailableCoupons()
|
||||
.then((coupons: any) => {
|
||||
setCouponCount(coupons?.length || 0)
|
||||
})
|
||||
```
|
||||
|
||||
## 📊 接口映射表
|
||||
|
||||
| 旧接口 | 新接口 | 说明 |
|
||||
|--------|--------|------|
|
||||
| `@/api/user/coupon` | `@/api/shop/shopUserCoupon` | 优惠券API路径 |
|
||||
| `pageUserCoupon` | `pageShopUserCoupon` | 分页查询优惠券 |
|
||||
| `getUserCouponCount` | `getMyAvailableCoupons` + 计算 | 获取优惠券统计 |
|
||||
| `UserCoupon` | `ShopUserCoupon` | 优惠券数据类型 |
|
||||
|
||||
## 🎯 新的API接口
|
||||
|
||||
### 可用的shopUserCoupon接口
|
||||
```typescript
|
||||
// 分页查询
|
||||
export async function pageShopUserCoupon(params: ShopUserCouponParam)
|
||||
|
||||
// 获取我的可用优惠券
|
||||
export async function getMyAvailableCoupons()
|
||||
|
||||
// 获取我的已使用优惠券
|
||||
export async function getMyUsedCoupons()
|
||||
|
||||
// 获取我的已过期优惠券
|
||||
export async function getMyExpiredCoupons()
|
||||
|
||||
// 根据ID查询
|
||||
export async function getShopUserCoupon(id: number)
|
||||
|
||||
// 增删改操作
|
||||
export async function addShopUserCoupon(data: ShopUserCoupon)
|
||||
export async function updateShopUserCoupon(data: ShopUserCoupon)
|
||||
export async function removeShopUserCoupon(id?: number)
|
||||
```
|
||||
|
||||
## ✅ 修复效果
|
||||
|
||||
### 修复前
|
||||
```
|
||||
❌ Error: Cannot find module '@/api/user/coupon'
|
||||
❌ 页面无法加载
|
||||
❌ 优惠券功能异常
|
||||
```
|
||||
|
||||
### 修复后
|
||||
```
|
||||
✅ 模块导入正常
|
||||
✅ 页面可以正常加载
|
||||
✅ 优惠券统计功能正常
|
||||
✅ 使用正确的API接口
|
||||
```
|
||||
|
||||
## 🧪 验证方法
|
||||
|
||||
### 1. **编译验证**
|
||||
```bash
|
||||
npm run build:weapp
|
||||
```
|
||||
应该没有模块找不到的错误。
|
||||
|
||||
### 2. **功能验证**
|
||||
- [ ] 用户卡片显示正确的优惠券数量
|
||||
- [ ] 优惠券页面可以正常加载
|
||||
- [ ] 优惠券列表可以正常显示
|
||||
- [ ] 各个tab的统计数字正确
|
||||
|
||||
### 3. **控制台验证**
|
||||
- [ ] 没有模块导入错误
|
||||
- [ ] API请求正常发送
|
||||
- [ ] 数据正常返回
|
||||
|
||||
## 🔍 相关文件检查
|
||||
|
||||
确保以下文件都已正确更新:
|
||||
- ✅ `src/user/coupon/coupon.tsx`
|
||||
- ✅ `src/pages/user/components/UserCard.tsx`
|
||||
- ✅ `src/user/coupon/index.tsx` (之前已修复)
|
||||
- ✅ `src/user/coupon/receive.tsx` (之前已修复)
|
||||
|
||||
## 🚀 后续建议
|
||||
|
||||
### 1. **统一接口使用**
|
||||
- 所有优惠券相关功能都使用 `@/api/shop/shopUserCoupon`
|
||||
- 避免混用不同的API路径
|
||||
|
||||
### 2. **类型安全**
|
||||
- 使用 `ShopUserCoupon` 类型而不是 `any`
|
||||
- 添加适当的错误处理
|
||||
|
||||
### 3. **性能优化**
|
||||
- 考虑缓存优惠券统计数据
|
||||
- 避免重复的API调用
|
||||
|
||||
**现在模块导入错误应该已经完全修复,页面可以正常加载了!** 🎉
|
||||
Reference in New Issue
Block a user