Browse Source

风险预警弹窗+风险风险分布痰喘

liuxing 1 year ago
parent
commit
b2ad2b1a9b

BIN
app/src/assets/images/no-video.png


+ 424 - 402
app/src/views/Detail/components/VideoInfo.vue

@@ -1,449 +1,471 @@
 <template>
-	<div class="video-list">
-		<!-- 视频 -->
-		<div v-if="caremaList" class="videos">
-			<!-- <img src="../../../assets/images/Group 1321314647.png" alt="" />
-      <img src="../../../assets/images/Group 1321314649.png" alt="" />
-      <img src="../../../assets/images/Group 1321314650.png" alt="" />
-      <img src="../../../assets/images/Group 1321314651.png" alt="" /> -->
-			<template v-for="(item, i) in caremaList">
-				<div class="video" :key="i" v-if="i < 4">
-					<Camera :id="item.sbbm" :byList="caremaList" />
-				</div>
-			</template>
-
-			<!-- <Camera :id="item.sbbm" v-for="(item, i) in caremaList" :key="i" /> -->
-		</div>
-		<Monitor3D ref="monitor" :data="pieData" v-if="pieData" />
-		<div v-if="pieData">
-			<div class="info">
-				<div class="bg-num" @click="clickItem(1)">
-					<div class="line-box">
-						<span :class="{
+  <div class="video-list">
+    <!-- 视频 -->
+    <div v-if="caremaList && caremaList.length > 0" class="videos">
+      <template v-for="(item, i) in caremaList">
+        <div class="video" :key="i" v-if="i < 4">
+          <Camera :id="item.sbbm" :byList="caremaList" />
+        </div>
+      </template>
+    </div>
+    <div v-else class="no-data">
+      <div class="in">
+        <img
+          src="../../../assets/images/no-video.png"
+          style="width: 158px; height: 157px"
+        />
+        <span>暂无视频数据</span>
+      </div>
+    </div>
+    <Monitor3D ref="monitor" :data="pieData" v-if="pieData" />
+    <div v-if="pieData">
+      <div class="info">
+        <div class="bg-num" @click="clickItem(1)">
+          <div class="line-box">
+            <span
+              :class="{
                 line: true,
                 active: pieActive1,
-              }"></span>
-						<span>生命通道监控点位</span>
-					</div>
-					<div>
-						<!-- 在线 -->
-						<div class="dis-online">
-							<div>
-								<span class="online"></span>
-								<span>{{ pieData.smtd.zx || 0 }}个</span>
-							</div>
-							<div>
-								<span class="off-line"> </span>
-								<span>{{ pieData.smtd.bj || 0 }}个</span>
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class="bg-num" @click="clickItem(2)">
-					<div class="line-box">
-						<span :class="{
+              }"
+            ></span>
+            <span>生命通道监控点位</span>
+          </div>
+          <div>
+            <!-- 在线 -->
+            <div class="dis-online">
+              <div>
+                <span class="online"></span>
+                <span>{{ pieData.smtd.zx || 0 }}个</span>
+              </div>
+              <div>
+                <span class="off-line"> </span>
+                <span>{{ pieData.smtd.bj || 0 }}个</span>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="bg-num" @click="clickItem(2)">
+          <div class="line-box">
+            <span
+              :class="{
                 line: true,
                 'line-b': true,
                 active: pieActive2,
-              }"></span>
-						<span>电气火灾监测点位</span>
-					</div>
-					<div>
-						<!-- 在线 -->
-						<div class="dis-online">
-							<div>
-								<span class="online"></span>
-								<span>{{ pieData.dqhz.zx || 0 }}个</span>
-							</div>
-							<div>
-								<span class="off-line"> </span>
-								<span>{{ pieData.dqhz.bj || 0 }}个</span>
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class="bg-num" @click="clickItem(3)">
-					<div class="line-box">
-						<span :class="{
+              }"
+            ></span>
+            <span>电气火灾监测点位</span>
+          </div>
+          <div>
+            <!-- 在线 -->
+            <div class="dis-online">
+              <div>
+                <span class="online"></span>
+                <span>{{ pieData.dqhz.zx || 0 }}个</span>
+              </div>
+              <div>
+                <span class="off-line"> </span>
+                <span>{{ pieData.dqhz.bj || 0 }}个</span>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="bg-num" @click="clickItem(3)">
+          <div class="line-box">
+            <span
+              :class="{
                 line: true,
                 active: pieActive3,
                 'line-g': true,
-              }"></span>
-						<span>水压检测点位</span>
-					</div>
-					<div>
-						<!-- 在线 -->
-						<div class="dis-online">
-							<div>
-								<span class="online"></span>
-								<span>{{ pieData.sy.zx || 0 }}个</span>
-							</div>
-							<div>
-								<span class="off-line"> </span>
-								<span>{{ pieData.sy.bj || 0 }}个</span>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-			<div class="info-2">
-				<div class="bg-num" @click="clickItem(4)">
-					<div class="line-box">
-						<span :class="{
+              }"
+            ></span>
+            <span>水压检测点位</span>
+          </div>
+          <div>
+            <!-- 在线 -->
+            <div class="dis-online">
+              <div>
+                <span class="online"></span>
+                <span>{{ pieData.sy.zx || 0 }}个</span>
+              </div>
+              <div>
+                <span class="off-line"> </span>
+                <span>{{ pieData.sy.bj || 0 }}个</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="info-2">
+        <div class="bg-num" @click="clickItem(4)">
+          <div class="line-box">
+            <span
+              :class="{
                 line: true,
                 'line-d': true,
                 active: pieActive4,
-              }"></span>
-						<span>火灾报警主机监测点位</span>
-					</div>
-					<div>
-						<!-- 在线 -->
-						<div class="dis-online">
-							<div>
-								<span class="online"></span>
-								<span>{{ pieData.hzbjzj.zx || 0 }}个</span>
-							</div>
-							<div>
-								<span class="off-line"> </span>
-								<span>{{ pieData.hzbjzj.bj || 0 }}个</span>
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class="bg-num" @click="clickItem(5)">
-					<div class="line-box">
-						<span :class="{
+              }"
+            ></span>
+            <span>火灾报警主机监测点位</span>
+          </div>
+          <div>
+            <!-- 在线 -->
+            <div class="dis-online">
+              <div>
+                <span class="online"></span>
+                <span>{{ pieData.hzbjzj.zx || 0 }}个</span>
+              </div>
+              <div>
+                <span class="off-line"> </span>
+                <span>{{ pieData.hzbjzj.bj || 0 }}个</span>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="bg-num" @click="clickItem(5)">
+          <div class="line-box">
+            <span
+              :class="{
                 line: true,
                 'line-e': true,
                 active: pieActive5,
