|
@@ -9,7 +9,7 @@
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
|
|
|
|
<el-tab-pane :label="item.name" :name="item.name" v-for="(item, index) in store.state.query_pick_pane" :key="index">
|
|
<el-tab-pane :label="item.name" :name="item.name" v-for="(item, index) in store.state.query_pick_pane" :key="index">
|
|
-
|
|
|
|
|
|
+ <pie class="echart" unit="亩" @echartClick="(name)=>echartClick(name,item.value)" :ref="`echartRef`"></pie>
|
|
<el-collapse v-for="(value, index_item) in item.value" :key="index_item" @change="handleChange">
|
|
<el-collapse v-for="(value, index_item) in item.value" :key="index_item" @change="handleChange">
|
|
<el-collapse-item :title="'地块' + (index_item + 1)" name="1">
|
|
<el-collapse-item :title="'地块' + (index_item + 1)" name="1">
|
|
<div class="list_vector_multi" v-for="(value_field, index_field) in value" :key="index_field"
|
|
<div class="list_vector_multi" v-for="(value_field, index_field) in value" :key="index_field"
|
|
@@ -36,6 +36,7 @@
|
|
import { GetTableData } from '@/api/cockpitNew'
|
|
import { GetTableData } from '@/api/cockpitNew'
|
|
import * as wellknown from "wellknown";
|
|
import * as wellknown from "wellknown";
|
|
import * as turf from "@turf/turf";
|
|
import * as turf from "@turf/turf";
|
|
|
|
+import pie from "@/components/echartsTemplate/pie.vue";
|
|
|
|
|
|
let manager_multi_level_query = null;
|
|
let manager_multi_level_query = null;
|
|
let pick_entity = null;
|
|
let pick_entity = null;
|
|
@@ -43,7 +44,7 @@ let pick_entity = null;
|
|
let manager_multi_level_vector = null;
|
|
let manager_multi_level_vector = null;
|
|
|
|
|
|
export default {
|
|
export default {
|
|
- components: {},
|
|
|
|
|
|
+ components: { pie },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
activeName: 'second',
|
|
activeName: 'second',
|
|
@@ -60,6 +61,18 @@ export default {
|
|
watch: {},
|
|
watch: {},
|
|
//方法集合
|
|
//方法集合
|
|
methods: {
|
|
methods: {
|
|
|
|
+ compute(mj) {
|
|
|
|
+ return mj ? (mj * 0.0015).toFixed(2) : 0;
|
|
|
|
+ },
|
|
|
|
+ setEchart(data, type, index) {
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.$refs.echartRef[index].setOptions({ data, type, max: 3 });
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ echartClick(name,datas){
|
|
|
|
+ // let click = datas.filter((c) => c.name == name);
|
|
|
|
+ // if (click.length > 0) this.gogeojson(click[0].geom );
|
|
|
|
+ },
|
|
switch_show(flag) {
|
|
switch_show(flag) {
|
|
pick_entity.entities.values.forEach((res) => {
|
|
pick_entity.entities.values.forEach((res) => {
|
|
res.show = flag;
|
|
res.show = flag;
|
|
@@ -69,7 +82,12 @@ export default {
|
|
const that = this;
|
|
const that = this;
|
|
e.forEach(element => {
|
|
e.forEach(element => {
|
|
if (element.filed == "geom") {
|
|
if (element.filed == "geom") {
|
|
- let geojson = wellknown.parse(element.data);
|
|
|
|
|
|
+ this.gogeojson(element.data)
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ gogeojson(data){
|
|
|
|
+ let geojson = wellknown.parse(data);
|
|
|
|
|
|
const twoDArray = geojson.coordinates[0];
|
|
const twoDArray = geojson.coordinates[0];
|
|
const oneDArray = twoDArray.reduce((accumulator, currentValue) => accumulator.concat(currentValue), []);
|
|
const oneDArray = twoDArray.reduce((accumulator, currentValue) => accumulator.concat(currentValue), []);
|
|
@@ -136,8 +154,6 @@ export default {
|
|
pitch: -1.539825618847483,
|
|
pitch: -1.539825618847483,
|
|
roll: 0
|
|
roll: 0
|
|
},
|
|
},
|
|
- });
|
|
|
|
- }
|
|
|
|
});
|
|
});
|
|
},
|
|
},
|
|
handleChange(val) {
|
|
handleChange(val) {
|
|
@@ -212,8 +228,11 @@ export default {
|
|
}
|
|
}
|
|
if (res.data.child != undefined) {
|
|
if (res.data.child != undefined) {
|
|
store.state.query_pick_pane = [];
|
|
store.state.query_pick_pane = [];
|
|
|
|
+ let index = -1;
|
|
res.data.child.forEach(element => {
|
|
res.data.child.forEach(element => {
|
|
if (element.data.length > 1) {
|
|
if (element.data.length > 1) {
|
|
|
|
+ index ++;
|
|
|
|
+ let edata = []
|
|
store.state.query_pick_pane.push({
|
|
store.state.query_pick_pane.push({
|
|
name: element.dataname,
|
|
name: element.dataname,
|
|
value: element.data
|
|
value: element.data
|
|
@@ -227,6 +246,24 @@ export default {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
});
|
|
});
|
|
|
|
+ // if(element.dataname == '土地现状'){
|
|
|
|
+ const countByName = element.data.reduce((acc, e) => {
|
|
|
|
+ let name,value = ''
|
|
|
|
+ e.forEach((res) => {
|
|
|
|
+ if (res.filed == 'dlmc' || res.filed == 'qslx') name = res.data
|
|
|
|
+ if (res.filed == 'siweiarea') value = res.data
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ acc[name] = (acc[name] || 0) + value;
|
|
|
|
+ return acc;
|
|
|
|
+ }, {});
|
|
|
|
+
|
|
|
|
+ Object.keys(countByName).forEach((key) => {
|
|
|
|
+ edata.push({name:key,value:this.compute(countByName[key])})
|
|
|
|
+ });
|
|
|
|
+ console.log(index,edata,'--a-a--')
|
|
|
|
+ // }
|
|
|
|
+ this.setEchart(edata,'vertical',index)
|
|
|
|
|
|
// store.state.query_pick_pane.push({
|
|
// store.state.query_pick_pane.push({
|
|
// name: element.dataname,
|
|
// name: element.dataname,
|
|
@@ -388,6 +425,10 @@ export default {
|
|
}
|
|
}
|
|
</style>
|
|
</style>
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
+.echart{
|
|
|
|
+ width: 300px;
|
|
|
|
+ height: 420px;
|
|
|
|
+}
|
|
.multi_level_query_table {
|
|
.multi_level_query_table {
|
|
position: absolute;
|
|
position: absolute;
|
|
top: 7rem;
|
|
top: 7rem;
|