/** * [ONEMAP.M.gcmsQuestionnaire] * @return {[object]} */ define(['handlebars','css!cssDir/mod-gcms','jquery/jquery.drag'], function(Handlebars){ //参数 var _options = {}; //地图层 var _map = ONEMAP.M.mapHolder.map; var _questionnaireListData = []; var _questionnaireDetailData; var _tpl = ''; var _detailTpl = ''; /** * 模块初始化 * @return {[type]} [description] */ function init(options){ remove(); _options = {}; _questionnaireListData = []; _questionnaireDetailData = null; for(var op in options){ _options[op] = options[op]; } getArticleData({callback:function(){ //设置容器布局 setQuestionnaireModal(); }}) //订阅推送 subscribe(); } function getArticleData(options){ ONEMAP.V.loading.load(); $.ajax({ url: onemapUrlConfig.gcmsServiceUrl+'/show/'+_options['column_name']+'/'+_options['article_id'], type:"GET", dataType: 'jsonp' }) .done(function(data) { ONEMAP.V.loading.loaded(); if(data.code == 4){ ONEMAP.C.noPermission('getDetailData'); return false; } if(data.code == 3){ ONEMAP.C.logout('getDetailData'); } ONEMAP.D.gcmsCurArticleData = data['data']; options.callback(); }) .fail(function() { ONEMAP.V.loading.loaded(); }); } function getDetailData(options){ _questionnaireDetailData = { "jibenxinxi": { "values": [ [ { "id": "xuexiaomingcheng", "label": "学校名称", "type": "Text", "value": "北京实验小学" }, { "id": "xueduan", "label": "学校学段", "type": "Text", "value": "初级" }, { "filename": "9_31.jpg", "size": 0, "id": "logo", "label": "学校校徽/LOGO", "type": "File", "value": "9_31.jpg" } ], [ { "id": "xuexiaomingcheng", "label": "学校名称", "type": "Text", "value": "北京清华附小" }, { "id": "xueduan", "label": "学校学段", "type": "Text", "value": "初级" }, { "filename": "9_46.jpg", "size": 0, "id": "logo", "label": "学校校徽/LOGO", "type": "File", "value": "9_46.jpg" } ] ], "label": "学校基本信息", "type": "Entity" }, "kecheng": { "values": [ [ { "code": "小学一年级", "qualifier": null, "id": "nianji", "label": "年级", "type": "Code", "value": "小学一年级" }, { "code": "自然", "qualifier": "学期", "id": "kecheng", "label": "课程", "type": "Code", "value": "其他" }, { "id": "beizhu", "label": "备注", "type": "Text", "value": "选修" } ], [ { "code": "小学二年级", "qualifier": null, "id": "nianji", "label": "年级", "type": "Code", "value": "小学二年级" }, { "code": "数学", "qualifier": null, "id": "kecheng", "label": "课程", "type": "Code", "value": "数学" }, { "id": "beizhu", "label": "备注", "type": "Text", "value": "必学" } ] ], "label": "各年级开设的课程(教材版本)", "type": "Entity" }, "beizhu": { "id": "beizhu", "label": "备注", "type": "Text", "value": "小学教育调查" } }; options.callback(); // ONEMAP.V.loading.load(); // $.ajax({ // url: onemapUrlConfig.gcmsServiceUrl+'/show/'+_options['column_name']+'/'+_options['article_id'], // type:"GET", // dataType: 'jsonp' // }) // .done(function(data) { // ONEMAP.V.loading.loaded(); // }) // .fail(function() { // ONEMAP.V.loading.loaded(); // }); } /** * 设置容器 */ function setQuestionnaireModal(){ _questionnaireListData = JSON.parse(ONEMAP.D.gcmsCurColumnModelData['field_list'][_options['field_name']]['custom_value']); $('body').append(_tpl); $('body').append(_detailTpl); layoutResize(); $('#gcmsQuestionnaireViewerList').empty(); $(_questionnaireListData).each(function(index, el) { $('#gcmsQuestionnaireViewerList').append('
  • ') }); $('#gcmsQuestionnaireViewerList .btn').bind('click',function(){ //根据id获取问卷内容列表,根据文章名称筛选出问卷ID,再根据ID获取问卷详情 orz! var mid = $(this).attr('mid'); getDetailData({ mid:mid, article_title:ONEMAP.D.gcmsCurArticleData['record']['gcms_title'], callback:function(){ showQuestionnaireDetail(); } }); }); bindEvent(); $('#gcmsQuestionnaireViewer').show(); } /** * 显示问卷详情 * @return {[type]} [description] */ function showQuestionnaireDetail(){ $('#gcmsQuestionnaireDetailBox').empty(); for(var name in _questionnaireDetailData){ var item = _questionnaireDetailData[name]; var func = 'get'+item['type']+'Detail'; $('#gcmsQuestionnaireDetailBox').append(eval(func+'(item)')); } $('#gcmsQuestionnaireDetail').show(); } function getTextDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getFileDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getCodeDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getBooleanDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getCoordinateDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getIntegerDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']+'('+data['unit']+')'); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getIntegerRangeDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']+'('+data['unit']+')'); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getRealDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']+'('+data['unit']+')'); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getRealRangeDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']+'('+data['unit']+')'); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getDateDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getTimeDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getTaxonDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']); tr.find('td:first').html(data['value']); tr.appendTo(table.find('tbody')); return table; } function getEntityDetail(data){ var table = $('
    '); var tr = $(''); tr.find('th:first').html(data['label']); $(data.values).each(function(index, el) { var table_in = $('
    '); var tr_in = $(''); $(el).each(function(index_in, el_in) { var func = 'get'+el_in['type']+'Detail'; tr_in.find('td:first').append(eval(func+'(el_in)')); }); tr_in.appendTo(table_in.find('tbody')); tr.find('td:first').append(table_in); }); tr.appendTo(table.find('tbody')); return table; } /** * 事件绑定 * @return {[type]} [description] */ function bindEvent(){ $('#gcmsQuestionnaireViewer .modal-header .close').bind('click', function() { remove(); }); var $box = $('#gcmsQuestionnaireViewer').mousedown(function(e) { var offset = $(this).offset(); this.posix = {'x': e.pageX - offset.left, 'y': ((e.pageY - offset.top)>0?(e.pageY - offset.top):0)}; $.extend(document, {'move': true, 'move_target': this}); }); $('#gcmsQuestionnaireViewer .modal-body').on('mousedown',function(e){ return false; }); $('#gcmsQuestionnaireDetail .modal-header .close').bind('click', function() { $('#gcmsQuestionnaireDetail').hide(); }); var $box2 = $('#gcmsQuestionnaireDetail').mousedown(function(e) { var offset = $(this).offset(); this.posix = {'x': e.pageX - offset.left, 'y': ((e.pageY - offset.top)>0?(e.pageY - offset.top):0)}; $.extend(document, {'move': true, 'move_target': this}); }); $('#gcmsQuestionnaireDetail .modal-body').on('mousedown',function(e){ return false; }); } /** * 界面布局重置 * @type {Function} */ function layoutResize(){ $('#gcmsQuestionnaireDetail .modal-body').css({height:ONEMAP.M.pcLayout.styles.mapHeight-300}); } /** * 注册监听 * @type {Function} */ function subscribe(){ ONEMAP.C.publisher.subscribe(layoutResize,'sideBarLayoutChange'); ONEMAP.C.publisher.subscribe(remove,'gcmsArticleShowRemove'); } /** * 取消监听 * @type {Function} */ function unSubscribe() { ONEMAP.C.publisher.unSubscribe(layoutResize,'sideBarLayoutChange'); } /** * 模块移除 * @return {[type]} [description] */ function remove(){ $('#gcmsQuestionnaireViewer').remove(); $('#gcmsQuestionnaireDetail').remove(); _questionnaireListData = []; _questionnaireDetailData = null; unSubscribe(); } return ONEMAP.M.gcmsQuestionnaire = { init:init, remove:remove } });