FAPIBrowser_wev8.js
6.42 KB
define("FAPIBrowser_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}" data-form="${form}">\t{@if readonly}\t\t<div class="wev-field{@if required} wev-field-required{@/if}{@if needWrap} wev-vertical{@/if}">\t\t\t<div>${field.label}</div>\t\t\t<div>\t\t\t\t<a href="javascript:void(0);">\t\t\t\t\t<div class="text readonly"></div>\t\t\t\t\t<div class="hiddenText"></div>\t\t\t\t\t<input type="hidden" name="fieldname_${field.name}" fieldid="${field.id}" value="${field.value}"/>\t\t\t\t</a>\t\t\t</div>\t\t</div>\t{@else}\t\t<div class="wev-field{@if required} wev-field-required{@/if}{@if needWrap} wev-vertical{@/if}">\t\t\t<div>${field.label}</div>\t\t\t<div>\t\t\t\t<a href="javascript:void(0);">\t\t\t\t\t<div class="text"></div>\t\t\t\t\t<div class="hiddenText"></div>\t\t\t\t\t<div class="wev-field-tip">${placeholder}</div>\t\t\t\t\t<i class="search"></i>\t\t\t\t\t<input type="hidden" name="fieldname_${field.name}" fieldid="${field.id}" value="${field.value}"/>\t\t\t\t</a>\t\t\t\t<div class="wev-clear-btn"></div>\t\t\t\t<div class="wev-showall-btn"></div>\t\t\t</div>\t\t</div>\t{@/if}</div>'}),define(["mUtil","Component","mService","Form"],function(v,t,e,l){return Mobile_NS.setAPIBrowser4SingleSelect=function(e){var t=e.rowData,i=$p("_fromBrowserPage"),a=$p("_browserCompId"),l=$p("_dataIDKey"),d=$p("_dataNameKey");require("mUtil").getInstance(a,i).setValue({id:t[l],text:t[d]}),Mobile_NS.backPage()},Mobile_NS.setAPIBrowser4MultiSelect=function(e){Mobile_NS.getListCheckedData(e,function(e){var t=$p("_fromBrowserPage"),i=$p("_browserCompId"),a=$p("_dataIDKey"),l=$p("_dataNameKey"),d="",n="";e.forEach(function(e,t){0<t&&(d+=",",n+=","),d+=e[a],n+=e[l]}),require("mUtil").getInstance(i,t).setValue({id:d,text:n}),Mobile_NS.backPage()})},t.init(function(e){var r,s,o,f=!1,u={};t.super(this,e),this.type="FAPIBrowser",this.tpl=this.type+"_html",this.dataload=!0;var i="||||",c=this.viewModel={form:"",field:{label:"",name:"",id:"",value:"",defaultValue:""},apiBrowser:{pageurl:"",compid:"",relateKey:{id:"",name:""}},showSet:{type:1,dbfield:"",apiConfig:{api:{},request:{},response:{}}},detailtable:{isA:!1},placeholder:"请选择",required:!1,readonly:!1,needWrap:!1,standalone:!0};this.beforeMount=function(){l.utils.setDefaultValue(this.pageid,c)},this.dbValueHasSet=!1,this.mounted=function(){var e=this.$el,a=this;if(r=e.find("input[name='fieldname_"+c.field.name+"']"),s=e.find(".text"),o=s.parent(),c.readonly?e.find(".text").on("click",function(){f&&o.toggleClass("showall")}):(e.find(".wev-clear-btn").on("click",function(){u.setValue("","")}),e.find(".wev-showall-btn").on("click",function(){f&&(o.toggleClass("showall"),$(this).toggleClass("transform180",o.hasClass("showall")))}),e.find(".search,.text,.wev-field-tip").on("click",function(e){var i={_fromBrowserPage:a.pageid,_browserCompId:a.id,_apiListId:c.apiBrowser.compid,_dataIDKey:c.apiBrowser.relateKey.id,_dataNameKey:c.apiBrowser.relateKey.name,_selectListIds:r.val()},t=Object.keys(i).reduce(function(e,t){return e+(-1!=e.indexOf("?")?"&":"?")+t+"="+i[t]},c.apiBrowser.pageurl);$u(t)})),c.field.needParseSqlValue)return l.utils.parseDefaultSqlValue(c.field.defaultValue,this.pageid,function(e){c.field.value=e,c.field.value&&a.setValue(c.field.value,!0)});c.field.value&&a.setValue(c.field.value,!0)},this.bindTrigger=function(e,t){var i=this.$container,a=c.field.id;if(a&&v.isObject(e)&&e["field"+a]){var l=e["field"+a];r.bind("change",function(){Mobile_NS.readyToTrigger(l,r,i)}),c.field.value&&(-1==c.form.indexOf("detailtable")&&!$p("billid")||t)&&Mobile_NS.readyToTrigger(l,r,i)}},this.getData=function(){var e=v.parseJSON("fieldname_"+c.field.name,r.val());return 1==c.showSet.type&&(e["fieldname_"+c.showSet.dbfield]=s.html()),e},this.getShowData=function(){var e=v.parseJSON(c.field.name+"_showvalue",s.html());return e[c.field.name]=r.val(),e},this.reset=function(){u.setValue(c.field.value,c.field.showname),this.$el.find(".wev-field").removeClass("wev-required-remind")},this.checkRequired=function(){var e=c.required&&!r.val(),t=c.field.label||v.getLabel(513588,"浏览按钮");return this.$el.find(".wev-field").toggleClass("wev-required-remind",e),e&&t},this.setRequired=function(e){c.required=e,this.$el.find(".wev-field").toggleClass("wev-field-required",e),!e&&this.$el.find(".wev-field").removeClass("wev-required-remind")},this.getFieldNameOfDB=function(){return 1==c.showSet.type?c.field.name+i+c.showSet.dbfield:c.field.name},this.setValueByDB=function(e){if(this.dbValueHasSet=!0,e||!c.field.value)if(-1!=(c.field.value=e).indexOf(i)){var t=e.split(i);c.field.value=t[0],c.field.showname=t[1],this.setValue({id:t[0],text:t[1]},!0)}else this.setValue(e,!0)},this.setValue=function(e,l,d){v.isFunction(l)&&(d=l);var n=e,t=e;return n?v.isObject(e)?(n=e.id,t=e.text,void u.setValue(n,t,l,d)):void(1==(c.showSet.type||1)?u.setValue(n,t,l,d):require(["apiHelper"],function(e){e.callApi(c.showSet.apiConfig,{SEARCH_KEY:n},function(e){var t=c.showSet.apiConfig.response.formats,i=t.DATAS?v.getKeyValue(t.DATAS,e):e,a=v.isObject(i)?JSON.stringify(i):i;l&&(c.field.showname=a),u.setValue(n,a,l,d)},function(){l&&(c.field.showname=n),u.setValue(n,n,l,d)})})):u.setValue("","",d)},this.text=function(){return s.text()},u.setValue=function(e,t,i,a){v.isFunction(i)&&(a=i);var l=this.$el,d=this.$el.find(".hiddenText"),n=!e;s.html(t),d.html(t),l.find(".wev-field-tip").toggle(n),l.find(".wev-clear-btn").toggle(!n),setTimeout(function(){var e=s[0].clientWidth,t=d[0].scrollWidth;c.readonly||(e-=64),!(f=e<t)&&o.removeClass("showall"),c.readonly||(o.parent().toggleClass("wev-expend",f),l.find(".wev-showall-btn").toggleClass("transform180",o.hasClass("showall")))},100),r.val(e),!i&&r.triggerHandler("change"),i&&this.dbValueHasSet&&v.trigger("dataload",this.pageid,this.id),a&&a.call(this)},u.getFormMecIDList=function(e){return $("[data-form='"+e+"']",this.$container).map(function(e,t){return t.id&&t.id.replace("NMEC_","")})},u.getFormData=function(){var e,t=c.form,r={},i=function(e,t){var i=v.getInstance(e),a=i.getData();if(v.isObject(a))for(var l in a){var d=a[l],n=l.toLowerCase();"FBrowser"!=i.type&&30<d.length&&(d=""),-1!=n.indexOf("fieldname_")&&(t&&(n=n.replace("fieldname_","fieldname_"+t+"_")),r[n]=d)}};if(0==c.form.indexOf("detailtable")&&(t=c.form.replace("detailtable",""),e=c.form),u.getFormMecIDList(t).forEach(function(e){i(e)}),e){var a=v.getInstance(e).viewModel.table.name.toLowerCase();u.getFormMecIDList(e).forEach(function(e){i(e,a)})}return r},u.setValue=u.setValue.bind(this),u.getFormMecIDList=u.getFormMecIDList.bind(this)})});