|
|
|
|
import { defineMixin } from '../../libs/vue'
|
|
|
|
|
import defProps from '../../libs/config/props.js'
|
|
|
|
|
|
|
|
|
|
export const props = defineMixin({
|
|
|
|
|
props: {
|
|
|
|
|
// #ifdef VUE3
|
|
|
|
|
// 绑定的值
|
|
|
|
|
modelValue: {
|
|
|
|
|
type: [String, Number],
|
|
|
|
|
default: () => defProps.input.value
|
|
|
|
|
},
|
|
|
|
|
// #endif
|
|
|
|
|
// #ifdef VUE2
|
|
|
|
|
// 绑定的值
|
|
|
|
|
value: {
|
|
|
|
|
type: [String, Number],
|
|
|
|
|
default: () => defProps.input.value
|
|
|
|
|
},
|
|
|
|
|
// #endif
|
|
|
|
|
// number-数字输入键盘,app-vue下可以输入浮点数,app-nvue和小程序平台下只能输入整数
|
|
|
|
|
// idcard-身份证输入键盘,微信、支付宝、百度、QQ小程序
|
|
|
|
|
// digit-带小数点的数字键盘,App的nvue页面、微信、支付宝、百度、头条、QQ小程序
|
|
|
|
|
// text-文本输入键盘
|
|
|
|
|
type: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.type
|
|
|
|
|
},
|
|
|
|
|
// 如果 textarea 是在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true,
|
|
|
|
|
// 兼容性:微信小程序、百度小程序、字节跳动小程序、QQ小程序
|
|
|
|
|
fixed: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.fixed
|
|
|
|
|
},
|
|
|
|
|
// 是否禁用输入框
|
|
|
|
|
disabled: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.disabled
|
|
|
|
|
},
|
|
|
|
|
// 禁用状态时的背景色
|
|
|
|
|
disabledColor: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.disabledColor
|
|
|
|
|
},
|
|
|
|
|
// 是否显示清除控件
|
|
|
|
|
clearable: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.clearable
|
|
|
|
|
},
|
|
|
|
|
// 是否密码类型
|
|
|
|
|
password: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.password
|
|
|
|
|
},
|
|
|
|
|
// 最大输入长度,设置为 -1 的时候不限制最大长度
|
|
|
|
|
maxlength: {
|
|
|
|
|
type: [String, Number],
|
|
|
|
|
default: () => defProps.input.maxlength
|
|
|
|
|
},
|
|
|
|
|
// 输入框为空时的占位符
|
|
|
|
|
placeholder: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.placeholder
|
|
|
|
|
},
|
|
|
|
|
// 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/
|
|
|
|
|
placeholderClass: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.placeholderClass
|
|
|
|
|
},
|
|
|
|
|
// 指定placeholder的样式
|
|
|
|
|
placeholderStyle: {
|
|
|
|
|
type: [String, Object],
|
|
|
|
|
default: () => defProps.input.placeholderStyle
|
|
|
|
|
},
|
|
|
|
|
// 是否显示输入字数统计,只在 type ="text"或type ="textarea"时有效
|
|
|
|
|
showWordLimit: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.showWordLimit
|
|
|
|
|
},
|
|
|
|
|
// 设置右下角按钮的文字,有效值:send|search|next|go|done,兼容性详见uni-app文档
|
|
|
|
|
// https://uniapp.dcloud.io/component/input
|
|
|
|
|
// https://uniapp.dcloud.io/component/textarea
|
|
|
|
|
confirmType: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.confirmType
|
|
|
|
|
},
|
|
|
|
|
// 点击键盘右下角按钮时是否保持键盘不收起,H5无效
|
|
|
|
|
confirmHold: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.confirmHold
|
|
|
|
|
},
|
|
|
|
|
// focus时,点击页面的时候不收起键盘,微信小程序有效
|
|
|
|
|
holdKeyboard: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.holdKeyboard
|
|
|
|
|
},
|
|
|
|
|
// 自动获取焦点
|
|
|
|
|
// 在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点
|
|
|
|
|
focus: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.focus
|
|
|
|
|
},
|
|
|
|
|
// 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效
|
|
|
|
|
autoBlur: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.autoBlur
|
|
|
|
|
},
|
|
|
|
|
// 是否去掉 iOS 下的默认内边距,仅微信小程序,且type=textarea时有效
|
|
|
|
|
disableDefaultPadding: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.disableDefaultPadding
|
|
|
|
|
},
|
|
|
|
|
// 指定focus时光标的位置
|
|
|
|
|
cursor: {
|
|
|
|
|
type: [String, Number],
|
|
|
|
|
default: () => defProps.input.cursor
|
|
|
|
|
},
|
|
|
|
|
// 输入框聚焦时底部与键盘的距离
|
|
|
|
|
cursorSpacing: {
|
|
|
|
|
type: [String, Number],
|
|
|
|
|
default: () => defProps.input.cursorSpacing
|
|
|
|
|
},
|
|
|
|
|
// 光标起始位置,自动聚集时有效,需与selection-end搭配使用
|
|
|
|
|
selectionStart: {
|
|
|
|
|
type: [String, Number],
|
|
|
|
|
default: () => defProps.input.selectionStart
|
|
|
|
|
},
|
|
|
|
|
// 光标结束位置,自动聚集时有效,需与selection-start搭配使用
|
|
|
|
|
selectionEnd: {
|
|
|
|
|
type: [String, Number],
|
|
|
|
|
default: () => defProps.input.selectionEnd
|
|
|
|
|
},
|
|
|
|
|
// 键盘弹起时,是否自动上推页面
|
|
|
|
|
adjustPosition: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.adjustPosition
|
|
|
|
|
},
|
|
|
|
|
// 输入框内容对齐方式,可选值为:left|center|right
|
|
|
|
|
inputAlign: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.inputAlign
|
|
|
|
|
},
|
|
|
|
|
// 输入框字体的大小
|
|
|
|
|
fontSize: {
|
|
|
|
|
type: [String, Number],
|
|
|
|
|
default: () => defProps.input.fontSize
|
|
|
|
|
},
|
|
|
|
|
// 输入框字体颜色
|
|
|
|
|
color: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.color
|
|
|
|
|
},
|
|
|
|
|
// 输入框前置图标
|
|
|
|
|
prefixIcon: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.prefixIcon
|
|
|
|
|
},
|
|
|
|
|
// 前置图标样式,对象或字符串
|
|
|
|
|
prefixIconStyle: {
|
|
|
|
|
type: [String, Object],
|
|
|
|
|
default: () => defProps.input.prefixIconStyle
|
|
|
|
|
},
|
|
|
|
|
// 输入框后置图标
|
|
|
|
|
suffixIcon: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.suffixIcon
|
|
|
|
|
},
|
|
|
|
|
// 后置图标样式,对象或字符串
|
|
|
|
|
suffixIconStyle: {
|
|
|
|
|
type: [String, Object],
|
|
|
|
|
default: () => defProps.input.suffixIconStyle
|
|
|
|
|
},
|
|
|
|
|
// 边框类型,surround-四周边框,bottom-底部边框,none-无边框
|
|
|
|
|
border: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.border
|
|
|
|
|
},
|
|
|
|
|
// 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会
|
|
|
|
|
readonly: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: () => defProps.input.readonly
|
|
|
|
|
},
|
|
|
|
|
// 输入框形状,circle-圆形,square-方形
|
|
|
|
|
shape: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: () => defProps.input.shape
|
|
|
|
|
},
|
|
|
|
|
// 用于处理或者过滤输入框内容的方法
|
|
|
|
|
formatter: {
|
|
|
|
|
type: [Function, null],
|
|
|
|
|
default: () => defProps.input.formatter
|
|
|
|
|
},
|
|
|
|
|
// 是否忽略组件内对文本合成系统事件的处理
|
|
|
|
|
ignoreCompositionEvent: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|