import http from './request' import {post} from './http' import { unwrapXkApi } from '@/utils/api-response.js' /** * 挂号域接口统一模块(除 registerList 外均为 xk-api) * 取值:unwrapXkApi → code / result / message * * 说明:registe/registeInfo 等函数迁自 api.js,保持「http(url, { method, data })」 * 老签名不动,避免改动全部调用方的传参结构;新增接口请用 post(url, params, 3) 新封装。 */ /** * 获取挂号记录列表 xk-api POST /register/list * @param params { patient_id: number, store_id: number, page: number } * @returns {Promise<*>} */ export async function getRegisterListApi(params) { return await post('/register/list', params, 3) } /** * 获取待支付挂号列表(首页提醒用) xk-api POST /register/list * @param params * @returns {Promise} */ export async function fetchUnpaidRegisterListApi(params = {}) { const storeId = params.store_id || uni.getStorageSync('store_id') || '11001'; const res = await post('/register/list?pageSize=100', { store_id: storeId, page: 1, ...params, }, 3); // /register/list → xk-api const { ok, payload } = unwrapXkApi(res) if (!ok) { return []; } const list = (payload && payload.list) || []; return list.filter((item) => item.status === 0 && item.is_cancel !== 1); } /** * 医生号源日历 xk-api GET /register/schedule-calendar(登录态) * 返回 { register_status, register_price, book_days, days[] },days 含每天出诊/时段/余号 * 读值按 xk-api 形态:res.data.code == 0 → res.data.result */ export async function registerCalendar(params) { let data = await http('/xkApi/register/schedule-calendar', params) return data } /** * 医生号源信息(游客态专用) * URL 写老 Yii doc-register-info,但 request.js 会在 guest 模式下重写到 * xk-api /guest/guest-doctor/doc-register-info(响应 code/result 形态,result 带 calendar) * @deprecated 登录态请勿使用(会打到老 Yii),登录态一律走 registerCalendar */ export async function registerList(params) { let data = await http('/oldApi/v1/register/doc-register-info', params) return data } /** * 挂号建单 xk-api POST /register/create(迁自老 Yii /v1/register/register) * 入参新增 visit_date(Y-m-d) + slot_id(0=全天兜底);返回 result{register_id, isHas} * 读值按 xk-api 形态:res.data.code == 0 → res.data.result */ export async function registe(params) { let data = await http('/xkApi/register/create', params) return data } /** * 挂号详情 xk-api POST /register/detail(迁自老 Yii /v1/register/register-detail) * 返回 result 为单对象(老接口是 data.list[0]),附 appointment 预约日期/时段信息 */ export async function registeInfo(params) { let data = await http('/xkApi/register/detail', params) return data } /** * 挂号支付 xk-api POST /register/pay(易票联) * 返回原生 xk-api 形态:res.data.code == 0 → res.data.result;0 元单 result.is_paid=1 * (原 normalize 成 errcode/data 的兼容层已删除,调用方一律按 code/result/message 取值) */ export async function registePay(params) { let data = await http('/xkApi/register/pay', params) return data } /** * 取消挂号 xk-api POST /register/cancel(仅未支付单,迁自老 Yii /v1/register/cancel) */ export async function registeUnpay(params) { let data = await http('/xkApi/register/cancel', params) return data } /** * 挂号退款 xk-api POST /register/refund(已支付未接诊单,迁自老 Yii /v1/register/refund) * 注意:老 Yii refund 同时兼容未付取消,xk-api 拆成 cancel/refund 两个接口,页面按 status 分流 */ export async function registeCancle(params) { let data = await http('/xkApi/register/refund', params) return data } /** * 修改预约时间(患者本人改期) xk-api POST /register/reschedule * 参数 { register_id, visit_date: 'Y-m-d', slot_id };就诊当天后端会拦截(提示联系医生/诊所) */ export async function registerReschedule(params = {}) { return await post('/register/reschedule', params, 3) } /** * 挂号改期记录 xk-api POST /register/reschedule-logs * 返回 result 数组:谁在什么时候把预约从哪个时段改到哪个时段(详情页溯源展示) */ export async function registerRescheduleLogs(params = {}) { return await post('/register/reschedule-logs', params, 3) }