Files

113 lines
2.6 KiB
TypeScript
Raw Permalink 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.
/** 仪表盘 - 核心指标(销售额/订单数/采购金额) */
export interface IDashboardMetric {
/** 累计总量 */
total: number;
/** 今日值 */
today: number;
/** 近7天值 */
week: number;
/** 近7天环比增长率(%);上期为0时无基准,为 null */
growth: number | null;
/** 近7天每日值(迷你趋势图,旧到新) */
trend7: number[];
}
/** 仪表盘 - 应收余额 */
export interface IDashboardReceivable {
/** 账单总额 */
bill_total: number;
/** 已回款金额(已支付账单) */
received: number;
/** 应收余额(账单总额 - 已回款) */
unreceived: number;
}
/** 仪表盘 - 销售趋势点(近30天) */
export interface IDashboardTrendPoint {
date: string;
amount: number;
orders: number;
}
/** 仪表盘 - 订单状态分布 */
export interface IDashboardStatusCount {
status: number;
name: string;
count: number;
}
/** 仪表盘 - 品类销售占比 */
export interface IDashboardCategorySales {
name: string;
amount: number;
}
/** 仪表盘 - 热销商品 */
export interface IDashboardTopProduct {
product_id: number;
product_name: string;
product_spec: string;
unit: string;
quantity: number;
amount: number;
}
/** 仪表盘 - 门店排行 */
export interface IDashboardTopStore {
store_id: number;
store_name: string;
order_count: number;
amount: number;
}
/** 仪表盘 - 账单支付进度统计 */
export interface IDashboardReconStat {
/** 0待支付 1审核中 2已支付 */
pay_state: number;
name: string;
count: number;
amount: number;
}
/** 仪表盘 - 最新订单 */
export interface IDashboardLatestOrder {
id: number;
order_no: string;
store_name: string;
order_date: string;
total_amount: number;
status: number;
status_name: string;
}
/** 仪表盘 - 基础档案计数 */
export interface IDashboardArchives {
/** 在营门店 */
stores: number;
/** 在售商品 */
products: number;
/** 合作供应商 */
suppliers: number;
}
/** 仪表盘分析页聚合数据(GET /dashboard/analysis */
export default interface IDashboardAnalysis {
overview: {
sales: IDashboardMetric;
orders: IDashboardMetric;
purchase: IDashboardMetric;
receivable: IDashboardReceivable;
};
trend: IDashboardTrendPoint[];
order_status: IDashboardStatusCount[];
category_sales: IDashboardCategorySales[];
top_products: IDashboardTopProduct[];
top_stores: IDashboardTopStore[];
recon: {
bills: IDashboardReconStat[];
pending_payment: { count: number; amount: number };
};
latest_orders: IDashboardLatestOrder[];
archives: IDashboardArchives;
}