x_js.js 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. //新加些对象用来保存常用数据, 如:游戏列表为:zyfc.gameList (下面数据也应放入此对象,但暂时不做处理)
  2. var zyfc = new Object();
  3. //获得游戏列表
  4. $.get("cgReportController.do?datagrid&configId=dynamic_game_list", function(data) {
  5. zyfc.gameList = {};
  6. for(var i = 0; i < data.rows.length; i++) {
  7. var game = data.rows[i];
  8. zyfc.gameList[game.gmid] = game;
  9. }
  10. });
  11. //扩展_导出
  12. function x_export() {
  13. jQuery.ajaxSettings.traditional = true;
  14. //判断记录是否大于10w条
  15. var xjs_panel = $(".panel:visible[class='panel']").has("#x_export");
  16. var rowNum = xjs_panel.find(".pagination-info").text();
  17. if(rowNum) {
  18. rowNum = rowNum.match(/共\d+/)[0].replace("共", "");
  19. }else {
  20. rowNum = 0;
  21. }
  22. if(rowNum == 0) {
  23. alert("没有导出的记录!");
  24. return;
  25. }else if(rowNum > 100000) {
  26. alert("导出记录数量不能大于10w条!");
  27. return;
  28. }
  29. var e = event || x_export.caller.arguments[0];
  30. var target = e.target || e.srcElement;
  31. var configId = $(target).parents("div[id$='Listtb']:first").attr("id").replace("Listtb", "");
  32. var url = "exCoreController.do?exportExcel&configId=" + configId;
  33. var datagridId = configId + 'List';
  34. var queryParams = $('#'+datagridId).datagrid('options').queryParams;
  35. //获得数组参数
  36. $("#" + configId + "Listtb").find(":input[id][tag='ComboGrid']").each(function() {
  37. queryParams[$(this).attr("id")] = $(this).combogrid('getValues');
  38. });
  39. $('#'+datagridId+'tb').find('*').each(function() {
  40. queryParams[$(this).attr('name')] = $(this).val();
  41. });
  42. var params = '&' + $.param(queryParams);
  43. var fields = '&field=';
  44. $("#" + datagridId).parents(".datagrid-wrap:first").find(".datagrid-header-row td:visible").each(function() {
  45. var field = $(this).attr("field");
  46. if(field && field != "ck" && field != "opt") {
  47. fields+=field+',';
  48. }
  49. });
  50. var loc = url + params + encodeURI(fields);
  51. $("<iframe src='" + loc + "&p=1" + "' style='display:none;'></iframe>").appendTo("body");
  52. if(rowNum > 50000) {
  53. setTimeout(function() {
  54. $("<iframe src='" + loc + "&p=2' style='display:none;'></iframe>").appendTo("body");
  55. }, 1000 * 5);
  56. }
  57. }
  58. //扩展_克隆
  59. function x_copy() {
  60. var e = event || x_export.caller.arguments[0];
  61. var target = e.target || e.srcElement;
  62. var configId = $(target).parents("div[id$='Listtb']:first").attr("id").replace("Listtb", "");
  63. eval(configId + "copy()");
  64. }
  65. //每25钟自动连接一次服务器,防止session过期
  66. setInterval(function() {
  67. $.get("loginController.do?login", function(data) { });
  68. }, 1000 * 60 * 100);
  69. //图表配置复制
  70. function popMenuLinkGraph(tableName,content){
  71. var url = "<input type='text' style='width:380px;' disabled=\"disabled\" id='menuLink' title='graphReportController.do?list&id=' value='graphReportController.do?list&isIframe&id="+tableName+"' />";
  72. $.dialog({
  73. content: url,
  74. drag :false,
  75. lock : true,
  76. title:'菜单链接['+content+']',
  77. opacity : 0.3,
  78. width:400,
  79. height:50,
  80. cache:false,
  81. cancelVal: '关闭',
  82. cancel: function(){clip.destroy();},
  83. button : [{
  84. id : "coptyBtn",
  85. name : "复制",
  86. callback : function () {
  87. }
  88. }],
  89. init : function () {
  90. clip = new ZeroClipboard.Client();
  91. clip.setHandCursor( true );
  92. clip.addEventListener('mouseOver', function(client){
  93. clip.setText( document.getElementById("menuLink").value );
  94. });
  95. clip.addEventListener('complete', function(client, text){
  96. alert("复制成功");
  97. });
  98. var menuLink = $("#menuLink").val();
  99. $($("input[type=button]")[0]).attr("id","coptyBtn");
  100. clip.setText(menuLink);
  101. clip.glue("coptyBtn");
  102. }
  103. });
  104. }
  105. //图表配置复制
  106. function copy_url() {
  107. var e = event || x_export.caller.arguments[0];
  108. var target = e.target || e.srcElement;
  109. var configId = $(target).parents("tr:first").find("td[field='code']").text();
  110. popMenuLinkGraph(configId, configId);
  111. }
  112. //功能测试
  113. function graph_test() {
  114. var e = event || x_export.caller.arguments[0];
  115. var target = e.target || e.srcElement;
  116. var configId = $(target).parents("tr:first").find("td[field='code']").text();
  117. var configName = $(target).parents("tr:first").find("td[field='name']").text();
  118. addOneTab("表单数据列表 ["+configName+"]", "graphReportController.do?list&isIframe&id="+configId);
  119. }
  120. //公告管理-查看区服
  121. function x_openServerList(id) {
  122. //addTab('渠道收入数据(广告)','cgAutoListController.do?list&id=v_rpt_day_pay_ad&clickFunctionId=2c90aa6744866c7a0144875fc92c013e','pictures')
  123. addlisttab('db_mnet__dbo__v_game_server_notice_jjqy&noticeid='+id,'【jjqy】区服公告','0')
  124. }
  125. //四合一图表隐藏相关列
  126. function x_groupReport() {
  127. return;
  128. var xjs_panel = $("#maintabs .panel.datagrid:visible");
  129. var isGroupReport = $("#isGroupReport", xjs_panel);
  130. if(isGroupReport.length == 1) {
  131. var datagridId = xjs_panel .find(".datagrid-toolbar").attr("id").replace("tb", "");
  132. var queryParams = {serverid: $(":input[name='serverid']", xjs_panel).val(), ad_channel_id: $(":input[name='ad_channel_id']", xjs_panel).val()}
  133. //如果已选中汇总,隐藏相关列
  134. if(isGroupReport.attr("checked")) {
  135. if($(":checked#isGroupReport", xjs_panel).val() == 1) {
  136. //根据数据条件隐藏相应数据列
  137. if(queryParams.serverid != undefined) {
  138. $('#' + datagridId).datagrid("hideColumn", "serverid");
  139. }
  140. if(queryParams.ad_channel_id != undefined) {
  141. $('#' + datagridId).datagrid("hideColumn", "ad_channel_id");
  142. $('#' + datagridId).datagrid("hideColumn", "ad_channel_name");
  143. }
  144. /*if(!queryParams.serverid && queryParams.serverid != undefined) {
  145. $('#' + datagridId).datagrid("hideColumn", "serverid");
  146. }
  147. if(!queryParams.ad_channel_id && queryParams.ad_channel_id != undefined) {
  148. $('#' + datagridId).datagrid("hideColumn", "ad_channel_id");
  149. $('#' + datagridId).datagrid("hideColumn", "ad_channel_name");
  150. }*/
  151. }
  152. }else {
  153. //否则显示相关列
  154. if(queryParams.serverid != undefined) {
  155. $('#' + datagridId).datagrid("showColumn", "serverid");
  156. }
  157. if(queryParams.ad_channel_id != undefined) {
  158. $('#' + datagridId).datagrid("showColumn", "ad_channel_id");
  159. }
  160. }
  161. }
  162. }
  163. //根据游戏显示相应区服
  164. function x_showOnlyServer() {
  165. var xjs_panel = $("#maintabs .panel.datagrid:visible");
  166. var serveridObj = xjs_panel.find("#serverid");
  167. var gmid = xjs_panel.find("#gmid").val();
  168. //把gmid换成csdkid
  169. if(gmid) {
  170. gmid = zyfc.gameList[gmid].csdkid || gmid;
  171. }
  172. var currServerid = serveridObj.combo("getValue");
  173. var data = $("option", serveridObj).map(function() {
  174. var serverId = $(this).val();
  175. var serverOption = null;
  176. if(serverId) {
  177. if(gmid == "appsg") {
  178. if(serverId.indexOf(".") == -1) {
  179. serverOption = {value: serverId, text: $(this).text()};
  180. if(currServerid == serverId) {
  181. serverOption.selected = true;
  182. }
  183. }
  184. }else {
  185. if(!gmid || serverId.indexOf(gmid + ".") != -1) {
  186. serverOption = {value: serverId, text: $(this).text()};
  187. if(currServerid == serverId) {
  188. serverOption.selected = true;
  189. }
  190. }
  191. }
  192. }
  193. return serverOption;
  194. });
  195. serveridObj.combobox('setValue', '');
  196. serveridObj.combobox("loadData", x_getSCOptionOther("**全部区服**").concat(data.get()));
  197. }
  198. //根据游戏显示相应渠道
  199. function x_showOnlyChannel() {
  200. var xjs_panel = $("#maintabs .panel.datagrid:visible");
  201. var gmidObj = xjs_panel.find("#gmid");
  202. var text = $("option[value='"+gmidObj.val()+"']", gmidObj).text();
  203. var serveridObj = xjs_panel.find("#ad_channel_id");
  204. var currServerid = serveridObj.combo("getValue");
  205. var data = $("option", serveridObj).map(function() {
  206. var serverOption = null;
  207. if(gmidObj.val() == "appsg") {
  208. if(new RegExp(text).test($(this).text())) {
  209. serverOption = {value:$(this).val(), text:$(this).text()}
  210. if(currServerid == $(this).val()) {
  211. serverOption.selected = true;
  212. }
  213. }
  214. }else {
  215. if(new RegExp("啪啪三国").test($(this).text()) == false) {
  216. if($(this).val()) {
  217. serverOption = {value:$(this).val(), text:$(this).text()}
  218. if(currServerid == $(this).val()) {
  219. serverOption.selected = true;
  220. }
  221. }
  222. }
  223. }
  224. return serverOption;
  225. });
  226. data = x_getSCOptionOther("**全部渠道**").concat(data.get());
  227. serveridObj.combobox('setValue', '');
  228. serveridObj.combobox("loadData", data);
  229. }
  230. //获得区服和渠道附加选项
  231. function x_getSCOptionOther(showText) {
  232. var optionOther = [{value:"", text:""}];
  233. if($("#maintabs .panel.datagrid:visible #isGroupReport:checked").length > 0) {
  234. optionOther.push({value:"-1", text:showText});
  235. }
  236. return optionOther;
  237. }