index.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. <template>
  2. <!-- 摸排报告 列表 -->
  3. <div v-if="typeValue==6" style="margin-top:.25rem">
  4. <el-row class="ebItem">
  5. <el-col :offset="1" :span="4"><img src="@/assets/img/securityPlan/iconEb.svg" alt="" class="img" width="20"></el-col>
  6. <el-col :span="8">华漕镇</el-col>
  7. <el-col :span="9" ><a href="http://32.0.15.107:8080/mhvi/hcddc.pdf" target="_blank">摸排报告</a></el-col>
  8. <el-col :span="2" style="color:#73FBFD;text-align:center"></el-col>
  9. <div class="panel-footer"></div>
  10. </el-row>
  11. <el-row class="ebItem">
  12. <el-col :offset="1" :span="4"><img src="@/assets/img/securityPlan/iconEb.svg" alt="" class="img" width="20"></el-col>
  13. <el-col :span="8">新虹街道</el-col>
  14. <el-col :span="9" ><a href="http://32.0.15.107:8080/mhvi/xhddc.pdf" target="_blank">摸排报告</a></el-col>
  15. <el-col :span="2" style="color:#73FBFD;text-align:center"></el-col>
  16. <div class="panel-footer"></div>
  17. </el-row>
  18. <el-row class="ebItem">
  19. <el-col :offset="1" :span="4"><img src="@/assets/img/securityPlan/iconEb.svg" alt="" class="img" width="20"></el-col>
  20. <el-col :span="8">七宝镇</el-col>
  21. <el-col :span="9" ><a href="http://32.0.15.107:8080/mhvi/qbddc.pdf" target="_blank">摸排报告</a></el-col>
  22. <el-col :span="2" style="color:#73FBFD;text-align:center"></el-col>
  23. <div class="panel-footer"></div>
  24. </el-row>
  25. <el-row class="ebItem">
  26. <el-col :offset="1" :span="4"><img src="@/assets/img/securityPlan/iconEb.svg" alt="" class="img" width="20"></el-col>
  27. <el-col :span="8">虹桥镇</el-col>
  28. <el-col :span="9" ><a href="http://32.0.15.107:8080/mhvi/hqddc.pdf" target="_blank">摸排报告</a></el-col>
  29. <el-col :span="2" style="color:#73FBFD;text-align:center"></el-col>
  30. <div class="panel-footer"></div>
  31. </el-row>
  32. </div>
  33. <!-- 养老 医疗机构清单 表格 -->
  34. <!-- <div>{{ arrayData }}</div> -->
  35. <div class="rightBotContent" v-else-if="typeValue==29||typeValue==30" style="margin-top:15px;height: calc(100% - .7rem)">
  36. <el-table ref="reportTable" height="100%" :data="arrayData" class="transparentTableRow" style="width: 100%"
  37. @mouseenter="autoScroll(true)" @mouseleave="autoScroll()">
  38. <el-table-column align="left" label="单位名称" prop="facilityName" show-overflow-tooltip></el-table-column>
  39. <!-- <el-table-column align="left" label="设施类型" prop="facilityType"></el-table-column> -->
  40. <el-table-column align="left" label="地址" prop="address" show-overflow-tooltip></el-table-column>
  41. <el-table-column align="left" label="所属街镇" prop="streetTown" show-overflow-tooltip></el-table-column>
  42. <!-- <el-table-column align="left" label="隐患问题" prop="extendData" show-overflow-tooltip>
  43. <template #default="scope">
  44. {{scope.row}}
  45. </template>
  46. </el-table-column> -->
  47. </el-table>
  48. </div>
  49. <!-- 图表+统计 -->
  50. <div v-else>
  51. <el-row >
  52. <el-col :span="10">
  53. <bar :total="staticData.total" v-if="staticData.total"></bar>
  54. </el-col>
  55. <el-col :span="14">
  56. <el-row>
  57. <el-col :span="10" style="border: 1px solid rgba(48, 207, 255, 0.6); margin: .25rem .125rem .125rem; box-shadow: inset 0 0 0.07rem 0.04rem rgb(115 251 253 / 40%); box-sizing: border-box"
  58. v-for="(item,index) in staticData.array" :key="index"
  59. @click="staticsPoint(item.streetTown)">
  60. <div style="padding: 0.2rem 0; text-align: center">
  61. <span style="display: block">
  62. <Strong :style="{ color: item.color, fontSize: '0.3rem'}" >
  63. <CountTo :startVal='0' :endVal='item.count || 0' :duration='3000'>{{ item.count || 0 }}</CountTo>
  64. </Strong>
  65. </span>
  66. <span>{{item.streetTown}}</span>
  67. </div>
  68. </el-col>
  69. </el-row>
  70. </el-col>
  71. </el-row>
  72. </div>
  73. <!-- <div>{{ staticData.array }}</div> -->
  74. <!-- <div v-else style="text-align:center;margin-top:1rem;color:antiquewhite">暂无数据 ...</div> -->
  75. </template>
  76. <script>
  77. import linstener from "@c/mixins/linstener";
  78. import bar from "@c/bar/index2";
  79. export default {
  80. mixins: [linstener],
  81. components: { bar },
  82. props: {
  83. typeValue: { type: Number, default: () => 1 },
  84. arrayData:{ type: Array, default: () => [] },
  85. staticData:{type: Object, default: () => {} }
  86. },
  87. mixins: [linstener],
  88. data() {
  89. return {
  90. streetDynamicData: [
  91. {
  92. "dangerIssue": "15.6%",
  93. "address": 14,
  94. "medicalName": 90,
  95. "streetTown": "华漕镇",
  96. "processedRate": "0.0%"
  97. },
  98. {
  99. "dangerIssue": "78.8%",
  100. "address": 67,
  101. "medicalName": 85,
  102. "streetTown": "新虹街道",
  103. "processedRate": "0.0%"
  104. },
  105. {
  106. "dangerIssue": "17.8%",
  107. "address": 292,
  108. "medicalName": 1641,
  109. "streetTown": "七宝镇",
  110. "processedRate": "0.0%"
  111. },
  112. {
  113. "dangerIssue": "37.4%",
  114. "address": 474,
  115. "medicalName": 1266,
  116. "streetTown": "虹桥镇",
  117. "processedRate": "0.0%"
  118. },
  119. {
  120. "dangerIssue": "34.3%",
  121. "address": 82,
  122. "medicalName": 239,
  123. "streetTown": "古美路街道",
  124. "processedRate": "0.0%"
  125. },
  126. {
  127. "dangerIssue": "15.7%",
  128. "address": 336,
  129. "medicalName": 2144,
  130. "streetTown": "莘庄镇",
  131. "processedRate": "0.0%"
  132. },
  133. {
  134. "dangerIssue": "39.1%",
  135. "address": 358,
  136. "medicalName": 916,
  137. "streetTown": "梅陇镇",
  138. "processedRate": "0.0%"
  139. },
  140. {
  141. "dangerIssue": "16.1%",
  142. "address": 293,
  143. "medicalName": 1823,
  144. "streetTown": "颛桥镇",
  145. "processedRate": "0.0%"
  146. },
  147. {
  148. "dangerIssue": "19.8%",
  149. "address": 133,
  150. "medicalName": 673,
  151. "streetTown": "马桥镇",
  152. "processedRate": "0.0%"
  153. },
  154. {
  155. "dangerIssue": "49.6%",
  156. "address": 64,
  157. "medicalName": 129,
  158. "streetTown": "江川路街道",
  159. "processedRate": "0.0%"
  160. },
  161. {
  162. "dangerIssue": "16.0%",
  163. "address": 512,
  164. "medicalName": 3205,
  165. "streetTown": "吴泾镇",
  166. "processedRate": "0.0%"
  167. },
  168. {
  169. "dangerIssue": "97.1%",
  170. "address": 4652,
  171. "medicalName": 4791,
  172. "streetTown": "浦锦街道",
  173. "processedRate": "0.0%"
  174. },
  175. {
  176. "dangerIssue": "15.9%",
  177. "address": 342,
  178. "medicalName": 2157,
  179. "streetTown": "浦江镇",
  180. "processedRate": "0.0%"
  181. },
  182. {
  183. "dangerIssue": "8.0%",
  184. "address": 174,
  185. "medicalName": 2174,
  186. "streetTown": "莘庄工业区",
  187. "processedRate": "0.0%"
  188. }], //各街镇物联动态-数据存储
  189. streetDynamicHeaderData: [
  190. { prop: "streetTown", name: "街镇" },
  191. { prop: "medicalName", name: "医疗机构名称" },
  192. { prop: "address", name: "地址" },
  193. { prop: "dangerIssue", name: "隐患问题" },
  194. ], //各街镇物联动态-table表格prop头部定义
  195. };
  196. },
  197. watch: {
  198. "props.typeValue" :function(val){
  199. alert(val)
  200. // console.log(this.staticData)
  201. }
  202. },
  203. mounted() {
  204. },
  205. created() {
  206. setTimeout(() => {
  207. this.autoScroll()
  208. }, 2000)
  209. },
  210. methods: {
  211. staticsPoint(val){
  212. let that = this
  213. this.$axios.post(this.$api.water.baseGgpFacilityList,{
  214. "facilityType": [this.typeValue] ,
  215. "streetTown": val
  216. }).then((res) => {
  217. console.log(res)
  218. let arr = []
  219. if(res.data.length>0){
  220. arr = res.data;
  221. that.$emit("staticsPoint",arr,this.typeValue,val)
  222. }
  223. });
  224. },
  225. beforeDestroy() {
  226. this.autoScroll(true)
  227. },
  228. },
  229. };
  230. </script>
  231. <style scoped lang="scss">
  232. .ebItem{
  233. margin-top:0.17rem;
  234. background:rgba(115, 251, 253, 0.06) !important;
  235. padding:.1rem 0;
  236. font-size:0.175rem;
  237. a{
  238. color:rgb(115, 251, 253)
  239. }
  240. &::before {
  241. position: absolute;
  242. top: 0;
  243. left: 0;
  244. content: "";
  245. width: 10px;
  246. height: 10px;
  247. border-left: 1px solid #02a6b5;
  248. border-top: 1px solid #02a6b5;
  249. }
  250. &::after {
  251. position: absolute;
  252. top: 0;
  253. right: 0;
  254. content: "";
  255. width: 10px;
  256. height: 10px;
  257. border-right: 1px solid #02a6b5;
  258. border-top: 1px solid #02a6b5;
  259. }
  260. .panel-footer {
  261. position: absolute;
  262. left: 0;
  263. bottom: 0;
  264. width: 100%;
  265. &::before {
  266. position: absolute;
  267. bottom: 0;
  268. left: 0;
  269. content: "";
  270. width: 10px;
  271. height: 10px;
  272. border-left: 1px solid #02a6b5;
  273. border-bottom: 1px solid #02a6b5;
  274. }
  275. &::after {
  276. position: absolute;
  277. right: 0;
  278. bottom: 0;
  279. content: "";
  280. width: 10px;
  281. height: 10px;
  282. border-right: 1px solid #02a6b5;
  283. border-bottom: 1px solid #02a6b5;
  284. }
  285. }
  286. }
  287. </style>