FCheckbox_wev8.js 3.3 KB
define("FCheckbox_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}" data-form="${form}">\t<div class="wev-field wev-vertical {@if required}wev-field-required{@/if}"  {@if !field.label}style="display:none;"{@/if}>\t    <div>${field.label}</div>\t    <div>\t    \t<div class="{@if vertical}wev-checkbox-vertical-container{@else}wev-checkbox-horizontal-container{@/if}">\t\t\t\t<ul>\t\t\t\t\t{@each items as item, index}\t\t\t\t\t\t<li {@if (\',\'+ field.value + \',\').indexOf(\',\' + item.value + \',\') > -1 } class="checked"{@/if}  data-value = "${item.value}">\t\t\t\t\t\t\t\t<div>$${item.name}</div>\t\t\t\t\t\t</li>\t\t\t\t\t{@/each}\t\t\t\t</ul>\t\t\t</div>\t\t\t<input type="hidden" name="fieldname_${field.name}" fieldid="${field.id}" value="${field.value}"/>\t    </div>\t</div>\t</div>'}),define(["mUtil","Component","Form"],function(r,f,v){return f.init(function(e){var i,n,l,a={},s="checked";f.super(this,e),this.type="FCheckbox",this.tpl=this.type+"_html",this.css=this.type+"_css",this.dataload=!0;var d=this.viewModel={form:"",field:{label:"",name:"",value:"",defaultValue:""},items:[],detailtable:{isA:!1},multiselect:!1,vertical:!1,required:!1,readonly:!1},u=$.Deferred();for(var t in this.dbValueHasSet=!1,this.beforeMount=function(){v.utils.setDefaultValue(this.pageid,d)},this.mounted=function(){var t=this;if(i=this.$el.find(".wev-field"),l=this.$el.find("input[name='fieldname_"+d.field.name+"']"),n=this.$el.find("ul"),d.readonly||n.on("click","li",function(){var e=$(this).hasClass(s);!d.multiselect&&$(this).siblings("li").removeClass(s),$(this).toggleClass(s,!e),l.val(a.getValue())}),!0===d.items){var e=r.getActionUrl(this.type,{action:"getOptionDatas",mec_id:this.id},this.pageid);r.getJSON(e,function(e){var t=e.datas,l="",a=d.field.value.split(",");$(t).each(function(e,t){var i=-1!=a.indexOf(t.value)?'class="checked"':"";l+="<li "+i+' data-value="'+t.value+'"><div>'+t.name+"</div></li>"}),n.html(l)}).then(function(){u.resolve()})}else u.resolve();if(d.field.needParseSqlValue)return v.utils.parseDefaultSqlValue(d.field.defaultValue,this.pageid,function(e){d.field.value=e,d.field.value&&t.setValue(d.field.value,!0)})},this.initComponentData=function(){return u},this.getData=function(){return r.parseJSON("fieldname_"+d.field.name,a.getValue())},this.reset=function(){a.setValue(d.field.value),i.removeClass("wev-required-remind")},this.checkRequired=function(){var e=d.required&&!this.$el.find("."+s).size();return i.toggleClass("wev-required-remind",e),e&&d.field.label},this.setRequired=function(e){d.required=e,i.toggleClass("wev-field-required",e),!e&&i.removeClass("wev-required-remind")},this.text=function(){var e=[];return this.$el.find("."+s).each(function(){e.push($(this).children("div").text())}),e.join(",")},this.getValue=function(){return a.getValue()},this.setValueByDB=function(e){this.dbValueHasSet=!0,!e&&d.field.value||(d.field.value=e,this.setValue(e))},this.setValue=function(e){a.setValue(e)},a.getValue=function(){var e=[];return this.$el.find("."+s).each(function(){e.push($(this).attr("data-value"))}),e.join(",")},a.setValue=function(e){var t=this;n.children("li").removeClass(s),String(e).split(",").forEach(function(e){e&&t.$el.find("[data-value='"+e+"']").addClass(s)}),l.val(e),this.dbValueHasSet&&r.trigger("dataload",t.pageid,t.id)},a)r.isFunction(a[t])&&(a[t]=a[t].bind(this))})});