# 商品寄卖服务模块 - 开发说明
## 📁 文件结构
### API接口文件
```
src/api/consignment.js // 商品寄卖服务API接口
```
### 页面文件
```
src/views/consignment/
├── merchandise/ # 寄售商品管理
│ ├── index.vue # 寄售商品列表
│ └── detail.vue # 寄售商品详情
├── withdraw/ # 提现管理
│ ├── index.vue # 提现列表
│ └── detail.vue # 提现详情
└── financial-log/ # 财务日志管理
└── index.vue # 财务日志(包含4种类型)
```
## 🔌 API接口列表
### 寄售商品模块
- `merchandiseListApi()` - 获取寄售商品列表
- `merchandiseInfoApi()` - 获取寄售商品详情
- `merchandiseUpdateApi()` - 更新寄售商品
- `merchandiseBatchUpdateApi()` - 批量更新寄售商品
### 提现管理模块
- `withdrawListApi()` - 获取提现列表
- `withdrawInfoApi()` - 获取提现详情
- `withdrawAuditApi()` - 审核提现申请
- `withdrawStatisticsApi()` - 获取提现统计数据
### 财务日志模块
- `couponLogListApi()` - 获取优惠券日志列表
- `couponLogStatisticsApi()` - 获取优惠券统计
- `selfBonusLogListApi()` - 获取个人奖金日志列表
- `selfBonusLogStatisticsApi()` - 获取个人奖金统计
- `shareBonusLogListApi()` - 获取推广奖金日志列表
- `shareBonusLogStatisticsApi()` - 获取推广奖金统计
- `moneyLogListApi()` - 获取余额日志列表
- `moneyLogStatisticsApi()` - 获取余额统计
### 寄售订单模块
- `consignmentOrderListApi()` - 获取寄售订单列表
- `consignmentOrderInfoApi()` - 获取寄售订单详情
- `consignmentOrderUpdateApi()` - 更新寄售订单
- `consignmentOrderStatisticsApi()` - 获取订单统计
## 🛠️ 技术栈
- **前端框架**: Vue.js 2.x
- **UI组件库**: Element UI
- **HTTP请求**: Axios (通过 @/utils/request 封装)
- **路由**: Vue Router
- **状态管理**: Vuex (如有使用)
## 📝 代码规范
### API接口规范
```javascript
/**
* 功能描述
* @param params
*/
export function apiNameApi(params) {
return request({
url: '/app/admin/module/action',
method: 'get', // 或 'post'
params, // GET请求用params
// data, // POST请求用data
});
}
```
### Vue组件规范
```vue
```
## 🚀 使用步骤
### 1. 导入API接口
```javascript
import {
merchandiseListApi,
merchandiseUpdateApi
} from '@/api/consignment';
```
### 2. 调用API示例
```javascript
// 获取列表
async getList() {
try {
const res = await merchandiseListApi({
page: 1,
limit: 10,
status: 1
});
this.tableData = res.data.data;
this.total = res.data.count;
} catch (e) {
this.$message.error(e.message || '获取列表失败');
}
}
// 更新数据
async update() {
try {
await merchandiseUpdateApi({
id: this.id,
is_show: 1
});
this.$message.success('更新成功');
} catch (e) {
this.$message.error(e.message || '更新失败');
}
}
```
## 🎯 功能特性
### 寄售商品管理
- ✅ 商品列表展示(支持分页、搜索、筛选)
- ✅ 商品详情查看
- ✅ 商品状态管理(上架/下架)
- ✅ 批量操作(批量显示/隐藏)
- ✅ 图片预览功能
### 提现管理
- ✅ 提现申请列表(支持多状态Tab切换)
- ✅ 提现详情查看
- ✅ 提现审核(通过/驳回)
- ✅ 统计数据展示
- ✅ 收款账号信息展示
### 财务日志
- ✅ 4种日志类型切换(优惠券、个人奖金、推广奖金、余额)
- ✅ 日志列表展示
- ✅ 统计数据(总收入、总支出、净额)
- ✅ 时间范围筛选
- ✅ 用户筛选
## 🔐 权限控制
所有页面和操作都支持权限控制,使用 `v-hasPermi` 指令:
```vue
更新
```
权限标识规范:
- `admin:merchandise:info` - 查看寄售商品详情
- `admin:merchandise:update` - 更新寄售商品
- `admin:withdraw:info` - 查看提现详情
- `admin:withdraw:audit` - 审核提现申请
## 📋 路由配置
需要在路由配置文件中添加以下路由:
```javascript
{
path: '/consignment',
component: Layout,
redirect: '/consignment/merchandise',
name: 'Consignment',
meta: { title: '商品寄卖服务', icon: 'el-icon-goods' },
children: [
{
path: 'merchandise',
name: 'Merchandise',
component: () => import('@/views/consignment/merchandise/index'),
meta: { title: '寄售商品管理', icon: 'el-icon-shopping-bag-1' }
},
{
path: 'merchandise/detail',
name: 'MerchandiseDetail',
component: () => import('@/views/consignment/merchandise/detail'),
meta: { title: '寄售商品详情', activeMenu: '/consignment/merchandise' },
hidden: true
},
{
path: 'withdraw',
name: 'Withdraw',
component: () => import('@/views/consignment/withdraw/index'),
meta: { title: '提现管理', icon: 'el-icon-wallet' }
},
{
path: 'withdraw/detail',
name: 'WithdrawDetail',
component: () => import('@/views/consignment/withdraw/detail'),
meta: { title: '提现详情', activeMenu: '/consignment/withdraw' },
hidden: true
},
{
path: 'financial-log',
name: 'FinancialLog',
component: () => import('@/views/consignment/financial-log/index'),
meta: { title: '财务日志', icon: 'el-icon-document' }
}
]
}
```
## 🎨 样式说明
### 通用样式类
- `.divBox` - 页面容器
- `.box-card` - 卡片容器
- `.selWidth` - 表单项宽度100%
- `.price` - 价格样式(红色加粗)
- `.income` - 收入样式(绿色)
- `.expense` - 支出样式(红色)
### 响应式布局
使用 Element UI 的栅格系统:
```javascript
grid: {
xl: 8, // ≥1920px
lg: 8, // ≥1200px
md: 12, // ≥992px
sm: 24, // ≥768px
xs: 24 // <768px
}
```
## 🐛 常见问题
### 1. API请求失败
- 检查后端接口是否正常
- 检查请求参数格式是否正确
- 检查token是否有效
### 2. 图片显示问题
- 确认图片URL格式(JSON数组或字符串)
- 使用 `getFirstImage()` 和 `getImageList()` 方法解析
### 3. 权限问题
- 确认权限标识配置正确
- 检查用户角色是否有对应权限
## 📞 技术支持
如有问题,请查阅:
1. [商品寄卖服务系统管理后台API接口PRD-完整版.md](./商品寄卖服务系统管理后台API接口PRD-完整版.md)
2. [数据库设计说明.md](./数据库设计说明.md)
3. Element UI官方文档: https://element.eleme.cn/
---
**创建日期**: 2025-11-13
**版本**: V1.0
**维护**: 开发团队