index.wxml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <wxs src="../wxs/utils.wxs" module="utils" />
  2. <wxs src="./index.wxs" module="computed" />
  3. <van-cell
  4. size="{{ size }}"
  5. icon="{{ leftIcon }}"
  6. center="{{ center }}"
  7. border="{{ border }}"
  8. is-link="{{ isLink }}"
  9. required="{{ required }}"
  10. clickable="{{ clickable }}"
  11. title-width="{{ titleWidth }}"
  12. title-style="margin-right: 12px;"
  13. custom-style="{{ customStyle }}"
  14. arrow-direction="{{ arrowDirection }}"
  15. custom-class="van-field"
  16. >
  17. <slot name="left-icon" slot="icon" />
  18. <view wx:if="{{ label }}" class="label-class {{ utils.bem('field__label', { disabled }) }}" slot="title">
  19. {{ label }}
  20. </view>
  21. <slot wx:else name="label" slot="title" />
  22. <view class="{{ utils.bem('field__body', [type]) }}">
  23. <textarea
  24. wx:if="{{ type === 'textarea' }}"
  25. class="input-class {{ utils.bem('field__input', [inputAlign, type, { disabled, error }]) }}"
  26. fixed="{{ fixed }}"
  27. focus="{{ focus }}"
  28. cursor="{{ cursor }}"
  29. value="{{ innerValue }}"
  30. auto-focus="{{ autoFocus }}"
  31. disabled="{{ disabled || readonly }}"
  32. maxlength="{{ maxlength }}"
  33. placeholder="{{ placeholder }}"
  34. placeholder-style="{{ placeholderStyle }}"
  35. placeholder-class="{{ utils.bem('field__placeholder', { error, disabled }) }}"
  36. auto-height="{{ !!autosize }}"
  37. style="{{ computed.inputStyle(autosize) }}"
  38. cursor-spacing="{{ cursorSpacing }}"
  39. adjust-position="{{ adjustPosition }}"
  40. show-confirm-bar="{{ showConfirmBar }}"
  41. hold-keyboard="{{ holdKeyboard }}"
  42. selection-end="{{ selectionEnd }}"
  43. selection-start="{{ selectionStart }}"
  44. disable-default-padding="{{ disableDefaultPadding }}"
  45. bindinput="onInput"
  46. bindblur="onBlur"
  47. bindfocus="onFocus"
  48. bindconfirm="onConfirm"
  49. bindlinechange="onLineChange"
  50. bindkeyboardheightchange="onKeyboardHeightChange"
  51. >
  52. </textarea>
  53. <input
  54. wx:else
  55. class="input-class {{ utils.bem('field__input', [inputAlign, { disabled, error }]) }}"
  56. type="{{ type }}"
  57. focus="{{ focus }}"
  58. cursor="{{ cursor }}"
  59. value="{{ innerValue }}"
  60. auto-focus="{{ autoFocus }}"
  61. disabled="{{ disabled || readonly }}"
  62. maxlength="{{ maxlength }}"
  63. placeholder="{{ placeholder }}"
  64. placeholder-style="{{ placeholderStyle }}"
  65. placeholder-class="{{ utils.bem('field__placeholder', { error }) }}"
  66. confirm-type="{{ confirmType }}"
  67. confirm-hold="{{ confirmHold }}"
  68. hold-keyboard="{{ holdKeyboard }}"
  69. cursor-spacing="{{ cursorSpacing }}"
  70. adjust-position="{{ adjustPosition }}"
  71. selection-end="{{ selectionEnd }}"
  72. selection-start="{{ selectionStart }}"
  73. password="{{ password || type === 'password' }}"
  74. bindinput="onInput"
  75. bindblur="onBlur"
  76. bindfocus="onFocus"
  77. bindconfirm="onConfirm"
  78. bindkeyboardheightchange="onKeyboardHeightChange"
  79. />
  80. <van-icon
  81. wx:if="{{ showClear }}"
  82. name="clear"
  83. class="van-field__clear-root van-field__icon-root"
  84. catch:touchstart="onClear"
  85. />
  86. <view class="van-field__icon-container" bind:tap="onClickIcon">
  87. <van-icon
  88. wx:if="{{ rightIcon || icon }}"
  89. name="{{ rightIcon || icon }}"
  90. class="van-field__icon-root {{ iconClass }}"
  91. custom-class="right-icon-class"
  92. />
  93. <slot name="right-icon" />
  94. <slot name="icon" />
  95. </view>
  96. <view class="van-field__button">
  97. <slot name="button" />
  98. </view>
  99. </view>
  100. <view wx:if="{{ showWordLimit && maxlength }}" class="van-field__word-limit">
  101. <view class="{{ utils.bem('field__word-num', { full: value.length >= maxlength }) }}">{{ value.length }}</view>/{{ maxlength }}
  102. </view>
  103. <view wx:if="{{ errorMessage }}" class="{{ utils.bem('field__error-message', [errorMessageAlign, { disabled, error }]) }}">
  104. {{ errorMessage }}
  105. </view>
  106. </van-cell>