PaintRoom5.cshtml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. @*
  2. *@
  3. @model Ropin.Environmentally.WebScada.DeviceValueModel;
  4. @{
  5. }
  6. <body>
  7. <div class="breadcrumb" id="div-canvas" style="position:relative; top:0px;left:0px; background-color:White;">
  8. <div id="app">
  9. @{
  10. <img style="border-width:0px;width:1024px;height:768px; z-index:0; position:absolute;left:0px;top:0px;"
  11. src="https://www.ropiniot.com/DigitalEnvironmentallyWebScadaTest/wwwroot/pic/qinengjichang.jpg"
  12. id="ccc" />
  13. //<div v-if="device.value19 === '1'" style="z-index:1; position:absolute;left:0px;top:0px;">
  14. // <img src="https://shyp.yunzutai.com:22744/Uploads/Files/2021/12/10/115e6854e0ac4449ba453714d6d4a2a4.svg" alt="Smiley face" width="64" height="64">
  15. // </div>
  16. // <div v-if="device.value19 === '0'" style="z-index:2; position:absolute;left:0px;top:0px;">
  17. // <img src="https://www.ropiniot.com/DigitalEnvironmentallyWebScadaTest/wwwroot/pic/hui.svg" alt="Smiley face" width="64" height="64">
  18. // </div>
  19. <div style="z-index:1; position:absolute;left:0px;top:0px;">
  20. <img v-if="device.valueE19 === '1'" src="https://shyp.yunzutai.com:22744/Uploads/Files/2021/12/10/115e6854e0ac4449ba453714d6d4a2a4.svg" alt="Smiley face" width="64" height="64">
  21. <img v-else src="https://www.ropiniot.com/DigitalEnvironmentallyWebScadaTest/wwwroot/pic/hui.svg" alt="Smiley face" width="64" height="64">
  22. </div>
  23. <div style="z-index:1; position:absolute;left:70px;top:0px;">
  24. <img v-if="device.valueE17 === '1'" src="https://shyp.yunzutai.com:22744/Uploads/Files/2021/12/10/3e6ba57ec6ef4c299524094e2e26e4f3.svg" alt="Smiley face" width="64" height="64">
  25. <img v-else src="https://www.ropiniot.com/DigitalEnvironmentallyWebScadaTest/wwwroot/pic/hui.svg" alt="Smiley face" width="64" height="64">
  26. </div>
  27. <input name="RichTextBox110" type="text" id="RichTextBox110" v-model="device.valueE" style="width:160px;height: 80px;z-index:129;position:absolute;top: 820px;left:761px;font-size:32px; " />
  28. <span id="Lable123" style="width:700px;height: 63px;z-index:126;position:absolute;top: 840px;left:0px;font-size:32px;">{{device.NameE}}</span>
  29. <input name="RichTextBox111" type="text" id="RichTextBox111" v-model="device.valueE10" style="width:160px;height: 80px;z-index:129;position:absolute;top: 920px;left:761px;font-size:32px;" />
  30. <span id="Lable124" style="width:700px;height: 63px;z-index:126;position:absolute;top: 930px;left:0px;font-size:32px;">{{device.NameE10}}</span>
  31. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.valueE11" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1020px;left:761px;font-size:32px;" />
  32. <span id="Lable125" style="width:700px;height: 63px;z-index:126;position:absolute;top: 1030px;left:0px;font-size:32px;">{{device.NameE11}}</span>
  33. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.valueE12" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1120px;left:761px;font-size:32px;" />
  34. <span id="Lable125" style="width:700px;height: 63px;z-index:126;position:absolute;top: 1130px;left:0px;font-size:32px;">{{device.NameE12}}</span>
  35. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.valueE17" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1220px;left:761px;font-size:32px;" />
  36. <span id="Lable125" style="width:700px;height: 63px;z-index:126;position:absolute;top: 1230px;left:0px;font-size:32px;">{{device.NameE17}}</span>
  37. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.valueE18" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1320px;left:761px;font-size:32px;" />
  38. <span id="Lable125" style="width:700px;height: 63px;z-index:126;position:absolute;top: 1330px;left:0px;font-size:32px;">{{device.NameE18}}</span>
  39. <input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.valueE13" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1420px;left:761px;font-size:32px;" />
  40. <span id="Lable125" style="width:300px;height: 63px;z-index:126;position:absolute;top: 1430px;left:0px;font-size:32px;">{{device.NameE15}}</span>
  41. //<input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.valueE14" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1420px;left:470px;font-size:32px;" />
  42. //<span id="Lable125" style="width:40px;height: 63px;z-index:126;position:absolute;top: 1430px;left:390px;font-size:32px;">天</span>
  43. //<input name="RichTextBox112" type="text" id="RichTextBox112" v-model="device.valueE15" style="width:160px;height: 80px;z-index:129;position:absolute;top: 1420px;left:200px;font-size:32px;" />
  44. //<span id="Lable125" style="width:40px;height: 63px;z-index:126;position:absolute;top: 1430px;left:640px;font-size:32px;">时</span>
  45. //<span id="Lable125" style="width:40px;height: 63px;z-index:126;position:absolute;top: 1430px;left:880px;font-size:32px;">分</span>
  46. }
  47. <div style="top: 1600px;">
  48. <div class="button3 btn1" >
  49. <span>巡检</span>
  50. </div>
  51. <div class="button3 btn2" >
  52. <span>维保</span>
  53. </div>
  54. <div class="button3 btn3" >
  55. <span>维修</span>
  56. </div>
  57. </div>
  58. </div>
  59. @*<input type="button" id="sendButton" value="发送消息" />*@
  60. @* <p>模拟推送消息:</p>
  61. <div>
  62. <textarea v-model="pushContent"></textarea>
  63. <button @@click="PushMsg">发布通告</button>
  64. </div>
  65. <span>最新的消息通知:</span>{{message}}
  66. <p>接到的消息通知:</p>
  67. <div>
  68. {{msgs}}
  69. </div>
  70. <p>模拟实时更新数据:</p>
  71. <div>
  72. <span>状态1:</span><span>{{dataInfo.status1}}</span>
  73. <br>
  74. <span>状态2:</span><span>{{dataInfo.status2}}</span>
  75. </div>*@
  76. </div>
  77. </body>
  78. <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
  79. <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  80. <script src="https://www.ropiniot.com/DigitalEnvironmentallyWebScadaTest/wwwroot/signalr/signalr.js"></script>
  81. <script src="https://www.ropiniot.com/DigitalEnvironmentallyWebScadaTest/wwwroot/signalr/hubs"></script>
  82. <script>
  83. var app = new Vue({
  84. el: "#app",
  85. created: function () {
  86. //document.getElementById("sendButton").disabled = true; http://114.115.174.174:80/DigitalEnvironmentallyWebScadaTest/
  87. this.connection = new signalR.HubConnectionBuilder()
  88. .withUrl("https://www.ropiniot.com/DigitalEnvironmentallyWebScadaTest/myhub",{
  89. skipNegotiation: true, // 关键
  90. transport: signalR.HttpTransportType.WebSockets // 关键
  91. })
  92. //.withUrl("http://localhost:5000/myhub")
  93. .build();
  94. this.connection.on("showmsg", this.ShowMsg);
  95. this.connection.on("updatedata", this.UpdateData);
  96. this.connection.on("updatedevicedata", this.UpdateDeviceData);
  97. this.connection.start();
  98. //this.connection.start().then(function () {
  99. // document.getElementById("sendButton").disabled = false;
  100. //}).catch(function (err) {
  101. // document.getElementById("sendButton").disabled = false;
  102. // return console.error(err.toString());
  103. //});
  104. },
  105. data: {
  106. flageRed:true,
  107. flageGreen:true,
  108. device: {
  109. valueE: "123456789", NameE: "前处理过滤箱电子差压计D3实际值",
  110. valueE10: "123456789", NameE10: "前处理过滤箱电子差压计D3实际值",
  111. valueE11: "123456789", NameE11: "前处理过滤箱电子差压计D3实际值",
  112. valueE12: "123456789", NameE12: "前处理过滤箱电子差压计D3实际值",
  113. valueE13: "123456789", NameE13: "前处理过滤箱电子差压计D3实际值",
  114. valueE14: "123456789", NameE14: "前处理过滤箱电子差压计D3实际值",
  115. valueE15: "123456789", NameE15: "前处理过滤箱电子差压计D3实际值",
  116. valueE16: "123456789", NameE16: "前处理过滤箱电子差压计D3实际值",
  117. valueE17: "123456789", NameE17: "前处理过滤箱电子差压计D3实际值",
  118. valueE18: "123456789", NameE18: "前处理过滤箱电子差压计D3实际值",
  119. valueE19: "123456789", NameE19: "前处理过滤箱电子差压计D3实际值",
  120. value20: "123456789", Name20: "前处理过滤箱电子差压计D3实际值",
  121. value10: "123456789", Name10: "前处理过滤箱电子差压计D3实际值",
  122. value21: "123456789", Name21: "前处理过滤箱电子差压计D3实际值",
  123. value22: "123456789", Name22: "前处理过滤箱电子差压计D3实际值",
  124. value23: "123456789", Name23: "前处理过滤箱电子差压计D3实际值",
  125. value24: "123456789", Name24: "前处理过滤箱电子差压计D3实际值",
  126. value25: "123456789", Name25: "前处理过滤箱电子差压计D3实际值",
  127. value26: "123456789", Name26: "前处理过滤箱电子差压计D3实际值",
  128. value27: "123456789", Name27: "前处理过滤箱电子差压计D3实际值",
  129. value28: "123456789", Name28: "前处理过滤箱电子差压计D3实际值",
  130. value29: "123456789", Name29: "前处理过滤箱电子差压计D3实际值"
  131. },
  132. message: "HelloVue",
  133. connection: null,
  134. msgs: [],
  135. dataInfo: { status1: "off", status2: "off" },
  136. pushContent: ""
  137. },
  138. methods: {
  139. ShowMsg: function (msgInfo) {
  140. //this.message = msgInfo.title + ":" + msgInfo.msgContent;
  141. //this.msgs.push(this.message);
  142. },
  143. PushMsg: function () {
  144. that = this;
  145. axios.get('http://localhost:5000/WeatherForecast/PushMsg',
  146. { params: { content: that.pushContent } })
  147. .then(function (response) {
  148. console.log(response);
  149. })
  150. .catch(function (error) {
  151. console.log(error);
  152. });
  153. },
  154. UpdateDeviceData: function (dataMsg) {
  155. this.device.valueE = dataMsg.valueE;
  156. this.device.NameE = dataMsg.nameE;
  157. this.device.valueE10 = dataMsg.valueE10;
  158. this.device.NameE10 = dataMsg.nameE10;
  159. this.device.valueE11 = dataMsg.valueE11;
  160. this.device.NameE11 = dataMsg.nameE11;
  161. this.device.valueE12 = dataMsg.valueE12;
  162. this.device.NameE12 = dataMsg.nameE12;
  163. this.device.valueE13 = dataMsg.valueE13;
  164. this.device.NameE13 = dataMsg.nameE13;
  165. this.device.valueE14 = dataMsg.valueE14;
  166. this.device.NameE14 = dataMsg.nameE14;
  167. this.device.valueE15 = dataMsg.valueE15;
  168. this.device.NameE15 = dataMsg.nameE15;
  169. this.device.valueE16 = dataMsg.valueE16;
  170. this.device.NameE16 = dataMsg.nameE16;
  171. this.device.valueE17 = dataMsg.valueE17;
  172. this.device.NameE17 = dataMsg.nameE17;
  173. this.device.valueE18 = dataMsg.valueE18;
  174. this.device.NameE18 = dataMsg.nameE18;
  175. this.device.valueE19 = dataMsg.valueE19;
  176. this.device.NameE19 = dataMsg.nameE19;
  177. this.device.value20 = dataMsg.value20;
  178. this.device.Name20 = dataMsg.name20;
  179. this.device.value21 = dataMsg.value21;
  180. this.device.Name21 = dataMsg.name21;
  181. this.device.value22 = dataMsg.value22;
  182. this.device.Name22 = dataMsg.name22;
  183. this.device.value23 = dataMsg.value23;
  184. this.device.Name23 = dataMsg.name23;
  185. this.device.value24 = dataMsg.value24;
  186. this.device.Name24 = dataMsg.name24;
  187. this.device.value25 = dataMsg.value25;
  188. this.device.Name25 = dataMsg.name25;
  189. this.device.value26 = dataMsg.value26;
  190. this.device.Name26 = dataMsg.name26;
  191. this.device.value27 = dataMsg.value27;
  192. this.device.Name27 = dataMsg.name27;
  193. this.device.value28 = dataMsg.value28;
  194. this.device.Name28 = dataMsg.name28;
  195. this.device.value29 = dataMsg.value29;
  196. this.device.Name29 = dataMsg.name29;
  197. },
  198. UpdateData: function (dataMsg) {
  199. //alert(DeviceValueModel);
  200. //this.dataInfo = dataMsg;
  201. //this.device = DeviceValueModel;
  202. //this.device.Value = dataMsg.Value;
  203. //this.device.Name = dataMsg.Name;
  204. //this.message = dataMsg;
  205. }
  206. }
  207. });
  208. </script>
  209. <style>
  210. .breadcrumb{
  211. font-size: 33px;
  212. }
  213. .button3 {
  214. z-index:126;
  215. position:absolute;
  216. top: 1600px;
  217. /*left:0px;*/
  218. width: 200px;
  219. height: 70px;
  220. line-height: 60px;
  221. background-color: #2e82ff;
  222. color: #ffffff;
  223. font-size: 50px;
  224. text-align: center;
  225. border-radius: 27px;
  226. position: relative;
  227. }
  228. .button3::before {
  229. /*left: 0px;*/
  230. content: "";
  231. position: absolute;
  232. width: 100%;
  233. height: 100%;
  234. background-image:
  235. linear-gradient(to right, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0) 70%);
  236. background-size: 200%;
  237. animation: wipes 1s infinite;
  238. }
  239. .btn1 { position: absolute;top: 1600px;left:10px; }
  240. .btn2 { position: absolute;top: 1600px;left:380px;}
  241. .btn3 { position: absolute;top: 1600px;left:760px; }
  242. @@keyframes wipes {
  243. 0% {
  244. background-position: 0 0;
  245. }
  246. 100% {
  247. background-position: 100% 0;
  248. }
  249. }
  250. </style>