-              }"></span>
-						<span>消防监控室人员离岗检测点位</span>
-					</div>
-					<div>
-						<!-- 在线 -->
-						<div class="dis-online">
-							<div>
-								<span class="online"></span>
-								<span>{{ pieData.xfkzs.zx || 0 }}个</span>
-							</div>
-							<div>
-								<span class="off-line"> </span>
-								<span>{{ pieData.xfkzs.bj || 0 }}个</span>
-							</div>
-						</div>
-					</div>
-				</div>
-			</div>
-		</div>
-	</div>
+              }"
+            ></span>
+            <span>消防监控室人员离岗检测点位</span>
+          </div>
+          <div>
+            <!-- 在线 -->
+            <div class="dis-online">
+              <div>
+                <span class="online"></span>
+                <span>{{ pieData.xfkzs.zx || 0 }}个</span>
+              </div>
+              <div>
+                <span class="off-line"> </span>
+                <span>{{ pieData.xfkzs.bj || 0 }}个</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
-	import Monitor3D from "@/components/Monitor3D.vue";
-	import {
-		getDeviceList,
-		getJrs
-	} from "@/api/iot.js";
-	import {
-		getXfjrs
-	} from "@/api/detail.js";
-	import Camera from "@/components/Camera.vue";
+import Monitor3D from "@/components/Monitor3D.vue";
+import { getDeviceList, getJrs } from "@/api/iot.js";
+import { getXfjrs } from "@/api/detail.js";
+import Camera from "@/components/Camera.vue";
 
-	export default {
-		components: {
-			Monitor3D,
-			Camera
-		},
-		data() {
-			return {
-				pieActive1: true,
-				pieActive2: true,
-				pieActive3: true,
-				pieActive4: true,
-				pieActive5: true,
-				ctx: [
-					"生命通道监控点位",
-					"电气火灾监测点位",
-					"水压检测点位",
-					"火灾报警主机监测点位",
-					"消防监控室人员离岗检测点位",
-				],
-				caremaList: [],
-				pieData: null,
-			};
-		},
-		props: ["detail"],
-		methods: {
-			clickItem(idx) {
-				// this[`pieActive${idx}`] = !this[`pieActive${idx}`];
-				// this.$refs.monitor.legendToggleSelect(this.ctx[idx - 1]);
-				let sblx = "";
-				if (idx === 1) {
-					sblx = "生命通道监测";
-				} else if (idx === 2) {
-					sblx = "电气火灾终端";
-				} else if (idx === 3) {
-					sblx = "水压监测终端";
-				} else if (idx === 4) {
-					sblx = "火灾报警";
-				} else if (idx === 5) {
-					sblx = "消防控制室监控";
-				}
-				this.$emit("openModal", {
-					name: "zhxfModal",
-					params: {
-						sblx,
-						gcjzmc: this.detail.gcjzmc
-					},
-				});
-			},
-			getCaremarList() {
-				getDeviceList({
-					jzid: this.detail.id,
-					pageNum: 1,
-					pageSize: 20,
-					zt: "在线",
-					sblx: "生命通道监测",
-				}).then((res) => {
-					this.caremaList = res.data.rows;
+export default {
+  components: {
+    Monitor3D,
+    Camera,
+  },
+  data() {
+    return {
+      pieActive1: true,
+      pieActive2: true,
+      pieActive3: true,
+      pieActive4: true,
+      pieActive5: true,
+      ctx: [
+        "生命通道监控点位",
+        "电气火灾监测点位",
+        "水压检测点位",
+        "火灾报警主机监测点位",
+        "消防监控室人员离岗检测点位",
+      ],
+      caremaList: [],
+      pieData: null,
+    };
+  },
+  props: ["detail"],
+  methods: {
+    clickItem(idx) {
+      // this[`pieActive${idx}`] = !this[`pieActive${idx}`];
+      // this.$refs.monitor.legendToggleSelect(this.ctx[idx - 1]);
+      let sblx = "";
+      if (idx === 1) {
+        sblx = "生命通道监测";
+      } else if (idx === 2) {
+        sblx = "电气火灾终端";
+      } else if (idx === 3) {
+        sblx = "水压监测终端";
+      } else if (idx === 4) {
+        sblx = "火灾报警";
+      } else if (idx === 5) {
+        sblx = "消防控制室监控";
+      }
+      this.$emit("openModal", {
+        name: "zhxfModal",
+        params: {
+          sblx,
+          gcjzmc: this.detail.gcjzmc,
+        },
+      });
+    },
+    getCaremarList() {
+      getDeviceList({
+        jzid: this.detail.id,
+        pageNum: 1,
+        pageSize: 20,
+        zt: "在线",
+        sblx: "生命通道监测",
+      }).then((res) => {
+        this.caremaList = res.data.rows;
 
-					getDeviceList({
-						jzid: this.detail.id,
-						pageNum: 1,
-						pageSize: 20,
-						zt: "在线",
-						sblx: "消防控制室监控",
-					}).then((res) => {
-						this.caremaList = this.caremaList.concat(res.data.rows);
-					});
-				});
-			},
-			getJrsList() {
-				getXfjrs({
-					pageNum: 1,
-					pageSize: 100,
-					jzid: this.detail.id,
-				}).then((res) => {
-					const pieData = {
-						dqhz: {
-							zs: null,
-							bj: null,
-							zx: null,
-						},
-						hzbjzj: {
-							zs: null,
-							bj: null,
-							zx: null,
-						},
-						smtd: {
-							zs: null,
-							bj: null,
-							zx: null,
-						},
-						sy: {
-							zs: null,
-							bj: null,
-							zx: null,
-						},
-						xfkzs: {
-							zs: null,
-							bj: null,
-							zx: null,
-						},
-					};
-					if (res.data.rows) {
-						res.data.rows.forEach((p) => {
-							if (p.sblx.indexOf("水压") >= 0) {
-								// 水压
-								pieData.sy.zs += p.zxs || 0;
-								pieData.sy.zx += p.sbzs || 0;
-								pieData.sy.bj += p.gjs || 0;
-							} else if (p.sblx.indexOf("生命通道") >= 0) {
-								// 生命通道
-								pieData.smtd.zs += p.sbzs || 0;
-								pieData.smtd.zx += p.zxs || 0;
-								pieData.smtd.bj += p.gjs || 0;
-							} else if (p.sblx.indexOf("消防控制室") >= 0) {
-								// 消防控制室
-								pieData.xfkzs.zs += p.sbzs || 0;
-								pieData.xfkzs.zx += p.zxs || 0;
-								pieData.xfkzs.bj += p.gjs || 0;
-							} else if (p.sblx.indexOf("电气火灾") >= 0) {
-								console.log(p);
-								// 电器火灾
-								pieData.dqhz.zs += p.sbzs || 0;
-								pieData.dqhz.zx += p.zxs || 0;
-								pieData.dqhz.bj += p.gjs || 0;
-							} else if (p.sblx.indexOf("火灾报警") >= 0) {
-								// 火灾报警主机
-								pieData.hzbjzj.zs += p.sbzs || 0;
-								pieData.hzbjzj.zx += p.zxs || 0;
-								pieData.hzbjzj.bj += p.gjs || 0;
-							}
-						});
-					}
+        getDeviceList({
+          jzid: this.detail.id,
+          pageNum: 1,
+          pageSize: 20,
+          zt: "在线",
+          sblx: "消防控制室监控",
+        }).then((res) => {
+          this.caremaList = this.caremaList.concat(res.data.rows);
+        });
+      });
+    },
+    getJrsList() {
+      getXfjrs({
+        pageNum: 1,
+        pageSize: 100,
+        jzid: this.detail.id,
+      }).then((res) => {
+        const pieData = {
+          dqhz: {
+            zs: null,
+            bj: null,
+            zx: null,
+          },
+          hzbjzj: {
+            zs: null,
+            bj: null,
+            zx: null,
+          },
+          smtd: {
+            zs: null,
+            bj: null,
+            zx: null,
+          },
+          sy: {
+            zs: null,
+            bj: null,
+            zx: null,
+          },
+          xfkzs: {
+            zs: null,
+            bj: null,
+            zx: null,
+          },
+        };
+        if (res.data.rows) {
+          res.data.rows.forEach((p) => {
+            if (p.sblx.indexOf("水压") >= 0) {
+              // 水压
+              pieData.sy.zs += p.zxs || 0;
+              pieData.sy.zx += p.sbzs || 0;
+              pieData.sy.bj += p.gjs || 0;
+            } else if (p.sblx.indexOf("生命通道") >= 0) {
+              // 生命通道
+              pieData.smtd.zs += p.sbzs || 0;
+              pieData.smtd.zx += p.zxs || 0;
+              pieData.smtd.bj += p.gjs || 0;
+            } else if (p.sblx.indexOf("消防控制室") >= 0) {
+              // 消防控制室
+              pieData.xfkzs.zs += p.sbzs || 0;
+              pieData.xfkzs.zx += p.zxs || 0;
+              pieData.xfkzs.bj += p.gjs || 0;
+            } else if (p.sblx.indexOf("电气火灾") >= 0) {
+              console.log(p);
+              // 电器火灾
+              pieData.dqhz.zs += p.sbzs || 0;
+              pieData.dqhz.zx += p.zxs || 0;
+              pieData.dqhz.bj += p.gjs || 0;
+            } else if (p.sblx.indexOf("火灾报警") >= 0) {
+              // 火灾报警主机
+              pieData.hzbjzj.zs += p.sbzs || 0;
+              pieData.hzbjzj.zx += p.zxs || 0;
+              pieData.hzbjzj.bj += p.gjs || 0;
+            }
+          });
+        }
 
-					this.pieData = pieData;
-					console.log(this.pieData);
-				});
-			},
-		},
-		mounted() {
-			this.getCaremarList();
-			this.getJrsList();
-		},
-	};
+        this.pieData = pieData;
+        console.log(this.pieData);
+      });
+    },
+  },
+  mounted() {
+    this.getCaremarList();
+    this.getJrsList();
+  },
+};
 </script>
 
 <style lang="less" scoped>
