trainingSubsidy.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474
  1. /**
  2. * 培训补贴管理初始化
  3. */
  4. var TrainingSubsidy = {
  5. id: "TrainingSubsidyTable", //表格id
  6. seItem: null, //选中的条目
  7. table: null,
  8. layerIndex: -1
  9. };
  10. /**
  11. * 初始化表格的列
  12. */
  13. TrainingSubsidy.initColumn = function () {
  14. return [
  15. {field: 'selectItem', radio: true},
  16. {title: '申报年度', field: 'year', visible: true, align: 'center', valign: 'middle',width:"80px",'class': 'uitd_showTip'},
  17. {title: '企业名称', field: 'enterpriseName', visible: true, align: 'center', valign: 'middle',width:"120px",'class': 'uitd_showTip'},
  18. {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle',width: "80px",'class': 'uitd_showTip'},
  19. {title: '性别', field: 'sex', visible: true, align: 'center', valign: 'middle',width:"60px",'class': 'uitd_showTip',
  20. formatter : function (value,row,index){
  21. if(value==1){
  22. return '男';
  23. }if(value==2){
  24. return '女';
  25. }
  26. }
  27. },
  28. {title: '证件类型', field: 'cardTypeName', visible: true, align: 'center', valign: 'middle',width:"80px",'class': 'uitd_showTip'},
  29. {title: '证件号码', field: 'idCard', visible: true, align: 'center', valign: 'middle',width:"150px",'class': 'uitd_showTip'},
  30. {title: '国籍', field: 'nationalityName', visible: true, align: 'center', valign: 'middle',width:"80px",'class': 'uitd_showTip'},
  31. {title: '入职时间', field: 'entryTime', visible: true, align: 'center', valign: 'middle',width:"100px",'class': 'uitd_showTip'},
  32. {title: '合同开始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle',width:"110px",'class': 'uitd_showTip'},
  33. {title: '合同结束时间', field: 'endTime', visible: true, align: 'center', valign: 'middle',width:"110px",'class': 'uitd_showTip'},
  34. {title: '上一年度年薪', field: 'yearSalary', visible: true, align: 'center', valign: 'middle',width:"120px",'class': 'uitd_showTip'},
  35. {title: '上一年度缴纳个税总额', field: 'yearTax', visible: true, align: 'center', valign: 'middle',width:"150px",'class': 'uitd_showTip'},
  36. {title: '开户银行', field: 'bankName', visible: true, align: 'center', valign: 'middle',width:"100px",'class': 'uitd_showTip'},
  37. {title: '开户银行网点', field: 'bankAddress', visible: true, align: 'center', valign: 'middle',width:"100px",'class': 'uitd_showTip'},
  38. {title: '银行账号', field: 'bankNumber', visible: true, align: 'center', valign: 'middle',width:"100px",'class': 'uitd_showTip'},
  39. {title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle',width:"100px",'class': 'uitd_showTip'},
  40. {title: '联系地址', field: 'address', visible: true, align: 'center', valign: 'middle',width:"100px",'class': 'uitd_showTip'},
  41. {title: '享受第几年度', field: 'enjoyYear', visible: true, align: 'center', valign: 'middle',width:"120px",'class': 'uitd_showTip'},
  42. {title: '兑现金额', field: 'enjoyMoney', visible: true, align: 'center', valign: 'middle',width:"100px",'class': 'uitd_showTip',
  43. formatter : function (value,row,index){
  44. if(row.checkState == 5){
  45. return value;
  46. }
  47. return "未知";
  48. }
  49. },
  50. {title: '审核状态', field: 'checkStateName', visible: true, align: 'center', valign: 'middle',width:"100px",'class': 'uitd_showTip'},
  51. {title: '公示状态', field: 'publicState', visible: true, align: 'center', valign: 'middle',width:"100px",'class': 'uitd_showTip',
  52. formatter : function (value,row,index){
  53. if(value==1)return "<span class='label label-warning'>待公示</span>";
  54. if(value==2)return "<span class='label label-success'>公示中</span>";
  55. if(value==3)return "<span class='label label-info'>待兑现</span>";
  56. if(value==4)return "<span class='label label-primary'>已兑现</span>";
  57. }
  58. },
  59. {title: '操作', field: 'id', visible: true, align: 'center', valign: 'middle',width:"80px",
  60. formatter : function (value,row,index){
  61. return "<span class='label label-success' onclick=\"TrainingSubsidy.showLog('"+value+"')\" >" +
  62. "<i class=\"fa fa-book\"></i>日志" +
  63. "</span>";
  64. }
  65. }
  66. ];
  67. };
  68. /**
  69. * 检查是否选中
  70. */
  71. TrainingSubsidy.check = function () {
  72. var selected = $('#' + this.id).bootstrapTable('getSelections');
  73. if(selected.length == 0){
  74. Feng.info("请先选中表格中的某一记录!");
  75. return false;
  76. }else{
  77. TrainingSubsidy.seItem = selected[0];
  78. return true;
  79. }
  80. };
  81. /**
  82. * 点击审核培训补贴
  83. */
  84. TrainingSubsidy.openCheckTrainingSubsidy = function (type) {
  85. if (this.check()) {
  86. var index = layer.open({
  87. type: 2,
  88. title: '审核培训补贴',
  89. area: ['800px', '420px'], //宽高
  90. fix: false, //不固定
  91. maxmin: true,
  92. content: Feng.ctxPath + '/trainingSubsidy/trainingSubsidy_check/' + TrainingSubsidy.seItem.id,
  93. btn: ['<i class="fa fa-eye"></i>&nbsp;&nbsp;保存未提交', '<i class="fa fa-check layui-bg-green"></i>&nbsp;&nbsp;提交审核', '<i class="fa fa-eraser"></i>&nbsp;&nbsp;取消'],
  94. btnAlign: 'c',
  95. btn1: function (index, layero) {
  96. var obj = layero.find("iframe")[0].contentWindow;
  97. obj.TrainingSubsidyInfoDlg.showCheckModal(type);
  98. }, btn2: function (index, layero) {
  99. var obj = layero.find("iframe")[0].contentWindow;
  100. obj.TrainingSubsidyInfoDlg.submitToCheck(type);
  101. return false;
  102. },
  103. success: function (layero, index) {
  104. layer.tips('审核完成并确认无误后点击', '.layui-layer-btn1', {tips: [1, "#78BA32"], time: 0, closeBtn: 2});
  105. },
  106. end: function () {
  107. layer.closeAll('tips');
  108. }
  109. });
  110. TrainingSubsidy.layerIndex = index;
  111. layer.full(index);
  112. }
  113. };
  114. TrainingSubsidy.cancle = function (){
  115. if (this.check()) {
  116. var index = layer.open({
  117. type: 1,
  118. title: '撤回审核',
  119. area: ['800px', '420px'],
  120. fix: false,
  121. maxmin: true,
  122. content: '<form >\n' +
  123. ' <div class="form-group" style="margin: 10px;">\n' +
  124. ' <label for="checkMsg" class="control-label">撤销原因</label>\n' +
  125. ' <textarea class="form-control" id="cancleMsg" rows="6" placeholder="只能撤销审核通过且未公示的数据"></textarea>\n' +
  126. ' </div>\n' +
  127. ' </form>',
  128. btn: ['<i class="fa fa-save layui-bg-green"></i>&nbsp;&nbsp;提交', '<i class="fa fa-eraser"></i>&nbsp;&nbsp;关闭'],
  129. yes: function (index, layero) {
  130. var cancleMsg = $("#cancleMsg").val();
  131. if (Feng.isEmptyStr(cancleMsg)) {
  132. Feng.error("撤销原因不能为空");
  133. return;
  134. }
  135. var operation = function () {
  136. var ajax = new $ax(Feng.ctxPath + "/trainingSubsidy/cancle", function (data) {
  137. if (data.code == 200) {
  138. Feng.success(data.msg);
  139. TrainingSubsidy.table.refresh();
  140. layer.close(index);
  141. } else {
  142. Feng.error(data.msg);
  143. }
  144. }, function (data) {
  145. Feng.error("撤销复核失败!" + data.responseJSON.message + "!");
  146. });
  147. ajax.setData({"id": TrainingSubsidy.seItem.id, "checkMsg": cancleMsg})
  148. ajax.start();
  149. };
  150. Feng.confirm("一旦提交无法修改,确定要撤回吗?", operation);
  151. }
  152. });
  153. }
  154. }
  155. /**
  156. * 收集数据
  157. */
  158. TrainingSubsidy.formParams = function(){
  159. var queryData = {};
  160. queryData['year'] = $("#year").val();
  161. queryData['enterpriseName'] = $("#enterpriseName").val();
  162. queryData['name'] = $("#name").val();
  163. queryData['sex'] = $("#sex").val();
  164. queryData['cardType'] = $("#cardType").val();
  165. queryData['idCard'] = $("#idCard").val();
  166. queryData['nationality'] = $("#nationality").val();
  167. queryData['phone'] = $("#idCard").val();
  168. queryData['checkState'] = $("#checkState").val();
  169. queryData['publicState'] = $("#publicState").val();
  170. queryData['enjoyYear'] = $("#enjoyYear").val();
  171. return queryData;
  172. }
  173. /**
  174. * 重置数据
  175. */
  176. TrainingSubsidy.reset = function(){
  177. $("#year").val("");
  178. $("#enterpriseName").val("");
  179. $("#name").val("");
  180. $("#sex").val("");
  181. $("#cardType").val("");
  182. $("#idCard").val("");
  183. $("#nationality").val("");
  184. $("#phone").val("");
  185. $("#checkState").val("");
  186. $("#publicState").val("");
  187. }
  188. /**
  189. * 查询培训补贴列表
  190. */
  191. TrainingSubsidy.search = function () {
  192. TrainingSubsidy.table.refresh({query: TrainingSubsidy.formParams()});
  193. };
  194. /**
  195. * 显示审核日志
  196. */
  197. TrainingSubsidy.showLog = function (id){
  198. layer.open({
  199. type: 1,
  200. title:"日志",
  201. fixed:false,
  202. content: '<table id="'+id+'"></table>',
  203. area: ['80%', '80%'],
  204. maxmin: true,
  205. success :function (layero, index) {
  206. Feng.getCheckLog(id,{"type":CONFIG.project_training,"mainId":id,"typeFileId":"","active":1})
  207. }
  208. });
  209. }
  210. /**
  211. * 获取需要处理的数据
  212. */
  213. TrainingSubsidy.showData = function(type){
  214. $("#searchForm")[0].reset();
  215. $("#hczxForm")[0].reset();
  216. switch (type) {
  217. case 1: //公示
  218. $("#button").attr("onclick","TrainingSubsidy.public()").text("公示");
  219. $("#exportCommonModalLabel").text("待公示名单");
  220. $("#hczxForm").css("display","block");
  221. $(".time").each(function(){
  222. laydate.render({
  223. elem: "#"+$(this).attr("id")
  224. ,type: 'date'
  225. ,format:'yyyy年MM月dd日'
  226. });
  227. });
  228. break;
  229. case 2: //公示通过
  230. $("#button").attr("onclick","TrainingSubsidy.publicPass()").text("提交");
  231. $("#exportCommonModalLabel").text("待公示通过名单");
  232. $("#hczxForm").css("display","none");
  233. break;
  234. case 3: //兑现
  235. $("#button").attr("onclick","TrainingSubsidy.cash()").text("提交");
  236. $("#exportCommonModalLabel").text("待兑现名单");
  237. $("#hczxForm").css("display","none");
  238. break;
  239. }
  240. $('#dataTable').bootstrapTable('destroy');
  241. $('#dataTable').bootstrapTable({
  242. url: Feng.ctxPath + "/trainingSubsidy/selectNeedCheckData?type="+type,
  243. method: 'POST',
  244. contentType: "application/x-www-form-urlencoded; charset=UTF-8",
  245. search: false, // 是否显示表格搜索,此搜索是客户端搜索,不会进服务端
  246. showRefresh: false, // 是否显示刷新按钮
  247. clickToSelect: true, // 是否启用点击选中行
  248. singleSelect: false, // 设置True 将禁止多选
  249. striped: true, // 是否显示行间隔色
  250. pagination: true, // 设置为 true 会在表格底部显示分页条
  251. paginationHAlign: "left",
  252. paginationDetailHAlign: "right",
  253. sidePagination: "client", // 设置在哪里进行分页,可选值为 'client' 或者 'server'
  254. pageNumber:1, //初始化加载第一页,默认第一页
  255. pageSize: 10, //每页的记录行数(*)
  256. pageList: [10, 25, 50, 100,500,1000,1500], //可供选择的每页的行数(*)
  257. maintainSelected:true, //全表全选需要开启
  258. showColumns: false,
  259. responseHandler : function(res){
  260. $("#exportCommonModal").modal("show");
  261. return res.obj.rows;
  262. },
  263. columns:
  264. [
  265. {field:"selectItem",checkbox:true},
  266. {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle',width:"20%"},
  267. {title: '证件号码', field: 'idCard', visible: true, align: 'center', valign: 'middle',width:"30%"},
  268. {title: '企业名称', field: 'enterpriseName', visible: true, align: 'center', valign: 'middle',width:"50%"},
  269. ]
  270. });
  271. }
  272. /**
  273. * 公示
  274. */
  275. TrainingSubsidy.public = function(){
  276. var selected = $('#dataTable').bootstrapTable('getSelections');
  277. if(!selected || selected.length<1){
  278. Feng.info("请至少选择一行数据!");
  279. return;
  280. }
  281. var ids = "";
  282. for(var i=0; i<selected.length; i++){
  283. ids = ids + selected[i].id + ",";
  284. }
  285. var isMessage = $("input[name='isSend']:checked").val();
  286. var typeName = $("#typeName").val();
  287. var address = $("#web").val();
  288. var publicStartTime = $("#publicStartTime").val();
  289. var publicEndTime = $("#publicEndTime").val();
  290. var dep = $("#dep").val();
  291. var phone = $("#fyphone").val();
  292. var email = $("#fyemail").val();
  293. if(isMessage == 1){
  294. if(typeName == null || typeName == ''){
  295. Feng.info("请填写公示类型");return ;
  296. }if(address == null || address == ''){
  297. Feng.info("请填写公示平台");return ;
  298. }if(publicStartTime == null || publicStartTime == ''){
  299. Feng.info("请填写公示开始时间");return ;
  300. }if(publicEndTime == null || publicEndTime == ''){
  301. Feng.info("请填写公示截止时间");return ;
  302. }if(dep == null || dep == ''){
  303. Feng.info("请填写反映单位");return ;
  304. }if(phone == null || phone == ''){
  305. Feng.info("请填写联系电话");return ;
  306. }if(email == null || email == ''){
  307. Feng.info("请填写联系邮箱");return ;
  308. }
  309. }
  310. var operation = function(){
  311. $("#exportCommonModal").modal("hide");
  312. window.location.href = encodeURI(encodeURI(Feng.ctxPath + "/trainingSubsidyExport/exportPublic?ids="+ids + "&typeName="+typeName+"&address="+address+
  313. "&publicStartTime="+publicStartTime+"&publicEndTime="+publicEndTime+"&dep="+dep+"&phone="+phone+"&email="+email+"&isMessage="+isMessage));
  314. }
  315. Feng.confirm("确定要公示吗?", operation);
  316. }
  317. /**
  318. * 公示通过
  319. */
  320. TrainingSubsidy.publicPass = function(){
  321. var selected = $('#dataTable').bootstrapTable('getSelections');
  322. if(!selected || selected.length<1){
  323. Feng.info("请至少选择一行数据!");
  324. return;
  325. }
  326. var ids = "";
  327. for(var i=0; i<selected.length; i++){
  328. ids = ids + selected[i].id + ",";
  329. }
  330. var operation = function(){
  331. var ajax = new $ax(Feng.ctxPath + "/trainingSubsidy/publicPass", function (data) {
  332. if(data.code==200){
  333. Feng.success(data.msg);
  334. TrainingSubsidy.table.refresh();
  335. $("#exportCommonModal").modal("hide");
  336. }else{
  337. Feng.error(data.msg);
  338. }
  339. }, function (data) {
  340. Feng.error("公示通过失败!" + data.responseJSON.message + "!");
  341. });
  342. ajax.set("ids",ids);
  343. ajax.start();
  344. }
  345. Feng.confirm("一旦提交无法修改,确定公示通过吗?", operation);
  346. }
  347. /**
  348. * 兑现
  349. */
  350. TrainingSubsidy.cash = function(){
  351. var selected = $('#dataTable').bootstrapTable('getSelections');
  352. if(!selected || selected.length<1){
  353. Feng.info("请至少选择一行数据!");
  354. return;
  355. }
  356. var ids = "";
  357. for(var i=0; i<selected.length; i++){
  358. ids = ids + selected[i].id + ",";
  359. }
  360. var operation = function(){
  361. var ajax = new $ax(Feng.ctxPath + "/trainingSubsidy/cash", function (data) {
  362. if(data.code==200){
  363. Feng.success(data.msg);
  364. TrainingSubsidy.table.refresh();
  365. $("#exportCommonModal").modal("hide");
  366. }else{
  367. Feng.error(data.msg);
  368. }
  369. }, function (data) {
  370. Feng.error("兑现失败!" + data.responseJSON.message + "!");
  371. });
  372. ajax.set("ids",ids);
  373. ajax.start();
  374. }
  375. Feng.confirm("一旦提交无法修改,确定兑现吗?", operation);
  376. }
  377. TrainingSubsidy.showExportModal = function(){
  378. $("#exportModal").modal("show");
  379. }
  380. TrainingSubsidy.exportBasicInfo =function(){
  381. var names = '';
  382. var values = '';
  383. $("#field_info li input").each(function(index){
  384. if($(this).is(":checked")){
  385. values = values + $(this).val() + ",";
  386. names = names + $(this).next().text() + ",";
  387. }
  388. });
  389. var queryData = TrainingSubsidy.formParams();
  390. queryData['names'] = names;
  391. queryData['values'] = values;
  392. $("#exportModal").modal('hide');
  393. var url = Feng.setUrlParam(Feng.ctxPath + "/trainingSubsidyExport/basicDataExport",queryData);
  394. window.hiddenIframe.location.href = url;
  395. }
  396. /**
  397. * 是否发送短信
  398. */
  399. TrainingSubsidy.toggleMessage = function(){
  400. var isMessage = $("input[name='isSend']:checked").val();
  401. if (isMessage==1) {
  402. $("#messageEdit").css("display","block");
  403. } else if ( isMessage == 2){
  404. $("#messageEdit").css("display","none");
  405. }
  406. }
  407. /**
  408. * 刷新检索
  409. */
  410. TrainingSubsidy.prepareSearch = function () {
  411. var name = $("#preName").val();
  412. var idCard = $("#preIdCard").val();
  413. $('#dataTable').bootstrapTable("refresh",{"query":{"name":name,"idCard":idCard}});
  414. }
  415. /**
  416. * 重置
  417. */
  418. TrainingSubsidy.prepareReset = function () {
  419. $("#preName").val("");
  420. $("#preIdCard").val("");
  421. }
  422. /**
  423. * 回调
  424. * @param data
  425. */
  426. TrainingSubsidy.callBack = function(data){
  427. if(data.code == 200){
  428. Feng.success(data.msg);
  429. }else{
  430. Feng.info(data.msg);
  431. }
  432. }
  433. $(function () {
  434. var defaultColunms = TrainingSubsidy.initColumn();
  435. var table = new BSTable(TrainingSubsidy.id, "/trainingSubsidy/list", defaultColunms);
  436. table.setPaginationType("server");
  437. table.setOnDblClickRow(function () {
  438. TrainingSubsidy.openTrainingSubsidySelect();
  439. });
  440. TrainingSubsidy.table = table.init();
  441. var arr = [
  442. {"name":"cardType","code":"un_cardType"},
  443. {"name":"nationality","code":"un_nationality"}];
  444. Feng.findChildDictBatch(JSON.stringify(arr));
  445. $('#checkAll').click(function () {
  446. $("#dataTable").bootstrapTable('togglePagination').bootstrapTable('checkAll').bootstrapTable('togglePagination');
  447. })
  448. $('#uncheckAll').click(function () {
  449. $("#dataTable").bootstrapTable('togglePagination').bootstrapTable('uncheckAll').bootstrapTable('togglePagination')
  450. })
  451. });