mobilemode.api.form_wev8.js
3.69 KB
define("mApi/form",["mUtil"],function(h){function n(t,e,c){this.name=t.toLowerCase(),this.rowindex=e,c=c||h.getCurrentPageId();var o,d=this,i=$("#"+c),n=d.name.match(/(\w+)\.(\w+)/);if(n&&(this.detailtable=n[1],this.name=n[2]),this.detailtable&&void 0!==e){var a=h.getDetailTableInstance(this.detailtable,"",c);if(!a){var s=this.detailtable;h.getLabel(5363,"未找到名称为#DETAILTABLE#的明细表实例。",function(e){console.error(e.replace("#DETAILTABLE#",s))})}d.instance=a}else $.each($("div[class^='wev-comp-'][data-form]:not(.wev-comp-DetailTable)",i),function(e){var t=$(this),i=t.attr("id").replace("NMEC_",""),n=t.data("form"),a=h.getInstance(i,c),s=a.viewModel,l=0==n.indexOf("detailtable");if(a.containsField){if(a.containsField(d.name))return d.instance=a,o=$(),!1}else{var r=s.field.name.toLowerCase();if(d.name==r&&(d.detailtable&&l||!d.detailtable&&!l))return d.instance=a,o=t.find("[name^='fieldname_']"),!1}});return null==o?(this.$Obj=$(),void 0===e&&h.getLabel(5364,"未找到名称为#NAME#的字段。",function(e){console.error(e.replace("#NAME#",t))})):this.$Obj=o,this}function a(e){return h.isString(e)?$("#"+e):$(e)}return n.prototype.val=function(e){if(void 0===e)return this.instance&&this.instance.getValue?this.instance.getValue(this.name,this.rowindex):this.$Obj.val();if(this.instance){if(this.detailtable){var t=[e];this.rowindex&&(t=[this.name,e,this.rowindex]),this.instance.setValue.apply(this.instance,t)}else this.instance.setValue(e);return this}},n.prototype.text=function(){var e=this.instance;return e&&h.isFunction(e.text)?e.text(this.name,this.rowindex):this.$Obj.text()},["change","click","on","off","bind","unbind"].forEach(function(e){n.prototype[e]=function(){this.$Obj[e].apply(this.$Obj,arguments)}}),{getField:function(e,t,i){return new n(e,t,i)},submit:function(t,e,i){var n=h.getInstance(t,i);n&&h.isFunction(n.submit)?n.submit(e):h.getLabel(6131,"未找到表单ID:#FORMID#对应的表单插件或表单插件对应的#method#方法不存在",function(e){alert(e.replace("#FORMID#",t).replace("#method#","submit"))})},deleteData:function(t,e,i){var n=h.getInstance(t,i);n&&h.isFunction(n.deleteData)?n.deleteData(e):h.getLabel(6131,"未找到表单ID:#FORMID#对应的表单插件或表单插件对应的#method#方法不存在",function(e){alert(e.replace("#FORMID#",t).replace("#method#","deleteData"))})},wrapToDatetime:function(e,t,i){var n=a(e),o=require("pageEvent");n.length<=0||require(["dtpicker"],function(){n.each(function(){var a=$(this),e=a.data("prevoffset")||100,t=a.data("nextoffset")||1,i=(new Date).getFullYear(),s=i-e,l=i+t,n=a.siblings(".wev-field-view-span"),r=null,c=function(){r&&r.hide()};n.on("click",function(){var i=this,n=$(this),e=n.closest(".wev-field").attr("data-fieldType");i.dtPicker||(i.dtPicker=new $.DtPicker({type:e,value:a.val(),beginYear:s,endYear:l,close:function(){o.destory("change",c)}})),i.dtPicker.show(function(e){var t=e.value;return n.html(t),a.val(t).trigger("change"),n[t?"removeClass":"addClass"]("wev-field-view-tip").html(t||n.attr("showname")),i.dtPicker.dispose(),i.dtPicker=null,!1}),r=i.dtPicker,o.destory("change",c).register("change",c)}),a.change(function(){""!=$(this).val()?$(this).parent().addClass("wev-has-value"):$(this).parent().removeClass("wev-has-value")}),a.siblings(".wev-clear-btn").click(function(){a.val("").triggerHandler("change"),n.html(n.attr("showname")).addClass("wev-field-view-tip")})})})},wrapToToggle:function(e){var t=a(e);t.length<=0||(t.change(function(){var e=$(this).val(),t=$(this).siblings(".wev-toggle");""==e||"0"==e?t.removeClass("wev-active"):t.addClass("wev-active")}),t.siblings(".wev-toggle").click(function(){var e=$(this).siblings("input"),t=e.val();t=""==t||"0"==t?"1":"0",e.val(t).triggerHandler("change")}))}}});