-	.info {
-		display: flex;
-		justify-content: space-between;
+.info {
+  display: flex;
+  justify-content: space-between;
 
-		.online {
-			display: inline-block;
-			width: 8px;
-			height: 8px;
-			background: #15ff2d;
-			border-radius: 50%;
-			margin-right: 2px;
-		}
+  .online {
+    display: inline-block;
+    width: 8px;
+    height: 8px;
+    background: #15ff2d;
+    border-radius: 50%;
+    margin-right: 2px;
+  }
 
-		.off-line {
-			display: inline-block;
-			width: 8px;
-			height: 8px;
-			background: #f06040;
-			border-radius: 50%;
-			margin-right: 2px;
-		}
+  .off-line {
+    display: inline-block;
+    width: 8px;
+    height: 8px;
+    background: #f06040;
+    border-radius: 50%;
+    margin-right: 2px;
+  }
 
-		.dis-online {
-			display: flex;
-			// justify-content: space-between;
-			gap: 20px;
-			margin-top: 12px;
-		}
+  .dis-online {
+    display: flex;
+    // justify-content: space-between;
+    gap: 20px;
+    margin-top: 12px;
+  }
 
-		// 渐变
-		.bg-num {
-			width: 125px;
-			height: 50px;
-			background: rgba(0, 213, 255, 0.18);
-			padding: 5px 5px;
-			cursor: pointer;
-		}
+  // 渐变
+  .bg-num {
+    width: 125px;
+    height: 50px;
+    background: rgba(0, 213, 255, 0.18);
+    padding: 5px 5px;
+    cursor: pointer;
+  }
 
-		.line-box {
-			display: flex;
-			align-items: center;
-			margin-top: 7px;
-		}
+  .line-box {
+    display: flex;
+    align-items: center;
+    margin-top: 7px;
+  }
 
-		.line {
-			display: inline-block;
-			width: 14px;
-			height: 14px;
-			background: #d3d3d3;
-			margin-right: 5px;
+  .line {
+    display: inline-block;
+    width: 14px;
+    height: 14px;
+    background: #d3d3d3;
+    margin-right: 5px;
 
-			&.active {
-				background: #d5c307;
-			}
-		}
+    &.active {
+      background: #d5c307;
+    }
+  }
 
-		.line-g {
-			&.active {
-				background: #12a647;
-			}
-		}
+  .line-g {
+    &.active {
+      background: #12a647;
+    }
+  }
 
-		.line-b {
-			&.active {
-				background: #01adef;
-			}
-		}
-	}
+  .line-b {
+    &.active {
+      background: #01adef;
+    }
+  }
+}
 
