index.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. <!-- eslint-disable vue/multi-word-component-names -->
  2. <template>
  3. <div class="spray-wrapper">
  4. <MonitorComponent
  5. main-title="凝胶防灭火材料自动喷洒系统"
  6. :main-config="{
  7. configs: configs,
  8. }"
  9. :monitor-history-config="{}"
  10. :handler-history-config="{}"
  11. :alarm-history-config="{}"
  12. strtype="sys_surface_juejin"
  13. >
  14. <!-- <template #default="{ monitorData }">
  15. <div id="spray3D" class="w-full h-full">
  16. <a-spin :spinning="loading" />
  17. <div id="sprayCSS3D" v-show="!loading" style="width: 100%; height: 100%; position: absolute; overflow: hidden">
  18. <FourBorderBg id="sprayCSS3DEnvA">
  19. <div>送料电机</div>
  20. <div>电压US:{{ monitorData.slus }}</div>
  21. <div>电流LA:{{ monitorData.slla }}</div>
  22. <div>电流LB:{{ monitorData.sllb }}</div>
  23. <div>电流LC:{{ monitorData.sllc }}</div>
  24. </FourBorderBg>
  25. <FourBorderBg id="sprayCSS3DEnvB">
  26. <div>输送电机</div>
  27. <div>电压US:{{ monitorData.ssus }}</div>
  28. <div>电流LA:{{ monitorData.ssla }}</div>
  29. <div>电流LB:{{ monitorData.sslb }}</div>
  30. <div>电流LC:{{ monitorData.sslc }}</div>
  31. </FourBorderBg>
  32. </div>
  33. </div>
  34. </template> -->
  35. </MonitorComponent>
  36. </div>
  37. </template>
  38. <script setup lang="ts">
  39. import { onMounted } from 'vue';
  40. import MonitorComponent from './component.vue';
  41. import { Config } from '../../deviceManager/configurationTable/types';
  42. import { useInitConfigs } from '../../home/configurable/hooks/useInit';
  43. const defaultConfigs: Config[] = [
  44. {
  45. deviceType: '',
  46. moduleName: '压力传感器',
  47. pageType: 'spray',
  48. moduleData: {
  49. header: {
  50. show: false,
  51. readFrom: '',
  52. selector: {
  53. show: false,
  54. value: '',
  55. },
  56. slot: {
  57. show: false,
  58. value: '',
  59. },
  60. },
  61. background: {
  62. show: false,
  63. type: 'video',
  64. link: '',
  65. },
  66. layout: {
  67. direction: 'row',
  68. items: [
  69. {
  70. name: 'board',
  71. basis: '100%',
  72. },
  73. ],
  74. },
  75. board: [
  76. {
  77. type: 'P',
  78. layout: 'label-top',
  79. items: [
  80. {
  81. label: '在线数量',
  82. value: '1',
  83. },
  84. {
  85. label: '异常数量',
  86. value: '0',
  87. },
  88. ],
  89. readFrom: '',
  90. },
  91. ],
  92. },
  93. showStyle: {
  94. size: 'width:440px;height:250px;',
  95. version: '保德',
  96. position: 'top:80px;left:10px;',
  97. },
  98. },
  99. {
  100. deviceType: '',
  101. moduleName: '喷洒实况',
  102. pageType: 'spray',
  103. moduleData: {
  104. header: {
  105. show: false,
  106. readFrom: '',
  107. selector: {
  108. show: false,
  109. value: '',
  110. },
  111. slot: {
  112. show: false,
  113. value: '',
  114. },
  115. },
  116. background: {
  117. show: false,
  118. type: 'video',
  119. link: '',
  120. },
  121. layout: {
  122. direction: 'row',
  123. items: [
  124. {
  125. name: 'table',
  126. basis: '100%',
  127. },
  128. ],
  129. },
  130. table: [
  131. {
  132. type: 'A',
  133. columns: [
  134. {
  135. name: '支架',
  136. prop: 'strinstallpos',
  137. },
  138. {
  139. name: '工作状态',
  140. prop: 'readData.online_str',
  141. },
  142. ],
  143. readFrom: 'spray_auto',
  144. },
  145. ],
  146. preset: [],
  147. },
  148. showStyle: {
  149. size: 'width:440px;height:430px;',
  150. version: '保德',
  151. position: 'top:350px;left:10px;',
  152. },
  153. },
  154. {
  155. deviceType: '',
  156. moduleName: '场景信息总览',
  157. pageType: 'spray',
  158. moduleData: {
  159. header: { show: false, readFrom: '', selector: { show: false, value: '' }, slot: { show: false, value: '' } },
  160. background: { show: false, type: 'video', link: '' },
  161. layout: {
  162. direction: 'column',
  163. items: [
  164. {
  165. name: 'list',
  166. basis: '50%',
  167. overflow: false,
  168. },
  169. {
  170. name: 'partition',
  171. basis: 'auto',
  172. overflow: false,
  173. },
  174. {
  175. name: 'list',
  176. basis: 'auto',
  177. overflow: false,
  178. },
  179. {
  180. name: 'partition',
  181. basis: 'auto',
  182. overflow: false,
  183. },
  184. {
  185. name: 'list',
  186. basis: 'auto',
  187. overflow: false,
  188. },
  189. ],
  190. },
  191. list: [
  192. {
  193. type: 'L',
  194. readFrom: '',
  195. items: [
  196. {
  197. label: '绑定控制箱名称',
  198. value: '${spray_auto[0].strinstallpos}',
  199. },
  200. {
  201. label: '控制箱地址',
  202. value: '${spray_auto[0].readData.snumber}',
  203. },
  204. {
  205. label: '故障从机',
  206. value: '${spray_auto[0].readData.Cjgz}',
  207. },
  208. {
  209. label: '浮球液位报警',
  210. value: '${spray_auto[0].readData.minimumgrouting}',
  211. },
  212. {
  213. label: '输送管道压力',
  214. value: '${spray_auto[0].readData.zjbhglpaV}',
  215. },
  216. ],
  217. },
  218. {
  219. type: 'N',
  220. readFrom: '',
  221. items: [
  222. {
  223. label: '启动状态',
  224. value: '${spray_auto[0].readData.online_str}',
  225. color: 'blue',
  226. },
  227. {
  228. label: '报警状态',
  229. value: '${spray_auto[0].warnLevel_str}',
  230. },
  231. ],
  232. },
  233. {
  234. type: 'N',
  235. readFrom: '',
  236. items: [
  237. {
  238. label: '启动状态',
  239. value: '${spray_auto[0].readData.online_str}',
  240. color: 'blue',
  241. },
  242. {
  243. label: '故障状态',
  244. value: '${spray_auto[0].readData.warnLevel_str}',
  245. },
  246. ],
  247. },
  248. ],
  249. partition: [
  250. {
  251. type: 'A',
  252. readFrom: '',
  253. layout: 'icon-pre',
  254. label: '送料电机',
  255. icon: '/src/assets/images/home-container/configurable/tashanhome/partition-icon-1.png',
  256. },
  257. {
  258. type: 'A',
  259. readFrom: '',
  260. layout: 'icon-pre',
  261. label: '输送电机',
  262. icon: '/src/assets/images/home-container/configurable/tashanhome/partition-icon-2.png',
  263. },
  264. ],
  265. },
  266. showStyle: {
  267. size: 'width:440px;height:700px;',
  268. version: '原版',
  269. position: 'top:80px;right:10px;',
  270. },
  271. },
  272. ];
  273. const { configs, fetchConfigs } = useInitConfigs();
  274. onMounted(() => {
  275. fetchConfigs('spray');
  276. // loading.value = true;
  277. // mountedThree('#spray3D', ['#sprayCSS3D', '#sprayCSS3DEnvA', '#sprayCSS3DEnvB']).then(() => {
  278. // setModelType('spray').finally(() => {
  279. // loading.value = false;
  280. // });
  281. // });
  282. });
  283. </script>
  284. <style lang="less" scoped>
  285. .spray-wrapper {
  286. width: 100%;
  287. height: 100%;
  288. }
  289. .spray-wrapper :deep(.list-item_L .list-item__icon_L) {
  290. background-image: url('/@/assets/images/home-container/configurable/minehome/list-icon-file.png');
  291. }
  292. .spray-wrapper :deep(.list-item_N:nth-child(1)) {
  293. background-image: url('/@/assets/images/home-container/configurable/minehome/list-bg-n5.png');
  294. }
  295. .spray-wrapper :deep(.list-item_N:nth-child(2)) {
  296. background-image: url('/@/assets/images/home-container/configurable/minehome/list-bg-n6.png');
  297. }
  298. </style>