Files
xk-client-wx/request/api/register.js
李琦 cc252b5d1a feat: 患者端挂号预约流程改造与就诊人选择
- 挂号预约:register-info 流程重构、确认步骤/患者选择步骤组件、我的预约(myappiont)页对接
- 接口:register.js 补充挂号相关接口,api.js 调整
- 就诊人:claim-patient-modal 复用弹窗
- 医生信息:doctor-detail/doctor-userinfo 配合排班展示
- 规范:新增 Api-Module-Split.mdc 接口模块拆分规则
2026-08-14 13:27:57 +08:00

121 lines
4.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 的 code/result 抹成旧版 errcode/data
* @deprecated 仅供 registePay 的存量调用方(读 res.data.errcode/data过渡使用
* 新代码一律直接按 code/result 取值或用 unwrapXkApi禁止再新增本函数的调用
*/
function normalizeXkApiResponse(res) {
if (res && res.data && (res.data.code === 0 || res.data.code === '0')) {
res.data.errcode = 0;
res.data.data = res.data.result;
}
return res;
}
/**
* 获取挂号记录列表 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<Array>}
*/
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_id0=全天兜底);返回 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易票联
* 存量调用方读 errcode/data这里保留 normalize 过渡0 元单返回 data.is_paid=1
*/
export async function registePay(params) {
let data = await http('/xkApi/register/pay', params)
return normalizeXkApiResponse(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
}