本篇文章给大家分享的是有关如何在vue中利用element动态加载表单,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
神木网站建设公司成都创新互联,神木网站设计制作,有大型网站制作公司丰富经验。已为神木上千提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的神木做网站的公司定做!一、问卷动态加载表单
//html//data数据 paperForm: { // 问卷表单 answerList:[{ questionRepository:'', questionOption:[], questionId: '', optionId:'', answer: '' }] }, //接口 getPaperByDrugStatus(drugStatus, id){ // 根据用药状态获取问卷 this.paperLoading = true this.$axios.get(this.$api + 'xxx/xxx?paperId='+this.selectStage.paperId + '&drugStatus=' + drugStatus).then(res => { if(res.data.code === 200){ let answerArr = [] let questionArr = [] res.data.data.questionToList.map((item)=>{ item.optionList.map((n)=>{ questionArr.push({ id:n.id, questionOption:n.questionOption }) }) answerArr.push({ questionOption:questionArr, questionRepository:item.questionRepository, questionId:item.questionRepository.id, optionId:item.questionRepository.type === 2?[]:'', answer: '' }) }) console.log(answerArr) this.paperForm = { // 问卷表单 answerList:answerArr } setTimeout(() => { this.paperLoading = false }, 300) } }) }, {{ i.questionOption }} {{ i.questionOption }} 保存问卷
二、批量数据动态加载表单
特点:
1.每一行的输入框,根据后台返回值,动态生成,数量可增可减。
2.行数根据自己设置的值 5 ,自动循环生成。
3.验证需要:prop和:rules,如果不验证,就删了
批量录入{{tabHeader.monthStr}}数据
患者请用姓名
或病历号模糊筛选以下信息每1个月登记一次 以下信息每3个月登记一次 以下信息每6个月登记一次 {{item.name}} {{n.name}} {{z.name}} 提交数据
部分必选:
data(){ return { formList:[{ patient:'', caseNumber:'', year:'', sex:'', dialysisAge:'', primaryDisease:'', diagnosis:'', creatinine:'', gfr:'', weekTreatTimes:'', weekDialysisHours:'' },{ patient:'', caseNumber:'', year:'', sex:'', dialysisAge:'', primaryDisease:'', diagnosis:'', creatinine:'', gfr:'', weekTreatTimes:'', weekDialysisHours:'' },{ patient:'', caseNumber:'', year:'', sex:'', dialysisAge:'', primaryDisease:'', diagnosis:'', creatinine:'', gfr:'', weekTreatTimes:'', weekDialysisHours:'' }] }, methods:{ submitData(){ let param={ dialysisId:this.$route.query.id, dialysisCenter:this.$route.query.name, createUserName:JSON.parse(localStorage.getItem('userInfo')).session.name, createUserId:JSON.parse(localStorage.getItem('userInfo')).session.id, patientList:nweArr } // 部分必选 start let ok = false // 需要必选的值 let rules = [{name:'patient',msg:'姓名'},{name:'caseNumber',msg:'身份证'},{name:'year',msg:'年龄'},{name:'sex',msg:'性别'}] this.formList.map((item)=>{ //每一行,是否有值 let hangNoVal = Object.keys(item).every(n=>item[n] == '') if(!hangNoVal){ //任意一个有值 for(let i of rules){ if(item[i.name] == ''){//必填项是否有值 this.$message({ message: i.msg+'不能为空!', type: 'error', duration: 1500 }) break } } }else{ ok = true } }) if(ok){ this.$message({ message: '请填写,再提交', type: 'error', duration: 1500 }) return false } // 部分必选 end this.$axios.post(this.$my.api + '/bms/input/bathSavePat',param).then(res => { if(res.data&&res.data.code === 200){ //ok } }).catch(function (error) {}) }, } } //情况二:有输入,才必填 // 部分必选 start let ok = [] let no = '' // 需要必选的值 let rules = [{name:'patient',msg:'姓名'},{name:'caseNumber',msg:'身份证'},{name:'year',msg:'年龄'},{name:'sex',msg:'性别'}] this.formList.map((item)=>{ //每一行,是否有值 let hangNoVal = Object.keys(item).every(n=>item[n] == '') if(!hangNoVal){ //任意一个有值 ok.push(false) for(let i of rules){ if(item[i.name] == ''){//必填项是否有值 no = true this.$message({ message: i.msg+'不能为空!', type: 'error', duration: 1500 }) break } } }else{ ok.push(true) } }) if(ok.every(n=>n == true)){ this.$message({ message: '请填写,再提交', type: 'error', duration: 1500 }) return false } if(no){ return false } // 部分必选 end
以上就是如何在vue中利用element动态加载表单,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。