# 商品寄卖服务模块 - 开发说明 ## 📁 文件结构 ### 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 **维护**: 开发团队