import request from '@/utils/request' export function getConversionStatsOverview(params: any) { return request.get({ url: '/stats.conversion/overview', params }) } /** 业绩看板:单区间(部门 × 时间 × 渠道) */ export function yejiStatsOverview(params: { start_date: string end_date: string dept_ids?: number[] | string channel_code?: string }) { return request.get({ url: '/stats.yejiStats/overview', params }) } /** 业绩看板:多区间一次返回(默认 月/周/今日/昨日 四张表) */ export function yejiStatsMulti(params: { dept_ids?: number[] | string channel_code?: string ranges?: Array<{ label?: string; start_date: string; end_date: string }> }) { return request.get({ url: '/stats.yejiStats/multi', params }) } /** 业绩看板:部门下拉 */ export function yejiStatsDeptOptions() { return request.get({ url: '/stats.yejiStats/deptOptions' }) } /** 业绩看板:渠道下拉(按 source_group_name 分组) */ export function yejiStatsChannelOptions() { return request.get({ url: '/stats.yejiStats/channelOptions' }) } /** 业绩看板:医助排行榜(按部门分表;区间须与当前业绩表一致) */ export function yejiStatsLeaderboard(params: { start_date: string end_date: string dept_ids?: number[] | string channel_code?: string }) { return request.get({ url: '/stats.yejiStats/leaderboard', params }) } /** 「未归属中心」行:按订单创建人拆解合计业绩(与看板「合计业绩」未归属部分同口径) */ export function yejiStatsUnassignedBreakdown(params: { start_date: string end_date: string dept_ids?: string channel_code?: string tag_id?: string }) { return request.get({ url: '/stats.yejiStats/unassignedBreakdown', params }) } /** 部门行「进线数据」逐条明细(与看板同口径) */ export function yejiStatsLeadLines(params: { start_date: string end_date: string dept_id: number dept_ids?: string channel_code?: string tag_id?: string page?: number page_size?: number }) { return request.get({ url: '/stats.yejiStats/leadLines', params }) } /** 医助排行榜「预约诊单」逐条挂号明细;业绩主表部门行传 dept_id(可与 assistant_id 二选一) */ export function yejiStatsAppointmentLines(params: { start_date: string end_date: string assistant_id?: number dept_id?: number dept_ids?: string channel_code?: string tag_id?: string page?: number page_size?: number }) { return request.get({ url: '/stats.yejiStats/appointmentLines', params }) } /** 二中心复诊:部门行下钻医助 × 业务订单笔数 */ export function yejiStatsRevisitBreakdown(params: { start_date: string end_date: string dept_id: number revisit_slot: number dept_ids?: string channel_code?: string tag_id?: string }) { return request.get({ url: '/stats.yejiStats/revisitBreakdown', params }) } export function doctorDailyStatsOverview(params: { start_date?: string end_date?: string channel_code?: string dept_ids?: number[] | string }) { return request.get({ url: '/stats.doctorDailyStats/overview', params }) } /** 提成结算接口计算较重,单独放宽超时(默认多为 60s) */ const COMMISSION_SETTLEMENT_TIMEOUT_MS = 120000 /** 提成结算业绩(独立于业绩看板 yejiStats) */ export function commissionSettlementOverview(params: { settlement_month: string /** 与 tcm.prescriptionOrder/lists 同源:create_time between */ start_time?: string end_time?: string /** 默认 3=履约完成,与列表 fulfillment_status 一致 */ fulfillment_status?: number /** 传 1 时仅统计 is_system_auto=1;显式时段下默认不传(含手动) */ require_system_auto_prescription?: 0 | 1 dept_ids?: number[] | string channel_code?: string }) { return request.get( { url: '/stats.commissionSettlement/overview', params, timeout: COMMISSION_SETTLEMENT_TIMEOUT_MS }, { ignoreCancelToken: true } ) } export function commissionSettlementDeptOptions() { return request.get({ url: '/stats.commissionSettlement/deptOptions' }) } export function commissionSettlementChannelOptions() { return request.get({ url: '/stats.commissionSettlement/channelOptions' }) } /** 提成核对:订单明细分页 bucket: 空|current|deferred;appt_channel_value 可与 assistant_id/doctor_id 组合(0=未匹配挂号渠道) */ export function commissionSettlementOrderLines(params: { settlement_month: string start_time?: string end_time?: string fulfillment_status?: number require_system_auto_prescription?: 0 | 1 dept_ids?: number[] | string channel_code?: string page?: number page_size?: number bucket?: string assistant_id?: number doctor_id?: number appt_channel_value?: number }) { return request.get( { url: '/stats.commissionSettlement/orderLines', params, timeout: COMMISSION_SETTLEMENT_TIMEOUT_MS }, { ignoreCancelToken: true } ) } export function commissionSettlementConfirmStatus(params: { settlement_month: string dept_ids?: number[] | string channel_code?: string }) { return request.get({ url: '/stats.commissionSettlement/confirmStatus', params }) } export function commissionSettlementSaveReconcile(params: Record) { return request.post({ url: '/stats.commissionSettlement/saveReconcile', params }) } export function commissionSettlementConfirmFinalize(params: Record) { return request.post( { url: '/stats.commissionSettlement/confirmFinalize', params, timeout: COMMISSION_SETTLEMENT_TIMEOUT_MS }, { ignoreCancelToken: true } ) } /** 撤回「确定本期业绩」:清除顺延结转,状态变为可再次核对/确定 */ export function commissionSettlementConfirmRevoke(params: Record) { return request.post({ url: '/stats.commissionSettlement/confirmRevoke', params }) } /** 医助个人业绩概览 */ export function assistantPerformanceOverview(params: { time_type?: string start_date?: string end_date?: string }) { return request.get({ url: '/stats.assistantPerformance/overview', params }) }