formExtHelper_wev8.js 7.03 KB
define(["mUtil","i18n"],function(mUtil,i18n){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 o=f[v];for(r=0;r<a.length;r++){var y=a[r],s=y.detailtable;if(null!=s&&""!=s){var m;if(!(m=mUtil.getDetailTableInstance(s,vm.id)))continue;var p=(s+"_id_rowindex_"+o).toLowerCase(),F=(s+"_"+y.fieldname+"_rowindex_"+o).toLowerCase(),c="detail_"+t.orderid,A=parseInt(o)-2;verifyArr[c]||(verifyArr[c]=[]),verifyArr[c][A]||(verifyArr[c][A]={}),verifyArr[c][A]["field"+y.fieldid]=m.getRowFieldValueByKey(o,F)||"",verifyArr[c][A].dtl_id=m.getRowFieldValueByKey(o,p)||"",verifyArr[c][A].index=A}}}}}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,o=f.rowIndex,y=f.fieldhtmltype,s=3==y||4==y||5==y;if(null!=v&&""!=v){var m=mUtil.getDetailTableInstance(v,vm.id),p=(v+"_id_rowindex_"+o).toLowerCase(),F=(v+"_"+t+"_rowindex_"+o).toLowerCase(),c=m.getRowFieldValueByKey(o,p)||"";n=m.getRowFieldValueByKey(o,F),s&&(f.fieldshowtext=m.text(F.match(/_dt.+?_(\S*)_rowindex_/)[1],parseInt(o)-1)),a.detaildataid=c}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"}),req=mUtil.ajax(actionUrl,paramData,function(e){var i=e.data,a="",f="",n=!1,v=1,o=1,y=!0;if(-1!=modeid){var r=i.verifyErrors;r&&mUtil.isArray(r)&&r.map(function(e){y=!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+=o+"、"+t+"#THEROW#"+d.map(function(e){return e+1}).join(",")+"#REPEATROW##REPEAT#.<br />",o++):"0"==i?(n=!0,a+=v+"、"+(1<r.length?"#VERIFICATION#":"")+r.join(",")+"#REPATED#.<br />",v++):(f+=o+"、"+(1<r.length?"#VERIFICATION#":"")+r.join(",")+"#REPATED#.<br />",o++)})}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){y=!1;F.id;var c=F.operate,A="";if(m=F.message){if("ignore"==m)continue;A="、"+m,A+="<br/>"}else{A+="、#VERIFICATION#";for(var u=F.fieldids,g=0;g<u.length;g++){var T=u[g];A+="【"+T.labelname+':"'+(T.fieldshowtext||T.fieldvalue)+'"】,'}0<A.length&&(A=A.substring(0,A.length-1)),A+="#REPATED#.<br/>"}"0"==c?(n=!0,a+="&nbsp;&nbsp;&nbsp;&nbsp;"+v+A,v++):"1"==c&&(f+="&nbsp;&nbsp;&nbsp;&nbsp;"+o+A,o++)}}}if(y)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",error:function(){Mobile_NS.alert(i18n.NETWORK_ERROR,function(){failFn.call(window)})}});setTimeout(function(){req.readyState<2&&req.abort()},15e3)}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});