_Title.cshtml 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. @using WeApp.Helpers
  2. @model WeApp.TrainingCamp.Dto.CampDto
  3. <div class="area title-box" style="">
  4. <div class="d-flex current-time">
  5. <span id="current-time" class="time">
  6. <span>@(DateTime.Now.ToString("HH"))</span>:<span>@(DateTime.Now.ToString("mm"))</span>:<span>@(DateTime.Now.ToString("ss"))</span>
  7. </span>
  8. <span class="date ">
  9. <span class="week pb-2">@(DateTime.Today.ToString("dddd"))</span>
  10. <span class="day">@(DateTime.Today.ToString("yyyy年MM月dd日"))</span>
  11. </span>
  12. </div>
  13. <div class="title">
  14. @*<h4 class="m-0">应急演练培训推演平台</h4>*@
  15. <img src="~/Content/V2/Img/header-title.png" style=" " />
  16. <div class="svg-icon" style="">
  17. <svg width="768" height="80">
  18. <polyline fill="transparent" stroke-width="4" points="0,18 138.24,18 153.6,36 192,36 207.36,54 552.96,54 576,36 614.4,36 629.76,18 768,18" stroke="#00206e">
  19. <animate attributeName="stroke-dasharray" attributeType="XML" from="0, 396.73457750675294, 0, 396.73457750675294" to="0, 0, 793.47, 0" dur="3s" begin="0s" calcMode="spline" keyTimes="0;1" keySplines="0.4,1,0.49,0.98" repeatCount="indefinite"></animate>
  20. </polyline>
  21. <polyline fill="transparent" stroke-width="4" points="230.4,64 537.6,64" stroke="#00206e">
  22. <animate attributeName="stroke-dasharray" attributeType="XML" from="0, 153.6, 0, 153.6" to="0, 0, 307.2, 0" dur="3s" begin="0s" calcMode="spline" keyTimes="0;1" keySplines=".4,1,.49,.98" repeatCount="indefinite"></animate>
  23. </polyline>
  24. </svg>
  25. </div>
  26. </div>
  27. <div class="time-down" id="time-down">
  28. <span>倒计时</span>
  29. <div class="time">
  30. <span></span>
  31. <span></span>
  32. <strong>:</strong>
  33. <span></span>
  34. <span></span>
  35. </div>
  36. </div>
  37. </div>
  38. @using (Html.BeginScripts())
  39. {
  40. <script>
  41. $(function () {
  42. timeCurrent();
  43. });
  44. var currentTimer, $h = $('#current-time span').eq(0), $m = $('#current-time span').eq(1), $s = $('#current-time span').eq(2);
  45. function timeCurrent(time, rate) {
  46. clearInterval(currentTimer);
  47. rate = rate || 1;
  48. var today = new Date();
  49. time = (time || new Date()) - new Date(today.getFullYear(), today.getMonth(), today.getDate());
  50. currentTimer = setInterval(function () {
  51. time += 1000 * rate;
  52. var hour = parseInt(time / 1000 / 60 / 60 % 24),
  53. minute = parseInt(time / 1000 / 60 % 60),
  54. seconds = parseInt(time / 1000 % 60);
  55. if (hour < 10) {
  56. hour = `0${hour}`;
  57. }
  58. if (minute < 10) {
  59. minute = `0${minute}`;
  60. }
  61. if (seconds < 10) {
  62. seconds = `0${seconds}`;
  63. }
  64. $h.html(hour);
  65. $m.html(minute);
  66. $s.html(seconds);
  67. }, 1000);
  68. }
  69. var downTimer, laveTime = 0, $m1 = $('#time-down .time span').eq(0), $m2 = $('#time-down .time span').eq(1), $s1 = $('#time-down .time span').eq(2), $s2 = $('#time-down .time span').eq(3);
  70. function timeDown(rate, time) {
  71. var arr = localStorage.getItem('@(Model.Id)-timeDown') ? localStorage.getItem('@(Model.Id)-timeDown').split(",") : null;
  72. arr = arr || [1000 * 60 * @(Model.MaxRoundMinute>0?Model.MaxRoundMinute:15), 1];
  73. rate = rate || arr[1];
  74. laveTime = time * 1000 * 60 || laveTime || arr[0];
  75. clearInterval(downTimer);
  76. downTimer = setInterval(function () {
  77. laveTime -= 1000 * rate;
  78. if (laveTime >= 0) {
  79. //var day = parseInt(time / 1000 / 60 / 60 / 24);
  80. //var hour = parseInt(time / 1000 / 60 / 60 % 24);
  81. var minute = parseInt(laveTime / 1000 / 60 % 60);
  82. var seconds = parseInt(laveTime / 1000 % 60);
  83. if (minute < 10) {
  84. minute = `0${minute}`;
  85. }
  86. if (seconds < 10) {
  87. seconds = `0${seconds}`;
  88. }
  89. $m1.html(minute.toString().substr(0, 1));
  90. $m2.html(minute.toString().substr(1, 1));
  91. $s1.html(seconds.toString().substr(0, 1));
  92. $s2.html(seconds.toString().substr(1, 1));
  93. localStorage.setItem('@(Model.Id)-timeDown', `${laveTime},${rate}`);
  94. } else {
  95. localStorage.removeItem('@(Model.Id)-timeDown');
  96. }
  97. },
  98. 1000);
  99. }
  100. iwbHub.client.getRefreshCurrentTime = function (msg) {
  101. console.log('getRefreshCurrentTime: ', msg);
  102. if (msg) {
  103. try {
  104. var data = JSON.parse(msg);
  105. if (data) {
  106. if (data.no == '@(Model.Id)') {
  107. timeCurrent(data.rate, data.date);
  108. }
  109. }
  110. } catch (e) {
  111. console.log('getRefreshCurrentTime: ', e);
  112. }
  113. }
  114. }
  115. iwbHub.client.getRefreshDownTime = function (msg) {
  116. console.log('getRefreshDownTime: ', msg);
  117. if (msg) {
  118. try {
  119. //var data = JSON.parse(msg);
  120. var data = msg;
  121. if (data) {
  122. if (data.no == '@(Model.Id)') {
  123. timeDown(data.rate, data.minute);
  124. }
  125. }
  126. } catch (e) {
  127. console.log('getRefreshDownTime: ', e);
  128. }
  129. }
  130. }
  131. </script>
  132. }