@fle-ui/plus-goods-detail-drawer
Version:
@fle-ui/plus-goods-detail-drawer
345 lines (344 loc) • 11.4 kB
TypeScript
import type { DrawerProps } from 'antd';
export interface SalesType {
/** 是否支持代发 */
isOnce: boolean;
/** 是否支持集采 */
isPurchase: boolean;
}
export interface SpecItem {
/** 规格属性id */
id: string;
/** 规格属性名称 */
name: string;
/** 规格属性值 */
value: string;
/** 规格属性值id */
valueId: string;
}
export interface SkuListItem {
/** 商品图片 */
image: string;
/** 商品价格 */
price: number;
/** 商品规格属性列表 */
specList: SpecItem[];
/** 商品规格属性排序 */
skuPropertyOrder: string;
}
export interface BasicInfo {
/** 商品图片 */
images: string[];
/** 商品视频 */
video: {
url: string;
cover: string;
};
/** 商品名称 */
name: string;
/** 商品描述 */
desc: string;
/** 商品卖点 */
sellingPoint: string;
/** 商品库存 */
stock: number;
/** 商品品牌 */
brand: string;
/** 商品货号 */
goodsNo: string;
/** 商品单位 */
unit: string;
/** 供应商 */
supplier: string;
/** 商品分类 */
category: string;
/** 商品税码 */
taxCode: string;
/** 商品发票类型 */
invoiceType: string;
/** 商品型号 */
modelNo: string;
/** 采购员 */
purchaser: string;
/** 商品条码 */
upc: string;
/** 商品标签 */
tag: string;
/** 适用行业 */
industry: string;
/** 适用场景 */
scene: string;
/** 适用人群 */
befitPerson: string;
/** 适用送礼对象 */
befitPresent: string;
/** 商品风格 */
style: string;
/** 商品包装 */
packaging: string;
/** 包装规格 */
suit: string;
/** 上市时间 */
marketTime: string;
/** 是否支持贴标 */
isPrintLogo: boolean;
/** 是否支持定制 */
isCustom: boolean;
/** 京东智慧采购价 */
jdWisdomPurchasePrice: string;
/** 京东智慧采购链接 */
jdWisdomPurchaseUrl: string;
/** 第三方链接 */
thirdUrl: string;
/** 是否存在规格 */
isExistSpec: boolean;
/** 商品规格列表 */
skuList: SkuListItem[];
[key: string]: any;
}
export interface SkuPriceListItem {
/** 69码 */
upc: string;
/** 商品编号 */
goodsNo: string;
/** 采购价 */
purchasePrice: string;
/** 销售价 */
salePrice: string;
/** 市场价 */
marketPrice: string;
/** 商品规格属性排序 */
skuPropertyOrder: string;
}
export interface SalePriceItem {
/** 最小采购价 */
purchasePriceMin: string;
/** 最大采购价 */
purchasePriceMax: string;
/** 最小销售价 */
salePriceMin: string;
/** 最大销售价 */
salePriceMax: string;
/** 最小市场价 */
marketPriceMin: string;
/** 最大市场价 */
marketPriceMax: string;
/** 商品sku列表 */
skuPriceList: SkuPriceListItem[];
}
export interface StockInfo {
/** 库存数 */
stock: number;
/** 是否支持现货 */
isSupportSpot: boolean;
/** 是否支持订货 */
isSupportContract: boolean;
/** 箱规 */
boxNumber: number;
/** 出货时间 */
shipmentDay: number;
/** 订货最小数量 */
contractMin: number;
/** 订货最大数量 */
contractMax: number;
/** 订货范围 */
reserveList: {
/** 订货数量 */
number: number;
/** 预计出货时间 */
shipmentDay: number;
}[];
/** 商品sku列表 */
skuStockList: {
/** 商品规格属性排序 */
skuPropertyOrder: string;
/** 商品库存 */
stock: number;
}[];
}
export interface PurchaseStairListItem {
/** 最小数量 */
minNum: number;
/** 销售价 */
salePrice: string;
}
export interface OrderInfoListItem {
/** 下单信息 */
label: string;
/** 下单提示 */
placeholder: string;
/** 是否必填 */
isMust: string;
}
export interface SampleSalesInfo {
/** 是否支持拿样 */
isSupportSample: boolean;
/** 样品价格 */
samplePrice: string;
/** 样品限购类型 1: 无限制 2: 限购总数 3: 按规格限购 */
sampleLimitType: 1 | 2 | 3;
/** 样品限购数量 */
sampleLimitTotal: number | null;
/** 样品剩余限购数量 */
residueLimitTotal: number | null;
/** 样品限购规则 1: 按企业限售 2: 按人限售 */
sampleLimitRules: 1 | 2;
/** 样品限购规则数量 */
sampleLimitRulesNum: number | null;
/** 样品价格 */
skuPriceList: {
/** 样品价格 */
samplePrice: string;
/** 样品限购数量 */
sampleLimitNum: number;
/** 样品供应商样品价格 */
supplierSamplePrice: string;
/** 商品规格属性排序 */
skuPropertyOrder: string;
}[];
/** 样品库存列表 */
skuStockList: {
/** 商品规格属性排序 */
skuPropertyOrder: string;
/** 样品库存 */
stock: number;
}[];
}
export interface SalesInfo {
/** 价格有效期 */
priceEffective: string;
/** 代发价格信息 */
onceInfo: Partial<SalePriceItem> | null;
/** 集采价格信息 */
purchaseInfo: Partial<SalePriceItem & {
/** 计量单位 */
measureUnit: string;
/** 是否包含税 */
isContainsTax: boolean;
/** 销售类型 1: 按阶梯定价 2: 按规格定价 */
pricingType: 1 | 2;
/** 阶梯价 */
stairList: PurchaseStairListItem[];
}> | null;
/** 样品信息 */
sampleSalesInfo: Partial<SampleSalesInfo> | null;
/** 库存信息 */
stockInfo: Partial<StockInfo> | null;
/** 重量体积 */
weightVolumeInfo: {
/** 单位重量 */
weightText: string;
/** 包装体积 */
volumeText: string;
} | null;
/** 售后服务 */
afterSalesInfo: {
/** 7天无理由退货 */
isAfterSales: boolean;
} | null;
/** 下单信息 */
orderInfoList: OrderInfoListItem[] | null;
}
export type FreightInfoType = {
/** 运费名称 */
freightName: string;
/** 计费模式 按件计费 按重量计费 */
chargeMode: string;
/** 不发货地区 */
noDeliveryRegionNames: string;
/** 是否包邮 */
isFreeShipping: boolean;
/** 运费类型 1: 运费模板 2: 运费说明 */
freightType: 1 | 2;
/** 运费说明 */
freightDescription: string;
/** 运费规则 */
rules: {
/** 配送地区 */
regionNames: string;
/** 运费规则 */
rateText: string;
}[];
};
export interface FreightInfo {
/** 代发运费信息 */
onceFreightInfo: FreightInfoType | null;
/** 集采运费信息 */
purchaseFreightInfo: FreightInfoType | null;
/** 样品运费信息 */
sampleFreightInfo: FreightInfoType | null;
}
export interface GoodsDetail {
/** 商品素材列表 */
materialList: {
/** 素材文件url */
fileUrl: string;
/** 素材文件名称 */
fileName: string;
/** 素材文件类型 */
fileMime: string;
}[];
/** 商品详情 */
detail: string;
}
export interface GoodsInfo {
/** 是否是自有商品 */
isSelf?: boolean;
/** 是否是子供应商 */
isSubSupplier?: boolean;
/** 销售类型 */
salesType: Partial<SalesType>;
/** 基础信息 */
basicInfo: Partial<BasicInfo>;
/** 销售信息 */
salesInfo: Partial<SalesInfo>;
/** 运费信息 */
freightInfo: Partial<FreightInfo>;
/** 商品素材/详情 */
goodsDetail: Partial<GoodsDetail>;
}
export interface AuditInfo {
/** 审核状态 10: 审核中 20: 审核通过 -10: 审核不通过 -20: 审核撤回 */
status: 10 | 20 | -10 | -20;
/** 审核类型 10: 交易信息 20: 基础信息 30: 商品下架 40: 商品移除 */
changeType: 10 | 20 | 30 | 40;
/** 审核原因 */
applyReason: string;
/** 驳回原因 */
rejectReason: string;
/** 变更前内容 */
beforeContent: GoodsInfo;
/** 变更后内容 */
changeContent: GoodsInfo;
}
export type RequestData<T> = {
data: T | undefined;
success?: boolean;
} & Record<string, any>;
export type HideFieldsType = 'salesType' | 'basicInfo' | 'basicInfo.video' | 'basicInfo.images' | 'basicInfo.name' | 'basicInfo.desc' | 'basicInfo.sellingPoint' | 'basicInfo.goodsNo' | 'basicInfo.modelNo' | 'basicInfo.taxCode' | 'basicInfo.brand' | 'basicInfo.unit' | 'basicInfo.supplier' | 'basicInfo.category' | 'basicInfo.befitPerson' | 'basicInfo.befitPresent' | 'basicInfo.style' | 'basicInfo.packaging' | 'basicInfo.suit' | 'basicInfo.marketTime' | 'basicInfo.tag' | 'basicInfo.industry' | 'basicInfo.scene' | 'basicInfo.skuList' | 'basicInfo.isPrintLogo' | 'basicInfo.isCustom' | 'basicInfo.jdWisdomPurchasePrice' | 'basicInfo.jdWisdomPurchaseUrl' | 'basicInfo.thirdUrl' | 'basicInfo.purchaser' | 'basicInfo.upc' | 'basicInfo.invoiceType' | 'salesInfo' | 'salesInfo.priceEffective' | 'salesInfo.onceInfo' | 'salesInfo.onceInfo.purchasePrice' | 'salesInfo.onceInfo.salePrice' | 'salesInfo.onceInfo.marketPrice' | 'salesInfo.onceInfo.price' | 'salesInfo.purchaseInfo' | 'salesInfo.purchaseInfo.measureUnit' | 'salesInfo.purchaseInfo.isContainsTax' | 'salesInfo.purchaseInfo.pricingType' | 'salesInfo.purchaseInfo.purchasePrice' | 'salesInfo.purchaseInfo.marketPrice' | 'salesInfo.purchaseInfo.stairList' | 'salesInfo.purchaseInfo.price' | 'salesInfo.sampleSalesInfo' | 'salesInfo.sampleSalesInfo.supportSample' | 'salesInfo.sampleSalesInfo.price' | 'salesInfo.sampleSalesInfo.limitTotal' | 'salesInfo.sampleSalesInfo.rules' | 'salesInfo.stockInfo' | 'salesInfo.stockInfo.supplyMode' | 'salesInfo.stockInfo.boxNumber' | 'salesInfo.stockInfo.shipmentDay' | 'salesInfo.stockInfo.stock' | 'salesInfo.stockInfo.reserveList' | 'salesInfo.weightVolumeInfo' | 'salesInfo.weightVolumeInfo.weight' | 'salesInfo.weightVolumeInfo.volume' | 'salesInfo.afterSalesInfo' | 'salesInfo.afterSalesInfo.isAfterSales' | 'salesInfo.orderInfoList' | 'freightInfo' | 'freightInfo.onceFreightInfo' | 'freightInfo.purchaseFreightInfo' | 'freightInfo.sampleFreightInfo' | 'goodsDetail' | 'goodsDetail.materialList' | 'goodsDetail.detail';
export interface GoodsDetailDrawerProps<DataSource = GoodsInfo & AuditInfo> extends DrawerProps {
/** 展示类型 detail: 商品详情 audit: 审核变更 readAudit: 查看审核 */
type?: 'detail' | 'audit' | 'readAudit';
/** 弹窗开关 */
open?: boolean;
/** 隐藏字段 */
/**
* 需要隐藏的字段,支持传入各信息对象的字段名数组
* 例如:['isOnce', 'name', 'stock', 'freightTemplate', 'detail']
*/
hideFields?: HideFieldsType[];
/** 关闭弹窗 */
onClose?: () => void;
/** 请求数据 */
request?: () => Promise<RequestData<Partial<DataSource>>>;
/** 通过审核 */
onPass?: () => void;
/** 驳回审核 */
onReject?: (reason: string) => void;
/** 撤回变更 */
onWithdraw?: () => void;
}
export interface GoodsDetailDrawerRef {
data: Partial<GoodsInfo & AuditInfo> | null;
loading: boolean;
refresh: () => Promise<Partial<GoodsInfo & AuditInfo> | null>;
}