123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469 |
- /**
- * [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 = '<div id="gcmsQuestionnaireViewer" class="modal">'+
- '<div class="modal-header">'+
- '<button type="button" class="btn btn1 close">×</button>'+
- '<h3>问卷列表</h3>'+
- '</div>'+
- '<div class="modal-body" style="height:100%">'+
- '<ul id="gcmsQuestionnaireViewerList"></ul>'+
- '</div>'+
- '</div>';
- var _detailTpl = '<div id="gcmsQuestionnaireDetail" class="modal">'+
- '<div class="modal-header">'+
- '<button type="button" class="btn btn1 close">×</button>'+
- '<h3>问卷详情</h3>'+
- '</div>'+
- '<div class="modal-body" style="height:100%">'+
- '<div id="gcmsQuestionnaireDetailBox"></div>'+
- '</div>'+
- '</div>';
- /**
- * 模块初始化
- * @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('<li><button mid="'+el['id']+'" class="btn">'+el['name']+'</button></li>')
- });
- $('#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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></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 = $('<table class="border box-header"><tbody></tbody></table>');
- var tr = $('<tr><th></th><td></td></tr>');
- tr.find('th:first').html(data['label']);
- $(data.values).each(function(index, el) {
- var table_in = $('<table class="border box-header"><tbody></tbody></table>');
- var tr_in = $('<tr><td></td></tr>');
- $(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
- }
- });
|