import snippets from './snippets'; const PisellTimeRangeDisplayMeta = { componentName: 'PisellTimeRangeDisplay', title: '时间区间展示', category: '通用', docUrl: '', screenshot: '', devMode: 'proCode', npm: { package: '@pisell/materials', version: '1.0.1', exportName: 'PisellTimeRangeDisplay', main: 'src/index.tsx', destructuring: true, subName: '', }, configure: { props: [ { title: { label: '数据', tip: '开始时间与结束时间(dayjs 兼容:日期字符串或时间戳)', }, display: 'block', type: 'group', items: [ { name: 'startAt', title: { label: '开始时间', tip: 'startAt | 开始时间,支持 ISO 字符串或时间戳', }, propType: { type: 'oneOfType', value: ['string', 'number'] }, setter: ['StringSetter', 'VariableSetter'], }, { name: 'endAt', title: { label: '结束时间', tip: 'endAt | 结束时间,支持 ISO 字符串或时间戳', }, propType: { type: 'oneOfType', value: ['string', 'number'] }, setter: ['StringSetter', 'VariableSetter'], }, ], }, { title: { label: '布局配置', tip: '布局方式与对齐', }, display: 'block', type: 'group', items: [ { name: 'textAlign', title: { label: '文本对齐', tip: '文本对齐方式', }, propType: { type: 'oneOf', value: ['left', 'center', 'right'], }, setter: [ { componentName: 'RadioGroupSetter', props: { options: [ { title: '左对齐', value: 'left' }, { title: '居中', value: 'center' }, { title: '右对齐', value: 'right' }, ], }, }, 'VariableSetter', ], defaultValue: 'center', }, ], }, { title: { label: '字段配置', tip: '显示哪些块及顺序(时间区间、日期、星期、持续时长)', }, display: 'block', type: 'group', items: [ { name: 'fields.showTimeRange', title: { label: '显示时间区间', tip: '是否显示时间区间块(HH:mm-HH:mm 或跨天起止)', }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: true, }, { name: 'fields.showDate', title: { label: '显示日期', tip: '是否显示日期块', }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: true, }, { name: 'fields.showWeekday', title: { label: '显示星期', tip: '是否显示星期块', }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: true, }, { name: 'fields.showDuration', title: { label: '显示持续时长', tip: '是否显示持续时长块(d h m s)', }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: true, }, { name: 'fields.fieldOrder', title: { label: '字段顺序', tip: '四类块顺序:time-时间区间 | date-日期 | weekday-星期 | duration-持续时长', }, propType: { type: 'arrayOf', value: { type: 'oneOf', value: ['time', 'date', 'weekday', 'duration'], }, }, setter: 'JsonSetter', }, { name: 'showDateForSameDay', title: { label: '同一天显示日期', tip: '同一天时是否显示具体日期与星期', }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: true, }, ], }, { title: { label: '时间格式', tip: '时间区间内时间的显示格式', }, display: 'block', type: 'group', items: [ { name: 'timeFormat.use12Hour', title: { label: '12小时制', tip: '是否使用12小时制' }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: false, }, { name: 'timeFormat.showSeconds', title: { label: '显示秒', tip: '是否显示秒' }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: false, }, { name: 'timeFormat.padHour', title: { label: '小时补零', tip: '小时是否补零' }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: false, }, ], }, { title: { label: '日期格式', tip: '日期块的显示格式', }, display: 'block', type: 'group', items: [ { name: 'dateFormat.order', title: { label: '日期顺序', tip: '年月日顺序' }, propType: { type: 'oneOf', value: ['YMD', 'MDY', 'DMY'] }, setter: [ { componentName: 'SelectSetter', props: { options: [ { title: '年-月-日', value: 'YMD' }, { title: '月-日-年', value: 'MDY' }, { title: '日-月-年', value: 'DMY' }, ], }, }, 'VariableSetter', ], defaultValue: 'YMD', }, { name: 'dateFormat.showYear', title: { label: '显示年份', tip: '是否显示年份' }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: false, }, { name: 'dateFormat.shortMonth', title: { label: '月份简写', tip: '英文月份简写(Mar)' }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: true, }, { name: 'dateFormat.showChineseUnit', title: { label: '中文单位', tip: '中文显示年月日汉字' }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: false, }, { name: 'dateFormat.separator', title: { label: '分隔符', tip: '日期分隔符' }, propType: 'string', setter: ['StringSetter', 'VariableSetter'], defaultValue: '-', }, ], }, { title: { label: '星期格式', tip: '星期块的显示格式', }, display: 'block', type: 'group', items: [ { name: 'weekdayFormat.full', title: { label: '完整展示', tip: 'Saturday / 星期六' }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: false, }, { name: 'weekdayFormat.singleLetter', title: { label: '单字母展示', tip: 'S / 六' }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: false, }, ], }, { title: { label: '持续时长格式', tip: '持续时长(d h m s)的显示选项', }, display: 'block', type: 'group', items: [ { name: 'durationFormat.showSeconds', title: { label: '显示秒', tip: '持续时长是否显示秒(默认否)', }, propType: 'bool', setter: ['BoolSetter', 'VariableSetter'], defaultValue: false, }, ], }, { title: { label: '高级与样式', tip: '语言与样式配置', }, display: 'block', type: 'group', items: [ { name: 'locale', title: { label: '语言', tip: 'dayjs locale(如:zh-cn, en)', }, propType: 'string', setter: [ { componentName: 'SelectSetter', props: { options: [ { title: '中文', value: 'zh-cn' }, { title: 'English', value: 'en' }, ], }, }, 'StringSetter', 'VariableSetter', ], }, { name: 'containerStyle', title: { label: '容器样式', tip: '背景、圆角、边框、padding、gap' }, propType: 'object', setter: 'JsonSetter', }, { name: 'timeStyle', title: { label: '时间区间样式', tip: '字号、粗细、颜色等' }, propType: 'object', setter: 'JsonSetter', }, { name: 'dateStyle', title: { label: '日期样式', tip: '字号、粗细、颜色等' }, propType: 'object', setter: 'JsonSetter', }, { name: 'weekdayStyle', title: { label: '星期样式', tip: '字号、粗细、颜色等' }, propType: 'object', setter: 'JsonSetter', }, { name: 'durationStyle', title: { label: '持续时长样式', tip: '字号、粗细、颜色等' }, propType: 'object', setter: 'JsonSetter', }, { name: 'className', title: { label: '样式类名', tip: '自定义类名' }, propType: 'string', setter: 'StringSetter', }, ], }, ], supports: { style: true, events: [ { name: 'onClick', template: "onClick(${extParams}){\n// 点击组件时的回调\nconsole.log('onClick');}", }, ], }, component: {}, }, }; export default { ...PisellTimeRangeDisplayMeta, snippets, };