index.wxml 6.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <view class="page">
  2. <view class="page__hd">
  3. <view class="page__title">Form</view>
  4. <view class="page__desc">表单</view>
  5. </view>
  6. <view class="page__bd">
  7. <wux-segmented-control values="{{ ['horizontal', 'vertical'] }}" bind:change="onSegmentedControlChange" />
  8. <wux-form
  9. id="wux-form"
  10. layout="{{ layout }}"
  11. title="{{ layout === 'horizontal' ? '水平布局表单' : '竖直布局表单' }}"
  12. validateMessages="{{ validateMessages }}"
  13. bind:change="onValuesChange"
  14. bind:fieldsChange="onFieldsChange"
  15. >
  16. <wux-field name="name" label="姓名" initialValue="WuxUI" rules="{{ [{ required: true, message: '姓名不能为空' }, { type: 'string', min: 2, message: '姓名最少2个字符' }] }}">
  17. <wux-input placeholder="请输入姓名" clear />
  18. </wux-field>
  19. <wux-field name="picker" label="城市" initialValue="{{ [] }}" trigger="onConfirm" rules="{{ [{ required: true, type: 'array' }] }}" isLink>
  20. <wux-picker options="{{ options1 }}" cascade bind:confirm="onPickerChange">
  21. <wux-touch-view>{{ pickerLabel || '请选择城市' }}</wux-touch-view>
  22. </wux-picker>
  23. </wux-field>
  24. <wux-field name="address" label="地址" help="详情地址">
  25. <wux-textarea placeholder="请输入地址" hasCount rows="2" maxlength="100" clear />
  26. </wux-field>
  27. <wux-field name="checkbox" label="商品" initialValue="{{ [] }}" rules="{{ [{ required: true, max: 2, type: 'array' }] }}" >
  28. <wux-checkbox-group bind:change="onCheckboxChange">
  29. <wux-checkbox title="兔头" value="1" />
  30. <wux-checkbox title="兔腿" value="2" />
  31. <wux-checkbox title="整兔" value="3" />
  32. </wux-checkbox-group>
  33. </wux-field>
  34. <wux-field name="radio" label="口味" initialValue="{{ '' }}" rules="{{ [{ required: true }] }}">
  35. <wux-radio-group withListComponent="{{ false }}" bind:change="onRadioChange">
  36. <wux-radio title="烟熏" value="1" />
  37. <wux-radio title="风干" value="2" />
  38. </wux-radio-group>
  39. </wux-field>
  40. <wux-field name="rater" label="辣度" initialValue="{{ 2 }}" childElementPosition="{{ layout === 'horizontal' ? 'right' : 'none' }}">
  41. <wux-rater />
  42. </wux-field>
  43. <wux-field name="inputNumber" label="数量" initialValue="{{ 2 }}" rules="{{ [{ min: 1, max: 5, type: 'number' }] }}" childElementPosition="{{ layout === 'horizontal' ? 'right' : 'none' }}">
  44. <wux-input-number />
  45. </wux-field>
  46. <wux-field name="slider" label="运费险" initialValue="{{ [10] }}">
  47. <wux-slider step="10" showMark />
  48. </wux-field>
  49. <wux-field name="switch" label="送货上门" initialValue="{{ switch }}" valuePropName="inputChecked" childElementPosition="{{ layout === 'horizontal' ? 'right' : 'none' }}">
  50. <wux-switch />
  51. </wux-field>
  52. <wux-field name="datePicker" label="送货日期(带清除图标)" initialValue="{{ [] }}" trigger="onConfirm" rules="{{ [{ required: true, type: 'array' }] }}" isLink="{{ !datePickerLabel }}" align="center" labelWrap>
  53. <wux-date-picker mode="date" bind:confirm="onDatePickerChange">
  54. <wux-touch-view>{{ datePickerLabel || '请选择日期' }}</wux-touch-view>
  55. </wux-date-picker>
  56. <icon slot="arrow" type="clear" color="#B2B2B2" size="14" bindtap="onArrowClick" wx:if="{{ datePickerLabel }}" />
  57. </wux-field>
  58. <wux-field name="popupSelect" label="快递服务" initialValue="{{ '' }}" trigger="onConfirm" rules="{{ [{ required: true }] }}" isLink>
  59. <wux-popup-select options="{{ options2 }}" bind:confirm="onPopupSelectChange" >
  60. <wux-touch-view>{{ popupSelectLabel || '请选择快递' }}</wux-touch-view>
  61. </wux-popup-select>
  62. </wux-field>
  63. <wux-field name="selectorGroup" label="付款方式" initialValue="{{ [] }}" rules="{{ [{ required: true }] }}">
  64. <wux-selector-group columns="2" options="{{ ['到柜支付', '先寄后付'] }}" />
  65. </wux-field>
  66. <wux-field name="code" label="验证码" rules="{{ [{ required: true }, { validator: 'checkCode' }] }}">
  67. <wux-input placeholder="请输入验证码" clear />
  68. <text slot="extra" style="color: #387ef5; padding-left: 12px;" bindtap="onSendCode">发送验证码</text>
  69. </wux-field>
  70. <wux-field name="password" label="密码" initialValue="" rules="{{ [{ required: true }, { validator: 'validateToNextPassword' }] }}">
  71. <wux-input placeholder="请输入密码" clear password visibilityToggle />
  72. </wux-field>
  73. <wux-field name="confirm" label="确认密码" initialValue="" rules="{{ [{ required: true }, { validator: 'compareToFirstPassword' }] }}">
  74. <wux-input placeholder="请输入确认密码" clear password visibilityToggle bind:blur="handleConfirmBlur" />
  75. </wux-field>
  76. <wux-field name="author" label="禁用" disabled>
  77. <wux-input placeholder="被禁用的输入框" />
  78. </wux-field>
  79. <wux-field name="website" label="只读" readOnly>
  80. <wux-input placeholder="只读模式的输入框" />
  81. </wux-field>
  82. <wux-field name="id" label="编号" initialValue="{{ '0001' }}" hidden>
  83. <wux-input />
  84. </wux-field>
  85. <wux-field name="email" label="邮箱" initialValue="" rules="{{ !checkEmail ? [] : [{ type: 'email', message: '输入的邮箱无效!' }, { required: true, message: '请输入您的邮箱!' }] }}">
  86. <wux-input placeholder="请输入邮箱" clear />
  87. </wux-field>
  88. <wux-field name="agreement" initialValue="{{ false }}" valuePropName="inputChecked">
  89. <wux-selectable bind:change="onSelectableChange">邮箱是必填的</wux-selectable>
  90. </wux-field>
  91. <view slot="footer" class="btn-area btn-area_auto">
  92. <button type="primary" bindtap="onSubmit">Wux Form Submit</button>
  93. <button bindtap="onReset">Wux Form Reset</button>
  94. <button bindtap="onFill">Fill in the code</button>
  95. </view>
  96. </wux-form>
  97. </view>
  98. </view>