riku
2024-08-13 1a0e4972f80278bfa9e53283374b745b6c968341
components/form/index.wxml
@@ -1,67 +1,82 @@
<block wx:for="{{formArray}}" wx:key="index">
  <block wx:if="{{item.inputType == 'text'}}">
    <t-input
      label="{{item.label}}"
      placeholder="{{item.placeholder}}"
      value="{{item.value}}"
      data-index="{{index}}"
      bind:change="onInputChange"
    />
  </block>
  <block wx:elif="{{item.inputType == 'switch'}}">
    <t-cell title="{{item.label}}">
      <t-switch
        label="{{['是', '否']}}"
        slot="note"
  <block wx:if="{{!item.hide}}">
    <block wx:if="{{item.inputType == 'text'}}">
      <t-input
        label="{{item.label}}"
        placeholder="{{item.placeholder}}"
        value="{{item.value}}"
        data-index="{{index}}"
        bind:change="onSwitchChange"
        bind:change="onInputChange"
      />
    </t-cell>
  </block>
  <block wx:elif="{{item.inputType == 'picker'}}">
    <t-cell
      title="{{item.label}}"
      arrow
      hover
      note="{{item.value.label || item.placeholder}}"
      data-index="{{index}}"
      bind:click="showPicker"
    ></t-cell>
    <t-picker
      visible="{{item.visible}}"
      value="{{item._value}}"
      data-index="{{index}}"
      title="{{'选择' + item.label}}"
      cancelBtn="取消"
      confirmBtn="确认"
      bindchange="onPickerChange"
      bindcancel="onPickerCancel"
    >
      <t-picker-item options="{{item.options}}"></t-picker-item>
    </t-picker>
  </block>
  <block wx:elif="{{item.inputType == 'cascader'}}">
    <t-cell
      title="{{item.label}}"
      arrow
      hover
      note="{{item.note || item.placeholder}}"
      data-index="{{index}}"
      bind:click="showCascader"
    ></t-cell>
    <t-cascader
      visible="{{item.visible}}"
      value="{{item._value}}"
      options="{{item.options}}"
      sub-titles="{{item.cascaderTitles}}"
      title="{{'选择' + item.label}}"
      data-index="{{index}}"
      bind:change="onCascaderChange"
    />
    </block>
    <block wx:elif="{{item.inputType == 'switch'}}">
      <t-cell title="{{item.label}}">
        <t-switch
          defaultValue="{{item.value}}"
          label="{{['是', '否']}}"
          slot="note"
          data-index="{{index}}"
          bind:change="onSwitchChange"
        />
      </t-cell>
    </block>
    <block wx:elif="{{item.inputType == 'picker'}}">
      <t-cell
        title="{{item.label}}"
        arrow
        hover
        note="{{item._label || item.placeholder}}"
        data-index="{{index}}"
        bind:click="showPicker"
      ></t-cell>
      <t-picker
        visible="{{item.visible}}"
        value="{{item._value}}"
        data-index="{{index}}"
        title="{{'选择' + item.label}}"
        cancelBtn="取消"
        confirmBtn="确认"
        bindchange="onPickerChange"
        bindcancel="onPickerCancel"
      >
        <t-picker-item options="{{item.options}}"></t-picker-item>
      </t-picker>
    </block>
    <block wx:elif="{{item.inputType == 'cascader'}}">
      <t-cell
        title="{{item.label}}"
        arrow
        hover
        note="{{item.note || item.placeholder}}"
        data-index="{{index}}"
        bind:click="showCascader"
      ></t-cell>
      <t-cascader
        visible="{{item.visible}}"
        value="{{item._value}}"
        options="{{item.options}}"
        sub-titles="{{item.cascaderTitles}}"
        title="{{'选择' + item.label}}"
        data-index="{{index}}"
        bind:change="onCascaderChange"
      />
    </block>
  </block>
</block>
<slot></slot>
<view class="btn-group">
  <t-button block theme="light" content="取消" size="small" bind:tap="onCancel"></t-button>
  <t-button block theme="primary" content="保存" size="small" bind:tap="onSubmit"></t-button>
  <t-button
    block
    theme="light"
    content="{{cancelText}}"
    size="small"
    bind:tap="onCancel"
  ></t-button>
  <t-button
    block
    theme="primary"
    content="{{submitText}}"
    size="small"
    bind:tap="onSubmit"
  ></t-button>
</view>