FBrowser_wev8.js
6.16 KB
define("FBrowser_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{@if haslink}\t\t\t\t\t<div class="text-haslink"></div>\t\t\t\t{@else}\t\t\t\t\t<div class="text readonly"></div>\t\t\t\t{@/if}\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\t{@if haslink}<div class="wev-showall-btn"></div>{@/if}\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","fieldParseHelper"],function(u,t,l,v){return t.init(function(e){var n,d,r,s,i,a=!1,o={};t.super(this,e),this.type="FBrowser",this.tpl=this.type+"_html",this.dataload=!0;var f=this.viewModel={form:"",field:{label:"",name:"",id:"",value:"",defaultValue:""},browser:{typeid:"",identifie:""},detailtable:{isA:!1},placeholder:"请选择",advancedSearch:!1,required:!1,readonly:!1,needWrap:!1,standalone:!0};this.dbValueHasSet=!1,this.beforeMount=function(){v.utils.setDefaultValue(this.pageid,f);var e=f.browser.typeid;f.haslink=f.readonly&&("16"==e||"9"==e||"37"==e||"152"==e||"171"==e)},this.mounted=function(){var t=this;if(n=this.$el,d=n.find("input[name='fieldname_"+f.field.name+"']"),r=f.haslink?n.find(".text-haslink"):n.find(".text"),s=n.find(".hiddenText"),i=r.parent(),n.find(".wev-showall-btn").on("click",function(){a&&(i.toggleClass("showall"),$(this).toggleClass("transform180",i.hasClass("showall")))}),f.readonly?f.haslink?require(["browserHelper"],function(e){r.on("click",function(){e.openBrowserLink(f.field.value,f.field.showname,f.browser.typeid)})}):r.on("click",function(){a&&i.toggleClass("showall")}):(n.find(".wev-clear-btn").on("click",function(){o.setValue("","")}),n.find(".search,.text,.wev-field-tip").on("click",function(e){var t=f.browser.typeid,i="",a={typeid:t,selectedIds:d.val(),success:function(e,t){o.setValue(e,t)}};1==t||17==t?(i="hrmbrowser",$.extend(a,{browserType:t})):256==t||257==t?(i="treebrowser",$.extend(a,{browserId:t,browserName:f.browser.identifie})):-1<["4","57","167","168","164","194","169","170"].indexOf(t)?(i="deptbrowser",$.extend(a,{browserId:t})):22==t?(i="fnabrowser",$.extend(a,{browserId:t})):(i="commonbrowser",$.extend(a,{browserId:t,browserName:f.browser.identifie,advancedSearch:f.advancedSearch,relateParam:o.getFormData()||{}}),f.advancedSearch&&$.extend(a,{timestamp:(new Date).valueOf()})),l.show(i,a)})),$(window).resize(function(){o.onResetView()}),f.field.needParseSqlValue)return v.utils.parseDefaultSqlValue(f.field.defaultValue,this.pageid,function(e){f.field.value=e,f.field.value&&t.setValue(f.field.value,!0)});f.field.value&&t.setValue(f.field.value,!0)},this.bindTrigger=function(e,t){var i=this.$container,a=f.field.id;if(a&&u.isObject(e)&&e["field"+a]){var l=e["field"+a];d.bind("change",function(){Mobile_NS.readyToTrigger(l,d,i)}),f.field.value&&(-1==f.form.indexOf("detailtable")&&!$p("billid")||t)&&Mobile_NS.readyToTrigger(l,d,i)}},this.getData=function(){return u.parseJSON("fieldname_"+f.field.name,d.val())},this.getShowData=function(){var e=u.parseJSON(f.field.name+"_showvalue",r.html());return e[f.field.name]=d.val(),e},this.reset=function(){o.setValue(f.field.value,f.field.showname),this.$el.find(".wev-field").removeClass("wev-required-remind")},this.checkRequired=function(){var e=f.required&&!d.val();return this.$el.find(".wev-field").toggleClass("wev-required-remind",e),e&&f.field.label},this.setRequired=function(e){f.required=e,this.$el.find(".wev-field").toggleClass("wev-field-required",e),!e&&this.$el.find(".wev-field").removeClass("wev-required-remind")},this.setValueByDB=function(e){this.dbValueHasSet=!0,!e&&f.field.value||(f.field.value=e,this.setValue(e,!0))},this.setValue=function(i,a,l){if(u.isFunction(a)&&(l=a),!i)return o.setValue("","",l);var e=f.browser.typeid,t=i.indexOf(",");-1!=t&&f.browser.isSingle&&(i=i.substring(0,t));var n=u.getActionUrl(this.type,{action:"parseValues",values:i,typeid:e,identifie:f.browser.identifie},this.pageid);u.getJSON(n,function(e){var t=e.data;a&&(f.field.showname=t),o.setValue(i,t,a,l)})},this.text=function(){return r.text()},o.setValue=function(e,t,i,a){u.isFunction(i)&&(a=i);var l=!e;r.html(t),s.html(t),n.find(".wev-field-tip").toggle(l),n.find(".wev-clear-btn").toggle(!l),setTimeout(function(){o.onResetView()},100),d.val(e),!i&&d.triggerHandler("change"),(this.dbValueHasSet||i)&&u.trigger("dataload",this.pageid,this.id),a&&a.call(this)},o.onResetView=function(){var e=r[0].clientWidth,t=s[0].scrollWidth;f.readonly||(e-=64),!(a=e<t)&&i.removeClass("showall"),f.readonly&&!f.haslink||(i.parent().toggleClass("wev-expend",a),n.find(".wev-showall-btn").toggleClass("transform180",i.hasClass("showall")))},this.onResetView=function(){o.onResetView()},o.getFormMecIDList=function(e){return $("[data-form='"+e+"']",this.$container).map(function(e,t){return t.id&&t.id.replace("NMEC_","")})},o.getFormData=function(){var e,t=f.form,r={},i=function(e,t){var i=u.getInstance(e),a=i.getData();if(u.isObject(a))for(var l in a){var n=a[l],d=l.toLowerCase();"FBrowser"!=i.type&&30<n.length&&(n=""),-1!=d.indexOf("fieldname_")&&(t&&(d=d.replace("fieldname_","fieldname_"+t+"_")),r[d]=n)}};if(0==f.form.indexOf("detailtable")&&(t=f.form.replace("detailtable",""),e=f.form),o.getFormMecIDList(t).forEach(function(e){i(e)}),e){var a=u.getInstance(e).viewModel.table.name.toLowerCase();o.getFormMecIDList(e).forEach(function(e){i(e,a)})}return r},o.setValue=o.setValue.bind(this),o.getFormMecIDList=o.getFormMecIDList.bind(this)})});