UNPKG

@fle-ui/plus-goods-detail-drawer

Version:

@fle-ui/plus-goods-detail-drawer

345 lines (344 loc) 11.4 kB
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>; }