formExtHelper_wev8.js
6.88 KB
define(["mUtil"],function(mUtil){function doFieldRepeatVerify(repeatVerifyFieldInfo,successFn,failFn){var vm=this.viewModel,$page=this.$container,billid=vm.billid,formid=vm.relate.formid,modeid=vm.relate.modeid;function getFieldValue(){getMainFeildValueArray(),getDetailFeildValueArray()}function getFieldValueInCubeMethod(){for(var e=0;verifyMainFieldArr&&e<verifyMainFieldArr.length;e++)for(var i=verifyMainFieldArr[e].fieldids,r=0;r<i.length;r++){var l=i[r];verifyArr["field"+l.fieldid]=$f(l.fieldname).val()}for(var d=0;verifyDetailFieldArr&&d<verifyDetailFieldArr.length;d++){var t=verifyDetailFieldArr[d],a=t.fieldids,f=new Array;for(r=0;r<a.length;r++){var n=a[r].detailtable;if(n==t.detailtable){(m=mUtil.getDetailTableInstance(n,vm.id))&&(f=m.getIndexArray(n));break}}for(var v=0;v<f.length;v++){var y=f[v];for(r=0;r<a.length;r++){var o=a[r],s=o.detailtable;if(null!=s&&""!=s){var m;if(!(m=mUtil.getDetailTableInstance(s,vm.id)))continue;var p=(s+"_id_rowindex_"+y).toLowerCase(),F=(s+"_"+o.fieldname+"_rowindex_"+y).toLowerCase(),A="detail_"+t.orderid,c=parseInt(y)-2;verifyArr[A]||(verifyArr[A]=[]),verifyArr[A][c]||(verifyArr[A][c]={}),verifyArr[A][c]["field"+o.fieldid]=m.getRowFieldValueByKey(y,F)||"",verifyArr[A][c].dtl_id=m.getRowFieldValueByKey(y,p)||"",verifyArr[A][c].index=c}}}}}function getMainFeildValueArray(){for(var i=0;verifyMainFieldArr&&i<verifyMainFieldArr.length;i++){var verifyField=verifyMainFieldArr[i],id=verifyField.id;verifyField.checkStatus="true";for(var fieldids=verifyField.fieldids,index=0;index<fieldids.length;index++){var verify=fieldids[index],fieldname=verify.fieldname,fieldhtmltype=verify.fieldhtmltype,getText=3==fieldhtmltype||4==fieldhtmltype||5==fieldhtmltype;getText&&(verify.fieldshowtext=$f(fieldname).text()),verify.fieldvalue=$f(fieldname).val()}if(null==veriryFieldArr){var jsonStrTmp="["+JSON.stringify(verifyField)+"]";veriryFieldArr=eval("("+jsonStrTmp+")")}else veriryFieldArr.push(verifyField)}}function getDetailFeildValueArray(){for(var e=0;verifyDetailFieldArr&&e<verifyDetailFieldArr.length;e++){for(var i=(a=verifyDetailFieldArr[e]).fieldids,r=a.detailtable,l=new Array,d=0;d<i.length;d++){var t=(f=i[d]).fieldname;if((v=f.detailtable)==r){(m=mUtil.getDetailTableInstance(v,vm.id))&&(l=m.getIndexArray(v));break}}createVerifyField4Detail(a,l)}for(e=0;null!=veriryFieldArr&&e<veriryFieldArr.length;e++){var a;(a=veriryFieldArr[e]).checkStatus="true";for(i=a.fieldids,d=0;d<i.length;d++){t=(f=i[d]).fieldname;var f,n,v=f.detailtable,y=f.rowIndex,o=f.fieldhtmltype,s=3==o||4==o||5==o;if(null!=v&&""!=v){var m=mUtil.getDetailTableInstance(v,vm.id),p=(v+"_id_rowindex_"+y).toLowerCase(),F=(v+"_"+t+"_rowindex_"+y).toLowerCase(),A=m.getRowFieldValueByKey(y,p)||"";n=m.getRowFieldValueByKey(y,F),s&&(f.fieldshowtext=m.text(F.match(/_dt.+?_(\S*)_rowindex_/)[1],parseInt(y)-1)),a.detaildataid=A}else a.detaildataid=billid,s&&(f.fieldshowtext=$f(t).text()),n=$f(t).val();f.fieldvalue=n}}}function createVerifyField4Detail(verifyField,indexArray){for(var i=0;i<indexArray.length;i++){var rowIndex=indexArray[i],verifyFieldTmp={};for(var key in verifyField)if("id"==key)verifyFieldTmp[key]=verifyField[key]+"_"+i;else if("fieldids"==key){for(var fieldids=verifyField.fieldids,fieldidstmp=null,index=0;index<fieldids.length;index++){var verifyTmp={},verify=fieldids[index],fieldid=verify.fieldid,detailtabletmp=verify.detailtable;for(var key1 in null!=detailtabletmp&&""!=detailtabletmp&&(fieldid=fieldid+"_"+(rowIndex-1),verifyTmp.rowIndex=rowIndex),verify)"fieldid"==key1?verifyTmp.fieldid=fieldid:verifyTmp[key1]=verify[key1];if(null==fieldidstmp){var jsonStrTmp="["+JSON.stringify(verifyTmp)+"]";fieldidstmp=eval("("+jsonStrTmp+")")}else fieldidstmp.push(verifyTmp)}verifyFieldTmp.fieldids=fieldidstmp}else verifyFieldTmp[key]=verifyField[key];if(null==veriryFieldArr){var jsonStrTmp="["+JSON.stringify(verifyFieldTmp)+"]";veriryFieldArr=eval("("+jsonStrTmp+")")}else veriryFieldArr.push(verifyFieldTmp)}}if(verifyMainFieldArr=repeatVerifyFieldInfo.main,verifyDetailFieldArr=repeatVerifyFieldInfo.detail,veriryFieldArr=null,verifyArr={},-1!=modeid?getFieldValueInCubeMethod():getFieldValue(),null!=veriryFieldArr||verifyArr!={}){var jsonstr=-1!=modeid?JSON.stringify(verifyArr):encodeURI(JSON.stringify(veriryFieldArr)),paramData={verifys:jsonstr,formId:formid,billid:billid,modeId:modeid},actionUrl=mUtil.getActionUrl("service.FormComponent",{action:"verify"});mUtil.ajax(actionUrl,paramData,function(e){var i=e.data,a="",f="",n=!1,v=1,y=1,o=!0;if(-1!=modeid){var r=i.verifyErrors;r&&mUtil.isArray(r)&&r.map(function(e){o=!1;var i=e.operate,r=e.errors,l=e.isDetailSelfRepeat,d=e.repeatIndex,t=e.detailName;l?"0"==i?(n=!0,a+=v+"、"+t+"#THEROW#"+d.map(function(e){return e+1}).join(",")+"#REPEATROW##REPEAT#.<br />",v++):(f+=y+"、"+t+"#THEROW#"+d.map(function(e){return e+1}).join(",")+"#REPEATROW##REPEAT#.<br />",y++):"0"==i?(n=!0,a+=v+"、"+(1<r.length?"#VERIFICATION#":"")+r.join(",")+"#REPATED#.<br />",v++):(f+=y+"、"+(1<r.length?"#VERIFICATION#":"")+r.join(",")+"#REPATED#.<br />",y++)})}else{for(var l=i.resultList,d=0;i&&d<l.length;d++){var t=l[d].verifyid,s=l[d].datacount,m=l[d].message;if(0<s)for(var p=0;p<veriryFieldArr.length;p++){t==(F=veriryFieldArr[p]).id&&(F.checkStatus="false",F.message=m)}}for(d=0;d<veriryFieldArr.length;d++){var F;if("false"==(F=veriryFieldArr[d]).checkStatus){o=!1;F.id;var A=F.operate,c="";if(m=F.message){if("ignore"==m)continue;c="、"+m,c+="<br/>"}else{c+="、#VERIFICATION#";for(var g=F.fieldids,u=0;u<g.length;u++){var T=g[u];c+="【"+T.labelname+':"'+(T.fieldshowtext||T.fieldvalue)+'"】,'}0<c.length&&(c=c.substring(0,c.length-1)),c+="#REPATED#.<br/>"}"0"==A?(n=!0,a+=" "+v+c,v++):"1"==A&&(f+=" "+y+c,y++)}}}if(o)successFn.call(window);else{mUtil.getMultiLabel({383707:"您录入的数据不满足以下验证:",388900:"请重新录入!",388902:"是否继续保存?",383781:"确认操作",388903:"取消保存",1256:"继续",383704:"已重复.",388904:"组合验证",15323:"第",18620:"行",18082:"重复"},function(e){var i='<div class="wev-repeat-tips"><span>'+e[383707]+"<br/>";n?(i+=a,i+=e[388900]+"</span></div>",Mobile_NS.alert(i.replace(/#REPATED#/g,e[383704]).replace(/#VERIFICATION#/g,e[388904]).replace(/#THEROW#/g,e[15323]).replace(/#REPEATROW#/g,e[18620]).replace(/#REPEAT#/g,e[18082])),failFn.call(window)):(i+=f,i+=e[388902]+"</span></div>",Mobile_NS.Confirm(i.replace(/#REPATED#/g,e[383704]).replace(/#VERIFICATION#/g,e[388904]).replace(/#THEROW#/g,e[15323]).replace(/#REPEATROW#/g,e[18620]).replace(/#REPEAT#/g,e[18082]),e[383781],[e[388903],function(){failFn.call(window)}],[e[1256],function(){successFn.call(window)}]))})}},{type:"POST",dataType:"json"})}else successFn.call(window)}var formExtHelper={formFieldRepeatVerify:function(i,r,l){i.getRepeatVerifyInfo(function(e){doFieldRepeatVerify.call(i,e,r,l)})}};return Mobile_NS.formFieldRepeatVerify=function(e,i,r){var l=mUtil.getInstance(e);l&&formExtHelper.formFieldRepeatVerify(l,i,r)},formExtHelper});