indexPage.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. var __es = null;
  2. // Step:3 为模块加载器配置echarts的路径,从当前页面链接到echarts.js,定义所需图表路径
  3. require.config({
  4. paths : {
  5. echarts : __ctx + '/js/echarts/'
  6. }
  7. });
  8. // Step:4 动态加载echarts然后在回调函数中开始使用,注意保持按需加载结构定义图表路径
  9. require([ 'echarts',
  10. 'echarts/chart/bar',// 柱形图(纵向),堆积柱形图,条形图(横向),堆积条形图
  11. 'echarts/chart/chord',// 和弦图。常用于展现关系数据,外层为圆环图,可体现数据占比关系,内层为各个扇形间相互连接的弦,可体现关系数据
  12. 'echarts/chart/eventRiver',// 事件河流图。常用于展示具有时间属性的多个事件,以及事件随时间的演化。
  13. 'echarts/chart/force',// 力导布局图。常用于展现复杂关系网络聚类布局。
  14. 'echarts/chart/funnel',// 漏斗图。用于展现数据经过筛选、过滤等流程处理后发生的数据变化,常见于BI类系统。
  15. 'echarts/chart/gauge',// 仪表盘。用于展现关键指标数据,常见于BI类系统。
  16. 'echarts/chart/k',// K线图,蜡烛图。常用于展现股票交易数据。
  17. 'echarts/chart/line', // 折线图,堆积折线图,区域图,堆积区域图。
  18. 'echarts/chart/map',// 地图。内置世界地图、中国及中国34个省市自治区地图数据、可通过标准GeoJson扩展地图类型。支持svg扩展类地图应用,如室内地图、运动场、物件构造等。
  19. 'echarts/chart/pie',// 饼图,圆环图。饼图支持两种(半径、面积)南丁格尔玫瑰图模式。
  20. 'echarts/chart/radar',// 雷达图,填充雷达图。高维度数据展现的常用图表。
  21. 'echarts/chart/scatter' // 散点图,气泡图。散点图至少需要横纵两个数据,更高维度数据加入时可以映射为颜色或大小,当映射到大小时则为气泡图
  22. ], function(ec) {
  23. __es = ec
  24. new Plugin();
  25. });
  26. /**
  27. * 定时器容器,每个定时器只启动一次。
  28. */
  29. var intervalObj={};
  30. /**
  31. * 图表控件显示问题,图表控件只初始化一次。
  32. */
  33. var widgetContainer={};
  34. /*******************************************************************************
  35. *
  36. * 系统首页布局js
  37. *
  38. * <pre>
  39. *
  40. * 作者:hugh zhuang
  41. * 邮箱:zhuangxh@jee-soft.cn
  42. * 日期:2015-01-8-上午11:10:52
  43. * 版权:广州宏天软件有限公司版权所有
  44. * </pre>
  45. *
  46. ******************************************************************************/
  47. var isInit__ = false, defaults = {
  48. templateAliasKey : "template-alias",// 模版别名
  49. templateParams : "template-params",// 模版参数
  50. defHeight : 320
  51. // 默认高度
  52. }, me;
  53. function Plugin( options) {
  54. this.settings = $.extend({}, defaults, options);
  55. this._defaults = defaults;
  56. this.init();
  57. }
  58. Plugin.prototype = {
  59. init : function() {
  60. me = this;
  61. me.initUI();
  62. me.parser();
  63. },
  64. initUIEvent : function(el) {
  65. this.handleSlimScrolls(el);
  66. this.handleInfobox(el);
  67. this.handlePieChar(el);
  68. this.handleSparkline(el);
  69. },
  70. initUI : function() {
  71. // 处理顶部的按钮
  72. $(document).on('click','.widget-header a[data-action]',function(ev) {
  73. ev.preventDefault();
  74. var $this = $(this), $box = $this
  75. .closest('.widget-box');
  76. if ($box.length == 0)
  77. return;
  78. var $action = $this.data('action');
  79. if ($action == 'collapse') {// 展开
  80. var event_name = $box.hasClass('collapsed') ? 'show': 'hide';
  81. me.toggle(event_name, $this, $box);
  82. } else if ($action == 'close') {// 关闭
  83. me.close($box);
  84. } else if ($action == 'reload') {// 刷新
  85. $this.blur();
  86. me.reload($this);
  87. } else if ($action == 'fullscreen') {// 全屏
  88. me.fullscreen($box, $this);
  89. } else if ($action == 'more') {// 更多
  90. me.more($this);
  91. } else if ($action == 'first') {// 首页
  92. me.firstPage($box);
  93. } else if ($action == 'prev') {// 上一页
  94. me.prevPage($box);
  95. } else if ($action == 'next') {// 下一页
  96. me.nextPage($box);
  97. } else if ($action == 'last') {//最后一页
  98. me.lastPage($box);
  99. } else if ($action == 'pageSize') {// 分页大小
  100. me.pageSize($box, $this);
  101. } else{// 数据扩扩展
  102. if($this.attr("data-ext") && !me.isEmpty($action))
  103. me.getParamsExt($box, $this,$action);
  104. }
  105. });
  106. //处理tab
  107. $(document).on('click','a[data-toggle="tab"]',function (e) {
  108. e.preventDefault();
  109. var $this = $(this), $box = $this.closest('.widget-box'),
  110. templateParams = me._defaults.templateParams,
  111. params = $box.attr(templateParams),
  112. alias = $this.attr("data-alias"),
  113. dataParam = $this.attr("data-param");
  114. params = eval("(" + params + ")");
  115. params[dataParam] = alias;
  116. //分页的处理
  117. if(!me.isEmpty(params.currentPage))
  118. params.currentPage = 1;
  119. $box.attr(templateParams, JSON.stringify(params));
  120. //打开那个tab
  121. $(this).tab('show');
  122. });
  123. },
  124. getParamsExt:function($box,$this,$action){
  125. var params = me.getTemplateParams($box);
  126. if (!params)
  127. return;
  128. var templateParams = me._defaults.templateParams,
  129. params = $box.attr(templateParams)
  130. val = $this.attr("data-value");
  131. params = eval("(" + params + ")");
  132. params[$action] = val;
  133. $box.attr(templateParams, JSON.stringify(params));
  134. me.blockUI($box);
  135. window.setTimeout(function() {
  136. me.parserTemplate($box);
  137. }, 100);
  138. },
  139. /**
  140. * 获取模版参数
  141. */
  142. getTemplateParams : function($box) {
  143. var templateParams = me._defaults.templateParams,
  144. params = $box.attr(templateParams);
  145. if (!params) {
  146. alert("请配置参数。");
  147. return;
  148. } else {
  149. return eval("(" + params + ")");
  150. }
  151. },
  152. firstPage : function($box) {
  153. var params = me.getTemplateParams($box);
  154. if (!params)
  155. return;
  156. me.handerPage($box, 1);
  157. },
  158. prevPage : function($box) {
  159. var params = me.getTemplateParams($box);
  160. if (!params)
  161. return;
  162. var currentPage = params.currentPage;
  163. if (currentPage <= 1)
  164. return;
  165. me.handerPage($box, currentPage - 1);
  166. },
  167. nextPage : function($box) {
  168. var params = me.getTemplateParams($box);
  169. if (!params)
  170. return;
  171. var currentPage = params.currentPage, totalPage = params.totalPage;
  172. if (currentPage >= totalPage)
  173. return;
  174. me.handerPage($box, currentPage + 1);
  175. },
  176. lastPage : function($box) {
  177. var params = me.getTemplateParams($box);
  178. if (!params)
  179. return;
  180. me.handerPage($box, params.totalPage);
  181. },
  182. pageSize : function($box, $this) {
  183. var params = me.getTemplateParams($box);
  184. if (!params)
  185. return;
  186. me.handerPage($box, 1, $this.html());
  187. },
  188. handerPage : function($box, currentPage, pageSize) {
  189. var templateParams = me._defaults.templateParams, params = $box
  190. .attr(templateParams);
  191. params = eval("(" + params + ")");
  192. params.currentPage = currentPage;
  193. if (pageSize)
  194. params.pageSize = pageSize;
  195. $box.attr(templateParams, JSON.stringify(params));
  196. me.blockUI($box);
  197. window.setTimeout(function() {
  198. me.parserTemplate($box);
  199. }, 100);
  200. },
  201. /**
  202. * 处理收起、展开
  203. */
  204. toggle : function(type, button, $box) {
  205. var $body = $box.find('.widget-body').eq(0), $icon = null,
  206. event_name = typeof type !== 'undefined' ? type: ($box.hasClass('collapsed') ? 'show' : 'hide'),
  207. event_complete_name = event_name == 'show' ? 'shown': 'hidden';
  208. if (typeof button === 'undefined') {
  209. button = $box.find('> .widget-header a[data-action=collapse]')
  210. .eq(0);
  211. if (button.length == 0)
  212. button = null;
  213. }
  214. var $match, $icon_down = null, $icon_up = null, expandSpeed = 250, collapseSpeed = 200;
  215. if (button) {
  216. $icon = button.find(".ht-icon").eq(0);
  217. if (($icon_down = $icon.attr('data-icon-show'))) {
  218. $icon_up = $icon.attr('data-icon-hide')
  219. } else if ($match = $icon.attr('class').match(
  220. /fa\-(.*)\-(up|down)/)) {
  221. $icon_down = 'fa-' + $match[1] + '-down';
  222. $icon_up = 'fa-' + $match[1] + '-up';
  223. }
  224. expandSpeed = button.attr('data-expand-speed') ? button
  225. .attr('data-expand-speed') : expandSpeed;
  226. collapseSpeed = button.attr('data-collapse-speed') ? button
  227. .attr('data-collapse-speed') : collapseSpeed;
  228. }
  229. if (event_name == 'show') {
  230. if ($icon)
  231. $icon.removeClass($icon_down).addClass($icon_up);
  232. $body.hide();
  233. $box.removeClass('collapsed');
  234. $body.slideDown(expandSpeed);
  235. } else {
  236. if ($icon)
  237. $icon.removeClass($icon_up).addClass($icon_down);
  238. $body.slideUp(collapseSpeed, function() {
  239. $box.addClass('collapsed')
  240. $box.trigger(event_complete_name + '.ht.widget')
  241. });
  242. }
  243. },
  244. /**
  245. * 处理刷新
  246. */
  247. reload : function($this) {
  248. var el = $this.parents(".widget-box");
  249. me.blockUI(el);
  250. var alias = el.parent().find("[" + me._defaults.templateAliasKey + "]");
  251. if (alias.length > 0) {
  252. me.parserTemplate(el);
  253. } else {
  254. me.unblockUI(el);
  255. }
  256. },
  257. /**
  258. * 处理更多
  259. */
  260. more : function($this) {
  261. var url = $this.attr('data-url');
  262. me.addTab(url);
  263. },
  264. /**
  265. * 关闭
  266. */
  267. close : function($box) {
  268. var closeSpeed = 300;
  269. $box.fadeOut(closeSpeed, function() {
  270. $box.parent().remove();
  271. });
  272. },
  273. /**
  274. * 全屏
  275. */
  276. fullscreen : function($box, $this) {
  277. var $icon = $this.find(".ht-icon").eq(0),
  278. $icon_expand = null,
  279. $icon_compress = null
  280. if (($icon_expand = $icon.attr('data-icon1'))) {
  281. $icon_compress = $icon.attr('data-icon2')
  282. } else {
  283. $icon_expand = 'fa-expand';
  284. $icon_compress = 'fa-compress';
  285. }
  286. if (!$box.hasClass('fullscreen')) {
  287. $icon.removeClass($icon_expand).addClass($icon_compress);
  288. $box.addClass('fullscreen');
  289. } else {
  290. $icon.addClass($icon_expand).removeClass($icon_compress);
  291. $box.removeClass('fullscreen');
  292. }
  293. },
  294. addTab : function(url) {
  295. if (!url || url == "")
  296. return;
  297. var url2 = url.split("?")[0];
  298. $.post(__ctx + "/platform/console/getResourceNode.ht?columnUrl="
  299. + url2, function(data) {
  300. if (data == null | data == "") {
  301. alert("更多路径配置有误", '提示信息');
  302. } else {
  303. me.addToTab(url, data.resName, data.resId,
  304. data.icon);
  305. }
  306. });
  307. },
  308. // 添加到tab或者刷新
  309. addToTab : function(url, txt, id, icon) {
  310. me.getParent().tab.addTabItem({
  311. url : __ctx + url,
  312. text : txt,
  313. tabid : id,
  314. icon : __ctx + icon
  315. });
  316. },
  317. // 找到最顶层窗口
  318. getParent : function(w) {
  319. var win = w ? w : window;
  320. if (win.parent != win) // 找到最顶层窗口
  321. return this.getParent(win.parent);
  322. return win;
  323. },
  324. isEmpty : function(v, allowBlank) {
  325. return v === null || v === undefined
  326. || (!allowBlank ? v === '' : false);
  327. },
  328. blockUI : function(el, loaderOnTop) {
  329. var html = '<div ><i class=" fa fa-spinner fa-spin fa-2x orange "></i>加载中...</div>';
  330. jQuery(el).block({
  331. message : html,
  332. css : {
  333. top : '10%',
  334. border : '0',
  335. padding : '0',
  336. backgroundColor : 'none'
  337. },
  338. overlayCSS : {
  339. backgroundColor : '#fff',
  340. opacity : 0.1,
  341. cursor : 'wait'
  342. }
  343. });
  344. },
  345. // wrapper function to un-block element(finish loading)
  346. unblockUI : function(el) {
  347. jQuery(el).unblock({
  348. onUnblock : function() {
  349. jQuery(el).removeAttr("style");
  350. }
  351. });
  352. },
  353. /**
  354. * 走马灯效果
  355. */
  356. handleCarousel : function(conf) {
  357. if (!jQuery().carouFredSel) return;
  358. var div = conf.div, data = conf.data ? conf.data : [], height = conf.height ? conf.height
  359. : me._defaults.defHeight, carouFredSel = $('.widget-list',
  360. div);
  361. if (carouFredSel.length <= 0)
  362. return;
  363. // Basic carousel, no options
  364. carouFredSel.each(function() {
  365. var self = $(this), direction = self
  366. .attr("data-direction") ? self
  367. .attr("data-direction") : 'up', // 滚动方向 left 、right、down、up
  368. duration = self.attr("data-duration") ? self.attr("data-duration") : 500, // 持续时间
  369. easing = self.attr("data-easing") ? self.attr("data-easing") : 'swing', // 展示效果swing(摆动)、linear、 cubic、quadratic
  370. pauseOnHover = self.attr("data-pauseOnHover") ? self.attr("data-pauseOnHover") : true;// 是否鼠标停止
  371. self.carouFredSel({
  372. direction : direction,
  373. height : height - 20,
  374. scroll : {
  375. easing : easing,
  376. duration : duration,
  377. pauseOnHover : pauseOnHover
  378. }
  379. });
  380. });
  381. },
  382. /**
  383. * 处理幻灯片效果
  384. */
  385. handleLayerslider : function(conf) {
  386. if (!jQuery().layerSlider)
  387. return;
  388. var div = conf.div, data = conf.data ? conf.data : [], height = conf.height ? conf.height
  389. : me._defaults.defHeight, layerslider = $(
  390. '.widget-layerslider', div);
  391. if (layerslider.length <= 0)
  392. return;
  393. layerslider.each(function() {
  394. var self = $(this),
  395. width = self.width() > 0 ? self.width() : me._defaults.defHeight,
  396. skinsPath = self.attr("data-skins-path") ?self.attr("data-skins-path"): (__ctx + '/styles/common/css/slider-layer-slider/skins/'),
  397. skin = self.attr("data-skin") ? self.attr("data-skin"): 'fullwidth',
  398. thumbnailNavigation = self.attr("data-thumbnailNavigation") ? self
  399. .attr("data-thumbnailNavigation") : 'hover',
  400. hoverPrevNext = self.attr("data-hoverPrevNext") ?
  401. self.attr("data-hoverPrevNext") : false,
  402. responsive = self.attr("data-responsive") ?
  403. self.attr("data-responsive") : false,
  404. responsiveUnder = self.attr("data-responsiveUnder") ?
  405. self.attr("data-responsiveUnder") : width,
  406. layersContainer = self.attr("data-layersContainer") ?
  407. self.attr("data-layersContainer"): width;
  408. self.layerSlider({
  409. skinsPath : skinsPath,
  410. skin : skin,
  411. thumbnailNavigation : thumbnailNavigation,
  412. hoverPrevNext : hoverPrevNext,
  413. responsive : responsive,
  414. responsiveUnder : responsiveUnder,
  415. layersContainer : layersContainer
  416. });
  417. });
  418. },
  419. /**
  420. * 处理列表数据滚动
  421. */
  422. handleSlimScrolls : function(el) {
  423. if (!jQuery().slimScroll)
  424. return;
  425. $('.widget-scroller', el).each(function() {
  426. var self = $(this),
  427. height = self.attr("data-height");
  428. self.slimScroll({size : '7px',
  429. color : '#a1b2bd',
  430. height : height ? height
  431. : (me._defaults.defHeight + 'px'),
  432. alwaysVisible : (self
  433. .attr("data-always-visible") == "1" ? true
  434. : false),
  435. railVisible : (self
  436. .attr("data-rail-visible") == "1" ? true
  437. : false),
  438. railOpacity : 0.1,
  439. disableFadeOut : true
  440. });
  441. });
  442. },
  443. /**
  444. * 消息盒子
  445. */
  446. handleInfobox : function(el) {
  447. $('.infobox[data-url]', el).unbind("click").bind("click",
  448. function() {
  449. var self = $(this),
  450. url = self.attr("data-url");
  451. me.addTab(url);
  452. });
  453. },
  454. /**
  455. * 处理饼图
  456. */
  457. handlePieChar : function(el) {
  458. if (!jQuery().easyPieChart)
  459. return;
  460. $('.easy-pie-chart.percentage', el).each(function() {
  461. var self = $(this),
  462. $box = self.closest('.infobox'),
  463. barColor = self.data('color')|| (!$box.hasClass('infobox-dark') ?
  464. $box.css('color'): 'rgba(255,255,255,0.95)'),
  465. trackColor = barColor == 'rgba(255,255,255,0.95)' ? 'rgba(255,255,255,0.25)': '#E2E2E2',
  466. size = parseInt(self.data('size')) || 50;
  467. self.easyPieChart({
  468. barColor : barColor,
  469. trackColor : trackColor,
  470. scaleColor : false,
  471. lineCap : 'butt',
  472. lineWidth : parseInt(size / 10),
  473. animate : /msie\s*(8|7|6)/
  474. .test(navigator.userAgent
  475. .toLowerCase()) ? false
  476. : 1000,
  477. size : size
  478. });
  479. });
  480. },
  481. /**
  482. * 处理信息盒子的图表
  483. */
  484. handleSparkline : function(el) {
  485. if (!jQuery().sparkline)
  486. return;
  487. $('.sparkline', el).each(function() {
  488. var self = $(this), $box = self
  489. .closest('.infobox'),
  490. barColor = !$box.hasClass('infobox-dark') ? $box
  491. .css('color') : '#FFF',
  492. type = self.attr("data-type") ? $(this).attr("data-type") : 'bar';
  493. $(this).sparkline('html', {
  494. tagValuesAttribute : 'data-values',
  495. type : type,
  496. barColor : barColor,
  497. chartRangeMin : $(this).data('min') || 0
  498. });
  499. });
  500. },
  501. /**
  502. * 处理日历
  503. */
  504. handleCalendar : function(conf) {
  505. if (!jQuery().fullCalendar)
  506. return;
  507. var div = conf.div, data = conf.data ? conf.data : [], height = conf.height ? conf.height
  508. : me._defaults.defHeight, calendar = $('.widget-calendar',
  509. div);
  510. if (calendar.length <= 0)
  511. return;
  512. calendar.fullCalendar({
  513. header : {
  514. left : 'prev,next today',
  515. center : 'title',
  516. right : 'month,agendaWeek,agendaDay'
  517. },
  518. height : height,
  519. selectable : true,
  520. selectHelper : true,
  521. editable : true,
  522. eventLimit : true, // 更多
  523. views : {
  524. month : {
  525. eventLimit : 5,
  526. eventLimitClick : 'day'
  527. },
  528. agendaWeek : {
  529. eventLimit : 5
  530. },
  531. agendaDay : {
  532. eventLimit : 5
  533. }
  534. },
  535. eventClick : function(calEvent, jsEvent, view) {
  536. if (calEvent.eventClick) {
  537. calEvent.eventClick.call(this, calEvent,
  538. jsEvent, view);
  539. }
  540. },
  541. events : data
  542. });
  543. },
  544. /**
  545. * 处理图表
  546. */
  547. handleChart : function(conf) {
  548. var alias=conf.alias;
  549. var div = conf.div, data = conf.data, height = conf.height ? conf.height
  550. : me._defaults.defHeight, chartBody = div
  551. .find(".widget-chart");// 对图表布局class标签写死
  552. // 如果没有自己解析图表
  553. if (me.isEmpty(chartBody)) return;
  554. var w = chartBody.width() > 0 ? chartBody.width()
  555. : me._defaults.defHeight, h = chartBody.height() > 0 ? chartBody
  556. .height()
  557. : height;
  558. chartBody.width(w);
  559. chartBody.height(h);
  560. try {
  561. var myChart=null;
  562. if(!widgetContainer[alias]){
  563. myChart = __es.init(chartBody[0]);
  564. widgetContainer[alias]=myChart;
  565. }
  566. else{
  567. myChart=widgetContainer[alias];
  568. }
  569. myChart.setOption(data);
  570. } catch (e) {
  571. }
  572. },
  573. /**
  574. * 刷新页面
  575. */
  576. refreshPage : function(alias,el, delaytime) {
  577. if(intervalObj[alias]) return;
  578. intervalObj[alias]=true;
  579. //定时操作
  580. window.setInterval(function() {
  581. me.blockUI(el);
  582. me.parserTemplate(el);
  583. }, delaytime);
  584. },
  585. /**
  586. * 解析模版
  587. */
  588. parserTemplate : function(el) {
  589. var self = $(el);
  590. var alias = self.attr(me._defaults.templateAliasKey);
  591. var params = self.attr(me._defaults.templateParams);
  592. var divObj = $("<div></div>");
  593. me.blockUI(el);
  594. if (!alias) {
  595. me.unblockUI(el);
  596. return;
  597. }
  598. var url=__ctx + "/platform/system/sysIndexColumn/getData.ht";
  599. var params={ params : params ? params : '', alias : alias };
  600. $.ajax({
  601. type : "POST",
  602. context:self,
  603. url : url,
  604. data : params,
  605. success : function(data) {
  606. var obj=$(this);
  607. me.unblockUI(obj[0]);
  608. if (me.isEmpty(data)) return;
  609. var rtn = eval('(' + data + ')');
  610. var templateHtml = rtn.html;
  611. // 栏目类型
  612. var type = rtn.type;
  613. // 是否刷新
  614. var isRefresh = rtn.isRefresh;
  615. // 刷新时间
  616. var refreshTime = rtn.refreshTime;
  617. var delayTime = refreshTime ? refreshTime: 5;
  618. // 展示效果。1、默认效果,走马灯
  619. var show = rtn.show;
  620. var height = rtn.height;// 高度
  621. // 有儿子就有bug TODO 暂时在它的父类添加div这样解决
  622. // 判断div的父类是否有元素
  623. var parent = obj.parent();
  624. if (parent.hasClass('parent-template-class')) {
  625. divObj = parent;
  626. } else {
  627. divObj.addClass("parent-template-class");
  628. obj.after(divObj);
  629. }
  630. var wigetObj=$(templateHtml);
  631. //内存引起的问题,是因为图表组件引起的,图表组件不能在每次刷新的时候执行init方法。
  632. //可以使用缓存的方法将图表组件缓存起来。
  633. if(type == 1){
  634. //第一次加载的时候处理,其他的情况下就不进行处理了。
  635. if(!widgetContainer[alias]){
  636. obj.remove();
  637. obj=null;
  638. divObj.append(wigetObj);// 把当前页替换成模版的页面
  639. }
  640. }
  641. else{
  642. obj.remove();
  643. obj=null;
  644. divObj.append(wigetObj);// 把当前页替换成模版的页面
  645. }
  646. if (type == 1) {// 图表方式
  647. me.handleChart({
  648. alias:alias,
  649. div : wigetObj,
  650. data : rtn.option,
  651. height : height
  652. });
  653. } else if (type == 2) {// 日历方式
  654. me.handleCalendar({
  655. div : wigetObj,
  656. data : rtn.option,
  657. height : height
  658. });
  659. } else {
  660. // 默认方式
  661. if (show != 1)
  662. me.initUIEvent(wigetObj);
  663. }
  664. // 0、是默认;1、是走马灯、2、是幻灯片
  665. if (show && show == 1) {// 1、是走马灯
  666. me.handleCarousel({
  667. div : wigetObj,
  668. data : rtn.option,
  669. height : height
  670. });
  671. } else if (show && show == 2) {// 2、 幻灯片
  672. me.handleLayerslider({
  673. div : wigetObj,
  674. data : rtn.option,
  675. height : height
  676. });
  677. }
  678. // 处理刷新 页面关闭或者隐藏
  679. if (isRefresh && isRefresh == 1){
  680. me.refreshPage(alias, wigetObj,
  681. delayTime * 1000);
  682. }
  683. },
  684. error : function(data) {
  685. me.unblockUI(this);
  686. }
  687. });
  688. },
  689. parser : function() {
  690. var indexPageTemplate = $('.index-page').find("[" + me._defaults.templateAliasKey + "]");
  691. if(indexPageTemplate.length==0) return;
  692. indexPageTemplate.each(function(i, n) {
  693. me.parserTemplate(n);
  694. });
  695. }
  696. };