ea0b642ed9e4f40cd31eec8907467b363bd61814.svn-base 17 KB

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