lesson.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. var renderer = new marked.Renderer();
  2. renderer.code = function (code, language) {
  3. if (language == "mermaid") return '<pre class="mermaid">' + code + "</pre>";
  4. else return "<pre><code>" + code + "</code></pre>";
  5. };
  6. function lesson_show(id) {
  7. $.get(
  8. "../course/lesson_get.php",
  9. {
  10. id: id,
  11. },
  12. function (data, status) {
  13. let arrLesson = JSON.parse(data);
  14. let html = "";
  15. for (const lesson of arrLesson) {
  16. html +=
  17. '<div class="card" style="display:flex;margin:1em;padding:10px;">';
  18. html += '<div style="flex:7;">';
  19. html += '<div class="pd-10">';
  20. html +=
  21. '<div class="title" style="padding-bottom:5px;font-size:200%;font-weight:600;">' +
  22. lesson["title"] +
  23. "</div>";
  24. html += '<div style="">';
  25. let summary = "";
  26. try {
  27. summary = marked(lesson["summary"], { renderer: renderer });
  28. } catch { }
  29. html +=
  30. '<div class="summary" style="padding-bottom:5px;">' +
  31. summary +
  32. "</div>";
  33. let live = "";
  34. try {
  35. live = marked(lesson["live"], { renderer: renderer });
  36. } catch { }
  37. html +=
  38. '<div class="summary" style="padding-bottom:5px;">' +
  39. live +
  40. "</div>";
  41. let replay = "";
  42. try {
  43. replay = marked(lesson["replay"], { renderer: renderer });
  44. } catch { }
  45. html +=
  46. '<div class="summary" style="padding-bottom:5px;">' +
  47. replay +
  48. "</div>";
  49. let attachment = "";
  50. try {
  51. attachment = marked(lesson["attachment"], { renderer: renderer });
  52. } catch { }
  53. html +=
  54. '<div class="summary" style="padding-bottom:5px;">' +
  55. attachment +
  56. "</div>";
  57. html += "</div>";
  58. html += "</div>";
  59. html += "</div>";
  60. html += '<div style="flex:3;max-width:15em;">';
  61. let d = new Date();
  62. d.setTime(lesson["date"]);
  63. let strData = d.toLocaleDateString();
  64. let strTime = d.toLocaleTimeString();
  65. html += "<div >" + gLocal.gui.date + ":" + strData + "</div>";
  66. html += "<div >" + gLocal.gui.time + ":" + strTime + "</div>";
  67. let dt = lesson["duration"] / 60;
  68. let sdt = "";
  69. if (dt > 59) {
  70. sdt += Math.floor(dt / 60) + "小时";
  71. }
  72. let m = dt % 60;
  73. if (m > 0) {
  74. sdt += (dt % 60) + "分钟";
  75. }
  76. html += "<div >持续时间:" + sdt + "</div>";
  77. let now = new Date();
  78. let lesson_time = "";
  79. if (now < lesson["date"]) {
  80. lesson_time = gLocal.gui.not_started;
  81. } else if (now > lesson["date"] && now < lesson["date"] + dt * 1000) {
  82. lesson_time = gLocal.gui.in_progress;
  83. } else {
  84. lesson_time = gLocal.gui.already_over;
  85. }
  86. html +=
  87. '<div ><span class="lesson_status">' + lesson_time + "</span></div>";
  88. html += "</div>";
  89. html += "</div>";
  90. }
  91. $("#lesson_list").html(html);
  92. mermaid.initialize();
  93. }
  94. );
  95. }