rpt_change_rela.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. const rptChangeRela = (function (){
  2. const info = {
  3. change: { title: '请选择变更令', colHeader: ['选择', '变更令号', '工程名称'] },
  4. change_project: { title: '请选择变更立项', colHeader: ['选择', '变更立项编号', '工程名称'] },
  5. change_apply: { title: '请选择变更申请', colHeader: ['选择', '变更申请编号', '工程名称'] },
  6. change_plan: { title: '请选择变更方案', colHeader: ['选择', '变更方案编号', '工程名称'] },
  7. };
  8. const data = {};
  9. let curType = '';
  10. const initList = function () {
  11. const header = info[curType].colHeader;
  12. $('#scr-header').html(`<tr class="text-center"><th>${header[0]}</th><th>${header[1]}</th><th>${header[2]}</th></tr>`);
  13. const html = [], arr = data[curType];
  14. for (const a of arr) {
  15. const checked = a.selected ? 'checked' : '';
  16. html.push('<tr>', `<td class="text-center"><input type="checkbox" name="scr-check" ${checked} value="${a.cid || a.id}"></td>`, `<td>${a.code}</td>`, `<td>${a.name}</td>`, '</tr>');
  17. }
  18. $('#scr-list').html(html.join(''));
  19. };
  20. const showChangeRela = async function (type) {
  21. curType = type;
  22. document.getElementById('scr-title').innerText = info[type].title;
  23. if (!data[type]) {
  24. const result = await postDataAsync(`/tender/${window.location.pathname.split('/')[2]}/load`, { filter: curType });
  25. data[curType] = result[curType];
  26. }
  27. initList();
  28. $('#select-change-rela').modal('show');
  29. $('#scr-all').change(function () {
  30. const check = this.checked;
  31. $('[name=scr-check]').each((i, c) => { c.checked = check });
  32. })
  33. };
  34. const updateChangeRela = async function () {
  35. const updateData = {};
  36. updateData[curType] = [];
  37. if (curType === 'change') {
  38. $('[name=scr-check]').each((i, c) => {
  39. const ci = data[curType].find(x => { return x.cid === c.value });
  40. const checked = c.checked ? 1 : 0;
  41. if (ci && ci.selected !== checked) {
  42. updateData[curType].push({ cid: c.value, selected: c.checked });
  43. }
  44. });
  45. } else {
  46. $('[name=scr-check]').each((i, c) => {
  47. const ci = data[curType].find(x => { return x.id == c.value });
  48. const checked = c.checked ? 1 : 0;
  49. if (ci && ci.selected !== checked) {
  50. updateData[curType].push({id: c.value, selected: c.checked})
  51. }
  52. });
  53. }
  54. if (updateData[curType].length > 0) {
  55. await postData(`/tender/${window.location.pathname.split('/')[2]}/saveRela`, updateData);
  56. if (curType === 'change') {
  57. $('[name=scr-check]').each((i, c) => {
  58. const ci = data[curType].find(x => {
  59. return x.cid === c.value
  60. });
  61. if (ci) ci.selected = c.checked ? 1 : 0;
  62. });
  63. } else {
  64. $('[name=scr-check]').each((i, c) => {
  65. const ci = data[curType].find(x => {
  66. return x.id == c.value
  67. });
  68. if (ci) ci.selected = c.checked ? 1 : 0;
  69. });
  70. }
  71. }
  72. $('#select-change-rela').modal('hide');
  73. };
  74. return { showChangeRela, updateChangeRela }
  75. })();