FSelect_wev8.js 5.8 KB
define("FSelect_html",function(){return'<div id="NMEC_${id}" class="wev-comp-${compType}" data-form="${form}">\t<div class="wev-field{@if required} wev-field-required{@/if}{@if needWrap} wev-vertical{@/if}">\t\t<div>${field.label}</div>\t\t<div>\t\t\t<select name="fieldname_${field.name}" fieldid="${field.id}" value="${field.value}" {@if readonly} disabled {@/if}>\t\t\t\t{@each items as item, index}\t\t\t\t<option value="${item.value}" {@if item.value == field.value} selected{@/if}>$${item.name}</option>\t\t\t\t{@/each} \t\t\t</select>\t\t</div>\t</div></div>'}),define(["mUtil","Component","Form"],function(f,l,n){return l.init(function(e){var r,t,u,c={};l.super(this,e),this.type="FSelect",this.tpl=this.type+"_html",this.dataload=!0;var o=this.viewModel={form:"",field:{label:"",name:"",id:"",value:"",defaultValue:""},items:[],detailtable:{isA:!1},required:!1,readonly:!1,needWrap:!1};this.dbValueHasSet=!1,this.beforeMount=function(){n.utils.setDefaultValue(this.pageid,o)};var a=$.Deferred();this.mounted=function(){var i=this;if(t=this.$el.find(".wev-field"),u=this.$el.find("select"),r=this.$container,!0===o.items){var e=f.getActionUrl(this.type,{action:"getOptionDatas",mec_id:this.id,detailtable:o.detailtable.id},this.pageid);f.getJSON(e,function(e){var i=e.datas,a="";$(i).each(function(e,i){var t=i.value==o.field.value?"selected='selected'":"";a+="<option value='"+i.value+"' "+t+">"+i.name+"</option>"}),u.html(a)}).then(function(){a.resolve()})}else a.resolve();if(o.field.needParseSqlValue)return n.utils.parseDefaultSqlValue(o.field.defaultValue,this.pageid,function(e){o.field.value=e,i.setValue(o.field.value,!0)})},this.initComponentData=function(){return a},this.getData=function(){return f.parseJSON("fieldname_"+o.field.name,u.val())},this.getShowData=function(){var e=u.val(),i=f.parseJSON(o.field.name,e);return i[o.field.name+"_showvalue"]=$("option[value='"+e+"']",u).text()||"",i},this.reset=function(){this.setValue(o.field.value),t.removeClass("wev-required-remind")},this.checkRequired=function(){var e=o.required&&!u.val();return t.toggleClass("wev-required-remind",e),e&&o.field.label},this.bindTrigger=function(e,i){var t=this,a=o.field.id,l=o.field.parentid;if(a&&f.isObject(e)&&e["field"+a]){var n=e["field"+a];u.on("change",function(){Mobile_NS.readyToTrigger(n,u,t.$container)}),o.field.value&&(-1==o.form.indexOf("detailtable")&&!$p("billid")||i)&&Mobile_NS.readyToTrigger(n,u,t.$container)}if(a&&o.field.childid&&u.on("change",function(){c.initSelect(o.field.id,o.field.childid,u.val(),"",function(){$(this).change()})}),l&&a){var d=r.find("[fieldid='"+l+"']").val()||"",s=o.field.value;c.initSelect(l,a,d,s)}},this.setValueByDB=function(e){this.dbValueHasSet=!0,!e&&o.field.value||(o.field.value=e,this.setValue(e))},this.setValue=function(e){u.val(e).triggerHandler("change"),this.dbValueHasSet&&f.trigger("dataload",this.pageid,this.id)},this.setRequired=function(e){o.required=e,t.toggleClass("wev-field-required",e),!e&&t.removeClass("wev-required-remind")},this.bindAttrLinkage=function(l,e){l&&u.on("change",function(){var e=u.val();if(e){var i=l[e];i&&i.forEach(function(a){a.changeFields.forEach(function(e,i,t){-1!==e&&c.triggerAttrLinkage(e,a.viewAttr)})})}else{var t=f.getInstance(o.form);if(t){var a=t.getFormFieldsAttr();Object.keys(a).forEach(function(e){c.triggerAttrLinkage(e,a[e])})}}}),u.val()&&(o.detailtable.isA&&setTimeout(function(){u.triggerHandler("change")},500)||u.triggerHandler("change"))},c.triggerAttrLinkage=function(e,i){var t=f.getInstance(e),a=t.viewModel,l=t.$el,n=1;switch(n="hidden"==$(".wev-field",l).children("div:last-child").children().eq(0).css("visibility")?4:"none"==l.css("display")?5:a.readonly?3:a.required?2:1,i=Number(i)){case 1:switch(n){case 2:c.setRequired(t,!1);break;case 3:a.readonly=!1,a.required=!1,c.mountField(t,a);break;case 4:c.setRequired(t,!1),c.setDisplay(l,!0,!0);break;case 5:c.setRequired(t,!1),c.setDisplay(l,!0)}break;case 2:switch(n){case 1:c.setRequired(t,!0);break;case 3:a.readonly=!1,a.required=!0,c.mountField(t,a);break;case 4:c.setRequired(t,!0),c.setDisplay(l,!0,!0);break;case 5:c.setRequired(t,!0),c.setDisplay(l,!0)}break;case 3:switch(n){case 1:case 2:case 4:c.setDisplay(l,!0,!0);case 5:a.readonly=!0,a.required=!1,c.mountField(t,a),c.setDisplay(l,!0)}break;case 4:switch(n){case 1:case 2:c.setRequired(t,!1),c.setDisplay(l,!1,!0);break;case 3:a.readonly=!1,a.required=!1,c.mountField(t,a),c.setDisplay(l,!1,!0);break;case 5:c.setDisplay(l,!1,!0),c.setDisplay(l,!0)}break;case 5:switch(n){case 1:case 2:c.setRequired(t,!1),c.setDisplay(l,!1);break;case 3:c.setDisplay(l,!1),a.readonly=!1,a.required=!1,c.mountField(t,a);break;case 4:c.setDisplay(l,!1),c.setDisplay(l,!0,!0)}}},c.mountField=function(e,i){if("FLbs4amap"==e.type)e.setReadonly(i.readonly),e.setRequired(i.required);else{if(i.field&&i.field.name){var t=o.detailtable.isA?$f(o.detailtable.name+"."+i.field.name).val():$f(i.field.name).val();t&&(i.field.defaultValue=t,i.field.value=t)}e.beforeMount(),l.render(e.$el,i),e.mounted(),("FHandwriting"==e.type||i.readonly&&"FInputText"==e.type&&o.detailtable.isA)&&e.setValue(t)}},c.setRequired=function(e,i){f.isFunction(e.setRequired)&&e.setRequired(i)},c.setDisplay=function(e,i,t){var a=t?"visibility":"display",l=i?"":t?"hidden":"none";t&&$(".wev-field",e).children("div:last-child").children().css(a,l)||e.css(a,l)},this.text=function(){var e=u[0].selectedIndex;return u.find("option").eq(e).text()},c.initSelect=function(e,i,t,l,a){if(e&&i){var n=r.find("[fieldid='"+i+"']");if(n.length){var d=f.getActionUrl("service.MobileCommon",{action:"selectChange"}),s=function(e){n.empty().html(e),f.isFunction(a)&&a.call(n[0])};if(!t)return s("");f.getJSON(d,{fieldid:e,childfieldid:i,selectvalue:t},function(e){var i=e.datas,a="<option></option>";i&&i.length&&$(i).each(function(e,i){var t=l==i.value?"selected='selected'":"";a+="<option value='"+i.value+"' "+t+">"+i.text+"</option>"}),s(a)})}}}})});