<form
  dForm
  [layout]="formConfig.layout"
  [labelSize]="formConfig.labelSize"
  (dSubmit)="submitPlanForm($event)"
>
  <d-form-item *ngFor="let item of formConfig.items">
    <d-form-label [required]="item.required">{{ item.label }}:</d-form-label>
    <d-form-control [extraInfo]="item.extraInfo">
      <input
        dTextInput
        [name]="item.prop"
        [(ngModel)]="_formData[item.prop]"
        *ngIf="item.type === 'input'"
        [dValidateRules]="item.rule"
        [dValidateRules]="item.required ? item.rule : {}"
      />
      <d-select
        *ngIf="item.type === 'select'"
        [appendToBody]="true"
        [options]="item.options"
        [name]="item.prop"
        [(ngModel)]="_formData[item.prop]"
        [dValidateRules]="item.required ? item.rule : []"
      ></d-select>
      <div
        class="devui-input-group devui-dropdown-origin"
        *ngIf="item.type === 'datePicker'"
      >
        <input
          class="devui-input devui-form-control"
          placeholder="y/MM/dd"
          (click)="datePicker1.toggle()"
          [name]="item.prop"
          [(ngModel)]="_formData[item.prop]"
          autocomplete="off"
          dDatepicker
          appendToBody
          #datePicker1="datepicker"
          [dValidateRules]="item.required ? item.rule : []"
        />
        <div
          class="devui-input-group-addon close-icon-wrapper"
          (click)="datePicker1.clearAll()"
        >
          <i class="icon icon-close"></i>
        </div>
        <div class="devui-input-group-addon" (click)="datePicker1.toggle()">
          <i class="icon icon-calendar"></i>
        </div>
      </div>
    </d-form-control>
  </d-form-item>
  <d-form-operation class="da-form-operation">
    <d-button
      style="margin-right: 5px"
      dFormSubmit
      [dFormSubmitData]="'submit-button'"
      >Confirm</d-button
    >
    <d-button bsStyle="common" (click)="cancel()">Cancel</d-button>
  </d-form-operation>
</form>