uni-app uv-form-item动态表单form开发方法

 uni-app uv-form-item动态表单form开发方法

因为在开发中,发现uni-app、uv-ui中没有找到我想要相关的功能,自主研究时,

制定了一个方法可以重复新增项功能

<uv-form :model="form" ref="form" :rules="rules">
<view v-for="(item, index) in form.projectcontactArr" :key="index">
    <view @click="addContact(index+1)">新增项</view>
</view>

data() {
    return {
      barHeight: 0,
      //1新增2编辑
      entranceType: null,
      form: {
				 projectcontactArr:[
					{
						role:null,
						roleName:null,
						name:null,
						phone:null,
						gender:null,
						genderName:null
					}
				],
			},
      rules: {
				'projectcontactArr.0.roleName': [
					{ type: 'string',required: true, message: '请选择...', trigger: ['blur', 'change'] },
				],
				'projectcontactArr.0.name': [
					{ type: 'string',required: true, message: '请输入...', trigger: ['blur', 'change'] },
				],
				'projectcontactArr.0.phone': [
					{ type: 'string',required: true, message: '请输入...', trigger: ['blur', 'change'] },
				],
				'projectcontactArr.0.genderName': [
					{ type: 'string',required: true, message: '请选择...', trigger: ['blur', 'change'] },
				]
			}
    };
  }

1、在uv-form-item中prop设置规则

eg:

        :prop="'projectcontactArr.' + index + '.roleName'"

2、uv-input等相关组件v-model中设置规则

eg:

        v-model="item.roleName"

3、新增项方法

addContact(e) {
      this.form.projectcontactArr.push({
				role:null,
				roleName:null,
				name:null,
				phone:null,
				gender:null,
				genderName:null
      });
			let role = `projectcontactArr.${e}.roleName`
			let name = `projectcontactArr.${e}.name`
			let phone = `projectcontactArr.${e}.phone`
			let gender = `projectcontactArr.${e}.genderName`
			let getjson = {
				role: [
					{ type: 'string',required: true, message: '请选择...', trigger: ['blur', 'change'] },
				],
				name: [
					{ type: 'string',required: true, message: '请输入...', trigger: ['blur', 'change'] },
				],
				phone: [
					{ type: 'string',required: true, message: '请输入...', trigger: ['blur', 'change'] },
				],
				gender: [
					{ type: 'string',required: true, message: '请选择...', trigger: ['blur', 'change'] },
				]
			}
			this.rules[role] = getjson.role
			this.rules[name] = getjson.name
			this.rules[phone] = getjson.phone
			this.rules[gender] = getjson.gender
    },

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值