Browse Source

Merge branch 'master' of http://113.204.105.114:10011/TwoKe/zhgkpt-datav

liuxing 1 year ago
parent
commit
d866314a62

+ 3 - 3
app/src/mixin/unit.js

@@ -55,8 +55,8 @@ const punishmentMixin = {
 					label: "无维保",
 				},
 				{
-					value: "仅消火栓",
-					label: "仅消火栓",
+					value: "(无)仅消火栓",
+					label: "(无)仅消火栓",
 				},
 			],
 			//管理主体
@@ -188,4 +188,4 @@ const punishmentMixin = {
 	},
 }
 
-export default punishmentMixin;
+export default punishmentMixin;

+ 2 - 2
app/src/views/Fire/components/UnitInfo.vue

@@ -265,7 +265,7 @@ export default {
 			}
 
 			.num {
-				flex: 0.15;
+				flex: 0.2;
 			}
 		}
 	}
@@ -359,4 +359,4 @@ export default {
 	.el-select-dropdown.el-popper li.el-select-dropdown__item.hover.selected span {
 		color: #fff !important;
 	}
-</style>
+</style>

+ 4 - 2
app/src/views/FireCondition/components/hzfxCont.vue

@@ -17,6 +17,7 @@
 		mixins: [punishmentMixin],
 		data() {
 			return {
+				options9:[],
 				options: [],
 				options1: [],
 				options2: [],
@@ -128,7 +129,8 @@
 				pageNum: 1,
 				pageSize: 100,
 			}).then((res) => {
-				this.options = res.data.rows;
+				console.log(res,'获取区域');
+				this.options9 = res.data.rows;
 			});
 		},
 	};
@@ -146,7 +148,7 @@
 			<div class="maintenance-supervision_header">
 				<div class="select-item">
 					<el-select v-model="value" placeholder="请选择">
-						<el-option :value="item.qx" :label="item.qx" v-for="(item, index) in options"
+						<el-option :value="item.areaTitle" :label="item.areaTitle" v-for="(item, index) in options9"
 							:key="index">
 						</el-option>
 					</el-select>

+ 60 - 31
app/src/components/Maintenance3D.vue → app/src/views/Home/components/AutonomousManagement/Maintenance3D.vue

@@ -8,20 +8,42 @@ const props = defineProps({
 })
 let chart, option;
 const pieChart3d = ref();
