FacultyAbsenceSummaryReportHandler.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. var sidValue = [];
  2. var orgLongNum="";
  3. var sumType = "1";
  4. var colNames;
  5. var colModel;
  6. shr.defineClass("shr.customer.gtiit.rpt.FacultyAbsenceSummaryReportHandler", shr.framework.List, {
  7. gridId: '#reportGrid',
  8. reportUipk : "com.kingdee.eas.FacultyAbsenceSummaryReport.list" ,
  9. rowNumPerPage : 30, // 设置默认分页30///
  10. colModelData: null,
  11. isFirstTimeLoad: 0,
  12. initalizeDOM : function () {
  13. var that = this;
  14. that.setColModelData();
  15. this.initalSearch();
  16. shr.customer.gtiit.rpt.FacultyAbsenceSummaryReportHandler.superClass.initalizeDOM.call(this);
  17. // 快速查询添加事件
  18. $('#searcher').shrSearchBar('option', {
  19. afterSearchClick: this.queryGridByEvent
  20. });
  21. //$("#deadline").shrDateTimePicker("setValue", new Date());
  22. //$("#deadline").trigger("change")
  23. //快速过滤展开
  24. if($(".filter-containers").is(":hidden")){
  25. $("#filter-slideToggle").click();
  26. }
  27. }
  28. ,processF7ChangeEvent : function(){
  29. var that = this;
  30. $('#personType').shrPromptBox("option", {
  31. onchange : function(e, value) {
  32. var info = value.current;
  33. if(info!=null){
  34. if (info.length != undefined) {
  35. orgLongNum = "";
  36. for (var index = 0; index < info.length; index++) {
  37. orgLongNum = orgLongNum + info[index].longNumber + "@" ;
  38. }
  39. if (orgLongNum.length > 0) {
  40. orgLongNum = orgLongNum.substring(0,orgLongNum.length -1);
  41. }
  42. }else{
  43. if(info.longNumber !=null && info.longNumber!=''){
  44. orgLongNum = info.longNumber;
  45. }
  46. }
  47. }
  48. }
  49. });
  50. }
  51. /**
  52. * 选择导航节点
  53. */
  54. ,queryGridByEvent: function(e) {
  55. var viewPage;
  56. var self=this;
  57. if (e.target) {
  58. viewPage = shr.getCurrentViewPage(e.target);
  59. } else {
  60. viewPage = shr.getCurrentViewPage(e);
  61. }
  62. // 将页码恢复为第1页
  63. $(viewPage.gridId).jqGrid('option', 'page', 1);
  64. viewPage.queryAction();
  65. },
  66. //设置高级查询
  67. initalSearch : function(){
  68. $('#grid-toolbar').children().eq(1).append('<div id="searcher" class="pull-right"/>');
  69. // $('<div id="searcher" class="pull-right"/>').insertAfter($('#breadcrumb').parent());
  70. var searcherFields = [];
  71. searcherFields[0] = {columnName:"name",label:'Name'};
  72. searcherFields[1] = {columnName:"number",label:'Staff ID'};
  73. var options = {
  74. gridId: "reportGrid",
  75. uipk: "com.kingdee.eas.FacultyAbsenceSummaryReport.list",
  76. // query: "" ,
  77. fields :searcherFields
  78. //暂时从这里取
  79. // propertiesUrl: shr.getContextPath()+'/dynamic.do?uipk=com.kingdee.eas.hr.ats.app.AttendanceResultSumList&method=getProperField'
  80. };
  81. $("#searcher").shrSearchBar(options);
  82. //设置其默认的过滤方案
  83. // var filter = $("#searcher").shrSearchBar('option', 'filterView');
  84. // if ($.isEmptyObject(filter)) {
  85. // // 如果filter为空
  86. // if (!$.isEmptyObject($("#searcher").shrSearchBar('option', 'defaultViewId'))) {
  87. // // 加载默认过滤方案触发表格取数
  88. // $("#searcher").shrSearchBar('chooseDefaultView');
  89. // }
  90. // }
  91. }
  92. /**
  93. * 获得search查询条件
  94. */
  95. ,getSearchFilterItems: function() {
  96. var filter = $('#searcher').shrSearchBar('option', 'filterView');
  97. if (filter && filter.filterItems) {
  98. return filter.filterItems;
  99. }
  100. }
  101. ,queryAction : function () {
  102. var self = this;
  103. //search搜索
  104. var searchFilterItems = self.getSearchFilterItems();
  105. if( searchFilterItems == undefined)
  106. searchFilterItems = "" ;
  107. //快速过滤
  108. var fastFilterItems = self.getFastFilterItems();
  109. if(fastFilterItems == undefined){
  110. fastFilterItems = "";
  111. }
  112. if(fastFilterItems["add"] == ""){
  113. fastFilterItems["add"] = null;
  114. }
  115. //R20190625-2369保存方案后,其它条件设置的条件被清空
  116. //需把视图的filterItem其他条件name="add"改成name="advancedFilter"
  117. var advancedFilterItems = self.getAdvancedFilterItems();
  118. if(advancedFilterItems != undefined){
  119. fastFilterItems["add"] = advancedFilterItems;
  120. }
  121. // 过滤条件不能为空
  122. var dateRequiredValidate = shr.fastFilterValidateUtil.requiredValidate(this,{"name":"queryTime","errorMessage":"Please select the query period!"});
  123. if(!dateRequiredValidate){
  124. return;
  125. }
  126. $("#reportGrid").jqGrid('setGridParam', {
  127. datatype : 'json',
  128. postData : {
  129. 'NewRearch' : 'newRearch',
  130. 'fastFilterItems' : $.toJSON(fastFilterItems),
  131. 'searchFilterItems' : searchFilterItems,
  132. 'sumType' : sumType,
  133. 'page' : 1
  134. },
  135. page : 0
  136. });
  137. self.doRenderDataGrid();
  138. },
  139. setColModelData: function () {
  140. var self = this;
  141. self.remoteCall({
  142. method : "getGridColModel",
  143. success : function (data) {
  144. colNames = data.colNames;
  145. colModel = data.colModel;
  146. }
  147. })
  148. },
  149. /**
  150. * 表格数据请求URL
  151. */
  152. getGridDataRequestURL : function () {
  153. var serviceId = shr.getUrlRequestParam("serviceId");
  154. return this.dynamicPage_url + "?method=getGridData" + "&uipk=" + this.reportUipk + '&serviceId='+encodeURIComponent(serviceId);
  155. },
  156. doRenderDataGrid : function () {
  157. var self = this, table = $("#reportGrid");
  158. var searchFilterItems = self.getSearchFilterItems();
  159. var fastFilterItems = self.getFastFilterItems();
  160. if( searchFilterItems == undefined)
  161. searchFilterItems = "" ;
  162. if( fastFilterItems == undefined)
  163. fastFilterItems = "" ;
  164. if(fastFilterItems["add"] == ""){
  165. fastFilterItems["add"] = null;
  166. }
  167. //R20190625-2369保存方案后,其它条件设置的条件被清空
  168. //需把视图的filterItem其他条件name="add"改成name="advancedFilter"
  169. var advancedFilterItems = self.getAdvancedFilterItems();
  170. if(advancedFilterItems != undefined){
  171. fastFilterItems["add"] = advancedFilterItems;
  172. }
  173. postData = {
  174. 'searchFilterItems' : searchFilterItems,
  175. 'fastFilterItems' : $.toJSON(fastFilterItems),
  176. 'page1' : 1
  177. };
  178. var url = self.getGridDataRequestURL();
  179. var options = {
  180. url : url ,
  181. datatype : "json",
  182. multiselect : true,
  183. rownumbers : false,
  184. colNames : colNames,
  185. colModel : colModel,
  186. rowNum : self.rowNumPerPage,
  187. // pager : '#gridPager1',
  188. mtype: 'POST',
  189. postData: postData ,
  190. // height : 'auto',
  191. height : '600px',
  192. // height : self.rowNumPerPage > 21 ? '600px' : 'auto',
  193. rowList : [30,45,60],
  194. recordpos : 'left',
  195. recordtext : '({0}-{1})/{2}',
  196. gridview : true,
  197. // pginput : true,
  198. shrinkToFit :colModel.length>10?false:true,
  199. viewrecords : true,
  200. //cellEdit:true,
  201. // cellsubmit:"clientArray" ,
  202. // sortname : "sumsql.fproposerid",
  203. //caption: "Frozen Header",
  204. customPager : '#gridPager1',
  205. pagerpos:"center",
  206. pginputpos:"right",
  207. pginput:true,
  208. synchTotal:"true",
  209. onSelectRow: function(id){
  210. jQuery('#reportGrid').jqGrid('editRow', id, false, function(){});
  211. sidValue.push(id);
  212. lastsel2 = id;
  213. $("#reportGrid").attr("sid", sidValue.join(","));
  214. }
  215. };
  216. options.loadComplete = function (data) {
  217. if($("#gridPager1").html() == "" && "true" == "true"){
  218. $("#reportGrid").setCustomPager("#gridPager1");
  219. }
  220. shr.setIframeHeight();
  221. $('#gridPager1_left').click(function(){
  222. $('.ui-pg-selbox').show();
  223. $('.ui-pg-selbox').css({"left":"-60px"})
  224. $(this).children('.ui-paging-info').hide();
  225. });
  226. $("#microToolbar").parent().hide()
  227. $("#gridPager1").parent().css({"position":"relative"})
  228. $("#gridPager1").addClass("shrPage").css({
  229. "position":"absolute",
  230. "top":"-25px",
  231. "right":"0px",
  232. "background":"#FFF"
  233. })
  234. shr.customer.gtiit.rpt.FacultyAbsenceSummaryReportHandler.superClass.gridLoadComplete.call(this,data);
  235. };
  236. table.html();
  237. table.jqGrid(options);
  238. jQuery("#reportGrid").jqGrid(options).jqGrid("reloadGrid");
  239. jQuery('#reportGrid').jqGrid('setFrozenColumns');
  240. self.firstTime = 1;
  241. },
  242. handleMicroToolbarInfo : function () {
  243. var self = this;
  244. var html = "";
  245. html += "<div class='shrPage page-Title' >";
  246. html += "<span id='gripage' class='ui-paging-info' style='cursor: default;display: inline-block;font-size: 13px;padding: 2px 5px 0 0;'></span>";
  247. html += "<span id='prevId' style='vertical-align: text-top;cursor: pointer;' class='ui-icon ui-icon-seek-prev'></span>";
  248. html += "<span id='nextId' style='vertical-align: text-top;cursor: pointer;' class='ui-icon ui-icon-seek-next'></span></div>";
  249. $('#microToolbar').html("");
  250. $('#microToolbar').append(html);
  251. $("#gripage").on("click", self.selectRowNumPerPage);
  252. $("#prevId").on("click", self.prePage);
  253. $("#nextId").on("click", self.nextPage);
  254. //页码 (1-4)/4
  255. self.updatePageEnable();
  256. $("#gripage").text($("#gridPager1_left >div[dir='ltr']").text());
  257. $("#gridPager1").hide();
  258. var ids=jQuery("#reportGrid").jqGrid('getDataIDs');
  259. var rowdata=jQuery("#reportGrid").jqGrid('getRowData',ids[0]);
  260. shr.setIframeHeight();
  261. $("#reportGrid_frozen").parent().height('583px');
  262. },
  263. updatePageEnable:function () {
  264. var temp = $("#gridPager1_left >div[dir='ltr']").text();
  265. if (temp.substring(1, temp.indexOf('-')) == '1') {
  266. $("#prevId").addClass("ui-state-disabled");
  267. } else {
  268. $("#prevId").removeClass("ui-state-disabled");
  269. }
  270. if (parseInt(temp.substring(temp.indexOf('-') + 1, temp.indexOf(')'))) >= parseInt(temp.substring(temp.indexOf('/') + 1).replace(new RegExp(",","gm"),""))) {
  271. $("#nextId").addClass("ui-state-disabled");
  272. } else {
  273. $("#nextId").removeClass("ui-state-disabled");
  274. }
  275. },
  276. getCurPage:function(){
  277. //(1-4)/4
  278. var self = this,
  279. rowNum = self.rowNumPerPage;
  280. var temp = $("#gridPager1_left >div[dir='ltr']").text();
  281. var curPageNum = (parseInt(temp.substring(1, temp.indexOf('-')))-1)/rowNum+1;
  282. return curPageNum;
  283. },
  284. prePage : function () {
  285. $("#prev_gridPager1").trigger("click");
  286. shr.setIframeHeight();
  287. $("#gripage").text($("#gridPager1_left >div[dir='ltr']").text());
  288. },
  289. nextPage : function () {
  290. $("#next_gridPager1").trigger("click");
  291. shr.setIframeHeight();
  292. $("#gripage").text($("#gridPager1_left >div[dir='ltr']").text());
  293. },
  294. selectRowNumPerPage:function(){
  295. }
  296. ,
  297. exportToExcelAction : function () {
  298. openLoader
  299. var _self = this ;
  300. var url = _self.exportCommonParam();
  301. var fastFilterItems = _self.getFastFilterItems();
  302. if( fastFilterItems == undefined)
  303. fastFilterItems = "" ;
  304. if(fastFilterItems["add"] == ""){
  305. fastFilterItems["add"] = null;
  306. }
  307. var serviceId = shr.getUrlRequestParam("serviceId");
  308. url += '&serviceId='+encodeURIComponent(serviceId) + "&isAll=true";
  309. //document.location.href = url;
  310. var callback=function(psw){
  311. var params = _self.getExportAllParams();
  312. params.exportPrivteProtected = $.allEncrypt(psw);
  313. openLoader(1,jsBizMultLan.atsManager_attendanceResultSumList_i18n_28);
  314. shr.ajax({
  315. type:"post",
  316. url:url,
  317. data: $.extend(_self.assemExportData(),{exportPrivteProtected: psw} ),
  318. success:function(res){
  319. closeLoader();
  320. if(null != res && null != res.url){ //这里有可能返回空,所以这里要做飞空判断的,但是不知道这里的业务逻辑,所以这里要问常青和飞羽
  321. shr.redirect(res.url,"");
  322. }
  323. //document.location.href = url;
  324. },
  325. error : function(res){
  326. shr.showError({message: jsBizMultLan.atsManager_attendanceResultSumList_i18n_6});
  327. closeLoader();
  328. }
  329. });
  330. }
  331. if(_self.isNeedExportFilePassword('#exportToExcel')) {
  332. fieldSensitiveService.setExportPsw(callback);
  333. }else{
  334. callback();
  335. }
  336. },
  337. assemExportData:function(exportData){
  338. var _self = this ;
  339. var fastFilterItems = _self.getFastFilterItems();
  340. var advancedFilterItems = _self.getAdvancedFilterItems();
  341. if( fastFilterItems == undefined)
  342. fastFilterItems = "" ;
  343. if(fastFilterItems["add"] == ""){
  344. fastFilterItems["add"] = null;
  345. }
  346. if(advancedFilterItems != undefined){
  347. fastFilterItems["add"] = advancedFilterItems;
  348. }
  349. var postData = {fastFilterItems : $.toJSON(fastFilterItems)};
  350. exportData && (postData = $.extend(postData, exportData));
  351. return postData;
  352. },
  353. exportCommonParam : function(){
  354. var self = this;
  355. var url = shr.getContextPath() + shr.dynamicURL + "?method=exportToExcel";
  356. var uipk = "com.kingdee.eas.hr.ats.app.AttendanceResultSumList";
  357. var filterItems = self.getQuickFilterItems();
  358. var sorder = $('#reportGrid').jqGrid('getGridParam', 'sortorder') || "";
  359. var sordName = $('#reportGrid').jqGrid('getGridParam', 'sortname') || "";
  360. //标题
  361. url += "&title="+jsBizMultLan.atsManager_attendanceResultSumList_i18n_8;
  362. url = url + '&uipk=' + uipk + "&sidx=" + sordName+"&page=0"+"&sumType="+sumType + "&sord=" + sorder + "&transverse=1";
  363. //如果存在高级搜索的条件,则拼上条件。
  364. if(filterItems){
  365. url += "&searchFilterItems=" + encodeURIComponent(filterItems);
  366. }
  367. return url;
  368. },
  369. exportCurrentAction : function(){
  370. var Exchange_json=[];
  371. var _self = this;
  372. var exportData = {
  373. exportSelect:"yes",
  374. serviceId:shr.getUrlRequestParam("serviceId")
  375. };
  376. var selectedIds = $("#reportGrid").jqGrid("getSelectedRows");
  377. if (selectedIds == undefined || selectedIds.length <= 0 || (selectedIds && selectedIds.length ==
  378. 1 && selectedIds[0] == "")) {
  379. shr.showError({
  380. message: "请先选中表格中的数据!",
  381. hideAfter: 5
  382. });
  383. return false;
  384. }
  385. /*
  386. _self.remoteCall({
  387. type: "post",
  388. async: false,
  389. method: "exportCurrent",
  390. param: {
  391. billIds: selectedIds.toString()
  392. },
  393. });
  394. */
  395. if (selectedIds.length > 0) {
  396. for (var i = 0, length = selectedIds.length; i < length; i++) {
  397. // personIds.push($("#reportGrid").jqGrid("getCell", selectedIds[i], "id"));
  398. var item = selectedIds[i];
  399. var data = $("#reportGrid").jqGrid("getRowData", item);
  400. var personId=data["personId"] ;
  401. var adminOrgUnit=data["adminOrgUnitId"] ;
  402. Exchange_json.push({'personId':personId,'adminOrgUnit':adminOrgUnit});
  403. }
  404. }
  405. if(Exchange_json.length > 0){
  406. exportData.PersonJson = $.toJSON(Exchange_json);
  407. }else{
  408. shr.showWarning({
  409. message: jsBizMultLan.atsManager_attendanceResultSumList_i18n_13
  410. });
  411. return false;
  412. }
  413. var callback=function(psw){
  414. var params = _self.getExportCurrentParams();
  415. params.exportPrivteProtected = $.allEncrypt(psw);
  416. openLoader(1,jsBizMultLan.atsManager_attendanceResultSumList_i18n_28);
  417. shr.ajax({
  418. type:"post",
  419. url:_self.exportCommonParam(),
  420. //method : "toexportCurrent",
  421. data: $.extend( _self.assemExportData(exportData),params ),
  422. success:function(res){
  423. closeLoader();
  424. //document.location.href = url;
  425. shr.redirect(res.url,"");
  426. },
  427. error : function(res){
  428. shr.showError({message: jsBizMultLan.atsManager_attendanceResultSumList_i18n_6});
  429. closeLoader();
  430. }
  431. });
  432. }
  433. if(_self.isNeedExportFilePassword('#exportCurrent')) {
  434. fieldSensitiveService.setExportPsw(callback);
  435. }else{
  436. callback();
  437. }
  438. },
  439. //导出选中参数,供领域获取
  440. getExportCurrentParams: function() {
  441. var _self = this;
  442. var isenableexcelpwd = $('#exportCurrent').attr('data-isenableexcelpwd');
  443. var fieldName = this.getExportFieldName();
  444. if(isenableexcelpwd == 'false') {
  445. if(window.isShrSensitiveRuleOpen) isenableexcelpwd = _self.isSensitiveGrid();
  446. }
  447. var ids = $("#reportGrid").jqGrid("getSelectedRows");
  448. var params = {
  449. supportQueryUuid: false,
  450. selectedData: ids,
  451. fieldName_key: fieldName,
  452. encryptKeys: 'exportPrivteProtected',
  453. isEnableExcelPwd: typeof(isenableexcelpwd) === 'undefined' ? 'false' : JSON.parse(isenableexcelpwd)
  454. }
  455. return params;
  456. },
  457. exportAllExcelAction:function(){
  458. var _self = this;
  459. var self = this, table = $("#reportGrid");
  460. var searchFilterItems = self.getSearchFilterItems();
  461. var fastFilterItems = self.getFastFilterItems();
  462. if( searchFilterItems == undefined)
  463. searchFilterItems = "" ;
  464. if( fastFilterItems == undefined)
  465. fastFilterItems = "" ;
  466. if(fastFilterItems["add"] == ""){
  467. fastFilterItems["add"] = null;
  468. }
  469. //R20190625-2369保存方案后,其它条件设置的条件被清空
  470. //需把视图的filterItem其他条件name="add"改成name="advancedFilter"
  471. var advancedFilterItems = self.getAdvancedFilterItems();
  472. if(advancedFilterItems != undefined){
  473. fastFilterItems["add"] = advancedFilterItems;
  474. }
  475. var urlinner = shr.getContextPath() + shr.dynamicURL + "?fastFilterItems="+$.toJSON(fastFilterItems)+"&method=toExcel&handler=com.kingdee.shr.customer.gtiit.rpt.FacultyAbsenceSummaryListHandler"+"&uipk="+shr.getUrlRequestParam('uipk');
  476. //var urlinner = shr.getContextPath() + shr.dynamicURL + "?method=toExcel&handler=com.kingdee.shr.customer.gtiit.rpt.PersonRosterListHandler";
  477. //alert(urlinner);
  478. openLoader(1,"正在导出,请稍等...");
  479. var param2 = "";
  480. var test = shr.reloadUrlByPost(urlinner, param2, 'toExcel');
  481. closeLoader();
  482. }
  483. });