tender_list_manage.js 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. const modStatus = function(tid) {
  2. const tender = tenders.find(x => { return x.id === tid});
  3. if (tender.status === 1) {
  4. if (tender.canFinish) {
  5. $('form', '#mod-status2finish').attr('action', `/tender/${tid}/build`);
  6. $('#mod-status2finish').modal('show');
  7. } else {
  8. $('#mod-status-hint').modal('show');
  9. }
  10. } else {
  11. $('form', '#mod-status2build').attr('action', `/tender/${tid}/build`);
  12. $('#mod-status2build').modal('show');
  13. }
  14. };
  15. const tenderListSpec = (function(){
  16. function getTenderNodeHtml(node, arr, pid) {
  17. const html = [];
  18. html.push('<tr pid="' + pid + '">');
  19. // 名称
  20. html.push('<td style="width: 45%" class="in-' + node.level + '">');
  21. if (node.cid) {
  22. html.push('<span onselectstart="return false" style="{-moz-user-select:none}" class="fold-switch mr-1" title="收起" cid="'+ node.sort_id +'"><i class="fa fa-minus-square-o"></i></span> <i class="fa fa-folder-o"></i> ');
  23. html.push((node.level === 1 ? '<b>' : ''), node.name, (node.level === 1 ? '</b>' : ''));
  24. } else {
  25. html.push('<span class="text-muted mr-2">');
  26. html.push(arr.indexOf(node) === arr.length - 1 ? '└' : '├');
  27. html.push('</span>');
  28. html.push('<a href="javascript: void(0)" name="name" id="' + node.id + '">', node.name, '</a>');
  29. }
  30. html.push('</td>');
  31. // 创建人
  32. html.push('<td style="width: 10%" class="text-center">', node.user_name, '</td>');
  33. // 创建时间
  34. html.push('<td style="width: 15%">', node.create_time ? moment(node.create_time).format('YYYY-MM-DD HH:mm:ss') : '', '</td>');
  35. // 完成期数
  36. html.push('<td style="width: 10%" class="text-center">');
  37. if (!node.cid) {
  38. if (node.progress) {
  39. html.push(node.progress.title);
  40. } else {
  41. html.push(node.lastStage ? '第' + node.lastStage.order + '期' : '第0期');
  42. }
  43. }
  44. html.push('</td>');
  45. // 管理
  46. html.push('<td style="width: 20%" tid="' + node.id + '">');
  47. if (!node.cid) {
  48. html.push('<a href="javascript: void(0)" name="edit" class="btn btn-outline-primary btn-sm">编辑</a>');
  49. const hasStage = node.progress ? node.stage_count > 0 : !!node.lastStage;
  50. if (!hasStage) {
  51. html.push('<a href="javascript: void(0)" name="del" class="btn btn-outline-danger btn-sm ml-1">删除</a>');
  52. } else {
  53. html.push('<button class="btn btn-outline-secondary btn-sm ml-1" data-toggle="tooltip" data-placement="top" title="请先删除所有期">删除</button>');
  54. }
  55. if (cache) html.push(`<a href="/sp/${spid}/list/refreshCache?tid=${node.id}" class="btn btn-outline-primary btn-sm ml-1">更新缓存</a>`);
  56. html.push(`<a href="javascript: void(0)" class="btn btn-outline-primary btn-sm ml-1" onclick="modStatus(${node.id});">修改状态</a>`);
  57. }
  58. html.push('</td>');
  59. html.push('</tr>');
  60. return html.join('');
  61. }
  62. function getTenderTreeHeaderHtml() {
  63. const html = [];
  64. const left = $('#sub-menu').css('display') === 'none' ? 56 : 176;
  65. html.push('<table class="table table-hover table-bordered">');
  66. html.push('<thead style="position: sticky;left:'+ left +'px;top: 0;">', '<tr>');
  67. html.push('<th class="text-center" style="width: 45%">', '标段名称', tenderListOrder.getOrderButton('name'), '</th>');
  68. html.push('<th class="text-center" style="width: 10%">', '创建人', '</th>');
  69. html.push('<th class="text-center" style="width: 15%">', '创建时间', tenderListOrder.getOrderButton('create_time'), '</th>');
  70. html.push('<th class="text-center" style="width: 10%">', '完成期数', '</th>');
  71. html.push('<th class="text-center" style="width: 20%">', '管理', '</th>');
  72. html.push('</tr>', '</thead>');
  73. return html.join('');
  74. }
  75. return { getTenderNodeHtml, getTenderTreeHeaderHtml }
  76. })();