import type { InputType, InputSize, FormatType, StatusColors } from '../../types/components/input' /** * 输入框类型常量 */ export const INPUT_TYPES: InputType[] = [ 'text', 'number', 'idcard', 'digit', 'password', 'textarea', 'email', 'tel', 'url', 'search' ] /** * 输入框大小常量 */ export const INPUT_SIZES: InputSize[] = ['small', 'medium', 'large'] /** * 清除按钮显示时机常量 */ export const CLEAR_TRIGGERS = ['always', 'focus', 'never'] as const /** * 默认配置 */ export const DEFAULT_CONFIG = { TYPE: 'text' as const, SIZE: 'medium' as const, CLEAR_TRIGGER: 'focus', MAXLENGTH: 140, BORDERED: true, ROUND: false, SHADOW: false } as const /** * 大小配置映射 */ export const SIZE_CONFIG = { small: { height: '60rpx', fontSize: '22rpx', padding: '0 18rpx', iconSize: '26rpx' }, medium: { height: '68rpx', fontSize: '28rpx', padding: '0 24rpx', iconSize: '32rpx' }, large: { height: '96rpx', fontSize: '36rpx', padding: '0 32rpx', iconSize: '36rpx' } } as const /** * 状态颜色 */ export const STATUS_COLORS: StatusColors = { error: '#e64340', success: '#07c160', warning: '#f0a020', loading: '#1989fa' } /** * 格式化配置 */ export const FORMAT_CONFIGS = { phone: { pattern: '### #### ####', placeholder: '#', separator: ' ' }, bankCard: { pattern: '#### **** **** ####', placeholder: '#', separator: ' ' }, idCard: { pattern: '###############', placeholder: '#', separator: '' }, amount: { pattern: '', placeholder: '', separator: ',' } } as const /** * 正则表达式 */ export const REGEX = { // 手机号 PHONE: /^1[3-9]\d{9}$/, // 邮箱 EMAIL: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/, // URL URL: /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/, // 身份证 ID_CARD: /(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/, // 数字 NUMBER: /^-?\d+(\.\d+)?$/, // 整数 INTEGER: /^-?\d+$/, // 中文 CHINESE: /^[\u4e00-\u9fa5]+$/, // 英文 ENGLISH: /^[a-zA-Z]+$/ }