文件
yjyf/utils/api.js
linda 4e73c8164a fix(wxlogin): 修复微信登录 40029 + 新增商家(企业账号)全流程
微信登录修复:
- 根因:manifest.json 的 mp-weixin.appid 为空 → 开发者工具用测试号,code 与服务端 appid 不匹配
- 修复:填入 wx40ca4b02d4d1cb58
- WxLogin 增加错误码语义映射(40029 appid 不一致 / 40125 secret 错 / 45011 频繁 / 40226 风控)
- 登录页新增手机号登录兜底通道(微信不可用时业务不被卡住)

商家(企业账号):
- 新表 fa_merchant / fa_merchant_order / fa_invoice(纯新增,DB 40→45 表)
- Merchant 控制器:apply/info/update/bills/invoices/invoice/bindBatch
  入驻含企业信息+营业执照+开票信息+结算方式(预付/月结)
  账单按月汇总、开票额度按已付-已开票校验、批量下单按批次归属
- Auth::switchRole 支持 merchant(2001/2002/2003 语义码 + redirect)
- Auth::profile 增加 is_merchant / merchant

前端:
- 登录页角色扩为 业主/师傅/商家 三类
- pages/merchant/apply 企业入驻;workbench 商家工作台(经营数据+按月账单+近期订单+六宫格)
- pages/merchant/batch 批量下单(多地址×多数量)→ 逐单建单支付 → 绑定批次
- pages/merchant/invoice 开票申请与记录
- pages/mine 增加商家入驻/切换商家端入口;角色徽章三态

验证:163 项断言全通过(page_flow 47 + e2e 65 + phase2 27 + phase3 24)
2026-10-28 16:22:20 +08:00

68 行
2.9 KiB
JavaScript

/**
* 接口清单(与后端 application/api/controller 一一对应)
*/
import { get, post } from './request';
export default {
/* ---------- 鉴权 ---------- */
login: (data) => post('/auth/login', data, { silent: true }),
wxLogin: (data) => post('/auth/wxlogin', data, { silent: true }),
switchRole: (data) => post('/auth/switchRole', data),
profile: () => get('/auth/profile'),
/* ---------- 首页 / 服务 ---------- */
home: () => get('/home/index', {}, { silent: true }),
cats: () => get('/home/cats'),
services: (data) => get('/home/services', data),
serviceDetail: (id) => get('/home/detail', { id: id }),
calc: (data) => get('/home/calc', data),
/* ---------- 地址 ---------- */
addressList: () => get('/address/index'),
addressDetail: (id) => get('/address/detail', { id: id }),
addressSave: (data) => post('/address/save', data),
addressDelete: (id) => post('/address/delete', { id: id }),
addressDefault: (id) => post('/address/setDefault', { id: id }),
/* ---------- 订单(用户端) ---------- */
orderCreate: (data) => post('/order/create', data),
orderPay: (data) => post('/order/pay', data),
orderCancel: (data) => post('/order/cancel', data),
orderVerify: (data) => post('/order/verify', data),
orderList: (data) => get('/order/index', data),
orderDetail: (id) => get('/order/detail', { id: id }),
/* ---------- 师傅端 ---------- */
masterApply: (data) => post('/master/apply', data),
masterInfo: () => get('/master/info'),
masterHall: (data) => get('/master/hall', data),
masterGrab: (data) => post('/master/grab', data),
masterOrders: (data) => get('/master/orders', data),
masterContact: (data) => post('/master/contact', data),
masterSchedule: (data) => post('/master/schedule', data),
masterArrive: (data) => post('/master/arrive', data),
masterStart: (data) => post('/master/startJob', data),
masterFinish: (data) => post('/master/finish', data),
masterIncome: () => get('/master/income'),
masterToggle: (data) => post('/master/toggleWork', data),
masterCredit: () => get('/master/credit'),
masterAppeals: () => get('/master/appeals'),
masterAppeal: (data) => post('/master/appeal', data),
masterQuotes: () => get('/master/quotes'),
masterQuote: (data) => post('/master/quote', data),
masterWithdraw: (data) => post('/master/withdraw', data),
/* ---------- 评价 ---------- */
reviewCreate: (data) => post('/review/create', data),
reviewList: (masterId) => get('/review/masterList', { master_id: masterId }),
/* ---------- 商家端 ---------- */
merchantApply: (data) => post('/merchant/apply', data),
merchantInfo: () => get('/merchant/info'),
merchantUpdate: (data) => post('/merchant/update', data),
merchantBills: () => get('/merchant/bills'),
merchantInvoices: () => get('/merchant/invoices'),
merchantInvoice: (data) => post('/merchant/invoice', data),
merchantBindBatch: (data) => post('/merchant/bindBatch', data)
};