source_data_list.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. function addNewData(){
  2. const table = document.querySelector('table.table tbody');
  3. const rows = table.querySelectorAll('tr.edit-mode');
  4. rows.forEach(row => row.classList.remove('edit-mode'));
  5. const newRow = document.createElement('tr');
  6. newRow.classList.add('edit-mode');
  7. newRow.innerHTML = `
  8. <td class="editable project_no"><span class="edit"><input type="text" class="form-control" placeholder="项目编号"></span></td>
  9. <td class="editable project_name"><span class="edit"><input type="text" class="form-control" placeholder="项目名称"></span></td>
  10. <td class="editable standard_version"><span class="edit"><select class="form-control"><option value="1" {% if source_data.standard_version == 1 %}selected{% endif %}>旧版</option><option value="2" {% if source_data.standard_version == 2 %}selected{% endif %}>新版</option></select></td>
  11. <td class="editable "><span class="edit">新建</span></td>
  12. <td class="editable tool">
  13. <span class="show">
  14. </span>
  15. <span class="edit">
  16. <button class="btn btn-success" onclick="saveDataCreate(this.parentNode.parentNode.parentNode)">确定</button>
  17. <button class="btn btn-warning" onclick="cancelNewChanges(this.parentNode.parentNode.parentNode)">取消</button>
  18. </span>
  19. </td>
  20. `;
  21. table.insertBefore(newRow, table.firstChild);
  22. }
  23. function saveDataCreate(row){
  24. const project_no = row.querySelector('td.project_no .form-control').value;
  25. if (project_no === '') {
  26. alert('项目编号')
  27. }
  28. const name = row.querySelector('td.project_name .form-control').value;
  29. if (name === '') {
  30. alert('名称不能为空');
  31. return;
  32. }
  33. version = row.querySelector('td.standard_version .form-control').value;
  34. if (version === '') {
  35. alert('版本号不能为空');
  36. return;
  37. }
  38. fetch(`/add_source_data`, {
  39. method: 'POST',
  40. headers: {
  41. 'Content-Type': 'application/json'
  42. },
  43. body: JSON.stringify({project_no: project_no, project_name: name,standard_version:version })
  44. }).then(response => response.json())
  45. .then(data => {
  46. if (data.success) {
  47. alert('添加成功');
  48. window.location.href = '/source_data_list';
  49. }else{
  50. alert('添加失败:'+data.error);
  51. }
  52. });
  53. }
  54. function saveDataEdit(row,project_no){
  55. const name = row.querySelector('.project_name .form-control').value;
  56. const version = row.querySelector('.standard_version .form-control').value;
  57. if (name === '') {
  58. alert('名称不能为空');
  59. return;
  60. }
  61. if (version === '') {
  62. alert('版本号不能为空');
  63. return;
  64. }
  65. fetch(`/update_source_data`, {
  66. method: 'POST',
  67. headers: {
  68. 'Content-Type': 'application/json'
  69. },
  70. body: JSON.stringify({project_no: project_no, project_name: name,standard_version:version })
  71. }).then(response => response.json())
  72. .then(data => {
  73. if (data.success) {
  74. alert('保存成功');
  75. window.location.reload();
  76. } else {
  77. alert('保存失败:'+data.error);
  78. }
  79. })
  80. .catch(error => {
  81. console.error('保存失败:', error);
  82. alert('保存失败');
  83. });
  84. }
  85. function confirmCollectData(project_no) {
  86. if (confirm('确定要开始采集数据吗?')){
  87. fetch(`/collect_source_data/${project_no}`, {
  88. method: 'POST',
  89. headers: {
  90. 'Content-Type': 'application/json'
  91. }
  92. })
  93. .then(response => response.json())
  94. .then(data => {
  95. if (data.success) {
  96. alert('操作成功');
  97. window.location.reload();
  98. } else {
  99. alert('采集失败:'+data.error);
  100. }
  101. })
  102. .catch(error=> {})
  103. }
  104. }
  105. function confirmProcessData(project_no) {
  106. if (confirm('确定要开始分析处理数据吗?')){
  107. fetch(`/process_source_data/${project_no}`, {
  108. method: 'POST',
  109. headers: {
  110. 'Content-Type': 'application/json'
  111. }
  112. })
  113. .then(response => response.json())
  114. .then(data => {
  115. if (data.success) {
  116. alert('操作成功');
  117. window.location.reload();
  118. } else {
  119. alert('分析处理失败:'+data.error);
  120. }
  121. })
  122. .catch(error=> {})
  123. }
  124. }
  125. function confirmDataDelete(project_no) {
  126. if (confirm('确定要删除该项目吗?')) {
  127. fetch(`/delete_source_data/${project_no}`, {
  128. method: 'POST',
  129. headers: {
  130. 'Content-Type': 'application/json'
  131. }
  132. })
  133. .then(response => response.json())
  134. .then(data => {
  135. if (data.success) {
  136. alert('删除成功');
  137. // 删除对应的行
  138. const row = document.querySelector(`tr[data-id="${itemId}"]`);
  139. if (row) {
  140. row.remove();
  141. }
  142. } else {
  143. alert('删除失败:'+data.error);
  144. }
  145. })
  146. .catch(error => {
  147. console.error('删除失败:', error);
  148. alert('删除失败');
  149. });
  150. }
  151. }