-	.info-2 {
-		display: flex;
-		margin-top: 4px;
-		gap: 8px;
+.info-2 {
+  display: flex;
+  margin-top: 4px;
+  gap: 8px;
 
-		.online {
-			display: inline-block;
-			width: 8px;
-			height: 8px;
-			background: #15ff2d;
-			border-radius: 50%;
-			margin-right: 2px;
-		}
+  .online {
+    display: inline-block;
+    width: 8px;
+    height: 8px;
+    background: #15ff2d;
+    border-radius: 50%;
+    margin-right: 2px;
+  }
 
-		.off-line {
-			display: inline-block;
-			width: 8px;
-			height: 8px;
-			background: #f06040;
-			border-radius: 50%;
-			margin-right: 2px;
-		}
+  .off-line {
+    display: inline-block;
+    width: 8px;
+    height: 8px;
+    background: #f06040;
+    border-radius: 50%;
+    margin-right: 2px;
+  }
 
-		.dis-online {
-			display: flex;
-			// justify-content: space-between;
-			gap: 20px;
-			margin-top: 12px;
-		}
+  .dis-online {
+    display: flex;
+    // justify-content: space-between;
+    gap: 20px;
+    margin-top: 12px;
+  }
 
-		.bg-num {
-			width: 197px;
-			height: 50px;
-			background: rgba(0, 213, 255, 0.18);
-			padding: 5px 5px;
-			cursor: pointer;
-		}
+  .bg-num {
+    width: 197px;
+    height: 50px;
+    background: rgba(0, 213, 255, 0.18);
+    padding: 5px 5px;
+    cursor: pointer;
+  }
 
-		.line-box {
-			display: flex;
-			align-items: center;
-			margin-top: 7px;
-		}
+  .line-box {
+    display: flex;
+    align-items: center;
+    margin-top: 7px;
+  }
 
-		.line {
-			display: inline-block;
-			width: 14px;
-			height: 14px;
-			background: #d3d3d3;
-			margin-right: 5px;
-		}
+  .line {
+    display: inline-block;
+    width: 14px;
+    height: 14px;
+    background: #d3d3d3;
+    margin-right: 5px;
+  }
 
-		.line-d {
-			&.active {
-				background: #caf869;
-			}
-		}
+  .line-d {
+    &.active {
+      background: #caf869;
+    }
+  }
 
-		.line-e {
-			&.active {
-				background: #88ffc6;
-			}
-		}
-	}
+  .line-e {
+    &.active {
+      background: #88ffc6;
+    }
+  }
+}
 
-	.video-list {
-		padding: 10px 10px;
-		font-size: 13px;
-	}
+.video-list {
+  padding: 10px 10px;
+  font-size: 13px;
+}
 
