feat: 商家端代码
This commit is contained in:
249
src/typings/merchant.ts
Normal file
249
src/typings/merchant.ts
Normal file
@@ -0,0 +1,249 @@
|
||||
/**
|
||||
* 商户端类型定义
|
||||
*/
|
||||
|
||||
// ==================== 订单相关 ====================
|
||||
|
||||
/** 订单状态枚举 */
|
||||
export enum OrderStatus {
|
||||
PENDING = 'pending', // 待确认
|
||||
CONFIRMED = 'confirmed', // 已确认
|
||||
SHIPPING = 'shipping', // 待发货
|
||||
SHIPPED = 'shipped', // 已发货
|
||||
COMPLETED = 'completed', // 已完成
|
||||
CANCELLED = 'cancelled', // 已取消
|
||||
}
|
||||
|
||||
/** 订单状态配置 */
|
||||
export const ORDER_STATUS_CONFIG = {
|
||||
[OrderStatus.PENDING]: { label: '待确认', color: '#ff8f0d' },
|
||||
[OrderStatus.CONFIRMED]: { label: '已确认', color: '#4d80f0' },
|
||||
[OrderStatus.SHIPPING]: { label: '待发货', color: '#ff8f0d' },
|
||||
[OrderStatus.SHIPPED]: { label: '已发货', color: '#4d80f0' },
|
||||
[OrderStatus.COMPLETED]: { label: '已完成', color: '#00c05a' },
|
||||
[OrderStatus.CANCELLED]: { label: '已取消', color: '#999' },
|
||||
}
|
||||
|
||||
/** 订单商品 */
|
||||
export interface OrderGoods {
|
||||
id: string
|
||||
goodsId: string
|
||||
name: string
|
||||
image: string
|
||||
skuName: string // 规格名称
|
||||
price: number
|
||||
quantity: number
|
||||
amount: number
|
||||
}
|
||||
|
||||
/** 物流信息 */
|
||||
export interface LogisticsInfo {
|
||||
company: string // 物流公司
|
||||
trackingNo: string // 运单号
|
||||
status: string // 物流状态
|
||||
traces: LogisticsTrace[]
|
||||
}
|
||||
|
||||
/** 物流轨迹 */
|
||||
export interface LogisticsTrace {
|
||||
time: string
|
||||
content: string
|
||||
}
|
||||
|
||||
/** 收货地址 */
|
||||
export interface OrderAddress {
|
||||
name: string
|
||||
phone: string
|
||||
province: string
|
||||
city: string
|
||||
district: string
|
||||
detail: string
|
||||
}
|
||||
|
||||
/** 商户订单 */
|
||||
export interface MerchantOrder {
|
||||
id: string
|
||||
orderNo: string
|
||||
customerName: string
|
||||
customerPhone: string
|
||||
customerAvatar?: string
|
||||
status: OrderStatus
|
||||
amount: number // 订单总金额
|
||||
freight: number // 运费
|
||||
payAmount: number // 实付金额
|
||||
remark?: string // 订单备注
|
||||
merchantRemark?: string // 商家备注
|
||||
goods: OrderGoods[]
|
||||
address: OrderAddress
|
||||
logistics?: LogisticsInfo
|
||||
createTime: string
|
||||
payTime?: string
|
||||
shipTime?: string
|
||||
completeTime?: string
|
||||
}
|
||||
|
||||
// ==================== 商品相关 ====================
|
||||
|
||||
/** 商品状态枚举 */
|
||||
export enum GoodsStatus {
|
||||
ON = 'on', // 上架
|
||||
OFF = 'off', // 下架
|
||||
SOLD_OUT = 'sold_out', // 售罄
|
||||
}
|
||||
|
||||
/** 商品状态配置 */
|
||||
export const GOODS_STATUS_CONFIG = {
|
||||
[GoodsStatus.ON]: { label: '上架', color: '#00c05a' },
|
||||
[GoodsStatus.OFF]: { label: '下架', color: '#999' },
|
||||
[GoodsStatus.SOLD_OUT]: { label: '售罄', color: '#fa4350' },
|
||||
}
|
||||
|
||||
/** SKU 规格选项 */
|
||||
export interface SkuSpec {
|
||||
name: string // 规格名称,如 "颜色"
|
||||
values: string[] // 规格值列表,如 ["红色", "蓝色"]
|
||||
}
|
||||
|
||||
/** SKU 项 */
|
||||
export interface SkuItem {
|
||||
id: string
|
||||
specs: Record<string, string> // 规格组合,如 { 颜色: "红色", 尺码: "M" }
|
||||
price: number
|
||||
stock: number
|
||||
image?: string
|
||||
}
|
||||
|
||||
/** 商户商品 */
|
||||
export interface MerchantGoods {
|
||||
id: string
|
||||
name: string
|
||||
categoryId: string
|
||||
categoryName: string
|
||||
brand?: string
|
||||
price: number // 售价(单规格时使用)
|
||||
costPrice: number // 成本价
|
||||
stock: number // 库存(单规格时使用)
|
||||
sales: number // 销量
|
||||
status: GoodsStatus
|
||||
images: string[] // 商品图片
|
||||
description: string // 商品描述
|
||||
specs?: SkuSpec[] // 规格定义
|
||||
skuList?: SkuItem[] // SKU 列表
|
||||
createTime: string
|
||||
updateTime: string
|
||||
}
|
||||
|
||||
/** 商品表单数据 */
|
||||
export interface GoodsFormData {
|
||||
id?: string
|
||||
name: string
|
||||
categoryId: string
|
||||
brand?: string
|
||||
price: number
|
||||
costPrice: number
|
||||
stock: number
|
||||
images: string[]
|
||||
description: string
|
||||
enableSpec: boolean // 是否启用多规格
|
||||
specs?: SkuSpec[]
|
||||
skuList?: SkuItem[]
|
||||
}
|
||||
|
||||
// ==================== 财务相关 ====================
|
||||
|
||||
/** 财务概览 */
|
||||
export interface FinanceOverview {
|
||||
balance: number // 可用余额
|
||||
pendingSettlement: number // 待结算
|
||||
monthIncome: number // 本月收入
|
||||
totalIncome: number // 累计收入
|
||||
}
|
||||
|
||||
/** 交易类型 */
|
||||
export enum TransactionType {
|
||||
INCOME = 'income', // 收入
|
||||
WITHDRAW = 'withdraw', // 提现
|
||||
REFUND = 'refund', // 退款
|
||||
}
|
||||
|
||||
/** 交易记录 */
|
||||
export interface Transaction {
|
||||
id: string
|
||||
type: TransactionType
|
||||
amount: number
|
||||
balance: number // 交易后余额
|
||||
orderNo?: string // 关联订单号
|
||||
remark: string
|
||||
createTime: string
|
||||
}
|
||||
|
||||
/** 结算状态 */
|
||||
export enum SettlementStatus {
|
||||
PENDING = 'pending', // 待结算
|
||||
SETTLED = 'settled', // 已结算
|
||||
}
|
||||
|
||||
/** 结算记录 */
|
||||
export interface Settlement {
|
||||
id: string
|
||||
settlementNo: string
|
||||
amount: number
|
||||
orderCount: number // 订单数量
|
||||
status: SettlementStatus
|
||||
period: string // 结算周期,如 "2024-12-01 ~ 2024-12-15"
|
||||
settledTime?: string // 结算时间
|
||||
createTime: string
|
||||
}
|
||||
|
||||
/** 提现状态 */
|
||||
export enum WithdrawStatus {
|
||||
PENDING = 'pending', // 审核中
|
||||
APPROVED = 'approved', // 审核通过
|
||||
REJECTED = 'rejected', // 审核拒绝
|
||||
COMPLETED = 'completed', // 已到账
|
||||
}
|
||||
|
||||
/** 提现状态配置 */
|
||||
export const WITHDRAW_STATUS_CONFIG = {
|
||||
[WithdrawStatus.PENDING]: { label: '审核中', color: '#ff8f0d' },
|
||||
[WithdrawStatus.APPROVED]: { label: '审核通过', color: '#4d80f0' },
|
||||
[WithdrawStatus.REJECTED]: { label: '审核拒绝', color: '#fa4350' },
|
||||
[WithdrawStatus.COMPLETED]: { label: '已到账', color: '#00c05a' },
|
||||
}
|
||||
|
||||
/** 提现记录 */
|
||||
export interface WithdrawRecord {
|
||||
id: string
|
||||
amount: number
|
||||
bankName: string
|
||||
bankAccount: string
|
||||
status: WithdrawStatus
|
||||
rejectReason?: string // 拒绝原因
|
||||
applyTime: string
|
||||
completeTime?: string
|
||||
}
|
||||
|
||||
// ==================== 店铺相关 ====================
|
||||
|
||||
/** 店铺信息 */
|
||||
export interface ShopInfo {
|
||||
id: string
|
||||
name: string
|
||||
logo: string
|
||||
phone: string
|
||||
address: string
|
||||
businessHours: string // 营业时间
|
||||
description?: string
|
||||
}
|
||||
|
||||
// ==================== 统计相关 ====================
|
||||
|
||||
/** 商户统计数据 */
|
||||
export interface MerchantStats {
|
||||
todayOrders: number // 今日订单
|
||||
pendingOrders: number // 待处理订单
|
||||
todaySales: number // 今日销售额
|
||||
totalGoods: number // 商品总数
|
||||
lowStockGoods: number // 库存预警商品数
|
||||
pendingSettlement: number // 待结算金额
|
||||
}
|
||||
Reference in New Issue
Block a user