diff --git a/src/sku/README.md b/src/sku/README.md index 11da1814e..dee55190b 100644 --- a/src/sku/README.md +++ b/src/sku/README.md @@ -211,7 +211,8 @@ sku: { multiple: '0', name: 'Message', type: 'text', - required: '1' + required: '1', + placeholder: '' } ], hide_stock: false @@ -278,7 +279,7 @@ messageConfig: { }, // max file size (MB) uploadMaxSize: 3, - // placehold config + // placeholder config placeholderMap: { text: 'xxx', tel: 'xxx', diff --git a/src/sku/README.zh-CN.md b/src/sku/README.zh-CN.md index 8fee2237c..5e74779cc 100644 --- a/src/sku/README.zh-CN.md +++ b/src/sku/README.zh-CN.md @@ -221,7 +221,8 @@ sku: { multiple: '0', // 留言类型为 text 时,是否多行文本。'1' 表示多行 name: '留言', // 留言名称 type: 'text', // 留言类型,可选: id_no(身份证), text, tel, date, time, email - required: '1' // 是否必填 '1' 表示必填 + required: '1', // 是否必填 '1' 表示必填 + placeholder: '' // 可选值,占位文本 } ], hide_stock: false // 是否隐藏剩余库存 @@ -290,7 +291,7 @@ messageConfig: { }, // 最大上传体积 (MB) uploadMaxSize: 3, - // placehold配置 + // placeholder 配置 placeholderMap: { text: 'xxx', tel: 'xxx', diff --git a/src/sku/components/SkuMessages.js b/src/sku/components/SkuMessages.js index c5e75f157..180897207 100644 --- a/src/sku/components/SkuMessages.js +++ b/src/sku/components/SkuMessages.js @@ -85,7 +85,7 @@ export default createComponent({ getPlaceholder(message) { const type = +message.multiple === 1 ? 'textarea' : message.type; const map = this.messageConfig.placeholderMap || {}; - return map[type] || PLACEHOLDER[type]; + return message.placeholder || map[type] || PLACEHOLDER[type]; }, validateMessages() { diff --git a/src/sku/type.ts b/src/sku/type.ts index a49b23406..59ec4cefe 100644 --- a/src/sku/type.ts +++ b/src/sku/type.ts @@ -39,6 +39,7 @@ export type SkuMessageData = { required?: string; datetime?: string; multiple?: string; + placeholder?: string; }; export type SkuGoodsData = { diff --git a/src/utils/types.ts b/src/utils/types.ts index ab91395e2..8e1a50b65 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -3,9 +3,7 @@ import { InjectOptions, PropsDefinition } from 'vue/types/options'; export type EventHandler = (event: Event) => void; -export type ObjectIndex = { - [key: string]: any; -}; +export type ObjectIndex = Record; export type ScopedSlot = (props?: Props) => VNode[] | VNode | undefined; @@ -22,7 +20,7 @@ export type ModelOptions = { event?: string; }; -export type DefaultProps = Record; +export type DefaultProps = ObjectIndex; export type FunctionComponent> = { (h: CreateElement, props: Props, slots: ScopedSlots, context: RenderContext):