FLbs4amap_wev8.js 5.72 KB
define("FLbs4amap_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}">\t\t<div class="wev-flbs4amap-before"></div>\t\t<div>\t\t\t<div class="wev-flbs4amap-entry ${hasvalue}">\t\t\t\t<div class="wev-flbs4amap-location">{@if field.label}${field.label}{@else}所在位置{@/if}</div>\t\t\t\t<div class="wev-flbs4amap-content">\t\t\t\t\t<div class="wev-flbs4amap-detail"></div>\t\t\t\t\t{@if !readonly}<div class="wev-flbs4amap-refresh-btn"></div>{@/if}\t\t\t\t</div>\t\t\t\t{@if datatype != \'2\'}\t\t\t\t<input type="hidden" name="fieldname_${field.longitude}" require="${required}"/>\t\t\t\t<input type="hidden" name="fieldname_${field.latitude}" require="${required}"/>\t\t\t\t{@/if}\t\t\t\t{@if datatype != \'1\'}\t\t\t\t<input type="hidden" name="fieldname_${field.address}"/>\t\t\t\t{@/if}\t\t\t</div>\t\t</div>\t</div></div>'}),define(["mUtil","Component"],function(m,e){return e.init(function(t){var n,a,d,s,o,r,u,f={};e.super(this,t),this.type="FLbs4amap",this.tpl=this.type+"_html",this.css=this.type+"_css",this.dataload=!0;var p="||||",v=this.viewModel={form:"",field:{label:"所在位置",longitude:"",latitude:"",address:"",value:""},datatype:"",poi:{postype:1,radius:500,num:10,btntext:""},limit:{enabled:!1,radius:1e3,tip:"当前位置超出限制范围",lng:"",lat:"",coordinateType:1},isShowCurrLocation:!0,required:!1,readonly:!1};this.dbValueHasSet=!1,this.beforeMount=function(){v.field.value&&(v.hasvalue="wev-flbs4amap-showtext");var t=v.limit.point;if(t&&-1!=t.indexOf(",")){var e=t.split(",");v.limit.lng=e[0],v.limit.lat=e[1]}1==v.poi.postype&&(v.poi.num=-1)},this.mounted=function(){n=this.$el.children(".wev-comp-"+this.type),a=this.$el.find(".wev-field"),d=$("input[name='fieldname_"+v.field.longitude+"']",n),s=$("input[name='fieldname_"+v.field.latitude+"']",n),o=$("input[name='fieldname_"+v.field.address+"']",n),r=$(".wev-flbs4amap-entry",n),u=$(".wev-flbs4amap-detail",n);var e=this;$(".wev-flbs4amap-refresh-btn",n).on("click",function(t){e.refresh(),t.stopPropagation()}),v.readonly?$(".wev-flbs4amap-content",n).on("click",function(){var t="";t=2==v.datatype?o.val():d.val()+","+s.val(),Mobile_NS.openMap(t,1)}):$(".wev-flbs4amap-location, .wev-flbs4amap-content",n).on("click",function(){e.getPosition(e.pageid)}),v.isShowCurrLocation&&!$p("billid")&&f.getCurrPosition()},this.getData=function(){var t={};return"1"!=v.datatype&&"3"!=v.datatype||(t["fieldname_"+v.field.longitude]=d.val(),t["fieldname_"+v.field.latitude]=s.val()),"2"!=v.datatype&&"3"!=v.datatype||(t["fieldname_"+v.field.address]=o.val()),t},this.reset=function(){a.removeClass("wev-required-remind"),v.readonly||this.setValue(v.field.value)},this.checkRequired=function(){var t=d.val()&&s.val();"2"==v.datatype?t=o.val():"3"==v.datatype&&(t=t&&o.val());var e=v.required&&!t,i=v.field.label||m.getLabel(128155,"LBS");return a.toggleClass("wev-required-remind",e),e&&i},this.setRequired=function(t){v.required=t,a.toggleClass("wev-field-required",t),!t&&a.removeClass("wev-required-remind")},this.setReadonly=function(t){(v.readonly=t)&&$(".wev-flbs4amap-location, .wev-flbs4amap-content",n).unbind("click")||$(".wev-flbs4amap-content",n).unbind("click"),this.mounted()},this.containsField=function(t){return!!t&&(v.field.longitude.toLowerCase()===t.toLowerCase()||v.field.latitude.toLowerCase()===t.toLowerCase()||v.field.address.toLowerCase()===t.toLowerCase())},this.getValue=function(t){return t=t.toLowerCase(),v.field.longitude.toLowerCase()===t?d.val():v.field.latitude.toLowerCase()===t?s.val():v.field.address.toLowerCase()===t.toLowerCase()?o.val():void 0},this.text=function(){return u.text()},this.getFieldNameOfDB=function(){var t=v.field.longitude+p+v.field.latitude;return"2"==v.datatype?t=v.field.address:"3"==v.datatype&&(t+=p+v.field.address),t},this.setValueByDB=function(t){this.dbValueHasSet=!0,v.field.value=t,this.setValue(t,!0)},this.setValue=function(t,e){var i,a,l,n=(t||"").split(p);"1"==v.datatype||"3"==v.datatype?(i=n[0],a=n[1],"3"==v.datatype&&(l=n[2])):"2"==v.datatype&&(l=n[0]),f.setValue(i,a,l,e)},f.setValue=function(e,i,t,a){function l(t){u.html(t);var e=""==t;r.toggleClass("wev-flbs4amap-showtext",!e),e||v.readonly&&$p("billid")||$(".wev-flbs4amap-refresh-btn",n).show()}e=e||"",i=i||"",t=t||"","1"==v.datatype||"3"==v.datatype?(d.val(e),s.val(i),t?(l(t),o.val(t)):e&&i?require(["amapHelper"],function(t){t.getAddress(e,i,function(t){var e=t.addr||"";o.val(e),l(e)})}):(o.val(""),l(""))):"2"==v.datatype&&(o.val(t),l(t)),a&&this.dbValueHasSet&&m.trigger("dataload",this.pageid,this.id)},f.getCurrPosition=function(){var a=$(".wev-flbs4amap-location",n);m.getLabel(4084,"正在获取...",function(t){a.html(t)}),Mobile_NS.getCurrPosition(function(i){if(!i)return m.getLabel(5304,"获取定位信息失败",function(t){Mobile_NS.alert(t)}),void a.html(v.field.label);"1"==i.status?v.limit.enabled&&v.limit.lng&&v.limit.lat?require(["amapHelper"],function(t){var e=function(){var t=[v.limit.lng,v.limit.lat],e=[i.lng,i.lat];AMap.GeometryUtil.distance(t,e).toFixed(0)>v.limit.radius?Mobile_NS.alert(v.limit.tip):f.setValue(i.lng,i.lat,i.addr),a.html(v.field.label)};1==v.limit.coordinateType?e():t.convertPoint([v.limit.lng,v.limit.lat],v.limit.coordinateType,function(t){v.limit.lng=t[0],v.limit.lat=t[1],v.limit.coordinateType=1,e()})}):(f.setValue(i.lng,i.lat,i.addr),a.html(v.field.label)):(Mobile_NS.alert(i.errMsg),a.html(v.field.label))})},this.getPosition=function(a){$(".wev-flbs4amap-location",n);var t=v.poi;Mobile_NS.openLBSPage({posType:t.postype,btnText:t.btntext,poiRadius:t.radius,numPois:t.num,limit:v.limit,success:function(t,e,i){f.setValue(t,e,i),v.backscript&&m.eval(v.backscript,a)}})},this.refresh=function(){f.setValue("","",""),f.getCurrPosition()},f.setValue=f.setValue.bind(this)})});