-	.videos {
-		display: flex;
-		flex-wrap: wrap;
-		width: 100%;
-		height: 192px;
+.videos {
+  display: flex;
+  flex-wrap: wrap;
+  width: 100%;
+  height: 192px;
 
-		.video {
-			width: 208px;
-			height: 96px;
-		}
+  .video {
+    width: 208px;
+    height: 96px;
+  }
+}
+.no-data {
+  width: 100%;
+  height: 192px;
+  display: flex;
+  justify-content: center;
+  align-content: center;
+  .in {
+	display: flex;
+	flex-direction: column;
+	span {
+		text-align: center;
 	}
+  }
+}
 </style>

+ 3 - 0
app/src/views/Detail/components/YhModalContent.vue

@@ -153,6 +153,9 @@ export default {
         params.zgjd = null;
       }
 
+      params.pageNum = this.params.pageNum;
+      params.pageSize = this.params.pageSize;
+
       console.log(this.params);
       console.log(params);
       ylycyhzzqdTc(params).then((res) => {

+ 375 - 347
app/src/views/FireCondition/components/hzfbCont.vue

@@ -1,373 +1,401 @@
 <script>
-	import {
-		getJdjcUnit,
-		getGcjztjUnit
-	} from "@/api/index.js";
-	import {
-		area
-	} from "@/api/area";
-	import punishmentMixin from "@/mixin/unit.js";
-	import {
-		hzfxLsit,
-	} from "@/api/hzfx.js";
-	export default {
-		name: "BasicInfoModalContent",
-		mixins: [punishmentMixin],
-		data() {
-			return {
-				qhyy: '',
-				sw: '',
-				options: [],
-				options1: [{
-						value: '是',
-						label: '是'
-					},
-					{
-						value: '否',
-						label: '否'
-					}
-				],
-				fxdjList: [],
-				tableData: [],
-				unitList: [],
-				value: "全市",
-				params: {
-					pageSize: 10,
-					pageNum: 1,
-				},
-				total: 0,
-				search: "",
-				search1: "",
-				search2: "",
-				// Unittype: "", // 建筑分类
-				// year: "", // 年代
-				// hnum: "", //高度
-				// management: "", //管理形式
-				// subject: "", //管理主体
-				// maintenance: "", //维保形式
-				// risklevel: "", //风险等级
-			};
-		},
-		props: {
-			qy: String,
-		},
-		watch: {
-			qy: {
-				handler(val) {
-					this.value = val;
-					this.funUnitList();
-					this.handUnitList();
-				},
-				immediate: true,
-				deep: true,
-			},
-		},
-		methods: {
-			rowClickHandler(val) {
-				// this.$router.push(`/detail?id=${val.id}`);
-			},
-			funUnitList() {
-				hzfxLsit({
-					...this.params,
-					qx: this.value === "重庆市" ? "" : this.value,
-					zqdd: this.search,
-					srs: this.sw,
-					zqsj: this.search1,
-					qhyy1: this.qhyy
-				}).then((res) => {
-					this.tableData = res.data.rows;
-					this.total = res.data.total;
-				});
-			},
-			handleSizeChange(val) {
-				this.params.pageSize = val;
-				this.funUnitList();
-			},
-			handleCurrentChange(val) {
-				this.params.pageNum = val;
-				this.funUnitList();
-			},
-			handUnitList() {
-				hzfxLsit({
-					qy: this.value === "重庆市" ? "" : this.value,
-				}).then((res) => {
-					const list = res.data.rows[0];
-					// this.unitList = [
-					//   {
-					//     title: "高层建筑总数(栋)",
-					//     unitNum: list.ggjz + list.gyjz + list.zzjz,
-					//   },
-					//   {
-					//     title: "超高层建筑总数(栋)",
-					//     unitNum: list.cggjz,
-					//   },
-					//   {
-					//     title: "老旧高层建筑总数(栋)",
-					//     unitNum: list.ljzzgc,
-					//   },
-					//   {
-					//     title: "公共建筑总数(栋)",
-					//     unitNum: list.ggjz,
-					//   },
-					//   {
-					//     title: "住宅建筑总数(栋)",
-					//     unitNum: list.zzjz,
-					//   },
-					// ];
-				});
-			},
-			resetForm() {
-				this.qhyy = '',
-					this.sw = '',
-					this.value = "";
-				this.search = "";
-				this.search1 = "";
-				this.params = {
-						pageSize: 10,
-						pageNum: 1,
-					},
-					// this.params.Unittype = ""; // 建筑分类
-					// this.params.year = ""; // 年代
-					// this.params.hnum = ""; //高度
-					// this.params.management = ""; //管理形式
-					// this.params.subject = ""; //管理主体
-					// this.params.maintenance = ""; //维保形式
-					// this.params.risklevel = ""; //风险等级
-					this.funUnitList();
-			},
-		},
-		created() {
-			this.funUnitList();
-			this.handUnitList();
-			area({
-				pageNum: 1,
-				pageSize: 100,
-			}).then((res) => {
-				this.options = res.data.rows;
-			});
-		},
-	};
+import { getJdjcUnit, getGcjztjUnit } from "@/api/index.js";
+import { area } from "@/api/area";
+import punishmentMixin from "@/mixin/unit.js";
+import { hzfxLsit } from "@/api/hzfx.js";
+export default {
+  name: "BasicInfoModalContent",
+  mixins: [punishmentMixin],
+  data() {
+    return {
+      qhyy1: "",
+	  zqsj: "",
+      sw: "",
+      options: [],
+      options1: [
+        {
+          value: "是",
+          label: "是",
+        },
+        {
+          value: "否",
+          label: "否",
+        },
+      ],
+      fxdjList: [],
+      tableData: [],
+      unitList: [],
+      value: "全市",
+      params: {
+        pageSize: 10,
+        pageNum: 1,
+      },
+      total: 0,
+      search: "",
+      search1: "",
+      search2: "",
+      // Unittype: "", // 建筑分类
+      // year: "", // 年代
+      // hnum: "", //高度
+      // management: "", //管理形式
+      // subject: "", //管理主体
+      // maintenance: "", //维保形式
+      // risklevel: "", //风险等级
+    };
+  },
+  props: {
+    qy: String,
+  },
+  watch: {
+    qy: {
+      handler(val) {
+        this.value = val;
+        this.funUnitList();
+        this.handUnitList();
+      },
+      immediate: true,
+      deep: true,
+    },
+  },
+  methods: {
+    rowClickHandler(val) {
+      // this.$router.push(`/detail?id=${val.id}`);
+    },
+    funUnitList() {
+      hzfxLsit({
+        ...this.params,
+        qx: this.value === "重庆市" ? "" : this.value,
+        zqdd: this.search,
+        srs: this.sw,
+        qhyy1: this.qhyy1,
+		zqsj: this.zqsj
+      }).then((res) => {
+        this.tableData = res.data.rows;
+        this.total = res.data.total;
+      });
+    },
+    handleSizeChange(val) {
+      this.params.pageSize = val;
+      this.funUnitList();
+    },
+    handleCurrentChange(val) {
+      this.params.pageNum = val;
+      this.funUnitList();
+    },
+    handUnitList() {
+      hzfxLsit({
+        qy: this.value === "重庆市" ? "" : this.value,
+      }).then((res) => {
+        const list = res.data.rows[0];
+        // this.unitList = [
+        //   {
+        //     title: "高层建筑总数(栋)",
+        //     unitNum: list.ggjz + list.gyjz + list.zzjz,
+        //   },
+        //   {
+        //     title: "超高层建筑总数(栋)",
+        //     unitNum: list.cggjz,
+        //   },
+        //   {
+        //     title: "老旧高层建筑总数(栋)",
+        //     unitNum: list.ljzzgc,
+        //   },
+        //   {
+        //     title: "公共建筑总数(栋)",
+        //     unitNum: list.ggjz,
+        //   },
+        //   {
+        //     title: "住宅建筑总数(栋)",
+        //     unitNum: list.zzjz,
+        //   },
+        // ];
+      });
+    },
+    resetForm() {
+      this.qhyy1 = "";
+      this.zqsj = "";
+      this.sw = "";
+      this.value = "";
+      this.search = "";
+      this.search1 = "";
+      (this.params = {
+        pageSize: 10,
+        pageNum: 1,
+      }),
+        // this.params.Unittype = ""; // 建筑分类
+        // this.params.year = ""; // 年代
+        // this.params.hnum = ""; //高度
+        // this.params.management = ""; //管理形式
+        // this.params.subject = ""; //管理主体
+        // this.params.maintenance = ""; //维保形式
+        // this.params.risklevel = ""; //风险等级
+        this.funUnitList();
+    },
+  },
+  created() {
+    this.funUnitList();
+    this.handUnitList();
+    area({
+      pageNum: 1,
+      pageSize: 100,
+    }).then((res) => {
+      this.options = res.data.rows;
+    });
+  },
+};
 </script>
 
 <template>
-	<div>
-		<!-- 建筑数 -->
-		<div class="unit-bulid">
-			<div class="unit-num" v-for="(item, index) in unitList" :key="index">
-				<span>{{ item.title }}</span>
-				<!-- <span class="build-num">{{ item.unitNum }}</span> -->
-				<LinearText style="display: inline-block" :text="item.unitNum" fontSize="40px"></LinearText>
-			</div>
-		</div>
-		<!-- 搜索 -->
-		<div class="maintenance-supervision">
-			<div class="maintenance-supervision_header">
-				<div class="select-item">
-					<el-select v-model="value" placeholder="请选择">
-						<el-option :value="item.areaTitle" :label="item.areaTitle" v-for="(item, index) in options"
-							:key="index">
-						</el-option>
-					</el-select>
-				</div>
-				<div class="inp">
-					<el-input v-model="search" placeholder="请输入建筑名称"></el-input>
-				</div>
-				<!-- 伤亡 --> 
-				<div>
-					<el-select v-model="sw" placeholder="伤亡">
-						<el-option :value="item.value" :label="item.lable" v-for="(item, index) in options1"
-							:key="index">
-						</el-option>
-					</el-select>
-				</div>
-				<div>
-					<el-select v-model="qhyy" placeholder="起火日期">
-						<el-option :value="item.value" :label="item.lable" v-for="(item, index) in yearList"
-							:key="index">
-						</el-option>
-					</el-select>
-				</div>
-				<div class="inp">
-					<el-input v-model="search2" placeholder="起火时段"></el-input>
-				</div>
-				<!-- 起火原因 -->
-				<div>
-					<el-select v-model="qhyy" placeholder="起火原因">
-						<el-option :value="item.value" :label="item.lable" v-for="(item, index) in qhyyList"
-							:key="index">
-						</el-option>
-					</el-select>
-				</div>
-				<div class="btn-item">
-					<el-button @click="funUnitList">搜索</el-button>
-					<el-button @click="resetForm">重置</el-button>
-				</div>
-			</div>
-		</div>
+  <div>
+    <!-- 建筑数 -->
+    <div class="unit-bulid">
+      <div class="unit-num" v-for="(item, index) in unitList" :key="index">
+        <span>{{ item.title }}</span>
+        <!-- <span class="build-num">{{ item.unitNum }}</span> -->
+        <LinearText
+          style="display: inline-block"
+          :text="item.unitNum"
+          fontSize="40px"
+        ></LinearText>
+      </div>
+    </div>
+    <!-- 搜索 -->
+    <div class="maintenance-supervision">
+      <div class="maintenance-supervision_header">
+        <div class="select-item">
+          <el-select v-model="value" placeholder="请选择">
+            <el-option
+              :value="item.areaTitle"
+              :label="item.areaTitle"
+              v-for="(item, index) in options"
+              :key="index"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="inp">
+          <el-input v-model="search" placeholder="请输入建筑名称"></el-input>
+        </div>
+        <!-- 伤亡 -->
+        <div>
+          <el-select v-model="sw" placeholder="伤亡">
+            <el-option
+              :value="item.value"
+              :label="item.lable"
+              v-for="(item, index) in options1"
+              :key="index"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div>
+          <el-select v-model="zqsj" placeholder="起火日期">
+            <el-option
+              :value="item.value"
+              :label="item.lable"
+              v-for="(item, index) in yearList"
+              :key="index"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="inp">
+          <el-input v-model="search2" placeholder="起火时段"></el-input>
+        </div>
+        <!-- 起火原因 -->
+        <div>
+          <el-select v-model="qhyy1" placeholder="起火原因">
+            <el-option
+              :value="item.value"
+              :label="item.lable"
+              v-for="(item, index) in qhyyList"
+              :key="index"
+            >
+            </el-option>
+          </el-select>
+        </div>
+        <div class="btn-item">
+          <el-button @click="funUnitList">搜索</el-button>
+          <el-button @click="resetForm">重置</el-button>
+        </div>
+      </div>
+    </div>
 
-		<basic-table :data="tableData" @row-click="rowClickHandler" style="text-align: center">
-			<el-table-column type="index" label="序号"> </el-table-column>
-			<el-table-column prop="qx" label="区县" show-overflow-tooltip>
-			</el-table-column>
-			<el-table-column prop="zqdd" label="高层建筑名称" show-overflow-tooltip>
-			</el-table-column>
-			<el-table-column prop="zqsj" label="起火时间" show-overflow-tooltip>
-			</el-table-column>
-			<el-table-column prop="rysws" label="亡人数(人)" show-overflow-tooltip>
-			</el-table-column>
-			<el-table-column prop="srs" label="伤人数(人)" show-overflow-tooltip>
-			</el-table-column>
-			<el-table-column prop="zjccss" label="直接经济损失(万元)"> </el-table-column>
-			<el-table-column prop="qhyy1" label="起火原因" show-overflow-tooltip>
-			</el-table-column>
-		</basic-table>
-		<br />
-		<basic-pagination layout="total,->,prev, pager, next, sizes,jumper" :page-sizes="[10, 20, 50, 100]"
-			:page-size="params.pageSize" :current-page="params.PageNum" :total="total" @size-change="handleSizeChange"
-			@current-change="handleCurrentChange" />
-	</div>
+    <basic-table
+      :data="tableData"
+      @row-click="rowClickHandler"
+      style="text-align: center"
+    >
+      <el-table-column type="index" label="序号"> </el-table-column>
+      <el-table-column prop="qx" label="区县" show-overflow-tooltip>
+      </el-table-column>
+      <el-table-column prop="zqdd" label="高层建筑名称" show-overflow-tooltip>
+      </el-table-column>
+      <el-table-column prop="zqsj" label="起火时间" show-overflow-tooltip>
+      </el-table-column>
+      <el-table-column prop="rysws" label="亡人数(人)" show-overflow-tooltip>
+      </el-table-column>
+      <el-table-column prop="srs" label="伤人数(人)" show-overflow-tooltip>
+      </el-table-column>
+      <el-table-column prop="zjccss" label="直接经济损失(万元)">
+      </el-table-column>
+      <el-table-column prop="qhyy1" label="起火原因" show-overflow-tooltip>
+      </el-table-column>
+    </basic-table>
+    <br />
+    <basic-pagination
+      layout="total,->,prev, pager, next, sizes,jumper"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="params.pageSize"
+      :current-page="params.PageNum"
+      :total="total"
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+    />
+  </div>
 </template>
 
 <style scoped lang="less">
-	.maintenance-supervision {
+.maintenance-supervision {
+  // padding: 10px 10px 0px 20px;
+  ::v-deep(.el-input__inner) {
+    border: none;
+    background: linear-gradient(
+      360deg,
+      rgba(0, 148, 255, 0.5) 0%,
+      rgba(0, 148, 255, 0.31) 100%
+    );
+    color: #fff;
+  }
 
-		// padding: 10px 10px 0px 20px;
-		::v-deep(.el-input__inner) {
-			border: none;
-			background: linear-gradient(360deg,
-					rgba(0, 148, 255, 0.5) 0%,
-					rgba(0, 148, 255, 0.31) 100%);
-			color: #fff;
-		}
+  ::v-deep(.el-button) {
+    border: none;
+    background: linear-gradient(360deg, #0094ff90 0%, #0094ff10 100%);
+    color: #fff;
+  }
 
-		::v-deep(.el-button) {
-			border: none;
-			background: linear-gradient(360deg, #0094ff90 0%, #0094ff10 100%);
-			color: #fff;
-		}
+  .maintenance-supervision_header {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: space-around;
+    // border-bottom: 1px solid #154956;
+    padding-bottom: 10px;
+    font-size: 12px;
+    color: rgb(79, 149, 186);
+    // .select-item{
+    //   margin-right: 20px;
+    // }
+  }
 
-		.maintenance-supervision_header {
-			display: flex;
-			flex-wrap: wrap;
-			justify-content: space-around;
-			// border-bottom: 1px solid #154956;
-			padding-bottom: 10px;
-			font-size: 12px;
-			color: rgb(79, 149, 186);
-			// .select-item{
-			//   margin-right: 20px;
-			// }
-		}
+  .btn-item {
+    margin-bottom: 10px;
+  }
 
-		.btn-item {
-			margin-bottom: 10px;
-		}
+  .warp {
+    height: 520px;
+    margin: 0 auto;
+    overflow: hidden;
 
-		.warp {
-			height: 520px;
-			margin: 0 auto;
-			overflow: hidden;
+    .item {
+      list-style: none;
+      padding: 0;
+      margin: 0 auto;
+      cursor: pointer;
+    }
+  }
 
-			.item {
-				list-style: none;
-				padding: 0;
-				margin: 0 auto;
-				cursor: pointer;
-			}
-		}
+  /deep/.el-input__inner {
+    background-color: #184254;
+    width: 150px;
+    height: 30px;
+    margin-bottom: 5px;
+  }
 
-		/deep/.el-input__inner {
-			background-color: #184254;
-			width: 150px;
-			height: 30px;
-			margin-bottom: 5px;
-		}
+  /deep/.el-button {
+    width: 100px;
+    height: 32px;
+    font-size: 14px;
+    line-height: 2px;
+    // margin: 0 20px 0 30px;
+    color: #fff;
+    border-radius: 5px;
+    border: none;
+  }
 
-		/deep/.el-button {
-			width: 100px;
-			height: 32px;
-			font-size: 14px;
-			line-height: 2px;
-			// margin: 0 20px 0 30px;
-			color: #fff;
-			border-radius: 5px;
-			border: none;
-		}
+  /deep/.el-button:hover {
+    color: rgb(80, 147, 224);
+  }
 
-		/deep/.el-button:hover {
-			color: rgb(80, 147, 224);
-		}
+  /deep/.select_btn {
+    position: absolute;
+    top: 225px;
+    right: 320px;
+    //下拉框
+  }
 
-		/deep/.select_btn {
-			position: absolute;
-			top: 225px;
-			right: 320px;
-			//下拉框
-		}
+  /deep/.el-input {
+    width: 150px;
+    // margin-left: 20px;
+  }
 
-		/deep/.el-input {
-			width: 150px;
-			// margin-left: 20px;
-		}
+  .header {
+    color: #fff;
+    height: 33px !important;
+    line-height: 33px !important;
+    background-color: rgba(0, 163, 255, 0.3) !important;
+    color: #61dbff;
+    margin-top: 15px;
+    margin-bottom: 6px;
+  }
 
-		.header {
-			color: #fff;
-			height: 33px !important;
-			line-height: 33px !important;
-			background-color: rgba(0, 163, 255, 0.3) !important;
-			color: #61dbff;
-			margin-top: 15px;
-			margin-bottom: 6px;
-		}
+  .row,
+  li,
+  a {
+    display: block;
+    height: 39px;
+    line-height: 39px;
+    margin-bottom: 4px;
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    font-size: 16px;
+    background-color: rgba(0, 0, 0, 0.2);
 
-		.row,
-		li,
-		a {
-			display: block;
-			height: 39px;
-			line-height: 39px;
-			margin-bottom: 4px;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			font-size: 16px;
-			background-color: rgba(0, 0, 0, 0.2);
+    .time,
+    .num,
+    .person,
+    .result {
+      flex: 0.33;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+    }
 
-			.time,
-			.num,
-			.person,
-			.result {
-				flex: 0.33;
-				display: flex;
-				justify-content: center;
-				align-items: center;
-			}
+    .num {
+      flex: 0.15;
+    }
+  }
 
-			.num {
-				flex: 0.15;
-			}
-		}
+  .inp {
+    margin-left: 20px;
+  }
+}
 
-		.inp {
-			margin-left: 20px;
-		}
-	}
+.unit-bulid {
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 20px;
+  font-size: 18px;
+}
 
-	.unit-bulid {
-		display: flex;
-		justify-content: space-between;
-		margin-bottom: 20px;
-		font-size: 18px;
-	}
-
-	.unit-num {
-		width: 200px;
-		height: 109px;
-		border: 1px solid #0463a7;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-items: center;
-		line-height: 59px;
-	}
+.unit-num {
+  width: 200px;
+  height: 109px;
+  border: 1px solid #0463a7;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-items: center;
+  line-height: 59px;
+}
 </style>

+ 48 - 12
app/src/views/Home/components/BasicInfoModalContent.vue

@@ -29,6 +29,7 @@ export default {
   },
   props: {
     qy: String,
+    default: Object,
   },
   watch: {
     qy: {
@@ -45,6 +46,25 @@ export default {
         this.handUnitList();
       },
     },
+    default: {
+      handler() {
+        let params = {};
+        if (this.default) {
+          Object.assign(params, this.default);
+        }
+        if (params.qy) {
+          this.value = params.qy;
+          delete params.qy;
+        } else {
+          this.value = null;
+        }
+        this.params = params;
+        this.funUnitList();
+        this.handUnitList();
+      },
+      immediate: true,
+      deep: true,
+    },
   },
   methods: {
     rowClickHandler(val) {
@@ -121,13 +141,26 @@ export default {
     },
   },
   created() {
-    this.funUnitList();
-    this.handUnitList();
     area({
       pageNum: 1,
       pageSize: 100,
     }).then((res) => {
       this.options = res.data.rows;
+
+      let params = {};
+      if (this.default) {
+        Object.assign(params, this.default);
+      }
+      if (params.qy) {
+        this.value = params.qy;
+        delete params.qy;
+      } else {
+        this.value = null;
+      }
+      this.params = params;
+
+      this.funUnitList();
+      this.handUnitList();
     });
   },
 };
@@ -138,7 +171,10 @@ export default {
     <!-- 建筑数 -->
     <div class="unit-bulid">
       <div class="unit-num" v-for="(item, index) in unitList" :key="index">
-        <span style="display: inline-block; margin: 10px 5px 15px 5px; height: 40px;">{{ item.title }}</span>
+        <span
+          style="display: inline-block; margin: 10px 5px 15px 5px; height: 40px"
+          >{{ item.title }}</span
+        >
         <!-- <span class="build-num">{{ item.unitNum }}</span> -->
         <LinearText
           style="display: inline-block"
@@ -295,15 +331,15 @@ export default {
     </basic-table>
     <!-- 分页 -->
     <br />
-      <basic-pagination
-        layout="total,->,prev, pager, next, sizes,jumper"
-        :page-sizes="[10, 20, 50, 100]"
-        :page-size="params.pageSize"
-        :current-page="params.PageNum"
-        :total="total"
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-      />
+    <basic-pagination
+      layout="total,->,prev, pager, next, sizes,jumper"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="params.pageSize"
+      :current-page="params.PageNum"
+      :total="total"
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+    />
   </div>
 </template>
 

+ 24 - 12
app/src/views/Risk/components/Riskdistribution.vue

@@ -20,7 +20,7 @@
         :class-option="classOption"
         class="warp"
       >
-        <ul class="item" >
+        <ul class="item">
           <li
             class="row"
             :class="{
@@ -37,16 +37,20 @@
         </ul>
       </VueSeamlessScroll>
     </div>
-    <basic-modal top="120px" ref="basicInfoModal1" name="一楼一策隐患整治清单">
+    <!-- <basic-modal top="120px" ref="basicInfoModal1" name="一楼一策隐患整治清单">
 			<fxfbCont :unit="unit"  />
-		</basic-modal>
+		</basic-modal> -->
+    <!-- 一楼一策弹窗 -->
+    <basic-modal top="120px" ref="yhModal" name="“一楼一策”隐患整治清单">
+      <YhModalContent :default="params" />
+    </basic-modal>
   </div>
 </template>
 <script>
 import VueSeamlessScroll from "vue-seamless-scroll";
 import { fxfb } from "@/api/risk";
 import { toFirst } from "@/utils";
-import fxfbCont from "./fxfbCont.vue";
+import YhModalContent from "../../Detail/components/YhModalContent.vue";
 export default {
   name: "MaintenanceSupervision",
   props: {
@@ -59,12 +63,13 @@ export default {
       reload: true,
       checked: 1,
       type: ["重大风险", "较大风险", "一般风险", "低风险"],
-      unit:''
+      unit: "",
+      params: null
     };
   },
   components: {
     VueSeamlessScroll,
-    fxfbCont
+    YhModalContent,
   },
   computed: {
     classOption() {
@@ -79,11 +84,11 @@ export default {
       handler() {
         this.loadData();
       },
-      deep:true
+      deep: true,
     },
   },
   created() {
-    this.loadData(true)
+    this.loadData(true);
   },
   methods: {
     change(idx) {
@@ -112,14 +117,21 @@ export default {
         this.list = toFirst(tempData, this.qx, "qy");
         this.reload = true;
         if (bool) {
-          this.$emit('selectData', tempData)
+          this.$emit("selectData", tempData);
         }
       });
     },
     openBasicModal1(val) {
-      this.unit=val
-				this.showModal("basicInfoModal1");
-			}
+      // this.unit = val;
+      console.log(val);
+      
+      console.log(this.type[this.checked]);
+      this.params = {
+        qx: val,
+        fxdjYs: this.type[this.checked]
+      }
+      this.showModal("yhModal");
+    },
   },
 };
 </script>

+ 7 - 6
app/src/views/Risk/components/fxyjCont.vue

@@ -80,7 +80,7 @@ export default {
     },
   },
   methods: {
-    switchTo(key, val, keys = null, values = null) {
+    switchTo(key, val, keys = null, values = null, page = 'yhModal') {
       const params = {};
       params[key] = val;
       console.log(keys);
@@ -91,6 +91,7 @@ export default {
         });
       }
       console.log(params);
+      params.page = page;
       this.$emit("switchTo", params);
     },
     search() {
@@ -327,7 +328,7 @@ export default {
         <el-table-column type="index" label="序号"> </el-table-column>
         <el-table-column prop="qx" label="区县" show-overflow-tooltip>
           <template slot-scope="scope">
-            <div @click="switchTo('qx', scope.row.qx)">{{ scope.row.qx }}</div>
+            <div @click="switchTo('qy', scope.row.qx, 'baseModal')">{{ scope.row.qx }}</div>
           </template>
         </el-table-column>
         <el-table-column
@@ -337,7 +338,7 @@ export default {
         >
           <template slot-scope="scope">
             <div
-              @click="switchTo('fxdjYs', '重大风险', ['qx'], [scope.row.qx])"
+              @click="switchTo('fxdj', '重大风险', ['qy'], [scope.row.qx], 'baseModal')"
             >
               {{ scope.row.zdfx }}
             </div>
@@ -350,7 +351,7 @@ export default {
         >
           <template slot-scope="scope">
             <div
-              @click="switchTo('fxdjYs', '较大风险', ['qx'], [scope.row.qx])"
+              @click="switchTo('fxdj', '较大风险', ['qy'], [scope.row.qx], 'baseModal')"
             >
               {{ scope.row.jdfx }}
             </div>
@@ -363,7 +364,7 @@ export default {
         >
           <template slot-scope="scope">
             <div
-              @click="switchTo('fxdjYs', '一般风险', ['qx'], [scope.row.qx])"
+              @click="switchTo('fxdj', '一般风险', ['qy'], [scope.row.qx], 'baseModal')"
             >
               {{ scope.row.ybfx }}
             </div>
@@ -371,7 +372,7 @@ export default {
         </el-table-column>
         <el-table-column prop="dfx" label="低风险(栋)" show-overflow-tooltip>
           <template slot-scope="scope">
-            <div @click="switchTo('fxdjYs', '低风险', ['qx'], [scope.row.qx])">
+            <div @click="switchTo('fxdj', '低风险', ['qy'], [scope.row.qx], 'baseModal')">
               {{ scope.row.dfx }}
             </div>
           </template>

+ 15 - 2
app/src/views/Risk/index.vue

@@ -60,6 +60,12 @@
     <basic-modal top="120px" ref="yhModal" name="“一楼一策”隐患整治清单">
       <YhModalContent :default="params" />
     </basic-modal>
+
+    <!-- 基础信息 -->
+    <!-- BasicInfoModalContent -->
+    <basic-modal top="120px" ref="baseModal" name="基础信息">
+      <BasicInfoModalContent :default="params" />
+    </basic-modal>
   </div>
 </template>
 <script>
@@ -72,6 +78,7 @@ import SearchBox from "@/components/SearchBox.vue";
 import MapCharts from "../Home/components/MapCharts.vue";
 import fxyjCont from "./components/fxyjCont.vue";
 import YhModalContent from "../Detail/components/YhModalContent.vue";
+import BasicInfoModalContent from "../Home/components/BasicInfoModalContent.vue";
 import { formatCityData, createMapChartWindowInfo } from "../../utils";
 
 export default {
@@ -86,20 +93,26 @@ export default {
     MapCharts,
     fxyjCont,
     YhModalContent,
+    BasicInfoModalContent,
   },
   data() {
     return {
       qx: "重庆市",
       fxyjIdex: 1,
       heatMap: [],
-      params: {}
+      params: {},
     };
   },
   methods: {
     switchTo(params) {
       this.params = params;
       console.log(this.params);
-      this.showModal("yhModal");
+      let page = "yhModal";
+      if (params.page) {
+        page = params.page;
+        delete params.page;
+      }
+      this.showModal(page);
     },
     showLabel(params) {
       return createMapChartWindowInfo(