city-casereport/miniprogram_npm/tdesign-miniprogram/input/input.wxml
2023-12-06 14:22:42 +08:00

101 lines
3.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<import src="../common/template/icon.wxml" />
<wxs src="../common/utils.wxs" module="_" />
<wxs src="./input.wxs" module="this" />
<view
style="{{_._style([style, customStyle])}}"
class="{{_.cls(classPrefix, [['border', !borderless]])}} {{classPrefix}}--layout-{{layout}} class {{prefix}}-class"
aria-describedby
>
<!-- aria-describedby用于关联该行设置了aria-hidden的元素最近的焦点解决触发焦点过度上下偏移的问题 -->
<view class="{{classPrefix}}__wrap--prefix">
<view class="{{classPrefix}}__icon--prefix">
<slot name="prefix-icon" />
<template
wx:if="{{_prefixIcon}}"
is="icon"
data="{{tClass: prefix + '-class-prefix-icon', ariaHidden: true, ..._prefixIcon}}"
/>
</view>
<view class="{{classPrefix}}__label {{prefix}}-class-label" aria-hidden>
<slot name="label" />
<block wx:if="{{label}}">{{label}}</block>
</view>
</view>
<view class="{{classPrefix}}__wrap">
<view class="{{classPrefix}}__content {{classPrefix}}--{{status}}">
<input
maxlength="{{maxlength}}"
disabled="{{disabled}}"
placeholder="{{placeholder}}"
placeholder-style="{{placeholderStyle}}"
placeholder-class="{{classPrefix}}__placeholder {{placeholderClass}}"
value="{{value}}"
bindinput="onInput"
bindfocus="onFocus"
bindblur="onBlur"
bindconfirm="onConfirm"
bindkeyboardheightchange="onKeyboardHeightChange"
bindnicknamereview="onNickNameReview"
password="{{type === 'password'}}"
type="{{type === 'password' ? 'text' : type}}"
focus="{{focus}}"
confirm-type="{{confirmType}}"
confirm-hold="{{confirmHold}}"
cursor="{{cursor}}"
cursor-spacing="{{cursorSpacing}}"
adjust-position="{{adjustPosition}}"
auto-focus="{{autoFocus}}"
always-embed="{{alwaysEmbed}}"
selection-start="{{selectionStart}}"
selection-end="{{selectionEnd}}"
hold-keyboard="{{holdKeyboard}}"
safe-password-cert-path="{{safePasswordCertPath}}"
safe-password-length="{{safePasswordLength}}"
safe-password-time-stamp="{{safePasswordTimeStamp}}"
safe-password-nonce="{{safePasswordNonce}}"
safe-password-salt="{{safePasswordSalt}}"
safe-password-custom-hash="{{safePasswordCustomHash}}"
class="{{this.getInputClass(classPrefix, suffix, align, disabled)}} {{prefix}}-class-input"
aria-role="textbox"
aria-label="{{label}}"
aria-roledescription="{{label}}"
/>
<!--
这里aria-role="textbox"和aria-label组合使用实现ios的聚合焦点播报效果。
ios会播报aria-label不会重复播报aria-roledescription的内容
安卓不会播报aria-label会播报aria-roledescription的内容
-->
<view
wx:if="{{_clearIcon && value.length > 0}}"
class="{{classPrefix}}__wrap--clearable-icon"
bind:touchstart="clearInput"
>
<template
is="icon"
data="{{tClass: prefix + '-class-clearable', ariaRole: 'button', ariaLabel: '清除', ..._clearIcon }}"
/>
</view>
<view class="{{classPrefix}}__wrap--suffix {{prefix}}-class-suffix" bind:tap="onSuffixClick">
<text wx:if="{{suffix}}">{{suffix}}</text>
<slot name="suffix" />
</view>
<view class="{{classPrefix}}__wrap--suffix-icon" bind:tap="onSuffixIconClick">
<slot name="suffix-icon" />
<template
wx:if="{{_suffixIcon}}"
is="icon"
data="{{tClass: prefix + '-class-suffix-icon', ariaRole: 'button', ..._suffixIcon }}"
/>
</view>
</view>
<view
wx:if="{{tips && tips.length > 0}}"
class="{{classPrefix}}__tips {{classPrefix}}--{{align}} {{prefix}}-class-tips"
>{{tips}}
</view>
<slot name="tips" />
</view>
</view>