123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406 |
- /**
- * [ONEMAP.M.gcmsList]
- * @return {[object]}
- */
- define(['html!templates/gcms/gcmsList'
- // 'css!styles/gcms/gcmsList'
- ],function(tplLayout){
- /**
- * 模块数据 用于数据存储和外部调用
- * @type {Object}
- * 数据存放
- */
- var modValue = {
- //参数
- options:{},
- //查询面板高度 默认为0
- searchPanelHeight:0,
- markersGroupGuid:null,
- markerObj:{}//标记点集合
- };
- /**
- * 模块初始化
- * @return {[type]} [description]
- */
- function init(options){
- // remove();
- modValue.searchPanelHeight = 0;
- modValue.options = {
- column_name:'',
- page:{
- page:1
- },
- search:{}
- };
- for(var op in options){
- modValue.options[op] = options[op];
- }
- //设置容器布局
- setLayout();
-
- ONEMAP.D.gcmsCurColumnData = ONEMAP.D.gcmsColumnObjs[modValue.options['column_name']];
- showCmsColumn();
- //没有子菜单,添加 class 用来判断
- $('#gcmsListContent').addClass('single');
- $('#gcmsArticlesListPage').addClass('single');
- $('#gcmsListSearchPanel').addClass('single');
- $('#gcmsListContent').addClass('single');
- bindEvent();
- //订阅推送
- subscribe();
- //设置zIndex 为最高
- // var zIndex = ONEMAP.M.sideBar.getZIndex();
- // $('#gcmsListWrap').css({zIndex:zIndex});
- // ONEMAP.D.currentSideBarMod = 'gcmsList';
- //开启侧栏
- // ONEMAP.C.publisher.publish('show','layout::sideBar');
- }
- /**
- * 设置容器
- */
- function setLayout(){
- $(tplLayout).appendTo($(".tree-list"));
- // $('#gcmsListWrap .panel-header h3').html(modValue.options['data']['title']);
- layoutResize();
- $(window).resize(function(){
- layoutResize();
- });
-
- // $("#gcmsListContent").mCustomScrollbar({
- // scrollInertia: 1000
- // });
- }
- /**
- * 事件绑定
- * @return {[type]} [description]
- */
- function bindEvent(){
- // $('#gcmsListWrap .panel-header .abtn-goback').bind('click',function(){
- // remove();
- // })
- $("#infoAndTrgt").next().find(".cms.active").bind('click',function(){
- // unSubscribe();
- // $(this).find(".gcms-article-list").remove();
- $(this).removeClass('active');
- // map23DControl.group({
- // action:'cleanAll',
- // guid:modValue.markersGroupGuid
- // });
- // map23DControl.group({
- // action:'remove',
- // guid:modValue.markersGroupGuid
- // })
- })
- // $("#infoAndTrgt").next().find(".cms").bind('click',function(){
- // // alert(666);
- // })
- }
-
- /**
- * 显示cms栏目 搜索栏,列表
- * @param {[type]} options [description]
- * @return {[type]} [description]
- */
- function showCmsColumn(options){
- //ONEMAP.C.publisher.publish('','gcmsArticleShowRemove');
- //获取栏目模型后 去获取栏目数据
- getColumnModelData({
- callback:function(){
- map23DControl.group({
- action:'cleanAll',
- guid:modValue.markersGroupGuid
- });
- map23DControl.group({
- action:'remove',
- guid:modValue.markersGroupGuid
- });
- //地图中心点 是否聚合
- if(ONEMAP.D.gcmsCurColumnModelData['field_list'].hasOwnProperty('map_center')){
-
- if(ONEMAP.D.gcmsCurColumnModelData['field_list']['map_center']['marker_cluster']){
- modValue.markersGroupGuid = map23DControl.group({
- action: 'add',
- clustering: true, //关键 开启聚合
- clusterOptions:{
- maxClusterRadius:120,//多少像素距离的点会聚合 默认小于120像素内的点会聚合
- polygonOptions: {weight: 1, opacity: 0.5}, //聚合范围面样式
- showCoverageOnHover: true, //是否显示聚合范围
- disableClusteringAtZoom: null, //设置到达指定缩放等级后禁用聚合
- }//2D聚合参数
- });
- }else {
- modValue.markersGroupGuid = map23DControl.group({
- action: 'add'
- });
- }
- }
- //检测是否有初始函数,有的执行
- if(ONEMAP.D.gcmsCurColumnModelData.hasOwnProperty('js_script')){
- if(ONEMAP.D.gcmsCurColumnModelData.js_script.length>0){
- eval("var modelFunction="+ONEMAP.D.gcmsCurColumnModelData.js_script);
- if(modelFunction.hasOwnProperty('init')){
- modelFunction.init();
- }
- }
- }
- //设置栏目class
- $('#gcmsListWrap').removeClass().addClass(ONEMAP.D.gcmsCurColumnModelData['name']);
- //设置栏目css
- $('#gcmsModelCssStyle').remove();
- $('<style type="text/css" id="gcmsModelCssStyle">'+ONEMAP.D.gcmsCurColumnModelData['css_style']+'</style>').appendTo('head');
- setSearchPanel();
- getColumnData();
- }
- });
- }
- /**
- * 获取栏目模型数据
- * @param {[type]} options [description]
- * @return {[type]} [description]
- */
- function getColumnModelData(options){
- ONEMAP.V.loading.load();
- $.ajax({
- url: onemapUrlConfig.gcmsServiceUrl+'/showmodel/'+modValue.options['column_name'],
- type:"GET",
- dataType: 'json'
- })
- .done(function(data) {
- ONEMAP.V.loading.loaded();
- if(data.code == 4){
- //ONEMAP.C.noPermission('getColumnModelData');
- }
- if(data.code == 3){
- //ONEMAP.C.logout('getColumnModelData');
- }
- ONEMAP.D.gcmsCurColumnModelData = data['data'];
- modValue.options['page']['page_size'] = ONEMAP.D.gcmsCurColumnModelData['query_count'];
- options.callback();
- })
- .fail(function() {
- ONEMAP.V.loading.loaded();
- });
- }
- /**
- * 获取栏目数据
- * @return {[type]} [description]
- */
- function getColumnData(){
- ONEMAP.C.publisher.publish('','gcmsArticleShowRemove');
- ONEMAP.V.loading.load();
- var ajaxData = {
- page:modValue.options['page']['page']
- };
- for(var item in modValue.options['search']){
- ajaxData[item] = modValue.options['search'][item];
- }
- //检测是否有before函数,有的执行
- if(ONEMAP.D.gcmsCurColumnModelData.hasOwnProperty('js_script')){
- if(ONEMAP.D.gcmsCurColumnModelData.js_script.length>0){
- eval("var modelFunction="+ONEMAP.D.gcmsCurColumnModelData.js_script);
- if(modelFunction.hasOwnProperty('before')){
- modelFunction.before();
- }
- }
- }
- $.ajax({
- url: onemapUrlConfig.gcmsServiceUrl+'/show/'+modValue.options['column_name'],
- type:"GET",
- dataType: 'json',
- data:ajaxData
- })
- .done(function(data) {
- ONEMAP.V.loading.loaded();
- if(data.code == 4){
- ONEMAP.C.noPermission('getColumnData');
- }
- if(data.code == 3){
- ONEMAP.C.logout('getColumnData');
- }
- ONEMAP.D.gcmsCurColumnListData = data;
- modValue.options['page']['total'] = ONEMAP.D.gcmsCurColumnListData['total'];
- setArticlesList();
- //是否有after函数,有的执行
- if(ONEMAP.D.gcmsCurColumnModelData.hasOwnProperty('js_script')){
- if(ONEMAP.D.gcmsCurColumnModelData.js_script.length>0){
- eval("var modelFunction="+ONEMAP.D.gcmsCurColumnModelData.js_script);
- if(modelFunction.hasOwnProperty('after')){
- modelFunction.after();
- }
- }
- }
- })
- .fail(function() {
- ONEMAP.V.loading.loaded();
- });
- }
- /**
- * 设置搜索面板 // layout下拉列表1 列表2 输入框3
- */
- function setSearchPanel(){
- if(ONEMAP.D.gcmsCurColumnModelData['query_field'].length == 0){
- modValue.searchPanelHeight = 0;
- $('#gcmsListSearchPanel').unbind('resize')
- $('#gcmsListSearchPanel').empty().hide();
- layoutResize();
- return false;
- }
- $('#gcmsListSearchPanel').empty().show();
- $('#gcmsListSearchPanel').unbind('resize').bind('resize',function(){
- modValue.searchPanelHeight = $(this).height() + 11;
- layoutResize();
- });
- var systemFields = ['gcms_title','gcms_create_time','gcms_change_time','gcms_audit_time','gcms_publish_time','gcms_read_number','gcms_secret_level'];
- //
- var searchHtml = $('<div><div id="gcmsListSearchForm"></div><div class="submit-group"><button id="gcmsListBtnSearch" class="btn btn3 sure">搜索</button></div></div>');
- var searchPanelForm = searchHtml.find('#gcmsListSearchForm');
- searchHtml.appendTo($('#gcmsListSearchPanel'));
- $('#gcmsListBtnSearch').bind('click',function(){
- getColumnData();
- });
-
- }
-
- /**
- * 填充内容列表
- */
- function setArticlesList(){
- $('#gcmsArticlesList').empty();
- var ul = $('<ul class="gcms-article-list im-3"></ul>');
- $(ONEMAP.D.gcmsCurColumnListData['data']).each(function(index, el) {
- var options = {
- "columnName":modValue.options.column_name,
- "guid":el.id,
- "category":modValue.options.data.title,
- "name":el.record.gcms_title
- }
- options = JSON.stringify(options);
- var li = $("<li>"+el['list_html']+"</li>");
- li.appendTo(ul);
- li.bind('click',function(){
- $(this).addClass('cur');
- $(this).siblings().removeClass('cur');
- });
- //如果有map_center字段 显示地图标记
- if(ONEMAP.D.gcmsCurColumnModelData['show_coordinate'].length>0 &&
- el['record'].hasOwnProperty('map_center_lat') &&
- el['record'].hasOwnProperty('map_center_lon') &&
- el['record'].hasOwnProperty('map_center_zoom') &&
- el['record'].hasOwnProperty('map_center_style')){
- var iconStyle = ONEMAP.D.gcmsCurColumnModelData['show_coordinate'][el['record']['map_center_style']];
- var options_popup = {
- name:'',
- content:el['prompt_html']||''
- };
- var new_popupHtml = ONEMAP.M.gcmsNav.creatPopupHtml(options_popup);
- var markerId = map23DControl.marker({
- action:'add',
- groupId:modValue.markersGroupGuid,
- geojson:{
- "type": "Feature",
- "properties": {
- title:'',
- iconUrl: onemapUrlConfig.gcmsServiceUrl+'/file'+iconStyle['icon'],
- iconSize: [iconStyle['width'], iconStyle['height']],
- iconAnchor: [iconStyle['width']/2, iconStyle['height']/2],
- popupAnchor:[0, -iconStyle['height']/2],
- altitude:0,
- altitudeMode:1,
- popupContent:new_popupHtml
- },
- "geometry": {
- "type": "Point",
- "coordinates": [el['record']['map_center_lon'],el['record']['map_center_lat']]
- }
- }
- })
- modValue.markerObj[el['id']] = markerId;
- }
- });
- if(ONEMAP.D.gcmsCurColumnListData['data'].length == 0){
- var li = $('<li class="cell t-c">暂无数据</li>');
- li.appendTo(ul)
- }
- ul.appendTo($('#gcmsArticlesList'));
- }
-
- /**
- * 界面布局重置
- * @type {Function}
- */
- function layoutResize(){
- }
- function getMarkerObj(){
- return modValue.markerObj;
- }
-
- /**
- * 注册监听
- * @type {Function}
- */
- function subscribe(){
- ONEMAP.C.publisher.subscribe(remove, 'cleanMap');
- }
- /**
- * 取消监听
- * @type {Function}
- */
- function unSubscribe() {}
- /**
- * 模块移除
- * @return {[type]} [description]
- */
- function remove(){
- unSubscribe();
- $('#gcmsListWrap').remove();
- map23DControl.group({
- action:'cleanAll',
- guid:modValue.markersGroupGuid
- });
- map23DControl.group({
- action:'remove',
- guid:modValue.markersGroupGuid
- })
- }
- return ONEMAP.M.gcmsList = {
- init:init,
- remove:remove,
- getMarkerObj:getMarkerObj
- }
- });
|