封装表单组件

封装表单组件

封装的表单,页面传值给组件组件,接受后循环判断渲染出想要的输入框和选择框

html写法

<div>
      <!-- 表单组件 -->
      <tuancu-kuang inline :formLabel="formLabel" :from="searchFrom">
        <!-- 插槽用法 -->
        <el-button type="primary" @click="onSubmit" icon="el-icon-search">查找</el-button>
        <el-button type="primary" @click="added" icon="el-icon-edit">新增</el-button>
      </tuancu-kuang>
    </div>

引入

import TuancuKuang from "../../components/zjfzhuan/TuancuKuang";

//注册
components: {TuancuKuang}
// 传的值
 	searchFrom: {
        keyword: "",
      },
      formLabel: [
        {
          model: "keyword",
          label: "角色名称",
          type: "input",
        },
      ],

组件页面

<template>
    <div>
        <!-- 封装from表单 -->
        <el-form :model="from" ref="from" label-width="100px" :inline="inline" >
            <el-form-item v-for="(item) in formLabel" :placeholder="'请输入'+item.label" :key="item.model">
                <el-input v-model="from[item.model]" :placeholder="'请输入'+item.label" clearable  v-if="item.type ==='input'"></el-input>
                <el-select v-model="from[item.model]" :placeholder="'请选择'+item.label"  v-if="item.type == 'select'" clearable>
                    <el-option v-for="i in item.optios" :key="i.value" :value="i.value"  :label="i.label"></el-option>
                </el-select>
                <el-switch clearable v-model="from[item.model]" v-if="item.type == 'switch'"></el-switch>
                    <el-cascader
                    v-model="from[item.model]"
                    :placeholder="'请选择'+item.label"
                    v-if="item.type == 'cascader'"
                    :options="item.optios"
                    :props="{ checkStrictly:true}"
                    clearable >
                    </el-cascader>
            </el-form-item>
            <el-form-item><slot></slot></el-form-item>
        </el-form>
    </div>
</template>

<script>

export default {
    props:{
        from:Object,
        formLabel:Array,
        inline:Boolean,
    },
}
</script>

<style>

</style>
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值