jdgl.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284
  1. <template>
  2. <view class="page-body">
  3. <page-header :name="pageData.name" :bg="'#1560e0'" :showLeft="true" @goBack="goBack()"></page-header>
  4. <view class="scroll-wrap">
  5. <view class="basic-info-wrap">
  6. <view class="info-wrap">
  7. <view @click="activeChange(item,index)" v-for="(item,index) in list"
  8. :class="activeData.name === item.name ? 'active item' : 'item'" :key="index">
  9. <status-tip class="status-wrap" :name="item.name" :status="item.status"
  10. :tip="item.status ? '运行' : '停止'"></status-tip>
  11. </view>
  12. </view>
  13. <view class="radius-wrap"></view>
  14. </view>
  15. <view class="detail-info-wrap">
  16. <page-card style="margin-bottom: 30rpx;" :notShow="true" :name="activeData.name">
  17. <template v-slot:content>
  18. <simple-table :tableHead="tableHead" :list="paramsList[activeIndex]"></simple-table>
  19. </template>
  20. </page-card>
  21. </view>
  22. </view>
  23. </view>
  24. </template>
  25. <script>
  26. export default {
  27. data() {
  28. return {
  29. pageData: {},
  30. activeData: {},
  31. activeIndex: 0,
  32. list: [{
  33. name: '1#甲带给料机',
  34. status: 1
  35. }, {
  36. name: '2#甲带给料机',
  37. status: 1
  38. }, {
  39. name: '3#甲带给料机',
  40. status: 0
  41. }, {
  42. name: '4#甲带给料机',
  43. status: 1
  44. }],
  45. tableHead: ['名称', '参数/状态'],
  46. paramsList: [
  47. [{
  48. name: '控制方式',
  49. params: ['就地']
  50. },
  51. {
  52. name: '变频器母线电压(V)',
  53. params: ['9999']
  54. },
  55. {
  56. name: '变频器输出电压(V)',
  57. params: ['9999']
  58. },
  59. {
  60. name: '变频器输出电流(A)',
  61. params: ['20.23']
  62. },
  63. {
  64. name: '变频器输出频率(Hz)',
  65. params: ['9364']
  66. },
  67. {
  68. name: '变频器温度(℃)',
  69. params: ['80.24']
  70. },
  71. {
  72. name: '变频器故障',
  73. params: [{
  74. status: 1
  75. }]
  76. }
  77. ],
  78. [{
  79. name: '控制方式',
  80. params: ['就地']
  81. },
  82. {
  83. name: '变频器母线电压(V)',
  84. params: ['9999']
  85. },
  86. {
  87. name: '变频器输出电压(V)',
  88. params: ['9999']
  89. },
  90. {
  91. name: '变频器输出电流(A)',
  92. params: ['20.23']
  93. },
  94. {
  95. name: '变频器输出频率(Hz)',
  96. params: ['9364']
  97. },
  98. {
  99. name: '变频器温度(℃)',
  100. params: ['80.24']
  101. },
  102. {
  103. name: '变频器故障',
  104. params: [{
  105. status: 1
  106. }]
  107. }
  108. ],
  109. [{
  110. name: '控制方式',
  111. params: ['就地']
  112. },
  113. {
  114. name: '变频器母线电压(V)',
  115. params: ['9999']
  116. },
  117. {
  118. name: '变频器输出电压(V)',
  119. params: ['9999']
  120. },
  121. {
  122. name: '变频器输出电流(A)',
  123. params: ['20.23']
  124. },
  125. {
  126. name: '变频器输出频率(Hz)',
  127. params: ['9364']
  128. },
  129. {
  130. name: '变频器温度(℃)',
  131. params: ['80.24']
  132. },
  133. {
  134. name: '变频器故障',
  135. params: [{
  136. status: 1
  137. }]
  138. }
  139. ],
  140. [{
  141. name: '控制方式',
  142. params: ['就地']
  143. },
  144. {
  145. name: '变频器母线电压(V)',
  146. params: ['9999']
  147. },
  148. {
  149. name: '变频器输出电压(V)',
  150. params: ['9999']
  151. },
  152. {
  153. name: '变频器输出电流(A)',
  154. params: ['20.23']
  155. },
  156. {
  157. name: '变频器输出频率(Hz)',
  158. params: ['9364']
  159. },
  160. {
  161. name: '变频器温度(℃)',
  162. params: ['80.24']
  163. },
  164. {
  165. name: '变频器故障',
  166. params: [{
  167. status: 1
  168. }]
  169. }
  170. ]
  171. ]
  172. }
  173. },
  174. onLoad(option) {
  175. this.pageData = JSON.parse(option.data)
  176. this.getData()
  177. },
  178. methods: {
  179. goBack() { // 返回上一頁面
  180. uni.navigateBack()
  181. },
  182. activeChange(item, index) { // 切换状态
  183. this.activeData = item
  184. this.activeIndex = index
  185. },
  186. async getData() {
  187. let res = await this.$http({
  188. url: `/qsy/dcs/transform/jdglj`,
  189. method: 'POST'
  190. })
  191. this.list = res.data.data.list
  192. this.activeData = this.list[0]
  193. const mKeys = Object.keys(res.data.data).filter(key => key.startsWith('m'));
  194. this.paramsList = mKeys.map(key => {
  195. return res.data.data[key]
  196. });
  197. }
  198. }
  199. }
  200. </script>
  201. <style scoped lang="scss">
  202. .page-body {
  203. .scroll-wrap {
  204. height: calc(100vh - 85rpx);
  205. overflow: scroll;
  206. .basic-info-wrap {
  207. position: relative;
  208. height: auto;
  209. padding: 50rpx 49rpx 40rpx;
  210. background: url(../../../static/page_bg.png);
  211. background-size: 120%;
  212. .info-wrap {
  213. display: flex;
  214. flex-wrap: wrap;
  215. padding-bottom: 30rpx;
  216. .item {
  217. display: flex;
  218. padding: 24rpx 14rpx;
  219. justify-content: space-between;
  220. width: 50%;
  221. color: #fff;
  222. font-size: 26rpx;
  223. .status-wrap {
  224. width: 100%;
  225. /deep/ .tip-wrap {
  226. justify-content: space-between;
  227. }
  228. }
  229. .params {
  230. color: #FFFF00;
  231. }
  232. }
  233. .active {
  234. background: #3495FA;
  235. box-shadow: 0px 3px 7px 0px rgba(0, 8, 35, 0.31);
  236. border-radius: 14px;
  237. }
  238. }
  239. .img-wrap {
  240. padding: 49rpx 0;
  241. text-align: center;
  242. image {
  243. width: 310rpx;
  244. height: 138rpx;
  245. }
  246. view {
  247. margin-top: 25rpx;
  248. color: #fff;
  249. }
  250. }
  251. .radius-wrap {
  252. position: absolute;
  253. left: 0;
  254. bottom: 0;
  255. width: 100vw;
  256. height: 30rpx;
  257. background-color: #fff;
  258. border-radius: 35rpx 35rpx 0 0;
  259. }
  260. }
  261. .detail-info-wrap {
  262. padding: 40rpx 35rpx;
  263. /deep/ .card-wrap:last-child {
  264. margin-bottom: 0 !important;
  265. }
  266. }
  267. }
  268. }
  269. </style>