import { ComponentMetadata } from '@alilc/lowcode-types'; import snippets from './snippets'; const SkuCardMeta: ComponentMetadata = { componentName: 'SkuCard', title: 'SkuCard', docUrl: '', screenshot: '', category: '数据展示', devMode: 'proCode', npm: { package: '@pisell/private-materials', version: '1.0.0', exportName: 'SkuCard', main: 'src/index.tsx', destructuring: true, subName: '', }, props: [ { title: "数据", display: "block", type: "group", items: [ { name: "dataSource", title: { label: "数据源" }, propType: "object", setter: "JsonSetter", supportVariable: true, } ] }, { name: 'skuCardConfig.displayMode', title: { label: '展示信息' }, setter: { componentName: 'RadioGroupSetter', props: { options: [ { label: 'A1', value: 'display_a1' }, { label: 'A2', value: 'display_a2' }, { label: 'A5', value: 'display_a5' }, { label: 'A9', value: 'display_a9' }, { label: '自定义', value: 'display_custom' }, ], }, initialValue: 'display_a1', }, }, { name: 'skuCardConfig.layoutDirection', title: { label: '展示样式' }, setter: { componentName: 'RadioGroupSetter', props: { options: [ { label: '横向', value: 'row' }, { label: '纵向', value: 'column' }, ], }, initialValue: 'row', }, }, { name: 'skuCardConfig.background', title: { label: '背景色' }, setter: 'ColorSetter', defaultValue: '#ffffff', }, { name: 'skuCardConfig.paddingY', title: { label: '上下padding' }, setter: 'NumberSetter', defaultValue: 8, }, { name: 'skuCardConfig.paddingX', title: { label: '左右padding' }, setter: 'NumberSetter', defaultValue: 8, }, { name: 'skuCardConfig.marginY', title: { label: '上下间距' }, setter: 'NumberSetter', defaultValue: 0, }, { name: 'skuCardConfig.marginX', title: { label: '左右间距' }, setter: 'NumberSetter', defaultValue: 0, }, { name: 'skuCardConfig.radius', title: { label: '圆角' }, setter: 'NumberSetter', defaultValue: 12, }, { name: 'skuCardConfig.isBorderVisible', title: { label: '显示边框' }, propType: 'bool', defaultValue: false, setter: 'BoolSetter', }, { name: 'skuCardConfig.borderWidth', title: { label: '边框粗细' }, setter: 'NumberSetter', defaultValue: 1, }, { name: 'skuCardConfig.borderColor', title: { label: '边框颜色' }, setter: 'ColorSetter', defaultValue: '#ffffff', }, { name: 'skuCardConfig.isFoldable', title: { label: '展开收起' }, defaultValue: true, setter: 'BoolSetter', condition(target) { return target.getProps().getPropValue('skuCardConfig.displayMode') === 'display_a9' }, }, { name: 'skuCardConfig.slot', title: { label: '开启插槽' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, { title: '图片区域', type: 'group', display: 'entry', name: 'skuImageConfig', items: [ { name: 'skuImageConfig.isCover', title: { label: '商品图片' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, // { // name: 'skuImageConfig.isVideo', // title: { label: '商品视频' }, // propType: 'bool', // defaultValue: true, // setter: 'BoolSetter', // }, // { // name: 'skuImageConfig.isMultiMode', // title: { label: '多图模式' }, // propType: 'bool', // defaultValue: true, // setter: 'BoolSetter', // }, { name: 'skuImageConfig.width', title: { label: '商品图片宽度' }, setter: 'StringSetter', defaultValue: '180px', }, { name: 'skuImageConfig.height', title: { label: '商品图片高度' }, setter: 'StringSetter', defaultValue: '126px', }, { name: 'skuImageConfig.isTextFallback', title: { label: '无图使用文本图片' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuImageConfig.background', title: { label: '背景色' }, setter: 'ColorSetter', defaultValue: '#ffffff', }, { name: 'skuImageConfig.radius', title: { label: '圆角' }, setter: 'NumberSetter', defaultValue: 12, }, { name: 'skuImageConfig.slot', title: { label: '开启插槽' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, { name: 'skuImageConfig.slotPosition', title: { label: '插槽位置' }, setter: { componentName: 'RadioGroupSetter', props: { options: [ { label: '左上', value: 'left_top' }, { label: '左下', value: 'left_bottom' }, { label: '右上', value: 'right_top' }, { label: '右下', value: 'right_bottom' }, ], }, initialValue: 'left_top', }, }, ], }, { name: 'skuTextConfig', title: '文本区域', type: 'group', display: 'entry', items: [ { title: '商品名称', type: 'group', display: 'entry', name: 'skuNameConfig', items: [ { name: 'skuTextConfig.skuNameConfig.isOpen', title: { label: '开启商品名称' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuNameConfig.value', title: { label: 'Title' }, propType: "string", setter: "PisellI18nSetter", }, { name: 'skuTextConfig.skuNameConfig.fontSize', title: { label: '标题文本大小' }, setter: 'NumberSetter', defaultValue: 18, }, { name: 'skuTextConfig.skuNameConfig.fontWeight', title: { label: '标题文本粗细' }, setter: 'NumberSetter', defaultValue: 600, }, { name: 'skuTextConfig.skuNameConfig.color', title: { label: '标题文本颜色' }, setter: 'ColorSetter', defaultValue: '#101828', }, { name: 'skuTextConfig.skuNameConfig.ellipsisCount', title: { label: '超出省略' }, setter: 'NumberSetter', defaultValue: 1, }, ], }, { title: '副标题/简述', type: 'group', display: 'entry', name: 'skuSubtitleConfig', items: [ { name: 'skuTextConfig.skuSubtitleConfig.isOpen', title: { label: '开启副标题/简述' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuSubtitleConfig.value', title: { label: '副标题' }, propType: "string", setter: "PisellI18nSetter", initialValue: { 'zh-CN': '副标题', 'en': 'Subtitle' }, }, { name: 'skuTextConfig.skuSubtitleConfig.fontSize', title: { label: '副标题文本大小' }, setter: 'NumberSetter', defaultValue: 14, }, { name: 'skuTextConfig.skuSubtitleConfig.fontWeight', title: { label: '副标题文本粗细' }, setter: 'NumberSetter', defaultValue: 400, }, { name: 'skuTextConfig.skuSubtitleConfig.color', title: { label: '副标题文本颜色' }, setter: 'ColorSetter', defaultValue: '#101828', }, { name: 'skuTextConfig.skuSubtitleConfig.ellipsisCount', title: { label: '超出省略' }, setter: 'NumberSetter', defaultValue: 1, }, ], }, { title: '价格', type: 'group', display: 'entry', name: 'skuPriceConfig', items: [ { name: 'skuTextConfig.skuPriceConfig.isOpen', title: { label: '开启价格' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuPriceConfig.isPrice', title: { label: '显示售价' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuPriceConfig.priceFontSize', title: { label: '售价文本大小' }, setter: 'NumberSetter', defaultValue: 18, }, { name: 'skuTextConfig.skuPriceConfig.priceFontWeight', title: { label: '售价文本粗细' }, setter: 'NumberSetter', defaultValue: 600, }, { name: 'skuTextConfig.skuPriceConfig.priceColor', title: { label: '售价文本颜色' }, setter: 'ColorSetter', defaultValue: '#101828', }, { name: 'skuTextConfig.skuPriceConfig.isShowZeroPrice', title: { label: '是否显示0元' }, propType: 'bool', setter: 'BoolSetter', defaultValue: true, condition(target) { return target.getProps().getPropValue('skuTextConfig.skuPriceConfig.isPrice') === true }, }, { name: 'skuTextConfig.skuPriceConfig.isShowFreePrice', title: { label: '是否显示free' }, propType: 'bool', setter: 'BoolSetter', defaultValue: false, condition(target) { return target.getProps().getPropValue('skuTextConfig.skuPriceConfig.isShowZeroPrice') === true }, }, { name: 'skuTextConfig.skuPriceConfig.isOriginPrice', title: { label: '显示原价' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuPriceConfig.originPriceFontSize', title: { label: '原价文本大小' }, setter: 'NumberSetter', defaultValue: 16, }, { name: 'skuTextConfig.skuPriceConfig.originPriceFontWeight', title: { label: '原价文本粗细' }, setter: 'NumberSetter', defaultValue: 400, }, { name: 'skuTextConfig.skuPriceConfig.originPriceColor', title: { label: '原价文本颜色' }, setter: 'ColorSetter', defaultValue: '#667085', }, { name: 'skuTextConfig.skuPriceConfig.isTaxPrice', title: { label: '显示税价' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuPriceConfig.isCustomText', title: { label: '自定义文本' }, propType: 'bool', defaultValue: false, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuPriceConfig.customTextType', title: { label: '自定义文本类型' }, setter: { componentName: 'RadioGroupSetter', props: { options: [ { label: '从起点', value: 'from' }, { label: '终点', value: 'end' }, { label: '区间', value: 'range' }, ], }, initialValue: 'from', }, condition(target) { return target.getProps().getPropValue('skuTextConfig.skuPriceConfig.isCustomText') === true }, }, { name: 'skuTextConfig.skuPriceConfig.customTextValue', title: { label: '值' }, setter: 'NumberSetter', defaultValue: 0, condition(target) { const customTextType = target.getProps().getPropValue('skuTextConfig.skuPriceConfig.customTextType') return customTextType !== 'range' && target.getProps().getPropValue('skuTextConfig.skuPriceConfig.isCustomText') === true }, }, { name: 'skuTextConfig.skuPriceConfig.customTextMinValue', title: { label: '最小值' }, setter: 'NumberSetter', defaultValue: 0, condition(target) { const customTextType = target.getProps().getPropValue('skuTextConfig.skuPriceConfig.customTextType') return customTextType === 'range' && target.getProps().getPropValue('skuTextConfig.skuPriceConfig.isCustomText') === true }, }, { name: 'skuTextConfig.skuPriceConfig.customTextMaxValue', title: { label: '最大值' }, setter: 'NumberSetter', defaultValue: 0, condition(target) { const customTextType = target.getProps().getPropValue('skuTextConfig.skuPriceConfig.customTextType') return customTextType === 'range' && target.getProps().getPropValue('skuTextConfig.skuPriceConfig.isCustomText') === true }, }, ], }, { title: '库存', type: 'group', display: 'entry', name: 'skuStockConfig', items: [ { name: 'skuTextConfig.skuStockConfig.isOpen', title: { label: '开启库存' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuStockConfig.fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 14, }, { name: 'skuTextConfig.skuStockConfig.fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 500, }, { name: 'skuTextConfig.skuStockConfig.color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: '#667085', }, { name: 'skuTextConfig.skuStockConfig.customText', title: { label: '自定义文本' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, { title: '容量', type: 'group', display: 'entry', name: 'skuCapacityConfig', items: [ { name: 'skuTextConfig.skuCapacityConfig.isOpen', title: { label: '开启容量' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuCapacityConfig.fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 14, }, { name: 'skuTextConfig.skuCapacityConfig.fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 500, }, { name: 'skuTextConfig.skuCapacityConfig.color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: '#667085', }, { name: 'skuTextConfig.skuCapacityConfig.customText', title: { label: '自定义文本' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, { title: '倒计时', type: 'group', display: 'entry', name: 'skuCountdownConfig', items: [ { name: 'skuTextConfig.skuCountdownConfig.isOpen', title: { label: '开启倒计时' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuCountdownConfig.fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 14, }, { name: 'skuTextConfig.skuCountdownConfig.fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 500, }, { name: 'skuTextConfig.skuCountdownConfig.color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: '#D92D20', }, { name: 'skuTextConfig.skuCountdownConfig.customText', title: { label: '自定义文本' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, { title: '会员价标识', type: 'group', display: 'entry', name: 'skuMemberPriceConfig', items: [ { name: 'skuTextConfig.skuMemberPriceConfig.isOpen', title: { label: '开启会员价标识' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuMemberPriceConfig.isMemberPrice', title: { label: '显示会员价' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuMemberPriceConfig.fontSize', title: { label: '会员价文本大小' }, setter: 'NumberSetter', defaultValue: 18, }, { name: 'skuTextConfig.skuMemberPriceConfig.fontWeight', title: { label: '会员价文本粗细' }, setter: 'NumberSetter', defaultValue: 600, }, { name: 'skuTextConfig.skuMemberPriceConfig.color', title: { label: '会员价文本颜色' }, setter: 'ColorSetter', defaultValue: '#079455', }, { name: 'skuTextConfig.skuMemberPriceConfig.isIndicator', title: { label: '显示标识' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuMemberPriceConfig.indicatorBackground', title: { label: '背景色' }, setter: 'ColorSetter', defaultValue: '#079455', }, { name: 'skuTextConfig.skuMemberPriceConfig.indicatorPaddingY', title: { label: '上下padding' }, setter: 'NumberSetter', defaultValue: 4, }, { name: 'skuTextConfig.skuMemberPriceConfig.indicatorPaddingX', title: { label: '左右padding' }, setter: 'NumberSetter', defaultValue: 4, }, { name: 'skuTextConfig.skuMemberPriceConfig.indicatorMarginX', title: { label: '左右间距' }, setter: 'NumberSetter', defaultValue: 4, }, { name: 'skuTextConfig.skuMemberPriceConfig.indicatorRadius', title: { label: '圆角' }, setter: 'NumberSetter', defaultValue: 4, }, { name: 'skuTextConfig.skuMemberPriceConfig.isIndicatorBorder', title: { label: '显示边框' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuMemberPriceConfig.indicatorBorderWidth', title: { label: '边框粗细' }, setter: 'NumberSetter', defaultValue: 1, }, { name: 'skuTextConfig.skuMemberPriceConfig.indicatorBorderColor', title: { label: '边框颜色' }, setter: 'ColorSetter', defaultValue: '#079455', }, { name: 'skuTextConfig.skuMemberPriceConfig.indicatorFontSize', title: { label: '标识文本大小' }, setter: 'NumberSetter', defaultValue: 12, }, { name: 'skuTextConfig.skuMemberPriceConfig.indicatorFontWeight', title: { label: '标识文本粗细' }, setter: 'NumberSetter', defaultValue: 400, }, { name: 'skuTextConfig.skuMemberPriceConfig.indicatorColor', title: { label: '标识文本颜色' }, setter: 'ColorSetter', defaultValue: 'white', }, { name: "skuTextConfig.skuMemberPriceConfig.indicatorIcon", title: { label: '标识icon' }, propType: { type: "oneOfType", value: ["node"] }, setter: [{ componentName: "SlotSetter", initialValue: { type: "JSSlot", value: [ { componentName: "Icon", props: { type: "pisell2-arrow-right", size: 24, rotate: 0, spin: false, color: '#ffffff', }, }, ], }, }], }, { name: 'skuTextConfig.skuMemberPriceConfig.customText', title: { label: '自定义文本' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, { title: '标签区', type: 'group', display: 'entry', name: 'skuTagsConfig', items: [ { name: 'skuTextConfig.skuTagsConfig.isOpen', title: { label: '开启标签区' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: "skuTextConfig.skuTagsConfig.lists", title: { label: "标签组" }, setter: { componentName: "ArraySetter", props: { itemSetter: { componentName: "ObjectSetter", props: { config: { items: [ { name: "title", title: { label: "名称" }, propType: "string", setter: "PisellI18nSetter", isRequired: true, }, { name: "background", title: { label: "背景色" }, setter: "ColorSetter", defaultValue: '#FEF3F2', }, { name: 'paddingY', title: { label: '上下padding' }, setter: 'NumberSetter', defaultValue: 2, }, { name: 'paddingX', title: { label: '左右padding' }, setter: 'NumberSetter', defaultValue: 8, }, { name: 'radius', title: { label: '圆角' }, setter: 'NumberSetter', defaultValue: 4, }, { name: 'isBorder', title: { label: '显示边框' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'borderWidth', title: { label: '边框粗细' }, setter: 'NumberSetter', defaultValue: 1, }, { name: 'borderColor', title: { label: '边框颜色' }, setter: 'ColorSetter', defaultValue: '#FECDCA', }, { name: 'fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 12, }, { name: 'fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 500, }, { name: 'color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: '#B42318', }, ], }, }, initialValue: { title: '标签1', background: '#FEF3F2', paddingY: 2, paddingX: 8, radius: 4, isBorder: true, borderWidth: 1, borderColor: '#FECDCA', fontSize: 12, fontWeight: 500, color: '#B42318', }, }, }, }, }, { name: 'skuTextConfig.skuTagsConfig.marginX', title: { label: '左右间距' }, setter: 'NumberSetter', defaultValue: 4, }, // { // name: 'skuTagsConfig.size', // title: { label: '标签大小' }, // setter: { // componentName: 'RadioGroupSetter', // props: { // options: [ // { label: '小', value: 'small' }, // { label: '中', value: 'medium' }, // { label: '大', value: 'large' }, // ], // }, // initialValue: 'small', // }, // }, { name: 'skuTextConfig.skuTagsConfig.isShowAll', title: { label: '显示全部' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuTagsConfig.maxCount', title: { label: '最多显示几个' }, setter: 'NumberSetter', defaultValue: 4, condition(target) { return !target.getProps().getPropValue('skuTextConfig.skuTagsConfig.isShowAll'); }, }, ], }, { title: '时长', type: 'group', display: 'entry', name: 'skuDurationConfig', items: [ { name: 'skuTextConfig.skuDurationConfig.isOpen', title: { label: '开启时长' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuDurationConfig.fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 14, }, { name: 'skuTextConfig.skuDurationConfig.fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 500, }, { name: 'skuTextConfig.skuDurationConfig.color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: '#667085', }, { name: 'skuTextConfig.skuDurationConfig.customText', title: { label: '自定义文本' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, { title: '时间信息', type: 'group', display: 'entry', name: 'skuTimeConfig', items: [ { name: 'skuTextConfig.skuTimeConfig.isOpen', title: { label: '开启时间信息' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuTimeConfig.fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 14, }, { name: 'skuTextConfig.skuTimeConfig.fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 500, }, { name: 'skuTextConfig.skuTimeConfig.color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: '#667085', }, { name: 'skuTextConfig.skuTimeConfig.customText', title: { label: '自定义文本' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, { title: '资源信息', type: 'group', display: 'entry', name: 'skuResourceConfig', items: [ { name: 'skuTextConfig.skuResourceConfig.isOpen', title: { label: '开启资源信息' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuResourceConfig.fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 14, }, { name: 'skuTextConfig.skuResourceConfig.fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 500, }, { name: 'skuTextConfig.skuResourceConfig.color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: '#667085', }, { name: 'skuTextConfig.skuResourceConfig.customText', title: { label: '自定义文本' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, { title: '促销信息', type: 'group', display: 'entry', name: 'skuPromotionsConfig', items: [ { name: 'skuTextConfig.skuPromotionsConfig.isOpen', title: { label: '开启促销信息' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: "skuTextConfig.skuPromotionsConfig.lists", title: { label: "促销信息组" }, setter: { componentName: "ArraySetter", props: { itemSetter: { componentName: "ObjectSetter", props: { config: { items: [ { name: "title", title: { label: "名称" }, propType: "string", setter: "PisellI18nSetter", isRequired: true, }, { name: "background", title: { label: "背景色" }, setter: "ColorSetter", defaultValue: '#FEF3F2', }, { name: 'paddingY', title: { label: '上下padding' }, setter: 'NumberSetter', defaultValue: 2, }, { name: 'paddingX', title: { label: '左右padding' }, setter: 'NumberSetter', defaultValue: 8, }, { name: 'radius', title: { label: '圆角' }, setter: 'NumberSetter', defaultValue: 16, }, { name: 'isBorder', title: { label: '显示边框' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'borderWidth', title: { label: '边框粗细' }, setter: 'NumberSetter', defaultValue: 1, }, { name: 'borderColor', title: { label: '边框颜色' }, setter: 'ColorSetter', defaultValue: '#FECDCA', }, { name: 'fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 12, }, { name: 'fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 500, }, { name: 'color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: '#B42318', }, ], }, }, initialValue: { title: '促销信息1', background: '#FEF3F2', paddingY: 2, paddingX: 8, radius: 16, isBorder: true, borderWidth: 1, borderColor: '#FECDCA', fontSize: 12, fontWeight: 500, color: '#B42318', }, }, }, }, }, { name: 'skuTextConfig.skuPromotionsConfig.marginX', title: { label: '左右间距' }, setter: 'NumberSetter', defaultValue: 4, }, { name: 'skuTextConfig.skuPromotionsConfig.isShowAll', title: { label: '显示全部' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuTextConfig.skuPromotionsConfig.maxCount', title: { label: '最多显示几个' }, setter: 'NumberSetter', defaultValue: 4, condition(target) { return !target.getProps().getPropValue('skuTextConfig.skuPromotionsConfig.isShowAll'); }, }, ], }, { name: 'skuTextConfig.infoConfig.paddingY', title: { label: '上下间距' }, setter: 'NumberSetter', defaultValue: 0, }, { name: 'skuTextConfig.infoConfig.justifyContent', title: { label: '对齐方式 (横向)' }, setter: { componentName: 'RadioGroupSetter', props: { options: [ { label: '居中对齐', value: 'center' }, { label: '下对齐', value: 'end' }, { label: '上对齐', value: 'start' }, { label: '两端对齐', value: 'space-between' }, ], }, initialValue: 'center', }, }, { name: 'skuTextConfig.infoConfig.alignItems', title: { label: '对齐方式 (竖向)' }, setter: { componentName: 'RadioGroupSetter', props: { options: [ { label: '左对齐', value: 'start' }, { label: '右对齐', value: 'end' }, { label: '居中对齐', value: 'center' }, ], }, initialValue: 'start', }, }, { name: 'skuTextConfig.infoConfig.slot', title: { label: '插槽区域' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, { title: '操作区域', type: 'group', display: 'entry', name: 'skuActionConfig', items: [ { name: 'skuActionConfig.isOpen', title: { label: '开启操作区域' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuActionConfig.method', title: { label: '操作方式' }, setter: { componentName: 'RadioGroupSetter', props: { options: [ { label: 'icon', value: 'icon' }, { label: '单选', value: 'radio' }, { label: '多选', value: 'checkbox' }, { label: 'button', value: 'button' }, ], }, initialValue: 'icon', }, }, { name: 'skuActionConfig.iconMethod.icon', title: { label: 'icon选择' }, propType: { type: "oneOfType", value: ["node"] }, setter: [{ componentName: "SlotSetter", initialValue: { type: "JSSlot", value: [ { componentName: "Icon", props: { type: "pisell2-arrow-right", size: 24, rotate: 0, spin: false, color: '#ffffff', }, }, ], }, }], condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'icon' }, }, { name: 'skuActionConfig.iconMethod.background', title: { label: '背景色' }, setter: 'ColorSetter', defaultValue: '#000000', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'icon' }, }, { name: 'skuActionConfig.iconMethod.paddingY', title: { label: '上下padding' }, setter: 'NumberSetter', defaultValue: 10, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'icon' }, }, { name: 'skuActionConfig.iconMethod.paddingX', title: { label: '左右padding' }, setter: 'NumberSetter', defaultValue: 10, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'icon' }, }, { name: 'skuActionConfig.iconMethod.radius', title: { label: '圆角' }, setter: 'NumberSetter', defaultValue: 8, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'icon' }, }, { name: 'skuActionConfig.iconMethod.isBorder', title: { label: '显示边框' }, propType: 'bool', defaultValue: false, setter: 'BoolSetter', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'icon' }, }, { name: 'skuActionConfig.iconMethod.borderWidth', title: { label: '边框粗细' }, setter: 'NumberSetter', defaultValue: 1, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'icon' }, }, { name: 'skuActionConfig.iconMethod.borderColor', title: { label: '边框颜色' }, setter: 'ColorSetter', defaultValue: '#000000', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'icon' }, }, { name: 'skuActionConfig.radioMethod.icon', title: { label: 'icon选择' }, propType: { type: "oneOfType", value: ["node"] }, setter: [{ componentName: "SlotSetter", initialValue: { type: "JSSlot", value: [ { componentName: "Icon", props: { type: "pisell2-plus", size: 24, rotate: 0, spin: false, color: '#ffffff', }, }, ], }, }], condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'radio' }, }, { name: 'skuActionConfig.radioMethod.background', title: { label: '背景色' }, setter: 'ColorSetter', defaultValue: '#DC6803', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'radio' }, }, { name: 'skuActionConfig.radioMethod.paddingY', title: { label: '上下padding' }, setter: 'NumberSetter', defaultValue: 10, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'radio' }, }, { name: 'skuActionConfig.radioMethod.paddingX', title: { label: '左右padding' }, setter: 'NumberSetter', defaultValue: 10, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'radio' }, }, { name: 'skuActionConfig.radioMethod.radius', title: { label: '圆角' }, setter: 'NumberSetter', defaultValue: 60, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'radio' }, }, { name: 'skuActionConfig.radioMethod.isBorder', title: { label: '显示边框' }, propType: 'bool', defaultValue: false, setter: 'BoolSetter', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'radio' }, }, { name: 'skuActionConfig.radioMethod.borderWidth', title: { label: '边框粗细' }, setter: 'NumberSetter', defaultValue: 1, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'radio' }, }, { name: 'skuActionConfig.radioMethod.borderColor', title: { label: '边框颜色' }, setter: 'ColorSetter', defaultValue: '#DC6803', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'radio' }, }, // checkbox类型 { name: 'skuActionConfig.checkboxMethod.text', title: { label: '文案' }, setter: 'StringSetter', defaultValue: 'Option', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, { name: 'skuActionConfig.checkboxMethod.fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 16, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, { name: 'skuActionConfig.checkboxMethod.fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 600, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, { name: 'skuActionConfig.checkboxMethod.color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: '#344054', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, { name: 'skuActionConfig.checkboxMethod.background', title: { label: '背景色' }, setter: 'ColorSetter', defaultValue: '#ffffff', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, { name: 'skuActionConfig.checkboxMethod.paddingY', title: { label: '上下padding' }, setter: 'NumberSetter', defaultValue: 10, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, { name: 'skuActionConfig.checkboxMethod.paddingX', title: { label: '左右padding' }, setter: 'NumberSetter', defaultValue: 18, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, { name: 'skuActionConfig.checkboxMethod.radius', title: { label: '圆角' }, setter: 'NumberSetter', defaultValue: 8, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, { name: 'skuActionConfig.checkboxMethod.isBorder', title: { label: '显示边框' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, { name: 'skuActionConfig.checkboxMethod.borderWidth', title: { label: '边框粗细' }, setter: 'NumberSetter', defaultValue: 1, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, { name: 'skuActionConfig.checkboxMethod.borderColor', title: { label: '边框颜色' }, setter: 'ColorSetter', defaultValue: '#D0D5DD', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'checkbox' }, }, // button类型 { name: 'skuActionConfig.buttonMethod.text', title: { label: '文案' }, setter: 'StringSetter', defaultValue: 'Add', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.buttonMethod.fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 16, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.buttonMethod.fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 600, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.buttonMethod.color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: '#344054', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.buttonMethod.background', title: { label: '背景色' }, setter: 'ColorSetter', defaultValue: '#ffffff', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.buttonMethod.paddingY', title: { label: '上下padding' }, setter: 'NumberSetter', defaultValue: 10, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.buttonMethod.paddingX', title: { label: '左右padding' }, setter: 'NumberSetter', defaultValue: 18, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.buttonMethod.radius', title: { label: '圆角' }, setter: 'NumberSetter', defaultValue: 50, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.buttonMethod.isBorder', title: { label: '显示边框' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.buttonMethod.borderWidth', title: { label: '边框粗细' }, setter: 'NumberSetter', defaultValue: 1, condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.buttonMethod.borderColor', title: { label: '边框颜色' }, setter: 'ColorSetter', defaultValue: '#D0D5DD', condition(target) { return target.getProps().getPropValue('skuActionConfig.method') === 'button' }, }, { name: 'skuActionConfig.slot', title: { label: '开启插槽' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, { title: '额外功能', type: 'group', display: 'entry', name: 'skuExtraConfig', items: [ { name: 'skuExtraConfig.isOpen', title: { label: '开启额外功能' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuExtraConfig.isStepper', title: { label: '开启步进器' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuExtraConfig.stepperSize', title: { label: '步进器大小' }, setter: { componentName: 'RadioGroupSetter', props: { options: [ { label: '大', value: 'large' }, { label: '小', value: 'small' }, ], }, initialValue: 'small', }, }, { name: 'skuExtraConfig.stepperColor', title: { label: '步进器颜色' }, setter: 'ColorSetter', defaultValue: '#ffffff', }, { name: 'skuExtraConfig.isFavorite', title: { label: '开启收藏按钮' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuExtraConfig.favoritePosition', title: { label: '收藏按钮显示位置' }, setter: { componentName: 'RadioGroupSetter', props: { options: [ { label: '左上', value: 'left_top' }, { label: '左下', value: 'left_bottom' }, { label: '右上', value: 'right_top' }, { label: '右下', value: 'right_bottom' }, ], }, initialValue: 'left_top', }, }, { name: 'skuExtraConfig.favoriteIcon', title: { label: '收藏icon' }, propType: { type: "oneOfType", value: ["node"] }, setter: [{ componentName: "SlotSetter", initialValue: { type: "JSSlot", value: [ { componentName: "Icon", props: { type: "HeartFilled", size: 20, rotate: 0, spin: false, color: '#DC6803', }, }, ], }, }], }, { name: 'skuExtraConfig.favoriteBackground', title: { label: '背景色' }, setter: 'ColorSetter', defaultValue: '#ffffff', }, { name: 'skuExtraConfig.favoritePaddingY', title: { label: '上下padding' }, setter: 'NumberSetter', defaultValue: 8, }, { name: 'skuExtraConfig.favoritePaddingX', title: { label: '左右padding' }, setter: 'NumberSetter', defaultValue: 8, }, { name: 'skuExtraConfig.favoriteRadius', title: { label: '圆角' }, setter: 'NumberSetter', defaultValue: 12, }, { name: 'skuExtraConfig.isFavoriteBorder', title: { label: '显示边框' }, propType: 'bool', defaultValue: false, setter: 'BoolSetter', }, { name: 'skuExtraConfig.favoriteBorderWidth', title: { label: '边框粗细' }, setter: 'NumberSetter', defaultValue: 1, }, { name: 'skuExtraConfig.favoriteBorderColor', title: { label: '边框颜色' }, setter: 'ColorSetter', defaultValue: '#5d3f9f', }, { name: 'skuExtraConfig.isTooltipTag', title: { label: '开启悬浮标签' }, propType: 'bool', defaultValue: true, setter: 'BoolSetter', }, { name: 'skuExtraConfig.isTooltipSlot', title: { label: '开启悬浮插槽' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, { title: '状态叠加', type: 'group', display: 'entry', name: 'skuStatusOverlayConfig', items: [ { name: 'skuStatusOverlayConfig.isOpen', title: { label: '开启状态叠加' }, propType: 'bool', defaultValue: false, setter: 'BoolSetter', }, { name: 'skuStatusOverlayConfig.background', title: { label: '叠加层背景颜色' }, setter: 'ColorSetter', defaultValue: 'rgba(255, 255, 255, 0.70)', }, { name: 'skuStatusOverlayConfig.text', title: { label: '叠加文案' }, setter: 'StringSetter', defaultValue: '活动已结束', }, { name: 'skuStatusOverlayConfig.fontSize', title: { label: '文本大小' }, setter: 'NumberSetter', defaultValue: 18, }, { name: 'skuStatusOverlayConfig.fontWeight', title: { label: '文本粗细' }, setter: 'NumberSetter', defaultValue: 600, }, { name: 'skuStatusOverlayConfig.color', title: { label: '文本颜色' }, setter: 'ColorSetter', defaultValue: 'black', }, { name: 'skuStatusOverlayConfig.slot', title: { label: '开启插槽' }, propType: { type: "oneOfType", value: ["node"] }, setter: 'SlotSetter', }, ], }, ], configure: { supports: { style: true, events: [ { name: "onCardClick", template: "onCardClick(item,${extParams}){\n// 卡片点击事件\nconsole.log('onCardClick', item);}", }, { name: "onFavorite", template: "onFavorite(item,${extParams}){\n// 收藏事件\nconsole.log('onFavorite', item);}", }, { name: "onAction", template: "onAction(item,${extParams}){\n// 行为事件\nconsole.log('onAction', item);}", }, ], }, }, }; export default { ...SkuCardMeta, snippets, };