P310.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta name="renderer" content="webkit">
  5. <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  6. <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  7. <meta http-equiv="pragma" content="no-cache">
  8. <meta http-equiv="Cache" content="no-cache">
  9. <meta http-equiv="cache-control" content="no-cache, must-revalidate">
  10. <meta http-equiv="expires" content="0">
  11. <meta name="viewport"
  12. content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  13. <title>钢丝绳检测</title>
  14. <link rel="stylesheet" href="../css/index.css">
  15. <link rel="stylesheet" href="../css/style.css">
  16. <link rel="stylesheet" href="../css/iconfont.css">
  17. <script src="../js/vue.min.js"></script>
  18. <script src="../js/index.js"></script>
  19. <script src="../js/jquery.min.js"></script>
  20. <script src="../js/echarts.min.js"></script>
  21. <script type="text/javascript">
  22. document.write('<script src="../assets/init.js?id='+(new Date().getTime())+'" type="text/javascript" charset="utf-8"><\/script>');
  23. document.write('<script src="../assets/wireWram.js?id='+(new Date().getTime())+'" type="text/javascript" charset="utf-8"><\/script>');
  24. </script>
  25. <script>
  26. checkLogin();
  27. </script>
  28. <style type="text/css">
  29. * {
  30. padding: 0;
  31. margin: 0;
  32. box-sizing: border-box;
  33. }
  34. .yz_main{
  35. width: calc(100% - 160px);
  36. height: 100%;
  37. float: right;
  38. padding: 0 8px;
  39. }
  40. .yz_aside{
  41. width: 160px;
  42. height: 100%;
  43. float: left;
  44. color: #fff;
  45. }
  46. .yz_aside li{
  47. cursor: pointer;
  48. padding: 7px 8px;
  49. }
  50. li{
  51. list-style: none;
  52. }
  53. .warmli li{
  54. display: flex;
  55. align-items: center;
  56. font-size: 14px;
  57. color: #e1e1e1;
  58. padding: 7px 15px;
  59. }
  60. .warmli li .act{
  61. color: #0081FF;
  62. }
  63. #app .el-table .el-table__cell{
  64. padding:7px 0 !important;
  65. }
  66. #app .el-table,#app .el-table__expanded-cell,#app .el-table tr{
  67. color: #d4d4d4;
  68. background-color: transparent !important;
  69. }
  70. #app .el-table::before{
  71. height: 0;
  72. }
  73. #app .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf{
  74. border-bottom: none;
  75. }
  76. #app .el-table--striped .el-table__body tr.el-table__row--striped td {
  77. background: #001D45;
  78. }
  79. .el-input__inner{
  80. height: 34px;
  81. }
  82. </style>
  83. </head>
  84. <body>
  85. <div id="app" class="padding-xs" v-cloak>
  86. <div class="bg-theme-son flex algin-center">
  87. <div v-for="(item,index) in ['实时监控','历史查询']" :key='index' @click="activeName = index"
  88. class="padding-tb-sm padding-lr pointer" :class="activeName == index?'text-blue':''">{{ item }}</div>
  89. </div>
  90. <div style="height:calc(100vh - 47px);overflow: auto;" class="padding-tb-xs" v-loading="loading">
  91. <div class="yz_aside warmli Sense">
  92. <div class="padding-sm text-bold text-sm">设备列表</div>
  93. <ul style="height: calc(100% - 52px);overflow: auto;" v-if="wireImeiLi.length">
  94. <li v-for="(it,ind) in wireImeiLi" :key="ind" @click="handleChange(it)">
  95. <div class="text-sm" :class="it.imei == wireItem.imei?'act':''">{{ it.name }}</div>
  96. </li>
  97. </ul>
  98. <ul v-else>
  99. <li>暂无设备</li>
  100. </ul>
  101. </div>
  102. <div class="yz_main text-sm">
  103. <div v-show="activeName == 0" style="height:100%;">
  104. <div style="height:50%;background-color: #001D45;">
  105. <div id="myChart" style="height:100%;width: 100%;"></div>
  106. </div>
  107. <img src="../img/wireRope.png" alt="" class="margin-tb-xs" style="width: 100%;">
  108. <div style="height:calc(50% - 90px);">
  109. <el-row :gutter="10" style="height:100%;">
  110. <el-col :span="8" class="padding-tb-sm radius" style="background-color: #001D45;">
  111. <div class="padding-xs">设备编号:<span class="text-yellow">{{wireItem.imei}}</span></div>
  112. <div class="padding-xs">上报时间:<span class="text-yellow">{{wireInfo.ts != undefined?getDTime(new Date(parseInt(wireInfo.ts)*1000))[2]:'---- --:--:--'}}</span> </div>
  113. <div class="flex">
  114. <div class="flex-sub">
  115. <div class="padding-xs">风险等级:<span class="text-yellow">无</span></div>
  116. <div class="padding-xs">最大损伤值:<span class="text-yellow">{{wireInfo.maxSS.toFixed(2)}}%</span></div>
  117. <div class="padding-xs">平均损伤值:<span class="text-yellow">{{wireInfo.avgSS.toFixed(2)}}%</span></div>
  118. <div class="padding-xs">损伤等级:
  119. <span>
  120. <span v-if="wireInfo.level == 0" class="text-green">正常</span>
  121. <span v-else-if="wireInfo.level == 1" class="text-green">轻度</span>
  122. <span v-else-if="wireInfo.level == 2" class="text-orange">中度</span>
  123. <span v-else-if="wireInfo.level == 3" class="text-red">重度</span>
  124. </span>
  125. </div>
  126. </div>
  127. <div class="flex-sub">
  128. <div class="padding-xs">检测距离:<span class="text-yellow">{{wireInfo.distance}}m</span></div>
  129. <div class="padding-xs">损伤个数:<span class="text-yellow">{{wireInfo.cnt}}个</span></div>
  130. <div class="padding-xs">平均速度:<span class="text-yellow">{{wireInfo.speed}}m/s</span></div>
  131. </div>
  132. </div>
  133. </el-col>
  134. <el-col :span="16" style="height:100%;">
  135. <div style="width: 100%;height: 100%;">
  136. <el-table :data="wireInfo.data" stripe height="100%" style="width: 100%;"
  137. :header-cell-style="{background:'#173862',color:'#fff'}">
  138. <el-table-column align="center" prop="x" label="时间" width="160">
  139. <template slot-scope="scope">
  140. {{getDTime(new Date(parseInt(scope.row.x)*1000))[2]}}
  141. </template>
  142. </el-table-column>
  143. <el-table-column align="center" prop="ss" label="损伤值">
  144. <template slot-scope="scope">{{ scope.row.ss }}%</template>
  145. </el-table-column>
  146. <el-table-column align="center" prop="y" label="模数值"></el-table-column>
  147. </el-table>
  148. </div>
  149. </el-col>
  150. </el-row>
  151. </div>
  152. </div>
  153. <div v-show="activeName == 1" style="height:100%;">
  154. <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="100px">
  155. <el-form-item label="日期:" prop="maintenanceId">
  156. <div class="flex">
  157. <el-date-picker style="width: 196px;" type="datetime" placeholder="选择开始日期" value-model="yyyy-MM-dd HH:mm:ss" v-model="queryParams.startime"></el-date-picker>
  158. <span class="margin-lr-sm">-</span>
  159. <el-date-picker style="width: 196px;" type="datetime" placeholder="选择结束日期" value-model="yyyy-MM-dd HH:mm:ss" v-model="queryParams.endtime"></el-date-picker>
  160. </div>
  161. </el-form-item>
  162. <el-form-item label="日期排序:">
  163. <el-select v-model="queryParams.orderSql" style="width: 110px;" placeholder="请选择">
  164. <el-option
  165. v-for="item in orderSqlLi"
  166. :key="item.value"
  167. :label="item.label"
  168. :value="item.value">
  169. </el-option>
  170. </el-select>
  171. </el-form-item>
  172. <el-form-item>
  173. <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button>
  174. <el-button icon="el-icon-refresh-right" size="small" @click="resetQuery">重置</el-button>
  175. </el-form-item>
  176. </el-form>
  177. <el-table :data="wireHis" style="width: 100%;" stripe
  178. :header-cell-style="{background:'#173862',color:'#fff'}">
  179. <el-table-column align="center" prop="imei" label="设备号"></el-table-column>
  180. <el-table-column align="center" prop="time" label="上报时间"></el-table-column>
  181. <!-- <el-table-column align="center" prop="sTime" label="开始时间" width="160" v-if="wireHis[0].sTime != undefined">
  182. <template slot-scope="scope">
  183. {{getDTime(new Date(parseInt(scope.row.sTime)*1000))[2]}}
  184. </template>
  185. </el-table-column>
  186. <el-table-column align="center" prop="etime" label="结束时间" width="160" v-if="wireHis[0].etime != undefined">
  187. <template slot-scope="scope">
  188. {{getDTime(new Date(parseInt(scope.row.etime)*1000))[2]}}
  189. </template>
  190. </el-table-column> -->
  191. <el-table-column align="center" prop="level" label="损伤等级">
  192. <template slot-scope="scope">
  193. <span v-if="scope.row.level == 0" class="text-green">正常</span>
  194. <span v-else-if="scope.row.level == 1" class="text-green">轻度</span>
  195. <span v-else-if="scope.row.level == 2" class="text-orange">中度</span>
  196. <span v-else-if="scope.row.level == 3" class="text-red">重度</span>
  197. </template>
  198. </el-table-column>
  199. <el-table-column align="center" prop="cnt" label="损伤个数">
  200. <template slot-scope="scope">
  201. <el-tooltip class="item" effect="dark" placement="top-start">
  202. <template slot="content">
  203. <el-table v-if="scope.row.data != undefined" :data="JSON.parse(scope.row.data)">
  204. <el-table-column align="center" prop="x" label="时间" width="160">
  205. <template slot-scope="scope">
  206. {{getDTime(new Date(parseInt(scope.row.x)*1000))[2]}}
  207. </template>
  208. </el-table-column>
  209. <el-table-column align="center" prop="ss" label="损伤值">
  210. <template slot-scope="scope">{{ scope.row.ss }}%</template>
  211. </el-table-column>
  212. <el-table-column align="center" prop="y" label="模数值"></el-table-column>
  213. </el-table>
  214. </template>
  215. <span>{{ scope.row.cnt }}</span>
  216. </el-tooltip>
  217. </template>
  218. </el-table-column>
  219. <el-table-column align="center" prop="avgSS" label="平均损伤值">
  220. <template slot-scope="scope">{{ scope.row.avgSS }}%</template>
  221. </el-table-column>
  222. <el-table-column align="center" prop="maxSS" label="最大损伤值">
  223. <template slot-scope="scope">{{ scope.row.maxSS }}%</template>
  224. </el-table-column>
  225. <el-table-column align="center" prop="speed" label="平均速度">
  226. <template slot-scope="scope">{{ scope.row.speed }}m/s</template>
  227. </el-table-column>
  228. <el-table-column align="center" prop="distance" label="检测距离">
  229. <template slot-scope="scope">{{ scope.row.distance }}m</template>
  230. </el-table-column>
  231. </el-table>
  232. <div class="margin-tb-sm">
  233. <el-pagination
  234. @current-change="handleCurrentChange"
  235. :current-page="queryParams.page"
  236. background
  237. :page-size="12"
  238. layout="total, prev, pager, next, jumper"
  239. :total="allTotal">
  240. </el-pagination>
  241. </div>
  242. </div>
  243. </div>
  244. </div>
  245. </div>
  246. <script type="text/javascript">
  247. document.write('<script src="../assets/wireRope.js?id='+(new Date().getTime())+'" type="text/javascript" charset="utf-8"><\/script>');
  248. </script>
  249. </body>
  250. </html>