form表单中绑定变量注意点

1、form表单中绑定变量注意点只能绑定对象或者单个字符或数字,不能绑定数组,否则报错Invalid prop: type check failed for prop "model". Expected Obj

给子组件中传绑定值时,绑定了一个数组对象,导致最终报下方错误,正确的操作是改为传对象进行:mode绑定

2、对对象数组进行rules必填校验时写法注意点,:props中的值是一个变量。

父组件:

<FormQuestionList v-model="formData" :pageType="pageType" ref="FormQuestionList" />
......
data() {
  return {
    formData: {
        baseInfo: {
        supplementList: [
          {
            isHas: 1, // 是否存在
            formNameType: 'my',
            formLabel: this.$t('本人父亲姓名'),
            formName: '张三',
            country: '中国',
            idStyle: '身份证',
            idNo: '123456789012345678'
          },
          {
            isHas: 1, // 是否存在
            formNameType: 'my',
            formLabel: this.$t('本人母亲姓名'),
            formName: '张三',
            country: '中国',
            idStyle: '身份证',
            idNo: '123456789012345678'
          }
        ],
         updatedate: ''
      }
  }
}

子组件: FormManSupList

<template>
  <layout-panel :title="$t('补充信息')" top-level>
    <el-form ref="validateForm" :model="formData.supplementList" :rules="rules" :inline="true" label-position="left"
      label-width="100px" class="form-content p-l-r">
      <div v-for="(item, i) in formData.supplementList" :key="i" class="form-item">
        <el-form-item :label="$t('是否存在')" :prop="'supplementList.' + i + '.isHas'" :rules="rules.isHas">
          <el-select v-model="item.isHas">
            <el-option v-for="oItem in optionHas" :key="oItem.key" :label="oItem.value" :value="oItem.key"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item :label="item.formLabel" :prop="'supplementList.' + i + '.formName'" :rules="rules.formName">
          <el-input v-model="item.formName"></el-input>
        </el-form-item>
      </div>
    </el-form>
  </layout-panel>
</template>

......

 props: {
    value: { type: Object, default: () => {} },
    pageType: { type: String, default: 'add' }
  },
  data() {
    return {
      required: true,
      optionHas: [
        {
          key: 1,
          value: this.$t('是')
        },
        {
          key: 0,
          value: this.$t('否')
        }
      ],
      empNationsList: [], // 国家列表
      documentList: [], // 证件类型列表
      rules: {
        isHas: [{ required: true, message: this.$t('请到DHR的个人信息中完善'), trigger: 'blur' }],
        formName: [{ required: true, message: this.$t('请到DHR的个人信息中完善'), trigger: 'blur' }]
      }
      // personList: personList
    }
  },
  computed: {
    formData: {
      get() {
        return this.value
      },
      set(val) {
        this.$emit('input', val)
      }
    }
  },

vxe-form是一个基于Vue.js的表单组件库,其包含了多种表单元素,包括下拉框(select)。 使用vxe-form的下拉框非常简单。首先,需要引入相关的组件。 在Vue的模板,通过使用vxe-form-item组件包裹下拉框来创建表单项,例如: <vxe-form-item label="性别"> <vxe-select v-model="gender" placeholder="请选择性别"> <vxe-option label="男" value="male"></vxe-option> <vxe-option label="女" value="female"></vxe-option> <vxe-option label="其他" value="other"></vxe-option> </vxe-select> </vxe-form-item> 在上述代码,我们通过vxe-form-item设置了表单项的Label为“性别”,并且使用了v-model指令将下拉框的选择值绑定到data的gender变量上,使得选择的值能够在Vue实例进行使用。 在vxe-select,我们将每个选项都使用vxe-option组件包裹,其label属性设置了选项的展示文本,value属性设置了选项的值。 通过上述代码,我们就成功地创建了一个具有下拉框的表单项。当用户在下拉框进行选择时,Vue实例对应的gender变量会被更新为所选的值。 除了上述基本的使用方式外,vxe-form的下拉框还支持更多的配置。可以通过设置disabled属性来禁用下拉框,设置clearable属性来显示清除按钮,设置filterable属性来启用可搜索的下拉框等等。 总之,vxe-form的下拉框使用简单方便,通过设置v-model绑定数据实现数据的双向绑定,可以满足常见的下拉选择需求。同时,通过配置属性,可以进一步定制下拉框的功能和外观。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值