+const legendItems = ref([
+  {
+    name: '专业维保',
+    color: '#35C2FF'
+  },
+  {
+    name: '自主维保',
+    color: '#2FDE60'
+  },
+  {
+    name: '无(仅消火栓)',
+    color: '#FBFF3D'
+  },
+  {
+    name: '无维保',
+    color: '#EB5EF8'
+  }
+])
 
 function initChart() {
   chart = echarts.init(pieChart3d.value);
   // 传入数据生成 option
   option = getPie3D(props.wbxsList.map(item => ({
-   
     ...item,
     label: {
       show: true
+    },
+    itemStyle: {
+      color:  (() => {
+      const temp = legendItems.value.find(i => i.name === item.name)
+      return temp.color
+    })()
     }
   })),
     0.75
   );
-console.log('option',option);
   // 监听鼠标事件,实现饼图选中效果(单选),近似实现高亮(放大)效果。
   let hoveredIndex = "";
   // 准备重新渲染扇形所需的参数
@@ -136,16 +158,13 @@ watch(() => props.wbxsList, () => {
   deep: true
 })
 
-
-
 // 生成扇形的曲面参数方程
 function getParametricEquation(
   startRatio,
   endRatio,
   isSelected,
   isHovered,
-  k,
-  h
+  k
 ) {
   // 计算
   const midRatio = (startRatio + endRatio) / 2;
@@ -314,31 +333,6 @@ function getPie3D(pieData, internalDiameterRatio) {
   series.push(labelSeries);
   // 准备待返回的配置项,把准备好的 legendData、series 传入。
   const option = {
-    color: ["#35C2FF", "#2FDE60", "#FBFF3D",'#EB5EF8' ],
-    legend: {
-      // type: "scroll",
-      data: legendData,
-      icon: "roundRect",
-      orient: "vertical",
-      padding: 5,
-      itemGap: 20,
-      top: "19%",
-      right: 0,
-      itemWidth: 10, // 设置宽度
-      itemHeight: 10, // 设置高度
-      selectedMode: true,
-      textStyle: {
-        color: "#FFFFFF",
-        fontSize: 14,
-        lineHeight: 14,
-        rich: {
-          a: {
-            // verticalAlign: "middle",
-          },
-        },
-        padding: [0, 0, -3, 0],
-      },
-    },
     tooltip: {
       formatter: (params) => {
         if (params.seriesName !== "mouseoutSeries") {
@@ -350,6 +344,11 @@ function getPie3D(pieData, internalDiameterRatio) {
         }
         return "";
       },
+      backgroundColor: "rgba(0,224,255,0.46)",
+      borderColor: "rgba(0,213,255, .6)",
+      textStyle: {
+        color: '#fff',
+      }
     },
     xAxis3D: {
       min: -1,
@@ -413,6 +412,11 @@ function getPie3D(pieData, internalDiameterRatio) {
 <template>
   <div class="container">
     <div ref="pieChart3d" class="chart"></div>
+    <ul class="legend">
+      <li v-for="(legend,idx) in legendItems"  @click="$emit('click-item', legend.name)" :style="{
+        '--bg': legend.color
+      }"  :key="idx">{{ legend.name }}</li>
+    </ul>
   </div>
 </template>
 
@@ -423,6 +427,31 @@ function getPie3D(pieData, internalDiameterRatio) {
   position: relative;
 }
 
+.container .legend {
+  position: absolute;
+  right: 10px;
+  top: 65px;
+  display: flex;
+  flex-direction: column;
+  gap: 10px;
+  z-index: 500;
+  & > li {
+    list-style: none;
+    cursor: pointer;
+    font-size: 14px;
+  }
+  & > li::before {
+    content: "";
+    display: inline-block;
+    margin-right: 5px;
+    width: 10px;
+    height: 10px;
+    border-radius: 2px;
+    background-color: var(--bg);
+  }
+}
+
+
 .container::after {
   content: "";
   position: absolute;

+ 54 - 28
app/src/components/Overhaul3D.vue → app/src/views/Home/components/AutonomousManagement/Overhaul3D.vue

@@ -7,6 +7,20 @@ const props = defineProps({
 })
 let chart, option;
 const pieChart3d = ref();
+const legendItems = ref([
+  {
+    name: '有',
+    color: '#1162fe'
+  },
+  {
+    name: '无(消防设施无问题)',
+    color: '#2fde60'
+  },
+  {
+    name: '无(消防设施有问题)',
+    color: '#c3c71b'
+  }
+])
 function initChart() {
   chart = echarts.init(pieChart3d.value);
   // 传入数据生成 option
@@ -14,6 +28,12 @@ function initChart() {
     ...item,
     label: {
       show: true
+    },
+    itemStyle: {
+      color:  (() => {
+      const temp = legendItems.value.find(i => i.name === item.name)
+        return temp.color
+      })()
     }
   })),
     0.75
@@ -137,8 +157,7 @@ function getParametricEquation(
   endRatio,
   isSelected,
   isHovered,
-  k,
-  h
+  k
 ) {
   // 计算
   const midRatio = (startRatio + endRatio) / 2;
@@ -308,31 +327,6 @@ function getPie3D(pieData, internalDiameterRatio) {
   series.push(labelSeries);
   // 准备待返回的配置项,把准备好的 legendData、series 传入。
   const option = {
-    color: ["#1162fe", "#2FDE60"],
-    legend: {
-      // type: "scroll",
-      data: legendData,
-      icon: "roundRect",
-      orient: "vertical",
-      padding: 5,
-      itemGap: 20,
-      top: "30%",
-      right: 0,
-      itemWidth: 10, // 设置宽度
-      itemHeight: 10, // 设置高度
-      selectedMode: true,
-      textStyle: {
-        color: "#FFFFFF",
-        fontSize: 14,
-        lineHeight: 14,
-        rich: {
-          a: {
-            // verticalAlign: "middle",
-          },
-        },
-        padding: [0, 0, -3, 0],
-      },
-    },
     tooltip: {
       formatter: (params) => {
         if (params.seriesName !== "mouseoutSeries") {
@@ -344,6 +338,11 @@ function getPie3D(pieData, internalDiameterRatio) {
         }
         return "";
       },
+      backgroundColor: "rgba(0,224,255,0.46)",
+      borderColor: "rgba(0,213,255, .6)",
+      textStyle: {
+        color: '#fff',
+      }
     },
     title: [
       {
@@ -407,6 +406,11 @@ function getPie3D(pieData, internalDiameterRatio) {
 <template>
   <div class="container">
     <div ref="pieChart3d" class="chart"></div>
+    <ul class="legend">
+      <li v-for="(legend,idx) in legendItems" @click="$emit('click-item', legend.name)" :style="{
+        '--bg': legend.color
+      }"  :key="idx">{{ legend.name }}</li>
+    </ul>
   </div>
 </template>
 
@@ -416,7 +420,29 @@ function getPie3D(pieData, internalDiameterRatio) {
   height: 264px;
   position: relative;
 }
-
+.container .legend {
+  position: absolute;
+  right: 10px;
+  top: 55px;
+  display: flex;
+  flex-direction: column;
+  gap: 10px;
+  z-index: 500;
+  & > li {
+    list-style: none;
+    cursor: pointer;
+    font-size: 14px;
+  }
+  & > li::before {
+    content: "";
+    display: inline-block;
+    margin-right: 5px;
+    width: 10px;
+    height: 10px;
+    border-radius: 2px;
+    background-color: var(--bg);
+  }
+}
 .container::after {
   content: "";
   position: absolute;

+ 68 - 27
app/src/components/PieChart3D.vue → app/src/views/Home/components/AutonomousManagement/PieChart3D.vue

@@ -7,14 +7,46 @@ const props = defineProps({
 })
 let chart, option;
 const pieChart3d = ref();
+const legendItems = ref([
+  {
+    name: '有管理单位(物业)',
+    color: '#5ef8c9'
+  },
+  {
+    name: '有管理单位(非物业)',
+    color: '#5e92f8'
+  },
+  {
+    name: '居民自主管理',
+    color: '#F4F85E'
+  },
+  {
+    name: '街道社区代管',
+    color: '#FC2626'
+  },
+  {
+    name: '其他管理形式',
+    color: '#1162fe'
+  },
+  {
+    name: '无管理主体',
+    color: '#FF7A00'
+  },
+])
 
 function initChart() {
   chart = echarts.init(pieChart3d.value);
-  option = getPie3D(props.glxsList.map((item, idx) => ({
+  option = getPie3D(props.glxsList.map((item) => ({
     ...item,
     label: {
       show: true
     },
+    itemStyle: {
+      color:  (() => {
+      const temp = legendItems.value.find(i => i.name === item.name)
+      return temp.color
+    })()
+    }
   })),
     0.75
   );
@@ -136,8 +168,7 @@ function getParametricEquation(
   endRatio,
   isSelected,
   isHovered,
-  k,
-  h
+  k
 ) {
   // 计算
   const midRatio = (startRatio + endRatio) / 2;
@@ -307,30 +338,6 @@ function getPie3D(pieData, internalDiameterRatio) {
   series.push(labelSeries);
   // 准备待返回的配置项,把准备好的 legendData、series 传入。
   const option = {
-    color: [ "#FC2626", "#1162fe", "#F4F85E", "#FF7A00", "#5ef8c9", "#5e92f8"],
-    legend: {
-      data: ["有管理单位(物业)", "有管理单位(非物业)", "居民自主管理", "街道社区代管", "其他管理形式", "无管理主体"],
-      icon: "roundRect",
-      orient: "vertical",
-      padding: 5,
-      itemGap: 20,
-      top: "4%",
-      right: 0,
-      itemWidth: 10, // 设置宽度
-      itemHeight: 10, // 设置高度
-      selectedMode: true,
-      textStyle: {
-        color: "#FFFFFF",
-        fontSize: 14,
-        lineHeight: 14,
-        rich: {
-          a: {
-            // verticalAlign: "middle",
-          },
-        },
-        padding: [0, 0, -3, 0],
-      },
-    },
     tooltip: {
       formatter: (params) => {
         if (params.seriesName !== "mouseoutSeries") {
@@ -342,6 +349,11 @@ function getPie3D(pieData, internalDiameterRatio) {
         }
         return "";
       },
+      backgroundColor: "rgba(0,224,255,0.46)",
+      borderColor: "rgba(0,213,255, .6)",
+      textStyle: {
+        color: '#fff',
+      }
     },
     title: [
       {
@@ -404,6 +416,11 @@ function getPie3D(pieData, internalDiameterRatio) {
 <template>
   <div class="container">
     <div ref="pieChart3d" class="chart"></div>
+    <ul class="legend">
+      <li v-for="(legend,idx) in legendItems"  @click="$emit('click-item', legend.name)" :style="{
+        '--bg': legend.color
+      }"  :key="idx">{{ legend.name }}</li>
+    </ul>
   </div>
 </template>
 
@@ -414,6 +431,30 @@ function getPie3D(pieData, internalDiameterRatio) {
   position: relative;
 }
 
+.container .legend {
+  position: absolute;
+  right: 10px;
+  top: 55px;
+  display: flex;
+  flex-direction: column;
+  gap: 10px;
+  z-index: 500;
+  & > li {
+    list-style: none;
+    cursor: pointer;
+    font-size: 14px;
+  }
+  & > li::before {
+    content: "";
+    display: inline-block;
+    margin-right: 5px;
+    width: 10px;
+    height: 10px;
+    border-radius: 2px;
+    background-color: var(--bg);
+  }
+}
+
 .container::after {
   content: "";
   position: absolute;

+ 17 - 8
app/src/views/Home/components/AutonomousManagement.vue → app/src/views/Home/components/AutonomousManagement/index.vue

@@ -1,7 +1,7 @@
 <script>
-import PieChart3D from "@/components/PieChart3D.vue";
-import Maintenance3D from "@/components/Maintenance3D.vue";
-import Overhaul3D from "@/components/Overhaul3D.vue";
+import PieChart3D from "./PieChart3D.vue";
+import Maintenance3D from "./Maintenance3D.vue";
+import Overhaul3D from "./Overhaul3D.vue";
 import { getGlxs, getWbxs, getDxjj } from "@/api/index.js";
 export default {
   name: "AutonomousManagement",
@@ -120,15 +120,24 @@ export default {
   <div class="autonomous-management">
     <div class="autonomous-management_header">
       <button-group @change="change">
-        <button-group-item> 管理形式 </button-group-item>
-        <button-group-item> 消防设施维保形式 </button-group-item>
+        <button-group-item>管理形式 </button-group-item>
+        <button-group-item>消防设施维保形式</button-group-item>
         <button-group-item>大修基金</button-group-item>
       </button-group>
     </div>
     <div>
-      <PieChart3D v-if="flag == 0" :glxsList="glxsList" />
-      <Maintenance3D v-if="flag == 1" :wbxsList="wbxsList" />
-      <Overhaul3D v-if="flag == 2" :dxjjList="dxjjList" />
+      <PieChart3D  @click-item="value => $emit('click-item', {
+        index: 0,
+        value
+      })" v-if="flag == 0" :glxsList="glxsList" />
+      <Maintenance3D @click-item="value => $emit('click-item', {
+        index: 1,
+        value
+      })" v-if="flag == 1" :wbxsList="wbxsList" />
+      <Overhaul3D @click-item="value => $emit('click-item', {
+        index: 2,
+        value
+      })"   v-if="flag == 2" :dxjjList="dxjjList" />
     </div>
   </div>
 </template>

+ 43 - 33
app/src/views/Home/components/BasicInfo.vue

@@ -48,6 +48,9 @@ export default {
         }
       );
     },
+    ToType(val) {
+      this.$emit("UnitType", val);
+    },
     showModlus(name) {
       this.$emit("showTc", name);
     },
@@ -110,38 +113,45 @@ export default {
         fontSize="16px"
       />
       <div class="basic-total">
-        <BasicTotal
-          style="width: 187px"
-          :number="Number(this.unitcNum)"
-          label="超高层建筑"
-          unit="栋"
-        />
-        <BasicTotal
-          style="width: 187px"
-          :number="Number(this.unitgNum)"
-          label=""
-          unit="栋"
-        >
-          <template #label>
-            <span class="label">
-              <span class="sub-label">2000年底前</span>
-              老旧住宅建筑
-            </span>
-          </template>
-        </BasicTotal>
-        <BasicTotal
-          style="width: 187px"
-          :number="Number(this.unitjNum)"
-          label="老旧商业混合体"
-          unit="栋"
-        >
-          <template #label>
-            <span class="label">
-              <span class="sub-label">2000年底前</span>
-              老旧商业混合体
-            </span>
-          </template>
-        </BasicTotal>
+        <div   @click="ToType('超高层建筑总数(栋)')">
+          <BasicTotal
+            style="width: 187px"
+            :number="Number(this.unitcNum)"
+            label="超高层建筑"
+            unit="栋"
+          
+          />
+        </div>
+        <div @click="ToType('2000年底前老旧住宅建筑总数(栋)')">
+          <BasicTotal
+            style="width: 187px"
+            :number="Number(this.unitgNum)"
+            label=""
+            unit="栋"
+          >
+            <template #label>
+              <span class="label">
+                <span class="sub-label">2000年底前</span>
+                老旧住宅建筑
+              </span>
+            </template>
+          </BasicTotal>
+        </div>
+        <div @click="ToType('2000年底前老旧商业混合体建筑总数(栋)')">
+          <BasicTotal
+            style="width: 187px"
+            :number="Number(this.unitjNum)"
+            label="老旧商业混合体"
+            unit="栋"
+          >
+            <template #label>
+              <span class="label">
+                <span class="sub-label">2000年底前</span>
+                老旧商业混合体
+              </span>
+            </template>
+          </BasicTotal>
+        </div>
       </div>
     </div>
   </div>
@@ -153,7 +163,7 @@ export default {
   display: flex;
   .__left {
     display: flex;
-   flex-direction: column;
+    flex-direction: column;
   }
   .__right {
     margin-top: 20px;

+ 57 - 24
app/src/views/Home/components/BasicInfoModalContent.vue

@@ -18,6 +18,7 @@ export default {
       },
       total: 0,
       search: "",
+      titleNames: "",
       // Unittype: "", // 建筑分类
       // year: "", // 年代
       // hnum: "", //高度
@@ -30,8 +31,9 @@ export default {
   props: {
     qy: String,
     default: Object,
-    typeName:String,
-    fxdjs:String
+    typeName: String,
+    fxdjs: String,
+    titleName: String,
   },
   watch: {
     qy: {
@@ -59,6 +61,27 @@ export default {
       immediate: true,
       deep: true,
     },
+    titleName: {
+      handler(val) {
+       this.params={}
+        if (val == "超高层建筑总数(栋)") {
+        this.params.gd = "100米以上";
+        this.funUnitList();
+      }
+      if (val == "2000年底前老旧住宅建筑总数(栋)") {
+        this.params.jcnd = "2000年前";
+        this.params.dl = "居民建筑";
+        this.funUnitList();
+      }
+      if (val == "2000年底前老旧商业混合体建筑总数(栋)") {
+        this.params.jcnd = "2000年前";
+        this.params.dl = "公共建筑";
+        this.funUnitList();
+      }
+      },
+      immediate: true,
+      deep: true,
+    },
     value: {
       handler() {
         this.handUnitList();
@@ -89,31 +112,32 @@ export default {
       // this.$router.push(`/detail?id=${val.id}`);
       window.location.href = `/detail?id=${val.id}`;
     },
-    secrhList(title){
-      if(title=='高层建筑总数(栋)'){
-        this.funUnitList()
+    secrhList(title) {
+      this.params = {};
+      if (title == "高层建筑总数(栋)") {
+        this.funUnitList();
       }
-      if(title=='超高层建筑总数(栋)'){
-        this.params.gd='100米以上'
-        this.funUnitList()
+      if (title == "超高层建筑总数(栋)") {
+        this.params.gd = "100米以上";
+        this.funUnitList();
       }
-      if(title=='2000年底前老旧住宅建筑总数(栋)'){
-        this.params.jcnd='2000年前'
-        this.params.dl='居民建筑'
-        this.funUnitList()
+      if (title == "2000年底前老旧住宅建筑总数(栋)") {
+        this.params.jcnd = "2000年前";
+        this.params.dl = "居民建筑";
+        this.funUnitList();
       }
-      if(title=='2000年底前老旧商业混合体建筑总数(栋)'){
-        this.params.jcnd='2000年前'
-        this.params.dl='公共建筑'
-        this.funUnitList()
+      if (title == "2000年底前老旧商业混合体建筑总数(栋)") {
+        this.params.jcnd = "2000年前";
+        this.params.dl = "公共建筑";
+        this.funUnitList();
       }
-      if(title=='公共建筑总数(栋)'){
-        this.params.dl='公共建筑'
-        this.funUnitList()
+      if (title == "公共建筑总数(栋)") {
+        this.params.dl = "公共建筑";
+        this.funUnitList();
       }
-      if(title=='工业建筑总数(栋)'){
-        this.params.dl='公业建筑'
-        this.funUnitList()
+      if (title == "工业建筑总数(栋)") {
+        this.params.dl = "公业建筑";
+        this.funUnitList();
       }
     },
     funUnitList() {
@@ -208,8 +232,17 @@ export default {
   <div>
     <!-- 建筑数 -->
     <div class="unit-bulid">
-      <div class="unit-num" v-for="(item, index) in unitList" :key="index" @click="secrhList(item.title)" style="cursor: pointer;">
-        <span style="display: inline-block; margin: 10px 5px 15px 5px; height: 40px;">{{ item.title }}</span>
+      <div
+        class="unit-num"
+        v-for="(item, index) in unitList"
+        :key="index"
+        @click="secrhList(item.title)"
+        style="cursor: pointer"
+      >
+        <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"

+ 10 - 10
app/src/views/Home/components/WisdomFire.vue

@@ -133,12 +133,12 @@
             </ul>
           </div>
           <!-- 生命通道 -->
-          <div class="pressure-num" @click="toIot('消防通道监测')">
+          <div class="pressure-num" @click="toIot('生命通道监测')">
             <div class="pressure-bg">
               {{ frieList.smtdzs ? frieList.smtdzs : 0
-              }}<span style="margin-right: 1px">/</span>
-              <span>{{ frieList.smtdlds ? frieList.smtdlds : 0 }}</span>
-              <div style="font-size: 12px; margin-top: 5px">个(栋)</div>
+              }}<span style="margin-right: 1px"></span>
+              <!-- <span>{{ frieList.smtdlds ? frieList.smtdlds : 0 }}</span> -->
+              <div style="font-size: 12px; margin-top: 5px">个</div>
             </div>
 
             <ul class="pressure-list">
@@ -155,9 +155,9 @@
                 /> -->
                 <span class="bumer" style="font-size: 16px; margin-left: 2px"
                   >{{ frieList.smtdzxs?frieList.smtdzxs : 0}}
-                  <span style="margin-right: 1px">/</span>
-                  <span>{{ frieList.smtdzxlds ? frieList.smtdzxlds : 0 }}</span>
-                  <span class="unit" style="font-size: 12px">(个/栋)</span>
+                  <!-- <span style="margin-right: 1px">/</span> -->
+                  <!-- <span>{{ frieList.smtdzxlds ? frieList.smtdzxlds : 0 }}</span> -->
+                  <span class="unit" style="font-size: 12px">(个)</span>
                 </span>
               </li>
               <li class="pressure-line">
@@ -170,9 +170,9 @@
                 /> -->
                 <span class="bumer" style="margin-left: 2px"
                   >{{ frieList.smtdgjs ? frieList.smtdgjs : 0 }}
-                  <span style="margin-right: 1px">/</span>
-                  <span>{{ frieList.smtdgjlds ? frieList.smtdgjlds : 0 }}</span>
-                  <span style="font-size: 12px">(个/栋)</span>
+                  <!-- <span style="margin-right: 1px">/</span> -->
+                  <!-- <span>{{ frieList.smtdgjlds ? frieList.smtdgjlds : 0 }}</span> -->
+                  <span style="font-size: 12px">(个)</span>
                 </span>
                 <!-- <span class="unit">(个/栋)</span> -->
               </li>

+ 28 - 3
app/src/views/Home/components/zzglModul.vue

@@ -20,9 +20,13 @@ export default {
           value: "有",
         },
         {
-          lable: "无",
-          value: "无",
+          lable: "无(消防设施无问题)",
+          value: "无(消防设施无问题)",
         },
+        {
+          lable: "无(消防设施有问题)",
+          value: "无(消防设施有问题)",
+        }
       ],
       value: "全市",
       params: {
@@ -47,6 +51,7 @@ export default {
   },
   props: {
     qy: String,
+    queryParams: Object
   },
   watch: {
     qy: {
@@ -58,6 +63,16 @@ export default {
       immediate: true,
       deep: true,
     },
+    queryParams: {
+      handler(val) {
+        this.resetParams();
+        this.glxs = val.glxs //管理形式
+        this.wbxs = val.wbxs//维保形式
+        this.dxjj = val.dxjj//大修基金
+        this.funUnitList();
+      },
+      immediate: true
+    },
   },
   methods: {
     rowClickHandler(val) {
@@ -91,6 +106,16 @@ export default {
         const list = res.data.rows[0];
       });
     },
+    resetParams() {
+      this.search = "";
+      this.glxs = ""; //管理形式
+      this.wbxs = ""; //维保形式
+      this.dxjj = ""; //大修基金
+      this.params = {
+        pageSize: 10,
+        pageNum: 1,
+      };
+    },
     resetForm() {
       this.search = "";
       this.qx = "";
@@ -113,7 +138,7 @@ export default {
     }).then((res) => {
       this.options = res.data.rows;
     });
-  },
+  }
 };
 </script>
 

+ 52 - 27
app/src/views/Home/index.vue

@@ -7,18 +7,13 @@
         title="基础信息"
         @click="openBasicModal"
       >
-        <BasicInfo :qy="qy" @showTc="showTc" />
+        <BasicInfo :qy="qy" @showTc="showTc" @UnitType="UnitType" />
       </border-panel>
       <border-panel height="346px" style="margin-bottom: 6px" title="隐患排查">
         <HiddenDangerDetection :qy="qy" />
       </border-panel>
-      <border-panel
-        height="296px"
-        header-cursor="pointer"
-        title="自主管理"
-        @click-header="openAutoManageModal"
-      >
-        <AutonomousManagement :qy="qy" />
+      <border-panel height="296px" header-cursor="pointer" title="自主管理" @click-header="openAutoManageModal">
+        <AutonomousManagement @click-item="onClickAutonomousManagementItemHandler" :qy="qy" />
       </border-panel>
     </div>
     <div class="display: flex;">
@@ -72,18 +67,19 @@
       </border-panel>
     </div>
     <basic-modal top="120px" ref="basicInfoModal" name="基础信息">
-      <BasicInfoModalContent :qy="qy" :typeName="typeName" :fxdjs="fxdjs" />
+      <BasicInfoModalContent :qy="qy" :typeName="typeName" :fxdjs="fxdjs" :titleName="titleName" />
     </basic-modal>
-
-    <basic-modal top="120px" ref="autoManageModal" name="自主管理">
-      <zzglModul :qy="qy" />
+    <basic-modal top="120px" ref="autoManageModal"  name="自主管理">
+      <zzglModul ref="zzglModul" 
+      :queryParams="queryParams"
+      :qy="qy" />
     </basic-modal>
   </div>
 </template>
 <script>
 import BasicInfo from "./components/BasicInfo.vue";
 import AlarmingSituationDynamics from "./components/AlarmingSituationDynamics/index.vue";
-import AutonomousManagement from "./components/AutonomousManagement.vue";
+import AutonomousManagement from "./components/AutonomousManagement/index.vue";
 import HiddenDangerDetection from "./components/HiddenDangerDetection/index.vue";
 import MapCharts from "./components/MapCharts.vue";
 import RiskWarning from "./components/RiskWarning.vue";
@@ -126,8 +122,14 @@ export default {
       fireIndexType: 0,
       heatMap: [],
       typeName: "",
-      fxdjs:''
-    };
+      fxdjs:'',
+      titleName:'',
+      queryParams: {
+        glxs: "", //管理形式
+        wbxs: "", //维保形式
+        dxjj: "" //大修基金
+      }
+    }
   },
   watch: {
     qy() {
@@ -137,6 +139,26 @@ export default {
     },
   },
   methods: {
+    onClickAutonomousManagementItemHandler(data) {
+      const temp = {
+        glxs: "",
+        wbxs: "",
+        dxjj: "",
+      }
+      switch (data.index) {
+        case 0:
+          temp.glxs = data.value
+          break;
+        case 1:
+          temp.wbxs = data.value
+          break;
+        case 2:
+        temp.dxjj = data.value
+          break;
+      }
+      this.queryParams = temp
+      this.showModal("autoManageModal")
+    },
     showLabel(params) {
       return createMapChartWindowInfo(
         {
@@ -161,20 +183,23 @@ export default {
     openBasicModal() {
       this.showModal("basicInfoModal");
     },
+    UnitType(name){
+      console.log('000000000',name);
+      this.titleName=name
+      
+    },
     // 风险预警
-    getList() {
-      totaldata({ ...this.params, qy: this.qy === "重庆市" ? "" : this.qy })
-        .then((res) => {
-          if (res.data.code == 200) {
-            this.riskList = res.data.rows;
-          }
-        })
-        .catch((error) => {
-          this.$message({
-            message: res.data.msg,
-            type: "error",
-          });
+    getList(){
+      totaldata({...this.params,qy:this.qy==="重庆市"?"":this.qy}).then(res=>{
+        if(res.data.code==200){
+        this.riskList=res.data.rows
+        }
+      }).catch(error=>{
+        this.$message({
+          message: res.data.msg,
+          type: "error"
         });
+      })
     },
     selectItemHandler(idx) {
       this.fireIndexType = idx;

+ 3 - 3
app/src/views/Iot/components/RegionalDistribution.vue

@@ -62,10 +62,10 @@ export default {
       options: [
         { label: "已建物联网排名", value: "wlw" },
         { label: "已建物水压监测排名", value: "sy" },
-        { label: "已建电器火灾测排名", value: "dq" },
-        { label: "已建消防通道检测排名", value: "smtd" },
+        { label: "已建电器火灾测排名", value: "dq" },
+        { label: "已建生命通道监测排名", value: "smtd" },
         { label: "已建火灾报警主机监测排名", value: "hz" },
-        { label: "已建消防控制室人员离岗监排名", value: "xfkzs" },
+        { label: "已建消防控制室人员离岗监排名", value: "xfkzs" },
       ],
       selectOption: "wlw",
       reload: true

+ 4 - 4
app/src/views/Iot/components/fxfbCont.vue

@@ -13,16 +13,16 @@ export default {
       options: [],
       options1: [
         {
-          value: "水压测",
-          label: "水压测",
+          value: "水压测",
+          label: "水压测",
         },
         {
           value: "电气火灾监测",
           label: "电气火灾监测",
         },
         {
-          value: "消防通道监测",
-          label: "消防通道监测",
+          value: "生命通道监测",
+          label: "生命通道监测",
         },
         {
           value: "火灾报警主机监测",

+ 4 - 4
app/src/views/PoliceSituation/components/MobilizeStrength.vue

@@ -55,7 +55,7 @@ white-space: nowrap;">{{ item.yjddsj || '-'}}</span>
 			</div>
 			<div class="content on">
 				<div v-for="(item,index) in hcws" :key="index">
-					<div style="" style="background: rgba(21, 64, 98);">
+					<div  style="background: rgba(21, 64, 98);">
 						<div class="contFlex">
 							<div class="contType">{{item.jqzt}}</div>
 							<div class="conTime">{{item.gxsj}}</div>
@@ -70,7 +70,7 @@ white-space: nowrap;">{{ item.yjddsj || '-'}}</span>
 </template>
 <script>
 	import VueSeamlessScroll from "vue-seamless-scroll";
-
+	import moment from "moment";
 	export default {
 		name: 'MaintenanceSupervision',
 		data() {
@@ -116,7 +116,7 @@ white-space: nowrap;">{{ item.yjddsj || '-'}}</span>
 					"否": "#df575b"
 				} [text]
 			}
-		}
+		},
 	}
 </script>
 
@@ -303,4 +303,4 @@ white-space: nowrap;">{{ item.yjddsj || '-'}}</span>
 			}
 		}
 	}
-</style>
+</style>

+ 10 - 2
app/src/views/PoliceSituation/index.vue

@@ -27,6 +27,7 @@
 	import UnitInformation from "./components/UnitInformation.vue";
 	import UnitInfo from "./components/UnitInfo.vue";
 	import Map from "@/components/Map.vue";
+	import moment from "moment";
 	import {
 		getBjxx,
 		geTzl,
@@ -49,6 +50,7 @@
 		},
 		data() {
 			return {
+				gxsj1:null,
 				pId: null,
 				params: {
 					pageSize: 100,
@@ -127,7 +129,13 @@
 					let i2 = i.filter((item, index) => {
 						return index
 					})
-					this.hcws = i2;
+					this.hcws  = i2.map(i =>{
+						return {
+							...i,
+							gxsj: moment(i.gxsj).format("yyyy-MM-DD")
+						}
+					});
+					this.hcws1.gxsj = moment(this.hcws1.gxsj).format("yyyy-MM-DD");
 				});
 				// 事故单位信息-案件信息列表
 				getAjxx(this.params).then((res) => {
@@ -180,4 +188,4 @@
 	};
 </script>
 
-<style scoped lang="less"></style>
+<style scoped lang="less"></style>