1. 程式人生 > 其它 >element-ui 生成動態表單

element-ui 生成動態表單

html:

    <el-select
      v-model="value"
      filterable
      placeholder="請輸入關鍵詞"
      :loading="loading"
      @change="select">
      <el-option
        v-for="item in options"
        :key="item.value"
        :label="item.label"
        :value="item.value">
      </el-option>
    </el-select
>
<el-card class="box-card" v-for="(item,index) in makeData" :key="index"> <!-- <div #header class="clearfix"><span>{{item.formName}}</span></div> --> <el-form :inline="true" :ref="item.formRef" :model="item.formModel" class="demo-form-inline"> <el-form-item label="
審批人" prop='user' :rules="[{ required: true, message: '審批人不能為空'}]"> <el-input v-model="item.formModel.user" placeholder="審批人"></el-input> </el-form-item> <el-form-item label="區域" prop='region' :rules="[{ required: true, message: '區域不能為空'}]"> <el-input v-model="
item.formModel.region" placeholder="審批人"></el-input> </el-form-item> </el-form> </el-card>

script:

data () {
    return {
      options: [{
        value: '1',
        label: '控制飛行時間'
      }, {
        value: '2',
        label: '控制飛行起落'
      }, {
        value: '3',
        label: '控制日曆時間'
      }],
      makeData: [{
        formRef: 'formFirst', // 表單ref
        formModel: { user: '', region: '' }, // 表單model
        formName: '表單A' // 表單標題
      }, {
        formRef: 'formSecond',
        formModel: { user: '', region: '' },
        formName: '表單B'
      }, {
        formRef: 'formThird',
        formModel: { user: '', region: '' },
        formName: '表單C'
      }]
    }
  },

  methods:{   select(val){   if(val==='1'){   varobj={   formRef:'planeTime',//表單ref   formModel:{user:'',region:''},//表單model   formName:'控制飛行時間'//表單標題   }   this.makeData.push(obj)   }   } }