fieldTriggerHelper_wev8.js 4.64 KB
define(["mUtil"],function(m){var B={getFInstance:function(e){var a=$("[fieldid='"+e+"']",this.$page);if(a.length){var t=a.closest("[class^='wev-comp-']")[0].id.replace("NMEC_","");return m.getInstance(t)}m.console.error("Not found instance of "+e)},canConcat:function(e){if(!e)return!1;var a=e.type;return"FBrowser"==a&&!e.viewModel.browser.isSingle||"FTextarea"==a||"FInputText"==a}};function i(e,a,t){var d=this;for(var i in this.$page=t,this.triggerFieldValue=a.val(),e){var n=d.getValueByKey(e[i],"dataInputs"),r=d.getValueByKey(e[i],"isDel");if(n){var l=function(){for(var e in n){var a=n[e],t=d.getValueByKey(a,"datasourceName"),i=d.getValueByKey(a,"whereClause"),r=d.getValueByKey(a,"dataInputTables");d.setEachTriggerDetail(r,i,t)}},g=[],c=!1;n.forEach(function(e){var s=!1,u=!0,f=[],a=d.getValueByKey(e,"dataInputTables");a&&(a.forEach(function(e){(d.getValueByKey(e,"dataInputTableFields")||[]).every(function(e){var a=d.getValueByKey(e,"pagefieldindex"),t=d.getValueByKey(e,"pageFieldName"),i=$("*[fieldid='"+t.substring(5)+"']",d.$page);if(0<i.length){var r=i.val(),n=d.getValueByKey(e,"treenodeid");if(n&&r){var l=n+"_";if(r.slice(0,l.length)!=l)return u=!1}}if("1"==d.getValueByKey(e,"type"))0===a&&(s=!0);else{var g=d.getValueByKey(e,"pageDetailtable");if(0<a&&-1==f.indexOf(g)){var o=m.getDetailTableInstance(g);o&&!c&&0<$('tr[data-id=""]',o.$comp).length&&(c=!0),-1===f.indexOf(g)&&f.push(g)}}return!0})}),s&&u&&g.push.apply(g,f))}),"1"==r&&0<g.length&&c?m.getLabel("390243","即将执行主表字段联动明细字段,要删除暂未保存的明细表联动数据吗?",function(e){Mobile_NS.confirm(e,function(){g.forEach(function(e){var a=m.getDetailTableInstance(e);a&&$('tr[data-id=""]',a.$comp).each(function(){$(this).remove(),delete a.uploadDatas[$(this).data("rowindex")]})}),l()},l)}):l()}}}i.prototype.setEachTriggerDetail=function(e,a,t){var i=this,r=!1,n=!1;if(e){var l=[],g=[],o="",s=!0;for(var u in e){var f=e[u],d=i.getValueByKey(f,"tableName"),c=i.getValueByKey(f,"alias"),y=i.getValueByKey(f,"formId"),v=i.getValueByKey(f,"dataInputTableFields");if(""!=o&&(o+=","),o+=d+" "+c,v){for(var p in v){var b=v[p],h=i.getValueByKey(b,"pagefieldindex");if("1"==i.getValueByKey(b,"type")){r=0===h;var V={},m=i.getValueByKey(b,"dbFieldName");V.alias=c,V.name=m;var B=i.getValueByKey(b,"pageFieldName");V.fieldid=B;var K=i.getValueByKey(b,"conditions");V.conditions=K,V.value="";var T=$("*[fieldid='"+B.substring(5)+"']",i.$page);if(0<T.length){var N=T.val(),F=i.getValueByKey(b,"treenodeid");if(F&&N){var I=F+"_";if(N.slice(0,I.length)!=I){s=!1;break}N=N.replace(I,"")}V.value=N}g.push(V)}else{0!=h&&(n=!0);var D={};D.pageDetailtable=i.getValueByKey(b,"pageDetailtable"),D.searchFieldName=i.getValueByKey(b,"dbFieldName"),D.beTriggerName=i.getValueByKey(b,"pageFieldName"),D.pagefieldindex=h,D.formId=y,D.alias=c,l.push(D)}}if(!s)break}}s&&i.setTriggerDetail(o,a,l,t,g,r,n)}},i.prototype.setTriggerDetail=function(e,a,p,t,i,b,h){var V=this,r=[];p.forEach(function(e){r.push({id:e.beTriggerName,name:e.searchFieldName,alias:e.alias})});var n=m.jionActionUrl("com.api.mobilemode.web.mobile.service.MobileCommonAction","action=getFieldTriggerValue&triggerJsonArr="+encodeURIComponent(JSON.stringify(r))+"&fromTable="+e+"&whereClause="+encodeURIComponent(a)+"&triggerConditionjsonArr="+encodeURIComponent(JSON.stringify(i)));m.ajax(n,{datasourcename:t},function(e){if("1"==(e=$.parseJSON(e)).status){var a=e.data||[],t=!h||!b;if(t&&0==a.length&&a.push({}),!t&&0==a.length)for(var i in p)0==p[i].pagefieldindex&&V.setTriggerValue("",p[i].beTriggerName.substring(5));if(t)for(var i in p){var r=(y=p[i]).pageDetailtable,n=y.pagefieldindex,l=y.beTriggerName.substring(5),g="",o=B.getFInstance(l),s=B.canConcat(o);if(o){if(V.triggerFieldValue)for(var u=0;u<a.length&&(!g||s);u++){var f=V.getValueByKey(a[u],y.beTriggerName);f&&(g&&(g+=","),g+=f)}o.setValue(g)}}else for(u=0;u<a.length;u++){var d=a[u],c={};for(var i in p){var y;r=(y=p[i]).pageDetailtable,n=y.pagefieldindex,g=""!=V.triggerFieldValue?V.getValueByKey(d,y.beTriggerName):"",l=y.beTriggerName.substring(5);if(h&&b&&0<n){if(""!=V.triggerFieldValue){var v=c[r]||{};v[l]=g,c[r]=v}}else V.setTriggerValue(g,l)}Object.keys(c).forEach(function(e){var t=c[e],i=m.getDetailTableInstance(e);i&&i.addRowData(function(a){Object.keys(t).forEach(function(e){i.setValue(e,t[e],a)})})})}}})},i.prototype.setTriggerValue=function(e,a){var t=$("[fieldid='"+a+"']",this.$page);if(t[0])try{var i=t.closest("[class^='wev-comp-']")[0].id.replace("NMEC_","");m.getInstance(i).setValue(e)}catch(e){m.console.error(e)}},i.prototype.getValueByKey=function(e,a){var t="";for(var i in e)i.toLowerCase()==a.toLowerCase()&&(t=e[i]);return t},Mobile_NS.readyToTrigger=function(e,a,t){new i(e,a,t)}});