PublicWait_old.cshtml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. @using IwbZero.ToolCommon.StringModel
  2. @using WeApp.Configuration
  3. @using WeApp.TrainingCampGroup.Dto
  4. @{
  5. Layout = "~/Views/Shared/Layout/_Layout.Stu.cshtml";
  6. CampGroupDto group = ViewBag.Group;
  7. string id = group.Id,
  8. campNo = group.CampNo,
  9. groupName = group.Name,
  10. text = ViewBag.Text;
  11. int state = ViewBag.State;
  12. ViewBag.Title = "公共屏(" + group.Name + ")";
  13. }
  14. @section styles{
  15. <style>
  16. body {
  17. cursor: none
  18. }
  19. .body {
  20. padding: 15px;
  21. /*background: #3c3f3c;*/
  22. background-image: linear-gradient(200deg,#005f61,#007f61);
  23. display: flex;
  24. justify-content: center;
  25. align-items: center;
  26. }
  27. .title {
  28. margin-top: -10vh;
  29. font-size: 110px;
  30. color: #fff;
  31. text-align: center;
  32. }
  33. .title > span {
  34. color: #fff;
  35. display: table;
  36. width: 100%;
  37. }
  38. @{
  39. if (state == CampGroupStateDefinition.New)
  40. {
  41. <text>
  42. .title {
  43. font-size: 80px;
  44. }
  45. .title > span:nth-of-type(2) {
  46. padding: 20px 0 30px
  47. }
  48. </text>
  49. }
  50. }
  51. .title > span > strong {
  52. font-size: 130px;
  53. letter-spacing: 50px;
  54. padding-left: 50px;
  55. }
  56. .title > .wait {
  57. width: auto;
  58. margin: 10px auto 0;
  59. text-align: center;
  60. line-height: 50px;
  61. font-weight: 600;
  62. }
  63. .object{
  64. width: 30px;
  65. height: 30px;
  66. background-color: #ffffff;
  67. float: left;
  68. margin-top: 25px;
  69. margin-right: 25px;
  70. -moz-border-radius: 50% 50% 50% 50%;
  71. -webkit-border-radius: 50% 50% 50% 50%;
  72. border-radius: 50% 50% 50% 50%;
  73. -webkit-animation: object 2.2s infinite;
  74. animation: object 2.2s infinite;
  75. }
  76. .object:last-child {
  77. margin-right: 0;
  78. }
  79. .object:nth-child(20){
  80. -webkit-animation-delay: 2.0s;
  81. animation-delay: 2.0s;
  82. }
  83. .object:nth-child(19){
  84. -webkit-animation-delay: 1.9s;
  85. animation-delay: 1.9s;
  86. }
  87. .object:nth-child(18){
  88. -webkit-animation-delay: 1.8s;
  89. animation-delay: 1.8s;
  90. }
  91. .object:nth-child(17){
  92. -webkit-animation-delay: 1.7s;
  93. animation-delay: 1.7s;
  94. }
  95. .object:nth-child(16){
  96. -webkit-animation-delay: 1.6s;
  97. animation-delay: 1.6s;
  98. }
  99. .object:nth-child(15){
  100. -webkit-animation-delay: 1.5s;
  101. animation-delay: 1.5s;
  102. }
  103. .object:nth-child(14){
  104. -webkit-animation-delay: 1.4s;
  105. animation-delay: 1.4s;
  106. }
  107. .object:nth-child(13){
  108. -webkit-animation-delay: 1.3s;
  109. animation-delay: 1.3s;
  110. }
  111. .object:nth-child(12){
  112. -webkit-animation-delay: 3.3s;
  113. animation-delay: 1.2s;
  114. }
  115. .object:nth-child(11){
  116. -webkit-animation-delay: 1.1s;
  117. animation-delay: 1.1s;
  118. }
  119. .object:nth-child(10){
  120. -webkit-animation-delay: 1.0s;
  121. animation-delay: 1.0s;
  122. }
  123. .object:nth-child(9){
  124. -webkit-animation-delay: 0.9s;
  125. animation-delay: 0.9s;
  126. }
  127. .object:nth-child(8){
  128. -webkit-animation-delay: 0.8s;
  129. animation-delay: 0.8s;
  130. }
  131. .object:nth-child(7){
  132. -webkit-animation-delay: 1.8s;
  133. animation-delay: 0.7s;
  134. }
  135. .object:nth-child(6){
  136. -webkit-animation-delay: 0.5s;
  137. animation-delay: 0.5s;
  138. }
  139. .object:nth-child(5){
  140. -webkit-animation-delay: 0.5s;
  141. animation-delay: 0.5s;
  142. }
  143. .object:nth-child(4){
  144. -webkit-animation-delay: 0.4s;
  145. animation-delay: 0.4s;
  146. }
  147. .object:nth-child(3) {
  148. -webkit-animation-delay: 0.3s;
  149. animation-delay: 0.3s;
  150. }
  151. .object:nth-child(2){
  152. -webkit-animation-delay: 0.2s;
  153. animation-delay: 0.2s;
  154. }
  155. @@-webkit-keyframes object{
  156. 50% {
  157. /*-ms-transform: translate(0,-50px);
  158. -webkit-transform: translate(0,-50px);
  159. transform: translate(0,-50px);*/
  160. background-color: #ffffff;
  161. background-color: rgba(255,255,255,.25);
  162. }
  163. 100% {
  164. /*-ms-transform: translate(0,-50px);
  165. -webkit-transform: translate(0,-50px);
  166. transform: translate(0,-50px);*/
  167. background-color: #ffffff;
  168. background-color: rgba(255,255,255,.25);
  169. }
  170. }
  171. @@keyframes object {
  172. 50% {
  173. /*-ms-transform: translate(0,-50px);
  174. -webkit-transform: translate(0,-50px);
  175. transform: translate(0,-50px);*/
  176. background-color: #ffffff;
  177. background-color: rgba(255,255,255,.25);
  178. }
  179. 100% {
  180. /*-ms-transform: translate(0,-50px);
  181. -webkit-transform: translate(0,-50px);
  182. transform: translate(0,-50px);*/
  183. background-color: #ffffff;
  184. background-color: rgba(255,255,255,.25);
  185. }
  186. }
  187. </style>
  188. }
  189. <div class="body no-select" style="height: 100vh; width: 100vw;box-sizing: padding-box;">
  190. <div class="title">
  191. <span>
  192. <strong>@(groupName)</strong>
  193. </span>
  194. @if (text.IsNotEmpty())
  195. {
  196. <span>@(text)</span>
  197. <span class="wait ">
  198. @{
  199. for (int i = 0; i < 20; i++)
  200. {
  201. <span class="object"></span>
  202. }
  203. }
  204. </span>
  205. }
  206. </div>
  207. </div>
  208. @section scripts
  209. {
  210. <script id="hub">
  211. abp.signalr.connect(['@(id)','@(campNo)']);
  212. iwbHub.client.getReloadAll = function (msg) {
  213. console.log('getReloadAll: ', msg);
  214. if (msg) {
  215. try {
  216. var data = JSON.parse(msg);
  217. if (data) {
  218. if (data.no == '@(id)'|| data.no == '@(campNo)') {
  219. window.location.reload();
  220. }
  221. }
  222. } catch (e) {
  223. console.log('getReloadAll: ', e);
  224. }
  225. }
  226. };
  227. iwbHub.client.getReloadPublic = function (msg) {
  228. console.log('getReloadPublic: ', msg);
  229. if (msg) {
  230. try {
  231. var data = JSON.parse(msg);
  232. if (data) {
  233. if (data.no == '@(id)'|| data.no == '@(campNo)') {
  234. window.location.reload();
  235. }
  236. }
  237. } catch (e) {
  238. console.log('getReloadPublic: ', e);
  239. }
  240. }
  241. };
  242. </script>
  243. }