epmet pc工作端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

197 lines
4.8 KiB

3 years ago
<template>
<div class="g-row">
<div class="g-left">
<div class="m-box">
<div class="box-title">
<img
src="~@/assets/images/shuju/main/card-title-bg-480.png"
class="box-title-bg"
/>
<div class="box-title-txt">房屋概览</div>
</div>
<div class="m-subbox"></div>
</div>
<div class="m-box">
<div class="box-title">
<img
src="~@/assets/images/shuju/main/card-title-bg-480.png"
class="box-title-bg"
/>
<div class="box-title-txt">居民概览</div>
</div>
<div class="m-subbox"></div>
</div>
</div>
<div class="g-center">
<div class="m-map">
<grid-map
v-if="orgData.id"
@clickAgency="clickAgencyItem"
:srcGridData="orgData"
/>
</div>
<div class="m-box m-cate">
<div class="box-title">
<img
src="~@/assets/images/shuju/main/card-title-bg-800.png"
class="box-title-bg"
/>
<div class="box-title-txt">居民分类分析</div>
<div class="box-title-btn">
<img src="~@/assets/images/shuju/renfang/index/znyc.png" />
<span>智能预测</span>
</div>
</div>
<div class="list">
<div
class="item"
:key="item.code"
v-for="(item, index) in warningData"
>
<div>{{ ("0" + (index + 1)).substr(-2) }}.</div>
<div class="item-name">{{ item.name }}</div>
<div class="item-count">
<b>{{ item.count }}</b>
</div>
<div class="item-progress">
<b :style="{ width: item.count + '%' }"></b>
</div>
<div class="item-per">
<span>较上月</span>
<img
v-if="false"
src="~@/assets/images/shuju/renfang/index/up.png"
/>
<img v-else src="~@/assets/images/shuju/renfang/index/down.png" />
<b>{{ item.count }}</b>
<span></span>
</div>
</div>
</div>
</div>
</div>
<div class="g-right">
<div class="m-box">
<div class="box-title">
<img
src="~@/assets/images/shuju/main/card-title-bg-480.png"
class="box-title-bg"
/>
<div class="box-title-txt">人口分析</div>
</div>
<div class="m-subbox"></div>
</div>
<div class="m-box">
<div class="box-title">
<img
src="~@/assets/images/shuju/main/card-title-bg-480.png"
class="box-title-bg"
/>
<div class="box-title-txt">人口预警</div>
</div>
<div class="m-subbox"></div>
</div>
</div>
</div>
</template>
<script>
import gridMap from "@/views/dataBoard/cpts/map/index";
import { requestPost } from "@/js/dai/request";
import getQueryPara from "dai-js/modules/getQueryPara";
export default {
components: { gridMap },
data() {
return {
orgData: {}, //当前组织对象
orgId: "",
orgLevel: "",
subAgencyArray: [],
warningData: [],
};
},
async mounted() {
const queryOrgId = getQueryPara("orgId");
const queryOrgLevel = getQueryPara("orgLevel");
console.log("orgId", queryOrgId);
if (queryOrgId) {
this.orgId = queryOrgId;
this.orgLevel = queryOrgLevel || "agency";
}
//加载组织数据
await this.loadOrgData();
this.getWarningList();
},
methods: {
//加载组织数据
async getWarningList() {
const url = "/epmetuser/statsresiwarn/list";
let params = {
id: this.orgData.id,
level: "agency",
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.warningData = data.map((item) => {
return {
code: item.columnName,
name: item.label,
count: item.count,
const: "const",
};
});
} else {
this.$message.error(msg);
}
},
//加载组织数据
async loadOrgData() {
const url = "/gov/org/agency/maporg";
let params = {
orgId: this.orgId,
level: this.orgLevel,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.orgData = data;
this.orgId = this.orgData.id;
this.orgLevel = this.orgData.level;
if (data.children && data.children.length > 0) {
this.subAgencyArray = data.children;
} else {
this.subAgencyArray = [];
}
} else {
this.$message.error(msg);
}
},
},
};
</script>
<style
lang="scss"
src="@/assets/scss/dataBoard/renfang/index.scss"
scoped
></style>