personRosterList.js 17 KB

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