///
import { LayoutConfig } from '../../pro/Selector/types';
/**
* SKU Card 文本样式配置
*/
export interface SkuCardTextConfig {
/** 是否显示 */
visible?: boolean;
/** 字体大小 */
fontSize?: number;
/** 颜色 */
color?: string;
/** 字体粗细 */
fontWeight?: 'normal' | 'bold' | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900;
/** 展示行数 */
lineClamp?: number;
}
/**
* SKU Card 图片配置
*/
export interface SkuCardImageConfig {
/** 是否显示 */
visible?: boolean;
/** 宽度 */
width?: number;
/** 高度 */
height?: number;
/** 圆角 */
borderRadius?: number | string;
/** 边框 */
border?: string;
}
/**
* SKU Card 禁用文本配置
*/
export interface SkuCardDisabledTextConfig extends Omit {
/** 文本(可能是多语言) */
text?: string;
}
/**
* SKU Card 配置
*/
export interface SkuCardConfig {
/** 主标题配置 */
title?: SkuCardTextConfig;
/** 副标题配置 */
subTitle?: SkuCardTextConfig;
/** 价格配置 */
price?: Omit;
/** 图片配置 */
image?: SkuCardImageConfig;
/**
* @description 是否在「组合规格选项卡片(VariantCard)」展示价格
* - 默认不展示,避免影响现有业务 UI
*/
variantPriceVisible?: boolean;
/** 禁用文本配置 */
disabledText?: SkuCardDisabledTextConfig;
}
/**
* SKU store状态类型
*/
export interface SkuSelectionState {
/** 数据源 */
dataSource: any;
/** 原始值 */
value: Record;
/** 配置 */
config: {
overSold?: boolean;
};
/** 货币符号 */
symbol: string;
/** Selector数据源 */
selectorDataSource: any[];
/** Selector识别的值 */
selectorValue: Record;
/** SKU Card 配置 */
skuCardConfig: SkuCardConfig;
style?: React.CSSProperties;
/** 样式配置 */
customConfig?: {
/** 弹窗宽度 */
modalWidth?: number | string;
/** 选项布局 */
selectorLayout?: LayoutConfig | null;
};
}
/** SKU Card 默认配置 */
export declare const defaultSkuCardConfig: SkuCardConfig;
export interface IProps {
/** 数据源 */
dataSource: DataSource;
/** 原始值 */
value: SkuValue;
/** 配置 */
config?: {
/** 是否禁用 */
overSold?: 0 | 1;
};
/** SKU Card 配置 */
skuCardConfig?: SkuCardConfig;
/** 选中变更回调 */
onChange: (value: SkuValue) => void;
/** 自定义滚动容器 */
customScrollParent?: HTMLElement | string;
/** 自定义样式 */
style?: React.CSSProperties;
/** 自定义配置 */
customConfig?: {
/** 弹窗宽度 */
modalWidth?: number | string;
/** 选项布局 */
selectorLayout?: LayoutConfig | null;
};
}
export interface DataSource {
/** 单规格组数据 */
option_group?: Array;
/** 组合规格组装后的数据 */
variant?: Array;
/** 组合规格组数据 */
variant_group?: Array;
/** 套餐商品组数据 */
bundle_group?: Array;
}
/**
* 单规格组数据
*/
export interface OptionGroupItem {
/** 创建者id */
create_account_id?: number;
/** 创建时间 */
created_at?: string;
/** 删除时间 */
deleted_at?: string | null;
/** 模板id */
template_id?: number;
/** 更新者id */
update_account_id?: number;
/** 更新时间 */
updated_at?: string;
/** 单规格组id */
id?: number;
/** 是否启用 */
is_enabled?: 0 | 1;
/** 是否多选 */
is_multiple?: 0 | 1;
/** 最大选择数量 */
max_quantity?: number;
/** 最小选择数量 */
min_quantity?: number;
/** 单规格组名称 */
name?: string;
/** 单规格组下规格数据 */
option_item?: Array;
/** 商品id */
product_id?: number;
/** 是否必选 */
required?: 0 | 1;
/** 店铺id */
shop_id?: number;
/** 排序 */
sort?: number;
/** 状态 */
status?: 0 | 1;
}
/**
* 单规格组下选项数据
*/
export interface OptionItem {
/** 创建者id */
create_account_id?: number;
/** 创建时间 */
created_at?: string;
/** 删除时间 */
deleted_at?: string | null;
/** 模板id */
template_id?: number;
/** 更新者id */
update_account_id?: number;
/** 更新时间 */
updated_at?: string;
/** 加价 */
add_price?: string;
/** 封面 */
cover?: string;
/** 描述 */
description?: string;
/** 规格id */
id?: number;
/** 是否启用 */
is_enabled?: 0 | 1;
/** 最大选择数量 */
max_quantity?: number;
/** 规格名称 */
name?: string;
/** 规格组id */
option_group_id?: number;
/** 原价 */
original_price?: string;
/** 商品id */
product_id?: number;
/** 店铺id */
shop_id?: number;
/** 排序 */
sort?: number;
/** 状态 */
status?: 0 | 1;
}
/**
* 组合规格组数据
*/
export interface VariantGroupItem {
/** 创建者id */
create_account_id?: number;
/** 创建时间 */
created_at?: string;
/** 删除时间 */
deleted_at?: string | null;
/** 更新者id */
update_account_id?: number;
/** 更新时间 */
updated_at?: string;
/** 组合规格组id */
id?: number;
/** 组合规格组名称 */
name?: string;
/** 位置id */
position_id?: number;
/** 商品id */
product_id?: number;
/** 店铺id */
shop_id?: number;
/** 排序 */
sort?: number;
/** 状态 */
status?: 0 | 1;
/** 组合规格组下选项数据 */
variant_item?: Array;
}
/**
* 组合规格组下选项数据
*/
export interface VariantItem {
/** 创建者id */
create_account_id?: number;
/** 创建时间 */
created_at?: string;
/** 删除时间 */
deleted_at?: string | null;
/** 更新者id */
update_account_id?: number;
/** 更新时间 */
updated_at?: string;
/** 店铺id */
shop_id?: number;
/** 排序 */
sort?: number;
/** 规格id */
id?: number;
/** 是否默认 */
is_default?: 0 | 1;
/** 变体名称 */
name?: string;
/** 位置id */
position_id?: number;
/** 商品id */
product_id?: number;
/** 状态 */
status?: 0 | 1;
/** 组合规格组id */
variant_group_id?: number;
}
/**
* 组合规格商品数据
*/
export interface VariantProductItem {
/** 创建者id */
create_account_id?: number;
/** 创建时间 */
created_at?: string;
/** 更新者id */
update_account_id?: number;
/** 更新时间 */
updated_at?: string;
/** 条形码 */
barcode?: string;
/** 基础价格 */
base_price?: string;
/** 箱规数量 */
box_specification_quantity?: number;
/** 编码 */
code?: string;
/** 成本价格 */
cost_price?: string;
/** 封面 */
cover?: string;
/** 描述 */
description?: string | null;
/** 是否禁用 */
disabled?: 0 | 1;
/** 组合规格商品id */
id?: number;
/** 是否收税 */
is_charge_tax?: 0 | 1;
/** 是否发货 */
is_delivery?: 0 | 1;
/** 是否收税 */
is_gst?: 0 | 1;
/** 是否跟踪库存 */
is_track?: 0 | 1;
/** 名称 */
name?: Record;
/** 开售重量 */
open_sold_weight?: number;
/** 原价 */
original_price?: string;
/** 是否超卖 */
over_sold?: 0 | 1;
/** 价格 */
price?: string;
/** 商品id */
product_id?: number;
/** 折扣类型 */
rebate_type?: string;
/** 折扣值 */
rebate_value?: number;
/** 标题 */
title?: Record;
/** 单位 */
unit?: string;
/** 单位值 */
unit_value?: number;
/** 重量单位 */
weight_unit?: string;
/** 重量值 */
weight_value?: string;
}
/**
* 套餐商品组数据
*/
export interface BundleGroupItem {
/** 店铺id */
shop_id?: number;
/** 排序 */
sort?: number;
/** 套餐id */
id?: number;
/** 最大选择数量 */
max_quantity?: number;
/** 最小选择数量 */
min_quantity?: number;
/** 套餐名称 */
name?: string;
/** 商品id */
product_id?: number;
/** 套餐商品组数据 */
bundle_item?: Array;
}
/**
* 套餐商品组下选项数据
*/
export interface BundleItem {
/** 店铺id */
shop_id?: number;
/** 排序 */
sort?: number;
/** 条形码 */
barcode?: string;
/** 套餐商品id */
bundle_product_id?: number;
/** 套餐商品变体id */
bundle_variant_id?: number;
/** 编码 */
code?: string;
/** 封面 */
cover?: string;
/** 扩展id */
extension_id?: number;
/** 扩展类型 */
extension_type?: string;
/** 套餐商品组id */
group_id?: number;
/** 套餐商品id */
id: string | number;
/** 是否跟踪库存 */
is_track?: 0 | 1;
/** 最大选择数量 */
max_quantity?: number;
/** 单规格组数据 */
option_group?: Array;
/** 是否允许超卖 */
over_sold?: 0 | 1;
/** 价格 */
price?: string;
/** 价格类型: mark_up==>加价 | mark_down==>减价 */
price_type?: 'mark_up' | 'mark_down';
/** 价格类型扩展: product_price==>商品价格 */
price_type_ext?: '' | 'product_price';
/** 商品id */
product_id?: number;
/** 商品价格 */
product_price?: string;
/** 商品副标题 */
product_subtitle?: string;
/** 库存数量 */
stock_quantity?: number;
/** 标题 */
title?: string;
}
/**
* sku value
*/
export interface SkuValue {
/** 商品id */
product_id: number;
/** 多规格商品id */
product_variant_id: number;
/** 多规格商品选项字符串 */
product_option_string?: string;
/** 套餐商品组数据 */
bundle: Array;
/** 价格 */
price?: string | number;
/** 单规格组数据 */
option: Array;
}
/**
* Selector值原子类型
*/
export interface SelectorValueAtom {
/** 数据 */
data: Record;
/** 数量 */
quantity: number;
/** 总价 */
totalPrice: string | number;
/** 值 */
value: number | string;
}