/** * @fileoverview 用户 地点记录 模块 * @author Song.Huang * @version 1.0.0 */ define([ 'html!templates/user/userDraw', 'css!styles/user/userDraw', 'modDir/tools/toolDraw_new'], function(tplLayout) { /** * 模块数据 用于数据存储和外部调用 * @type {Object} * 数据存放 */ var modValue = { options: { page: 1, pageSize: onemapUrlConfig.showCollectNum }, favData: null, bflist: [], showAllBf: false } /** * 模块状态,用于存储模块的状态 例如:收起,关闭 * @type {Object} */ var status = { initialized: false, addAllBiaohui: false } //分页 var pageContainer, favPageBtnGroup, pageJump; /** * 初始化 * @type {Function} */ function init() { setLayout(); subscribe(); showPage({ page:1 }); bindEvent(); } function bindEvent(){ $("#toolsBar").unbind("click").bind("click",function(){ // remove() }) } function showAllBf(pagenum){ var list = modValue.favData.list; $("#userCenterContentWrap .showAllBf").unbind("click").bind("click",function(){ getFavData(pagenum); // if(status.addAllBiaohui == false){ status.addAllBiaohui = true; for(var i=0;i').appendTo($("#usrCenterContent")); var showAllBf = $('

展示当前页标注

'); $("#userCenterContentWrap .showAllBf").remove(); showAllBf.appendTo($("#userCenterContentWrap")); $("#userFav").mCustomScrollbar({ scrollInertia: 1000 }); layoutResize(); $(window).resize(function() { layoutResize(); }); } /** * 界面重置 * @return {[type]} [description] */ function layoutResize(){ $("#userFav").css({height:$(window).height()-154}); $("#userFav").mCustomScrollbar("update"); } /** * 显示指定参数的列表 * @type {Function} * @param options {Object} 参数 * @see options * @private */ function showPage(options){ ONEMAP.T.objExtend(modValue.options,options,true); getFavData(options.page); } /** * 获取收藏数据 * @type {Function} * @private */ function getFavData(zhidingpage) { var zdpage = zhidingpage||modValue.options.page; ONEMAP.V.loading.load(); $.ajax({ type: "get", dataType: 'json', url: onemapUrlConfig.userCenterUrl+ '/draw/list'+ '?page=' + zdpage + '&size=' + modValue.options.pageSize, success: function(data) { //console.log(data); ONEMAP.V.loading.loaded(); if(data.code == 4){ ONEMAP.T.noPermission('addFav',data.message); return false; } if(data.code == 500){ ONEMAP.T.noPermission('addFav',data.message); return false; } if(data.code == 3){ ONEMAP.T.logout('addFav'); return false; } modValue.favData = data; var list = modValue.favData.list; for(var i=0;i0){ setTimeout(function(){ setFavItem(); },100) } else { $("#userFavList").html("暂无数据"); } //显示当前页全部标注 var bfData = data.list; modValue.bfData = data.list; showAllBfC(); // showAllBf(); }, error:function(errorData){ ONEMAP.V.loading.loaded(); } }); } /** * 下载地图上路线数据 * 格式为geojson */ function downDrawGeojson(geodata){ var geojson = { "type": "FeatureCollection", "features": [] }; if(geodata.shape == "Line"){ var pointLatLng = []; for(var i=0;i 0){ for(var i= 0,l=modValue.favData['list'].length; i'+count+''+nming +'*'+ '删除编辑'); } else if(da.info!='newdraw' && da.info){ itemHtml = $('

'+count+'

'+nming +'

'+da.info.split(";")[1]+'

'+ '

删除编辑导出

'); } else{ itemHtml = $('
'+count+''+nming +''+ '删除编辑
'); } itemHtml.bind('mouseenter',function(){ $(this).addClass('hover'); }).bind('mouseleave',function(){ $(this).removeClass('hover'); }); itemHtml.find('.export').bind('click',{da:da},function(e){ var drawData = JSON.parse(e.data.da.draw_data); downDrawGeojson(drawData); }) itemHtml.find('.name').bind('click',{da:da},function(e){ if($(this).hasClass("red")){ // var jbdData = JSON.parse(e.data.da.draw_data); // require(['jbDir/draw/js/jbDraw'], function(jbDraw) { // jbDraw.openSymbolData(jbdData); // }); // ONEMAP.M.jbDraw.openSymbolData(jbdData); require(['modDir/tools/toolSPDraw'], function(toolSPDraw) { toolSPDraw.init(e.data.da._id); }); }else if(e.data.da.info.indexOf('newdraw')>-1){ if(!modValue.bflist[e.data.da._id].zhanshi){ ONEMAP.M.toolDraw.showDraw(e.data.da); modValue.bflist[e.data.da._id].zhanshi = true; } } else{ ONEMAP.M.toolDraw.showDrawRecord(e.data.da); } map23DControl.setView({ center: { lat: e.data.da.center_lat, lng: e.data.da.center_lon }, zoom: e.data.da.zoomleve }) }); itemHtml.find('.del').bind('click',{da:da},function(e){ delForm(e.data.da,$(this)); }); itemHtml.find('.edit').bind('click',{da:da},function(e){ editForm(e.data.da,$(this)); }); $("#userFavList").append(itemHtml); } //分页 pageContainer.empty(); var countPages = (parseInt(modValue.favData.total % modValue.favData.size)>0?parseInt(modValue.favData.total / modValue.favData.size + 1):parseInt(modValue.favData.total / modValue.favData.size)); if(countPages==0){ countPages = 1; } // pageJump = $('
/'+countPages+'页
'); pageJump = $('
'+ '
'+modValue.favData.current_page+'/'+countPages+'页'+ '
'); pageJump.appendTo(pageContainer); if (modValue.favData.size < modValue.favData.total) { $("#userFavPageJump .firstpage").bind('click',function(){ showPage({page:1}); //显示当前页全部标注 var bfData = modValue.favData.list; modValue.bfData = bfData; // modValue.options.page = modValue.favData.current_page; showAllBf(1); setTimeout(function(){ showPage({page:1}); },200) }) $("#userFavPageJump .uppage").bind('click',function(){ var sanum = modValue.favData.current_page; if(modValue.favData.current_page == 1){ // return false; showPage({page:1}); }else{ modValue.favData.current_page = modValue.favData.current_page-1; sanum-=1; showPage({page:modValue.favData.current_page}); } //显示当前页全部标注 var bfData = modValue.favData.list; modValue.bfData = bfData; // modValue.options.page = modValue.favData.current_page; showAllBf(sanum); setTimeout(function(){ showPage({page:modValue.favData.current_page}); },200) if(status.addAllBiaohui){ ONEMAP.M.myLayerActions.clearLayer(); ONEMAP.C.publisher.publish('', 'cleanMap'); ONEMAP.C.publisher.publish({ modName: 'cleanMap', }, 'tools:active'); $("#cleanMap").click(); } }) $("#userFavPageJump .nextpage").bind('click',function(){ var sanum = modValue.favData.current_page; if(modValue.favData.current_page == countPages){ return false; }else{ modValue.favData.current_page = modValue.favData.current_page+1; sanum+=1; showPage({page:modValue.favData.current_page}); } // remove(); //显示当前页全部标注 var bfData = modValue.favData.list; modValue.bfData = bfData; // modValue.options.page = modValue.favData.current_page; showAllBf(sanum); setTimeout(function(){ showPage({page:modValue.favData.current_page}); },200) if(status.addAllBiaohui){ ONEMAP.M.myLayerActions.clearLayer(); ONEMAP.C.publisher.publish('', 'cleanMap'); ONEMAP.C.publisher.publish({ modName: 'cleanMap', }, 'tools:active'); $("#cleanMap").click(); } }) $("#userFavPageJump .endpage").bind('click',function(){ showPage({page:countPages}); //显示当前页全部标注 var bfData = modValue.favData.list; modValue.bfData = bfData; // modValue.options.page = modValue.favData.current_page; showAllBf(countPages); }) } }else { pageContainer.empty(); $("#userFavList").append('

暂无数据!

'); } $("#userFav").mCustomScrollbar("update"); } /** * 显示标注信息 * @param options * @private */ function showDraw(drawData){ //添加编辑器 require(['modDir/tools/toolDraw'],function(toolDraw){ toolDraw.init(); setTimeout(function(){ ONEMAP.M.toolDraw.showDrawRecord(drawData,true); },200); }); } /** * 编辑表单 * @type {Function} * @param data {Object} 表单数据 * @param self {Object} 父类 * @private */ function editForm(data,self){ var parent = self.parent().parent(); if(data.name.indexOf(";")>-1){ data.name = data.name.split(";")[0] } var formHtml = $('
' + '' + '' + '' + '
'); formHtml.find('.cancel').bind('click',function(){ formHtml.remove(); }); parent.append(formHtml); formHtml.find('.sure').bind('click',{da:data,self:parent},function(e){ updateFav(e); }); } /** * 更新收藏 * @type {Function} * @param e * @returns {boolean} * @private */ function updateFav(e){ var name = e.data.self.find('.input').val(); if(name==''){ ONEMAP.C.publisher.publish({ type: 'warning', message: '标注名称不能为空' }, 'noteBar::add'); e.data.self.find('.input').focus(); return false; } // if((/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\s]/g).test(name)){ // ONEMAP.C.publisher.publish({ type: 'warning', message: '名称只能包含英文、数字、中文' }, 'noteBar::add'); // e.data.self.find('.input').focus(); // return false; // } e.data.self.find('.name').text(name); var fId = e.data.da._id; var ajaxData = {_id:fId,name:name}; e.data.self.find('.form').remove(); ONEMAP.V.loading.load(); $.ajax({ type:"get", dataType:'json', url:onemapUrlConfig.userCenterUrl+'/draw/update', data:ajaxData, success:function(data){ ONEMAP.V.loading.loaded(); if(data.code == 4){ ONEMAP.T.noPermission('updateFav'); } if(data.code == 3){ ONEMAP.T.logout('updateFav'); } if(data.success){ ONEMAP.C.publisher.publish({type:'success',message:'更新标注('+name+')成功'},'noteBar::add'); getFavData(); }else if(data.hasOwnProperty('success') && !data.success) { ONEMAP.C.publisher.publish({type:'error',message:'更新标注('+name+')失败,'+data.msg},'noteBar::add'); }else{ ONEMAP.C.publisher.publish({type:'error',message:'更新标注('+name+')失败'},'noteBar::add'); } }, error:function(errorData){ ONEMAP.V.loading.loaded(); } }); } /** * 删除表单 * @param {[type]} data [description] * @param {[type]} self [description] * @return {[type]} [description] */ function delForm(data,self){ var parent = self.parent().parent(); var formHtml = $('
' + '' + '' + '
'); formHtml.find('.cancel').bind('click',function(){ formHtml.remove(); }); parent.append(formHtml); formHtml.find('.sure').bind('click',{da:data,self:parent},function(e){ delFav(e.data.da._id); $(".leaflet-marker-icon."+data._id).remove(); // ONEMAP.M.toolDraw.delPoint(ONEMAP.D.transArr[data._id]); }); } /** * 删除收藏 * @type {Function} * @param id {Number} * @private */ function delFav(id){ var ajaxData = {_id:id}; ONEMAP.V.loading.load(); $.ajax({ type:"get", dataType:'json', url:onemapUrlConfig.userCenterUrl+'/draw/del', data:ajaxData, success:function(data){ ONEMAP.V.loading.loaded(); if(data.code == 4){ ONEMAP.T.noPermission('delFav'); } if(data.code == 3){ ONEMAP.T.logout('delFav'); } if(data.success){ ONEMAP.C.publisher.publish({type:'success',message:'删除标注成功'},'noteBar::add'); getFavData(); }else if(data.hasOwnProperty('success') && !data.success) { ONEMAP.C.publisher.publish({type:'error',message:'删除标注失败,'+data.msg},'noteBar::add'); }else{ ONEMAP.C.publisher.publish({type:'error',message:'删除标注失败'},'noteBar::add'); } }, error:function(errorData){ ONEMAP.V.loading.loaded(); } }); } /** * 注册订阅 * @type {Function} * 推送:ONEMAP.C.publisher.publish(options,'userFavuleName::type'); * 订阅:ONEMAP.C.publisher.subscribe(layoutResize,'sideBarLayoutChange'); */ function subscribe(){ ONEMAP.C.publisher.subscribe(remove,'cleanMap'); } /** * 取消订阅 * @type {Function} * 取消订阅:ONEMAP.C.publisher.unSubscribe(layoutResize,'sideBarLayoutChange'); */ function unSubscribe(){} /** * 模块移除 * @return {[type]} [description] */ function remove(){ $(".pubPop").remove(); // $("#userContent .userInfo .moreLink .linkList li.myBh").removeClass("active"); var list = modValue.favData.list; for(var i=0;i