|
@@ -1,101 +1,382 @@
|
|
|
<!--合规性分析-->
|
|
|
<template>
|
|
|
- <div class="ghzc basicGeographic">
|
|
|
- <EntityManage class="innerContainer leftPane"></EntityManage>
|
|
|
- <!-- <div class="innerContainer leftPane" v-drag @click.native.stop>
|
|
|
- <h2 class="Pangetitle darg-div">
|
|
|
- <span class="pange_text">耕地保护</span>
|
|
|
- </h2>
|
|
|
- <el-tabs type="border-card" class="xz_box" v-model="activeTabs" stretch @tab-click="tabClick">
|
|
|
- <el-tab-pane label="辅助监测研判" name="fzjcyp">
|
|
|
- <FZJCYP v-loading="loading" @updateParent="changeData" ref="fzjcyp"></FZJCYP>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="历史记录" name="lsju">
|
|
|
- <Lsjl :rzBsm="rzBsm" :activeTabs="activeTabs" @updateParent="changeData" type="gdbh" ref="lsju"></Lsjl>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="分析结果" :disabled="activeTabs != 'scjg'" name="fxjg">
|
|
|
- <div v-drag style="height: 100%;">
|
|
|
- <FXJG :activeTabs="activeTabs" @updateParent="changeData" :loading="loading" :fxjgObj="nowObj" ref="fxjg"
|
|
|
- v-if="activeTabs == 'fxjg'"></FXJG>
|
|
|
- </div>
|
|
|
- </el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
+ <div class="ghzc basicGeographic">
|
|
|
+ <EntityManage class="innerContainer leftPane" @detail="detail" @checkChange="checkChange"></EntityManage>
|
|
|
+ <div class="sm-panel rightWrap" v-show="showInter" :class="fold ? 'HideRight' : ''">
|
|
|
+ <div class="sm-panel-header">
|
|
|
+ <span>实体关系</span>
|
|
|
+ <span class="closeBtn foldBtn" :class="`el-icon-s-${fold ? '' : 'un'}fold`" @click="fold = !fold"></span>
|
|
|
+ <span class="closeBtn" @click="showInter = false">×</span>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div style="width: 50%;">
|
|
|
+ <el-input placeholder="请输入查询内容" prefix-icon="el-icon-search" v-model="graphText" size="small" @change="detail">
|
|
|
+ </el-input>
|
|
|
</div>
|
|
|
- <interDetails :rzBsm="rzBsm" @updateParent="changeData" :interObj="interObj" v-if="showInter"></interDetails>
|
|
|
- <RzDtails
|
|
|
- :rzBsm="rzBsm"
|
|
|
- :rzMc="nowObj.xmmc"
|
|
|
- @updateParent="changeData"
|
|
|
- ></RzDtails> -->
|
|
|
+ <graph id="first_pie" ref="graphEchart" click=""></graph>
|
|
|
+ <div id="myContext" class="myContextMenu" style="display: none;">
|
|
|
+ <div @click="fly"> 定位</div>
|
|
|
+ <div @click="info">详情</div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="sm-panel infoDiv" v-show="showinfo">
|
|
|
+ <Info :data="jbxxData"></Info>
|
|
|
</div>
|
|
|
+ <!-- <interDetails :rzBsm="rzBsm" @updateParent="changeData" :interObj="interObj" v-if="showInter"></interDetails>
|
|
|
+ <RzDtails :rzBsm="rzBsm" :rzMc="nowObj.xmmc" @updateParent="changeData"></RzDtails> --> -->
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+let data = [
|
|
|
+ {
|
|
|
+ name: "李富贵",
|
|
|
+ id: "lfg",
|
|
|
+ tooltip: {
|
|
|
+ formatter: "{b} <br/>定位<br/>详情",
|
|
|
+ },
|
|
|
+ category: 0
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tooltip: {
|
|
|
+ formatter: "{b} <br/>性别:男<br/>出生年月:19951114<br/>星座:处女座",
|
|
|
+ },
|
|
|
+ name: "王桂花",
|
|
|
+ id: "wgh",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tooltip: {
|
|
|
+ formatter: "{b} <br/>性别:男<br/>出生年月:19951114<br/>星座:处女座",
|
|
|
+ },
|
|
|
+ name: "李思思",
|
|
|
+ category: 0,
|
|
|
+ id: 'lss'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "自住房屋",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "车子",
|
|
|
+ category: 1
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "租房",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "黄涛",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "于海",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "张柏",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "付梦杰",
|
|
|
+ },
|
|
|
+];
|
|
|
+
|
|
|
+let links = [
|
|
|
+ {
|
|
|
+ source: 'lfg',
|
|
|
+ target: 'wgh',
|
|
|
+ value: "夫妻",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 0,
|
|
|
+ target: 'lss',
|
|
|
+ value: "父亲",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 2,
|
|
|
+ target: 0,
|
|
|
+ value: "女儿",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 0,
|
|
|
+ target: 3,
|
|
|
+ value: "自住",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 0,
|
|
|
+ target: 4,
|
|
|
+ value: "车主",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 0,
|
|
|
+ target: 5,
|
|
|
+ value: "租户",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 5,
|
|
|
+ target: 6,
|
|
|
+ value: "租赁",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 5,
|
|
|
+ target: 7,
|
|
|
+ value: "租赁",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 5,
|
|
|
+ target: 8,
|
|
|
+ value: "租赁",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 5,
|
|
|
+ target: 9,
|
|
|
+ value: "租赁",
|
|
|
+ },
|
|
|
+];
|
|
|
+let categors = [
|
|
|
+ {
|
|
|
+ name: "李富贵",
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: "#FCBB5B",
|
|
|
+ borderColor: "#FCBB5B",
|
|
|
+ shadowColor: "#FCBB5B",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '类别',
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: '#87ceeb' // 分类2的颜色
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }]
|
|
|
+let data2 = [
|
|
|
+ {
|
|
|
+ name: "租房",
|
|
|
+ tooltip: {
|
|
|
+ formatter: "{b} <br/>性别:男<br/>职务:富阳区灵桥镇灵桥村务农",
|
|
|
+ },
|
|
|
+ itemStyle: {
|
|
|
+ normal: {
|
|
|
+ color: "#FCBB5B",
|
|
|
+ borderColor: "#FCBB5B",
|
|
|
+ shadowColor: "#FCBB5B",
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "黄涛",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "于海",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "张柏",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "付梦杰",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: "李富贵",
|
|
|
+ },
|
|
|
+];
|
|
|
+
|
|
|
+let links2 = [
|
|
|
+ {
|
|
|
+ source: 0,
|
|
|
+ target: 1,
|
|
|
+ value: "租赁",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 0,
|
|
|
+ target: 2,
|
|
|
+ value: "租赁",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 0,
|
|
|
+ target: 3,
|
|
|
+ value: "租赁",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 0,
|
|
|
+ target: 4,
|
|
|
+ value: "租赁",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 0,
|
|
|
+ target: 5,
|
|
|
+ value: "房主",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ source: 5,
|
|
|
+ target: 0,
|
|
|
+ value: "租户",
|
|
|
+ },
|
|
|
+];
|
|
|
+import Info from "../Idleland/components/info.vue";
|
|
|
import EntityManage from "./entityManage.vue";
|
|
|
-// import FXJG from "./components/fxjg.vue";
|
|
|
-// import Lsjl from "../complianceAnalysis/components/lsjl.vue";
|
|
|
-// import interDetails from "./components/interDetails.vue";
|
|
|
-// import RzDtails from "../complianceAnalysis/components/rzDtails.vue";
|
|
|
+import graph from "@/components/echartsTemplate/graph.vue";
|
|
|
+import { getData, getRelationship } from "@/api/basicGeographic.js";
|
|
|
+import { loadGeoJSON, removeGeoJSON } from "@/utils/MapHelper/help.js";
|
|
|
export default {
|
|
|
- name: "BasicGeographic",
|
|
|
- components: {
|
|
|
- EntityManage,
|
|
|
- // Lsjl,
|
|
|
- // FXJG,
|
|
|
- // interDetails,
|
|
|
- // RzDtails,
|
|
|
+ name: "BasicGeographic",
|
|
|
+ components: {
|
|
|
+ EntityManage,
|
|
|
+ graph,
|
|
|
+ Info
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ graphText: "",
|
|
|
+ nowObj: {},
|
|
|
+ loading: false,
|
|
|
+ showInter: false,
|
|
|
+ fold: false,
|
|
|
+ geoSources: {},
|
|
|
+ showinfo: false,
|
|
|
+ jbxxData: []
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() { },
|
|
|
+ mounted() {
|
|
|
+ this.detail({ id: 'MA1001NE103K10342XXXXXXXXXXXXXXX2203020000' });
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ click(params) {
|
|
|
+ console.log(params, "paramsparams");
|
|
|
+ if (params.name == "租房") {
|
|
|
+ this.$refs.graphEchart.setOptions(data2, links2, categors)
|
|
|
+ } else if (params.name == "李富贵") {
|
|
|
+ this.$refs.graphEchart.setOptions(data, links, categors)
|
|
|
+ }
|
|
|
},
|
|
|
- data() {
|
|
|
- return {
|
|
|
- activeTabs: "fzjcyp",
|
|
|
- rzBsm: "",
|
|
|
- rwBsm: "",
|
|
|
- nowObj: {},
|
|
|
- rzMc: "",
|
|
|
- loading: false,
|
|
|
- interObj: {},//套合信息存储
|
|
|
- showInter: false,
|
|
|
- };
|
|
|
+ checkChange(obj, checked) {
|
|
|
+ if (checked) this.getData(obj)
|
|
|
+ else removeGeoJSON(obj.id)
|
|
|
+ },
|
|
|
+ detail(obj) {
|
|
|
+ this.showInter = true
|
|
|
+ console.log(obj, "paramsparams",getRelationship);
|
|
|
+ this.getRelationship(obj)
|
|
|
+ this.$refs.graphEchart.setOptions(data, links, categors);
|
|
|
+ },
|
|
|
+
|
|
|
+ getData(obj) {
|
|
|
+ getData({ entityid: obj.id }).then((res) => {
|
|
|
+ if (res.statuscode == 200) {
|
|
|
+ this.showinfo = true;
|
|
|
+ Object.keys(res.data.info).forEach((key) => {
|
|
|
+ this.jbxxData.push({ name: key, value: res.data.info[key], });
|
|
|
+ });
|
|
|
+ res.data.geom.forEach(item => {
|
|
|
+ console.log(obj.id, item)
|
|
|
+ loadGeoJSON(item.siweigeomewkt, "#facd91", { isfly: true }, (data) => {
|
|
|
+ geoSources[obj.id] = data;
|
|
|
+ data.name = obj.id;
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
- created() { },
|
|
|
- methods: {
|
|
|
- changeData(name, updata) {
|
|
|
- this[name] = updata;
|
|
|
- },
|
|
|
- tabClick(evt) {
|
|
|
- this.activeTabs = evt.name;
|
|
|
- },
|
|
|
+ getRelationship(obj) {
|
|
|
+ console.log(obj, "paramsparams",getRelationship);
|
|
|
+ getRelationship({ entityid: obj.id }).then((res) => {
|
|
|
+ if (res.statuscode == 200) {
|
|
|
+ console.log(res.data);
|
|
|
+ // res.data
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
- watch: {
|
|
|
- activeTabs(newValue) {
|
|
|
- },
|
|
|
+ fly() {
|
|
|
+ console.log('fly,', '---');
|
|
|
},
|
|
|
+ info() {
|
|
|
+ console.log('info', '---');
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ // graphText(newValue) {
|
|
|
+ // },
|
|
|
+ },
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
-<style lang="scss" scoped>
|
|
|
+<style lang="less" scoped>
|
|
|
.basicGeographic {
|
|
|
- .xz_box {}
|
|
|
-
|
|
|
- // .headerSearch {
|
|
|
- // display: flex;
|
|
|
- // justify-content: space-between;
|
|
|
- // margin-right: 10px;
|
|
|
-
|
|
|
- // .el-input {
|
|
|
- // width: 48%;
|
|
|
- // }
|
|
|
-
|
|
|
- /deep/ .el-input--small .el-input__inner {
|
|
|
- color: white !important;
|
|
|
- background: rgba(100, 218, 255, 0.1);
|
|
|
- border-radius: 2px 10px 2px 10px;
|
|
|
- border-color: #5ecef09a;
|
|
|
+ .rightWrap {
|
|
|
+ width: 40%;
|
|
|
+ height: 85vh;
|
|
|
+ max-width: 40%;
|
|
|
+ min-width: 40%;
|
|
|
+ top: 60px;
|
|
|
+ z-index: 999;
|
|
|
+ transition-property: right, background;
|
|
|
+ transition-duration: 0.5s, 1s;
|
|
|
+
|
|
|
+ .foldBtn {
|
|
|
+ right: 40px;
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ .HideRight {
|
|
|
+ right: -40% !important;
|
|
|
+
|
|
|
+ .foldBtn {
|
|
|
+ right: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ #first_pie {
|
|
|
+ width: 38vw;
|
|
|
+ height: 75vh;
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/ .el-input--small .el-input__inner {
|
|
|
+ color: white !important;
|
|
|
+ background: rgba(100, 218, 255, 0.1);
|
|
|
+ border-radius: 2px 10px 2px 10px;
|
|
|
+ border-color: #5ecef09a;
|
|
|
+ }
|
|
|
+
|
|
|
+ .myContextMenu {
|
|
|
+ background-color: #041c32 !important;
|
|
|
+ border: 1px solid rgba(15, 122, 200, 0.4) !important;
|
|
|
+ width: 80px;
|
|
|
+ height: 80px;
|
|
|
+ color: #fff;
|
|
|
+ position: absolute;
|
|
|
+ border-radius: 2px;
|
|
|
|
|
|
- // }
|
|
|
+ text-align: center;
|
|
|
+ line-height: 40px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .infoDiv {
|
|
|
+ right: 40%;
|
|
|
+ }
|
|
|
+
|
|
|
+ // }
|
|
|
}
|
|
|
</style>
|
|
|
<style lang="scss">
|
|
|
@import "../complianceAnalysis//ghzc.scss";
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+@keyframes toRight {
|
|
|
+ from {
|
|
|
+ transform: translateX(0);
|
|
|
+ opacity: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ to {
|
|
|
+ transform: translateX(100%);
|
|
|
+ opacity: 1;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.sliding-element {
|
|
|
+ animation: toLeft 1s forwards
|
|
|
+}
|
|
|
</style>
|