929700b8787619c492bdffa8d497fc685586392d.svn-base 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  1. <template>
  2. <div id="eventDetailBody" style="padding: 3px;" :style="{'height':testHeight+'px',}" class="problem_detail_wrapper">
  3. <div
  4. :style="{'height':testHeight+'px',}"
  5. style="width:46%;float:left;border:1px solid #d5d5ff;margin-right:5px;"
  6. >
  7. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">基本信息</p>
  8. <el-form
  9. label-position="right"
  10. label-width="120px"
  11. :style="{'max-height':testHeight-30+'px',}"
  12. style="overflow-y: auto;height:100%;margin:5px;"
  13. :model="problemDetail"
  14. >
  15. <el-form-item label="地下水测站名称:">
  16. <p
  17. style="font-weight: bold;border-bottom:1px dashed rgb(198, 226, 255);"
  18. >{{problemDetail.nm}}</p>
  19. <!-- <el-input v-model="problemDetail.nm" :disabled="true"></el-input> -->
  20. </el-form-item>
  21. <el-form-item label="问题类别:">
  22. <p
  23. style="font-weight: bold;border-bottom:1px dashed rgb(198, 226, 255);"
  24. >{{problemDetail.inspPblmName}}</p>
  25. <!-- <el-input v-model="problemDetail.inspPblmsName"></el-input> -->
  26. </el-form-item>
  27. <el-form-item label="检查项目:">
  28. <p
  29. style="font-weight: bold;border-bottom:1px dashed rgb(198, 226, 255);"
  30. >{{problemDetail.inspPblmsName}}</p>
  31. <!-- <el-input v-model="problemDetail.checkPoint"></el-input> -->
  32. </el-form-item>
  33. <el-form-item label="问题描述:">
  34. <p
  35. style="font-weight: bold;border-bottom:1px dashed rgb(198, 226, 255);"
  36. >{{problemDetail.inspPblmDesc}}</p>
  37. <!-- <el-input v-model="problemDetail.pblmDesc"></el-input> -->
  38. </el-form-item>
  39. <!-- <el-form-item label="详细描述:">
  40. <p style="font-weight: bold;border-bottom:1px dashed rgb(198, 226, 255);">{{problemDetail.inspPblmDesc}}</p>-->
  41. <!-- <el-input v-model="problemDetail.pblmDesc"></el-input> -->
  42. <!-- </el-form-item> -->
  43. <el-form-item label="整改意见:">
  44. <p
  45. style="font-weight: bold;border-bottom:1px dashed rgb(198, 226, 255);;"
  46. >{{problemDetail.note}}</p>
  47. <!-- <el-input v-model="problemDetail.note"></el-input> -->
  48. </el-form-item>
  49. <el-form-item label="是否为典型问题:">
  50. <!-- <p>{{problemDetail.ifCasePblm}}</p> -->
  51. <span v-if="problemDetail.ifCasePblm == 1">典型</span>
  52. <span v-if="problemDetail.ifCasePblm == 0">非典型</span>
  53. <!-- <el-input v-model="problemDetail.ifCasePblm"></el-input> -->
  54. </el-form-item>
  55. <el-form-item label="严重程度:">
  56. <!-- <p>{{problemDetail.inspPblmCate}}</p> -->
  57. <span
  58. style="padding: 3px 10px;background:#27C19F;border-radius:15px;color:rgba(255,255,255,1)"
  59. v-if="problemDetail.inspPblmCate == 0"
  60. >一般</span>
  61. <span
  62. style="padding: 3px 10px;background:#E6A23C;border-radius:15px;color:rgba(255,255,255,1)"
  63. v-if="problemDetail.inspPblmCate == 1"
  64. >较重</span>
  65. <span
  66. style="padding: 3px 10px;background:#F56C6C;border-radius:15px;color:rgba(255,255,255,1)"
  67. v-if="problemDetail.inspPblmCate == 2"
  68. >严重</span>
  69. <!-- <el-input v-model="problemDetail.inspPblmCate"></el-input> -->
  70. </el-form-item>
  71. <el-form-item label="处理状态:">
  72. <span v-if="problemDetail.pblmStat == 1">已上报</span>
  73. <span v-else-if="problemDetail.pblmStat == 0">未上报</span>
  74. </el-form-item>
  75. <!-- <el-form-item label="处理状态:">
  76. <span
  77. style="padding: 3px 10px;background:#27C19F;border-radius:15px;color:rgba(255,255,255,1)"
  78. v-if="problemDetail.pblmStat == 0"
  79. >未督查</span>
  80. <span
  81. style="padding: 3px 10px;background:#E6A23C;border-radius:15px;color:rgba(255,255,255,1)"
  82. v-if="problemDetail.pblmStat == 1"
  83. >督查中</span>
  84. <span
  85. style="padding: 3px 10px;background:#F56C6C;border-radius:15px;color:rgba(255,255,255,1)"
  86. v-if="problemDetail.state == 2"
  87. >严重</span>
  88. </el-form-item>-->
  89. <el-form-item label="上报人:">
  90. <p
  91. style="font-weight: bold;border-bottom:1px dashed rgb(198, 226, 255);;"
  92. >{{problemDetail.persName}}</p>
  93. <!-- <el-input v-model="problemDetail.persName"></el-input> -->
  94. </el-form-item>
  95. </el-form>
  96. </div>
  97. <div
  98. :style="{'height':testHeight+'px',}"
  99. style="width:50%;float:left;border:1px solid #d5d5ff;"
  100. >
  101. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">多媒体信息</p>
  102. <el-tabs style="overflow-y: auto;margin:5px;" :style="{'max-height':testHeight-40 +'px',}">
  103. <el-tab-pane :label="picturetabName" style="height: 350px;">
  104. <el-carousel :interval="4000" height="350px" id="detailImg">
  105. <el-carousel-item v-for="(item,index) in pictureArray" :key="index">
  106. <!-- <a :href="`${hostUrl}/${item.filePath}`" target="_blank">-->
  107. <img style="height:100%;" :src="`${hostUrl}/${item.filePath}`" alt>
  108. <!-- </a>-->
  109. </el-carousel-item>
  110. <el-carousel-item v-if="pictureArray.length==0">
  111. <p>暂无图片信息</p>
  112. </el-carousel-item>
  113. </el-carousel>
  114. </el-tab-pane>
  115. <el-tab-pane :label="audiotabName">
  116. <elaudio
  117. v-for="(audio,index) in audioArray"
  118. :key="index"
  119. style="margin-left:15%"
  120. :theUrl="`${hostUrl}/${audio.filePath}`"
  121. ></elaudio>
  122. <p v-if="audioArray.length==0">暂无音频信息</p>
  123. </el-tab-pane>
  124. <el-tab-pane :label="videotabName">
  125. <el-carousel :interval="4000" height="350px">
  126. <el-carousel-item v-for="(item,index) in videoArray" :key="index">
  127. <video-player
  128. class="vjs-custom-skin"
  129. ref="videoPlayer"
  130. :options="item"
  131. :playsinline="true"
  132. ></video-player>
  133. </el-carousel-item>
  134. <el-carousel-item v-if="videoArray.length==0">
  135. <p>暂无视频信息</p>
  136. </el-carousel-item>
  137. </el-carousel>
  138. </el-tab-pane>
  139. </el-tabs>
  140. <!-- <p style="margin-top:10px;margin-bottom: 10px"><i class="el-icon-caret-right"></i><span style="width:120px;padding-left: 10px">图像资料</span><span class="hrs"></span></p>
  141. <p style="margin-top:10px;margin-bottom: 10px"><i class="el-icon-caret-right"></i><span style="width:120px;padding-left: 10px">音频资料</span><span class="hrs"></span></p>
  142. <p style="margin-top:10px;margin-bottom: 10px"><i class="el-icon-caret-right"></i><span style="width:120px;padding-left: 10px">视频资料</span><span class="hrs"></span></p>
  143. -->
  144. </div>
  145. <!-- <tr>
  146. <td class="name">图像 &nbsp;</td>
  147. <td colspan="3"></td>
  148. </tr>
  149. <tr style id="photo">
  150. <td colspan="4">
  151. <el-carousel v-if="problemDetail.gwComFiles && problemDetail.gwComFiles.length" :interval="4000" type="card" height="300px">
  152. <el-carousel-item v-for="(item,index) in problemDetail.gwComFiles" :key="index">
  153. <a :href="item.gwComFiles" target="_blank">
  154. <!-- <img style="width:100%;height:100%;" :src="`http://10.1.102.136:8101/${item.filePath}`" alt>-->
  155. <!-- <img style="width:100%;height:100%;" :src="`${hostUrl}/${item.filePath}`" alt> -->
  156. <!-- <img style="width:100%;height:100%;" :src="item.filePath" alt>
  157. </a>
  158. </el-carousel-item>
  159. </el-carousel>
  160. <p v-else style="margin-left: auto;margin-right: auto;color: #acacac;">暂无图片
  161. </p>-->
  162. </div>
  163. </template>
  164. <script>
  165. import Viewer from 'viewerjs';
  166. import 'viewerjs/dist/viewer.css';
  167. import {
  168. deleteFileById,
  169. getsuperviseinspect,
  170. getFileByBiz,
  171. getSuperviseGroup,
  172. showDetailsXq
  173. } from "../../api/duChaAPI.js";
  174. import { hostUrl } from "@util/global_variable.js";
  175. // import elaudio from '../widgets/elAudio.vue'
  176. export default {
  177. props: ["details", "problemId"],
  178. components: {
  179. elaudio: resolve => {
  180. require(["../../widgets/elAudio.vue"], resolve);
  181. }
  182. },
  183. data() {
  184. return {
  185. testHeight: window.innerHeight * 0.6,
  186. activeName: "0",
  187. superviseinspect: {},
  188. fileList: [],
  189. groupingList: [],
  190. fileListloading: false,
  191. groupListloading: false,
  192. problemDetail: {
  193. checkPoint: "",
  194. collTime: "",
  195. commonFileIds: "",
  196. cwsCode: "",
  197. cwsName: "",
  198. dataStat: "",
  199. endTime: "",
  200. fileNo: "",
  201. fileNoNumber: "",
  202. gwComFiles: "",
  203. ifCasePblm: "",
  204. inspAddDesc: "",
  205. inspGroupId: "",
  206. inspPblmCate: "",
  207. inspPblmCode: "",
  208. inspPblmDesc: "",
  209. inspPblmName: "",
  210. inspPblmOrgName: "",
  211. inspPblmType: "",
  212. inspPblmsName: "",
  213. nm: "",
  214. note: "",
  215. objId: "",
  216. objNm: "",
  217. objType: "",
  218. pblmDesc: "",
  219. pblmId: "",
  220. pblmLat: "",
  221. pblmLong: "",
  222. pblmPersName: "",
  223. pblmStat: "",
  224. pblmsId: "",
  225. pblmsTypeId: "",
  226. persName: "",
  227. pguid: "",
  228. recPers: "",
  229. regid: "",
  230. reviConc: "",
  231. reviOpin: "",
  232. reviOrgGuid: "",
  233. srcDesc: "",
  234. startTime: "",
  235. state: "",
  236. villType: "",
  237. villageCode: ""
  238. },
  239. pictureArray: [],
  240. audioArray: [],
  241. videoArray: [],
  242. audiotabName: "",
  243. videotabName: "",
  244. picturetabName: "",
  245. playerOptions: {
  246. height: "120",
  247. autoplay: true,
  248. muted: true,
  249. language: "en",
  250. playbackRates: [0.7, 1.0, 1.5, 2.0],
  251. sources: [
  252. {
  253. type: "video/mp4",
  254. // mp4
  255. src: "http://vjs.zencdn.net/v/oceans.mp4"
  256. // webm
  257. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  258. },
  259. {
  260. type: "video/mp4",
  261. // mp4
  262. src: "http://vjs.zencdn.net/v/oceans.mp4"
  263. // webm
  264. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  265. },
  266. {
  267. type: "video/mp4",
  268. // mp4
  269. src: "http://vjs.zencdn.net/v/oceans.mp4"
  270. // webm
  271. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  272. },
  273. {
  274. type: "video/mp4",
  275. // mp4
  276. src: "http://vjs.zencdn.net/v/oceans.mp4"
  277. // webm
  278. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  279. }
  280. ]
  281. }
  282. };
  283. },
  284. computed: {
  285. hostUrl(){
  286. return hostUrl
  287. }
  288. },
  289. mounted: function() {
  290. this.problemDetail = {};
  291. this.pictureArray = [];
  292. this.audioArray = [];
  293. this.videoArray = [];
  294. this.showDetails();
  295. },
  296. watch: {
  297. problemId: function() {
  298. this.problemDetail = {};
  299. this.pictureArray = [];
  300. this.audioArray = [];
  301. this.videoArray = [];
  302. this.showDetails();
  303. }
  304. },
  305. methods: {
  306. init() {
  307. this.activeName = "0";
  308. },
  309. showDetails() {
  310. showDetailsXq(this.problemId).then(res => {
  311. this.problemDetail = res.data;
  312. // pictureArray
  313. // audioArray
  314. // videoArray
  315. res.data.gwComFiles.forEach(item => {
  316. if (
  317. item.fileExt == "mp3" ||
  318. item.fileExt == "MP3" ||
  319. item.fileExt == "m4a"
  320. ) {
  321. this.audioArray.push(item);
  322. } else if (
  323. item.fileExt == "jpg" ||
  324. item.fileExt == "JPG" ||
  325. item.fileExt == "png" ||
  326. item.fileExt == "PNG"
  327. ) {
  328. this.pictureArray.push(item);
  329. this.$nextTick(function(){
  330. var ViewerDom = document.getElementById('detailImg');
  331. var viewer = new Viewer(ViewerDom, {
  332. // hide:function(){ //在图片消失的时候销毁viewer
  333. // viewer.destroy();
  334. // }
  335. })
  336. });
  337. } else if (item.fileExt == "mp4" || item.fileExt == "MP4") {
  338. this.videoArray.push({
  339. height: "350",
  340. autoplay: false,
  341. muted: true,
  342. language: "en",
  343. playbackRates: [0.7, 1.0, 1.5, 2.0],
  344. sources: [
  345. {
  346. type: "video/mp4",
  347. // mp4
  348. src: `${this.hostUrl}/${item.filePath}`,
  349. // webm
  350. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  351. }
  352. ]
  353. });
  354. }
  355. });
  356. this.picturetabName = "图片资料(" + this.pictureArray.length + ")";
  357. this.audiotabName = "音频资料(" + this.audioArray.length + ")";
  358. this.videotabName = "视频资料(" + this.videoArray.length + ")";
  359. });
  360. },
  361. }
  362. };
  363. </script>
  364. <style scoped>
  365. @import '../../assets/style/global.css';
  366. .el-form-item {
  367. width: 100%;
  368. margin-bottom: 0;
  369. }
  370. </style>