# 全部门店开单记录汇总导出接口 ## 接口地址 ``` GET /api/Extend/lqkdkdjlb/billing-record-summary-export-all-stores ``` ## 接口说明 按照Excel格式导出全部门店的开单记录汇总,每个品项每个健康师一行。如果某个品项有多个健康师,会展开为多行数据。 ## 请求参数 | 参数名 | 类型 | 必填 | 说明 | |--------|------|------|------| | StartTime | DateTime | 是 | 开始时间(格式:yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss) | | EndTime | DateTime | 是 | 结束时间(格式:yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss) | | MemberId | string | 否 | 客户ID(会员ID),筛选指定客户 | | ItemCategory | string | 否 | 品项分类,筛选指定分类 | | ItemId | string | 否 | 品项ID,筛选指定品项 | | HealthCoachId | string | 否 | 健康师ID,筛选指定健康师 | ## 请求示例 ### 基础请求(仅时间范围) ```javascript // Axios 示例 axios.get('/api/Extend/lqkdkdjlb/billing-record-summary-export-all-stores', { params: { StartTime: '2026-01-01', EndTime: '2026-01-31' }, headers: { 'Authorization': 'Bearer ' + token }, responseType: 'blob' // 重要:设置为 blob 以接收文件 }).then(response => { // 创建下载链接 const url = window.URL.createObjectURL(new Blob([response.data])); const link = document.createElement('a'); link.href = url; link.setAttribute('download', '开单记录汇总.xls'); document.body.appendChild(link); link.click(); link.remove(); }); ``` ### 完整请求(包含筛选条件) ```javascript axios.get('/api/Extend/lqkdkdjlb/billing-record-summary-export-all-stores', { params: { StartTime: '2026-01-01', EndTime: '2026-01-31', MemberId: '123456789', // 可选 ItemCategory: '分类名称', // 可选 ItemId: '987654321', // 可选 HealthCoachId: '111222333' // 可选 }, headers: { 'Authorization': 'Bearer ' + token }, responseType: 'blob' }).then(response => { // 处理文件下载 const url = window.URL.createObjectURL(new Blob([response.data])); const link = document.createElement('a'); link.href = url; link.setAttribute('download', '开单记录汇总.xls'); document.body.appendChild(link); link.click(); link.remove(); }); ``` ## 响应格式 ### 成功响应(200) ```json { "code": 200, "msg": "操作成功", "data": { "name": "开单记录汇总_2026-01-22_152816.xls", "url": "/api/File/Download?encryption=..." } } ``` ### 错误响应(400/500) ```json { "code": 400, "msg": "开始时间和结束时间不能为空" } ``` ## Excel 列说明 导出的Excel文件包含以下列(按顺序): 1. **开单日期** - 开单记录的日期 2. **单据门店** - 开单门店的中文名称 3. **客户姓名** - 客户姓名 4. **客户电话** - 客户电话 5. **金三角** - 金三角信息 6. **客户类型** - 客户类型 7. **健康师** - 健康师姓名 8. **业绩金额** - 健康师业绩金额(格式:¥0.00) 9. **相关品项** - 品项名称 10. **分类** - 品项分类 11. **类型** - 品项类型(购买/体验/赠送等) 12. **单价** - 品项单价(格式:¥0.00) 13. **次数** - 项目次数 14. **品项金额** - 品项总金额(格式:¥0.00) 15. **已付金额** - 已付金额(格式:¥0.00) 16. **欠款金额** - 欠款金额(格式:¥0.00) 17. **总金额** - 总金额(格式:¥0.00) 18. **支付方式** - 支付方式 19. **合作机构** - 合作机构名称 20. **结算机构** - 结算机构名称 21. **活动名称** - 活动名称 22. **备注** - 备注信息 23. **开单时间** - 开单时间(格式:yyyy/MM/dd HH:mm:ss) ## 数据展开规则 - 如果一个开单记录有多个品项,每个品项一行 - 如果一个品项有多个健康师,每个健康师一行 - 如果一个品项没有健康师,健康师相关字段显示"无",业绩金额显示"¥0.00" ## 注意事项 1. **时间格式**:建议使用 `yyyy-MM-dd` 格式,系统会自动处理时间范围 2. **文件下载**:前端需要设置 `responseType: 'blob'` 来接收文件 3. **文件格式**:导出文件为 `.xls` 格式(Excel 97-2003) 4. **数据量**:如果数据量很大,导出可能需要较长时间,建议前端显示加载提示 5. **权限**:需要登录并携带有效的 Authorization token ## Vue 2 + Element UI 完整示例 ```vue ``` ## API 封装示例(api/billing.js) ```javascript import request from '@/utils/request' /** * 导出全部门店开单记录汇总 * @param {Object} params 查询参数 * @param {string} params.StartTime 开始时间 * @param {string} params.EndTime 结束时间 * @param {string} [params.MemberId] 客户ID * @param {string} [params.ItemCategory] 品项分类 * @param {string} [params.ItemId] 品项ID * @param {string} [params.HealthCoachId] 健康师ID * @returns {Promise} */ export function exportBillingRecordSummaryAllStores(params) { return request({ url: '/api/Extend/lqkdkdjlb/billing-record-summary-export-all-stores', method: 'get', params: params }) } ```