import { req } from '@/common/js/index.js'; const PREFIX = '/newApi/clinic-admin'; /** 解析 Laravel jok 或 Yii 响应 */ export function unwrapClinicRes(res) { if (!res) return null; // code 可能是 0 / "0" if (Number(res.code) === 0 && res.result !== undefined) return res.result; if (res.errcode != null && Number(res.errcode) !== -1) return res.data; if (res.result !== undefined) return res.result; return res.data != null ? res.data : res; } function clinicRequest(options) { return req.request({ ...options, header: { ...(options.header || {}), _clinicAdmin: '1', }, }).then((res) => { const data = unwrapClinicRes(res); const ok = !!(res && ( Number(res.code) === 0 || (res.errcode != null && Number(res.errcode) !== -1) )); return { res, data, ok }; }); } export function sendClinicAdminCode(phone) { return req.request({ url: '/newApi/clinic-admin-auth/send-verification-code', method: 'POST', data: { account: phone }, header: { isToken: false, _clinicAdmin: '1' }, }); } export function clinicAdminLogin(phone, password, code) { return req.request({ url: '/newApi/clinic-admin-auth/login', method: 'POST', data: { account: phone, password, code }, header: { isToken: false, _clinicAdmin: '1' }, }); } export function getClinicAdminMyInfo() { return clinicRequest({ url: `${PREFIX}-auth/my-info`, method: 'GET' }); } /** 个人中心 - 我的资料(xk-api GET clinic-admin-auth/my-profile,实时库数据) */ export function getClinicAdminMyProfile() { return clinicRequest({ url: `${PREFIX}-auth/my-profile`, method: 'GET' }); } /** 个人中心 - 修改资料(仅昵称/头像,xk-api POST clinic-admin-auth/update-my-profile) */ export function updateClinicAdminMyProfile(data) { return clinicRequest({ url: `${PREFIX}-auth/update-my-profile`, method: 'POST', data }); } /** 个人中心 - 修改登录密码(xk-api POST clinic-admin-auth/update-password) */ export function updateClinicAdminMyPassword(data) { return clinicRequest({ url: `${PREFIX}-auth/update-password`, method: 'POST', data }); } export function getClinicAdminStoreQr() { return clinicRequest({ url: `${PREFIX}-auth/store-qr`, method: 'GET' }); } /** * 工作台看板统计(今日/本月订单、待发货、待审核提现、下单会员数) * xk-api GET /clinic-admin-dashboard/stats */ export function getClinicAdminDashboardStats() { return clinicRequest({ url: `${PREFIX}-dashboard/stats`, method: 'GET' }); } /** * 工作台功能入口下发(后台按角色分配的宫格入口,替代前端硬编码) * xk-api GET /clinic-admin-dashboard/entries */ export function getClinicAdminWorkbenchEntries() { return clinicRequest({ url: `${PREFIX}-dashboard/entries`, method: 'GET' }); } /** * 功能页用户数据:我的常用 + 最近使用 * xk-api GET /clinic-admin-dashboard/entry-user-data */ export function getClinicAdminEntryUserData() { return clinicRequest({ url: `${PREFIX}-dashboard/entry-user-data`, method: 'GET' }); } /** * 收藏/取消收藏功能入口(功能页长按触发),返回 { is_favorite } * xk-api POST /clinic-admin-dashboard/toggle-favorite-entry */ export function toggleClinicAdminFavoriteEntry(code) { return clinicRequest({ url: `${PREFIX}-dashboard/toggle-favorite-entry`, method: 'POST', data: { code } }); } /** * 上报功能入口使用(点击跳转时静默调用,调用方无需处理失败) * xk-api POST /clinic-admin-dashboard/report-entry-usage */ export function reportClinicAdminEntryUsage(code) { return clinicRequest({ url: `${PREFIX}-dashboard/report-entry-usage`, method: 'POST', data: { code } }); } /** * 本门店 VIP 开通记录列表 * xk-api GET /clinic-admin-vip/list */ export function getClinicAdminVipOpenRecordList(params) { return clinicRequest({ url: `${PREFIX}-vip/list`, method: 'GET', data: params || {}, }); } export function getClinicAdminBalance() { return clinicRequest({ url: `${PREFIX}-account/my-balance`, method: 'GET' }); } export function getClinicAdminCard() { return clinicRequest({ url: `${PREFIX}-account/my-card`, method: 'GET' }); } export function saveClinicAdminCard(data) { return clinicRequest({ url: `${PREFIX}-account/save-card`, method: 'POST', data }); } export const getMyBalance = getClinicAdminBalance; export const getMyCard = getClinicAdminCard; export const saveMyCard = saveClinicAdminCard; export function getLedgerLogList(params) { return clinicRequest({ url: `${PREFIX}-settlement/ledger-log-list`, method: 'GET', data: params }); } export function getLedgerDetail(params) { return clinicRequest({ url: `${PREFIX}-settlement/ledger-detail`, method: 'GET', data: params }); } export function getAccountChangeLogList(params) { return clinicRequest({ url: `${PREFIX}-account-change-log/list`, method: 'GET', data: params }); } export function getWithdrawalList(params) { return clinicRequest({ url: `${PREFIX}-withdrawal/list`, method: 'GET', data: params }); } export function getWithdrawalDetail(id) { return clinicRequest({ url: `${PREFIX}-withdrawal/detail`, method: 'GET', data: { id } }); } export function submitWithdrawal(data) { return clinicRequest({ url: `${PREFIX}-withdrawal/withdrawal`, method: 'POST', data }); } export function getReconciliationList(params) { return clinicRequest({ url: `${PREFIX}-reconciliation/list`, method: 'GET', data: params }); } export function getReconciliationDrugList(params) { return clinicRequest({ url: `${PREFIX}-reconciliation/drug-list`, method: 'GET', data: params }); } export function getReconciliationDrugOptions(params) { return clinicRequest({ url: `${PREFIX}-reconciliation/drug-options`, method: 'GET', data: params }); } export function getReconciliationOrderOptions(params) { return clinicRequest({ url: `${PREFIX}-reconciliation/order-options`, method: 'GET', data: params }); } export function getOrderSaleAmount(params) { return clinicRequest({ url: `${PREFIX}-order/sale-amount`, method: 'GET', data: params }); } export function getPrescriptionDetail(id) { return clinicRequest({ url: `${PREFIX}-prescription/detail`, method: 'GET', data: { id } }); } export function getOrderList(params) { return clinicRequest({ url: `${PREFIX}-order/list`, method: 'GET', data: params }); } export function getOrderStatusOption() { return clinicRequest({ url: `${PREFIX}-order/status-option`, method: 'GET' }); } /** 各状态订单数量(筛选不含 status,供 Tab 徽标) */ export function getOrderStatusCount(params) { return clinicRequest({ url: `${PREFIX}-order/status-count`, method: 'GET', data: params }); } export function getOrderDetail(id) { return clinicRequest({ url: `${PREFIX}-order/detail`, method: 'GET', data: { id } }); } export function getOrderTrace(params) { return clinicRequest({ url: `${PREFIX}-order/trace`, method: 'GET', data: params }); } export function getOrderLedgerDetail(params) { return clinicRequest({ url: `${PREFIX}-order/ledger-detail`, method: 'GET', data: params }); } export function getOrderReconciliationDetail(params) { return clinicRequest({ url: `${PREFIX}-order/reconciliation-detail`, method: 'GET', data: params }); } export function refundOrder(data) { return clinicRequest({ url: `${PREFIX}-order/refund`, method: 'POST', data }); } export function wareSendOrder(data) { return clinicRequest({ url: `${PREFIX}-order/ware-send`, method: 'POST', data }); } export function getExpressDetailByOrderId(orderId) { return clinicRequest({ url: `${PREFIX}-express-detail/detail-by-order`, method: 'POST', data: { order_id: orderId }, }); } export function getPriceAdjustConfig(storeId) { return clinicRequest({ url: `${PREFIX}-order/price-adjust-config`, method: 'GET', data: storeId ? { store_id: storeId } : {}, }); } export function adjustOrderPercent(data) { return clinicRequest({ url: `${PREFIX}-order/adjust-order-percent`, method: 'POST', data }); } export function getWarehouseList(params) { return clinicRequest({ url: `${PREFIX}-warehouse/list`, method: 'GET', data: params }); } export function getWarehouseDetail(id) { return clinicRequest({ url: `${PREFIX}-warehouse/detail`, method: 'GET', data: { id } }); } export function updateWarehouseStatus(id) { return clinicRequest({ url: `${PREFIX}-warehouse/update-status`, method: 'GET', data: { id } }); } export function updateWarehousePrice(data) { return clinicRequest({ url: `${PREFIX}-warehouse/update`, method: 'POST', data }); } export function getWarehouseProductTypeOptions() { return clinicRequest({ url: `${PREFIX}-warehouse/product-type-options`, method: 'GET' }); }