/** * [ONEMAP.M.gcmsNav] * @return {[object]} */ define([ 'html!templates/gcms/gcmsNav', 'modDir/gcms/gcmsEvents', 'css!styles/gcms/gcmsNavChange' ], function(tplLayout, gcmsEvents) { //console.log(tplLayout); /** * 模块数据 用于数据存储和外部调用 * @type {Object} * 数据存放 */ var modValue = { navData:null }; /** * 状态值 * @type {Boolean} * @default false * @private */ var status = { initialized:false }; /** * 模块初始化 * @return {[type]} [description] */ function init() { //console.log("init"); //当前栏目信息 ONEMAP.D.gcmsCurColumnData = {}; //当前栏目内容列表 ONEMAP.D.gcmsCurColumnListData = {}; //当前文章详细内容 ONEMAP.D.gcmsCurArticleData = {}; //当前文章模型内容 ONEMAP.D.gcmsCurColumnModelData = {}; //未初始化,初始化布局 // if (!status.initialized) { //console.log("start"); //栏目列表 ONEMAP.D.gcmsColumnObjs = {}; //设置容器布局 setLayout(); getNavData(); //订阅推送 subscribe(); status.initialized = true; // } //设置zIndex 为最高 var zIndex = ONEMAP.M.sideBar.getZIndex(); $('#gcmsMainMenu').css({zIndex:zIndex}); // ONEMAP.D.currentSideBarMod = 'gcmsNav'; //开启侧栏 // ONEMAP.C.publisher.publish('handShow','layout::sideBar'); } /** * 初始化布局 */ function setLayout(){ $(tplLayout).appendTo($("#infoAndTrgt").next()); layoutResize(); }; /** * 窗口布局重置 * @type {Function} */ function layoutResize() { }; function bindEvent() { } /** * 获取 菜单数据 * @return {[type]} [description] */ function getNavData() { //console.log("get"); ONEMAP.V.loading.load(); $.ajax({ url: onemapUrlConfig.gcmsServiceUrl + '/showmenu', type: "GET", dataType: 'json' }) .done(function(data) { ONEMAP.V.loading.loaded(); if (data.code == 4) { ONEMAP.C.noPermission('getNavData'); return false; } if (data.code == 3) { ONEMAP.C.logout('getNavData'); } modValue.navData = data.data; buildMenuColumnObjs(data.data); setGcmsNav(); }) .fail(function() { ONEMAP.V.loading.loaded(); }); } /** * 构造菜单栏目 对象集合 * @param {[type]} options [description] * @return {[type]} [description] */ function buildMenuColumnObjs(options) { $(options).each(function(index, el) { ONEMAP.D.gcmsColumnObjs[el['name']] = el; if (el.hasOwnProperty('son_tree')) { buildMenuColumnObjs(el['son_tree']); } }); } /** * 设置栏目列表 */ function setGcmsNav() { //console.log("set"); $(modValue.navData).each(function(index, el) { switch (el['bind_type']) { case 'column': var a = $(''); if (el.hasOwnProperty('son_tree')) { buildSonTreeNav(el).appendTo(a); } a.appendTo($('#gcmsMenuColumnList')); break; case 'cms': //console.log("cms"); var a = $(''); a.bind('click', { navData: el }, function(e) { //console.log(e.data.navData); if($(this).hasClass('active')){ $(this).removeClass('active'); require(['modDir/gcms/gcmsListChange'], function(gcmsList) { gcmsList.remove(); }); } else{ $(this).addClass('active'); require(['modDir/gcms/gcmsListChange'], function(gcmsList) { gcmsList.init({ type: 'cms', data: e.data.navData, column_name: e.data.navData['name'] }); }); } }); a.appendTo($('#gcmsMenuColumnList')); break; case 'link': var a = $(''); a.appendTo($('#gcmsMenuColumnList')); break; case 'js': var a = $(''); a.appendTo($('#gcmsMenuColumnList')); break; } }); // $("#partNavMenuGroup .btn-group").mCustomScrollbar('update'); bindEvent(); } function buildSonTreeNav(data) { var ul = $(''); $(data['son_tree']).each(function(index, el) { switch (el['bind_type']) { case 'column': var a = $(''); if (el.hasOwnProperty('son_tree')) { buildSonTreeNav(el).appendTo(a); } a.appendTo(ul); break; case 'cms': var a = $(''); a.bind('click', { navData: el }, function(e) { require(['modDir/gcms/gcmsListChange'], function(gcmsList) { gcmsList.init({ type: 'cms', data: e.data.navData, column_name: e.data.navData['name'] }); }); }); a.appendTo(ul); break; case 'link': $('').appendTo(ul); break; case 'js': $('').appendTo(ul); break; } }); return ul; } /** * 注册监听 * @type {Function} */ function subscribe() {} /** * 取消监听 * @type {Function} */ function unSubscribe() {} /** * 模块移除 * @return {[type]} [description] */ function remove() { unSubscribe(); } return ONEMAP.M.gcmsNav = { init: init, remove: remove } });