/** * [ONEMAP.M.userFav] * @return {[object]} */ define(['html!templates/user/userFav', 'html!templates/user/userFavAddModal', 'css!styles/user/userFav'], function(tplLayout,tplUserFavAddModal){ /** * 模块数据 用于数据存储和外部调用 * @type {Object} * 数据存放 */ var modValue = { //收藏数据 favData:null, //初始化查询参数 options :{ page:1, pageSize:20 } }; /** * 模块界面样式 例如:宽,高 * @type {Object} */ var styles = {}; /** * 模块状态,用于存储模块的状态 例如:收起,关闭 * @type {Object} */ var status = { initialized:false, isAddForm:false }; /** * 初始化并订阅事件 * @return {[type]} [description] */ function init(){ setLayout(); subscribe(); showPage({ page:1 }); } //分页 var pageContainer, favPageBtnGroup, pageJump; /** * 设置界面 */ function setLayout(){ $("#usrCenterContent").empty().append(tplLayout); pageContainer = $('
').appendTo($("#usrCenterContent")); $("#userFav").mCustomScrollbar({ scrollInertia: 1000 }); layoutResize(); $(window).resize(function() { layoutResize(); }); } /** * 界面重置 * @return {[type]} [description] */ function layoutResize(){ $("#userFav").css({height:$(window).height()-154}); $("#userFav").mCustomScrollbar("update"); } /** * 界面事件绑定 * @return {[type]} [description] */ function bindEvent(){ } /** * 显示指定参数的列表 * @type {Function} * @param options {Object} 参数 * @see options * @private */ function showPage(options){ ONEMAP.T.objExtend(modValue.options,options,true); getFavData(); } /** * 获取收藏数据 * @type {Function} * @private */ function getFavData(){ ONEMAP.V.loading.load(); $.ajax({ type:"get", dataType:'json', url:onemapUrlConfig.userCenterUrl+'/bookmarker/list'+ '?page='+modValue.options.page+ '&size='+modValue.options.pageSize, success:function(data){ console.log(data) if(data.code == 4){ ONEMAP.T.noPermission('addFav',data.message); return false; } if(data.code == 3){ ONEMAP.T.logout('addFav'); return false; } ONEMAP.V.loading.loaded(); modValue.favData = data; if(data.total>0){ setFavItem(); } else { $("#userFavList").html("暂无数据"); } if(data.total==1&&data['list'][0].source_id==97){ $("#userFavList").html("暂无数据"); } }, error:function(errorData){ ONEMAP.V.loading.loaded(); $("#userFavList").html("暂时无法获取数据"); } }); } /** * 设置收藏列表item * @type {Function} * @private */ function setFavItem(){ var count = 0; $("#userFavList").empty(); if(modValue.favData['list'].length > 0){ for(var i= 0,l=modValue.favData['list'].length; i暂无数据!
'); } $("#userFav").mCustomScrollbar("update"); } /** * 添加收藏 * @type {Function} * @param e */ function addFav(e){ //限制只能添加当前一个窗口 if(status.isAddForm){ return false; } status.isAddForm = true; $('body').append(tplUserFavAddModal); $('#filterCover').show(); $('#userFavAddModal').show(); $('#userFavAddModal').find('.input').focus(); $('#userFavAddModal').find('.close').bind('click',function(){ $('#filterCover').hide(); $('#userFavAddModal').remove(); status.isAddForm = false; }); $('#userFavAddModal').find('.sure').bind('click',function(){ var name = $('#userFavAddModal .input').val(); if(name ==='' || name.indexOf(' ') >= 0){ ONEMAP.C.publisher.publish({ type: 'warning', message: '书签名称不能为空或包含空格' }, 'noteBar::add'); $('#userFavAddModal .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'); $('#userFavAddModal .input').focus(); return false; } //构造数据 var ajaxData = {}; ajaxData.name = $('#userFavAddModal .input').val(); ajaxData.longitude = map23DData.view.center['lng']; ajaxData.latitude = map23DData.view.center['lat']; ajaxData.zoomleve = map23DData.view.zoom; ajaxData.source_id = 0; var mapTypeObj = { gr:1, gt:2, gm:3 } ajaxData.maptype = mapTypeObj[ONEMAP.M.mapHolder.modValue.mainLayers]; ONEMAP.V.loading.load(); $.ajax({ type:"get", dataType:'json', url:onemapUrlConfig.userCenterUrl+'/bookmarker/add', data:ajaxData, success:function(data){ ONEMAP.V.loading.loaded(); if(data.code == 4){ ONEMAP.T.noPermission('addFav'); } if(data.code == 3){ ONEMAP.T.logout('addFav'); } if(data.success){ ONEMAP.C.publisher.publish({type:'success',message:'收藏书签('+ajaxData.name+')成功'},'noteBar::add'); getFavData(); }else if(data.hasOwnProperty('success') && !data.success) { ONEMAP.C.publisher.publish({type:'error',message:'收藏书签('+ajaxData.name+')失败,'+data.msg},'noteBar::add'); }else { ONEMAP.C.publisher.publish({type:'error',message:'收藏书签('+ajaxData.name+')失败'},'noteBar::add'); } }, error:function(errorData){ ONEMAP.V.loading.loaded(); } }); //移除添加框,恢复可添加状态 $('#filterCover').hide(); $('#userFavAddModal').remove() ; status.isAddForm = false; }); } /** * 编辑表单 * @type {Function} * @param data {Object} 表单数据 * @param self {Object} 父类 * @private */ function editForm(data,self){ var parent = self.parent().parent(); var formHtml = $('