vue el-form 一行里面放置多个 el-form-item

最近用到 element-ui 的 el-form,要求一行里面放置多个 el-form-item。

其实很简单,用 layout 布局就可以简单实现。

layout 布局是通过基础的24分栏,从而迅速简洁地创建布局。

代码实现如下:

<el-form size="mini"
         label-width="160px"
         label-position="right"
         :model="formData"
         :ref="FormName"
         :rules="rules">
      <el-row>
        <el-col :span="12">
          <el-form-item prop="sbbh"
                        :label="$t('deviceManage.device.table.sbbh')+':'">
            <el-input v-model="formData.sbbh"
                      :placeholder="$t('deviceManage.device.dlg.sbbh')" />
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item prop="name"
                        :label="$t('deviceManage.device.table.name')+':'">
            <el-input v-model="formData.name"
                      :placeholder="$t('deviceManage.device.dlg.name')" />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="12">
          <el-form-item prop="deptId"
                        :label="$t('deviceManage.device.table.deptId')+':'">
            <treeselect :options="deptTree"
                        :normalizer="normalizer"
                        v-model="formData.deptId"
                        :placeholder="$t('deviceManage.device.dlg.deptId')">
            </treeselect>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item prop="staffId"
                        :label="$t('deviceManage.device.table.staffId')+':'">
            <el-select v-model="formData.staffId"
                       :placeholder="$t('deviceManage.device.dlg.staffId')">
              <el-option v-for="(item,i) in staffOption"
                         :key="i"
                         :label="item.label"
                         :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
</el-form>

页面效果如下:
在这里插入图片描述

### Vue 中 `el-form` 和 `el-form-item` 的区别 #### 一、功能定位差异 `el-form` 是用于创建表单组件的容器,负责管理整个表单的状态以及验证逻辑。而 `el-form-item` 则是具体的表单项控件,通常用来包裹输入框、选择器等实际交互元素,并可以设置对应的校验规则。 对于 `el-form` 而言,其主要属性包括但不限于: - **`:model`**:绑定表单数据对象。 - **`:rules`**:设定各字段的检验规则集合。 - **`ref`**:提供对 DOM 或子组件实例访问的方式以便于手动触发验证等功能[^1]。 相比之下,`el-form-item` 更侧重于个体项目的样式布局与行为定制化方面的工作,比如通过配置项来调整标签的位置关系或是控制错误提示信息的表现形式等。 ```html <el-form :model="form" ref="ruleFormRef" :rules="rules"> <!-- 表单项 --> </el-form> ``` #### 二、具体应用案例分析 当构建一个带有图片上传功能的表单时,会发现两者配合使用的场景非常典型。例如下面这段代码展示了如何利用这两个组件完成图像资源的选择并预览显示操作。 ```html <!-- 使用 el-form 容纳整体结构 --> <el-form :model="form" ref="ruleFormRef" :rules="rules" status-icon> <!-- 单独定义每一个 el-form-item 来表示不同的输入区域 --> <el-form-item label="上传图片" prop="productimagesrc"> <input @change='changeImg' id='imgFile' type='file'/> <img style="width: 200px;height: 200px" :src='form.productimagesrc'/> </el-form-item> </el-form> ``` 这里可以看到,`el-form` 提供了一个统一的数据源 (`form`) 维护着所有关联到此表单内的变量;与此同时,各个独立存在的 `el-form-item` 可以针对特定的需求去设计自身的展示效果——像上述例子中就实现了文件选取后的即时反馈机制。 另外值得注意的是关于 `el-form-item` 对内部 HTML 内容的支持情况。如果希望实现更加灵活多变的文字描述或者其他复杂排版,则可以通过适当修改字符串内容的方式来达成目的[^2]。 ```javascript // JavaScript部分可能涉及到的操作 data() { return { str: "<b>1111</b><br/>2222", // 自定义HTML片段作为label的内容 form: { productimagesrc: '' }, rules: {} } } ``` 最后提醒一点,在开发过程中应当充分理解两者的职责划分从而合理安排各自的参数选项,这样才能更好地发挥 Element UI 库的优势特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值