123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248 |
- /**
- * [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 = $('<li class="column-menu collapsible collapsed im-2"><a class="collapse-trigger fu"><span class="icon icon-angle-right f-r"></span><span class="icon icon-th-list">' + el['title'] + '</span></a></li>');
- if (el.hasOwnProperty('son_tree')) {
- buildSonTreeNav(el).appendTo(a);
- }
- a.appendTo($('#gcmsMenuColumnList'));
- break;
- case 'cms':
- //console.log("cms");
- var a = $('<li class="column-menu collapsible collapsed im-2 cms"><a column-value="' + el['name'] + '" class="fu"><span class="icon icon-columns">' + el['title'] + '</span></a><div class="tree-list"></div></li>');
- 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 = $('<li class="column-menu collapsible collapsed im-2"><a class="fu" href="' + el['bind_value'] + '" target="_blank">' + el['title'] + '</a></li>');
- a.appendTo($('#gcmsMenuColumnList'));
- break;
- case 'js':
- var a = $('<li class="column-menu collapsible collapsed im-2"><a class="fu" onclick="' + el['bind_value'] + '">' + el['title'] + '</a></li>');
- a.appendTo($('#gcmsMenuColumnList'));
- break;
- }
- });
- // $("#partNavMenuGroup .btn-group").mCustomScrollbar('update');
- bindEvent();
- }
- function buildSonTreeNav(data) {
- var ul = $('<ul class="collapse-section"><li><a class="go-back"><span class="icon icon-angle-left"></span><lable>返回 <span>' + data['title'] + '</span></lable></a></li></ul>');
- $(data['son_tree']).each(function(index, el) {
- switch (el['bind_type']) {
- case 'column':
- var a = $('<li class="collapsed"><a class="collapse-trigger"><span class="icon icon-angle-right f-r"></span><span class="icon icon-th-list"></span>' + el['title'] + '</a></li>');
- if (el.hasOwnProperty('son_tree')) {
- buildSonTreeNav(el).appendTo(a);
- }
- a.appendTo(ul);
- break;
- case 'cms':
- var a = $('<li class="collapsed"><a column-value="' + el['name'] + '"><span class="icon icon-columns"></span>' + el['title'] + '</a></li>');
- 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':
- $('<li class="collapsed"><a href="' + el['bind_value'] + '" target="_blank">' + el['title'] + '</a></li>').appendTo(ul);
- break;
- case 'js':
- $('<li class="collapsed"><a onclick="' + el['bind_value'] + '">' + el['title'] + '</a></li>').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
- }
- });
|