|
@@ -1,257 +1,308 @@
|
|
|
TODO: 待完善
|
|
|
<template>
|
|
|
<div>
|
|
|
- <div :class='`analysis`' style='display: flex;' v-drag='`.analysis .ant-card-head`'>
|
|
|
- <a-card v-show='value' :title='title' style=' max-height: 90vh; width: 335px; box-shadow: 0 0 5px #357ee5;'>
|
|
|
- <a-icon slot='extra' type='close' style='cursor: pointer; color: #FFFFFF;' @click="$emit('input',false)" />
|
|
|
+ <div :class="`analysis`" style="display: flex;" v-drag="`.analysis .ant-card-head`">
|
|
|
+ <a-card v-show="value" :title="title" style=" max-height: 90vh; width: 335px; box-shadow: 0 0 5px #357ee5;">
|
|
|
+ <a-icon slot="extra" type="close" style="cursor: pointer; color: #FFFFFF;" @click="$emit('input', false)" />
|
|
|
<div>
|
|
|
- <h4>选择分析源图层:</h4><!--v-if="isMore"-->
|
|
|
- <a-radio-group v-model='tableType' button-style='solid' @change='onChange'>
|
|
|
- <a-radio v-for='(item,index) in activeItemList ' :key='item.id' :value='index' v-show='!item.isHidden'>
|
|
|
+ <h4>选择分析源图层:</h4>
|
|
|
+ <!--v-if="isMore"-->
|
|
|
+ <a-radio-group v-model="tableType" button-style="solid" @change="onChange">
|
|
|
+ <a-radio v-for="(item, index) in activeItemList" :key="item.id" :value="index" v-show="!item.isHidden">
|
|
|
{{ item.sourceName }}
|
|
|
</a-radio>
|
|
|
</a-radio-group>
|
|
|
- <div style='margin: 20px auto;'>
|
|
|
- <a-radio-group v-model='typeSelected' button-style='solid' @change='getTypeSelected'>
|
|
|
+ <div style="margin: 20px auto;">
|
|
|
+ <a-radio-group v-model="typeSelected" button-style="solid" @change="getTypeSelected">
|
|
|
<a-tooltip>
|
|
|
- <template slot='title'>
|
|
|
+ <template slot="title">
|
|
|
针对图斑分析
|
|
|
</template>
|
|
|
- <a-radio-button value='point'>
|
|
|
+ <a-radio-button value="point">
|
|
|
点选分析
|
|
|
</a-radio-button>
|
|
|
</a-tooltip>
|
|
|
<a-tooltip>
|
|
|
- <template slot='title'>
|
|
|
+ <template slot="title">
|
|
|
自由绘制分析
|
|
|
</template>
|
|
|
- <a-radio-button value='polygon'>
|
|
|
+ <a-radio-button value="polygon">
|
|
|
绘制分析
|
|
|
</a-radio-button>
|
|
|
</a-tooltip>
|
|
|
</a-radio-group>
|
|
|
- <a-button style='margin-left: 20px' @click='clear' type='danger'>清空</a-button>
|
|
|
+ <a-button style="margin-left: 20px" @click="clear" type="danger">清空</a-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- </div>
|
|
|
+ <div></div>
|
|
|
</a-card>
|
|
|
</div>
|
|
|
<!-- 分析结果抽屉 -->
|
|
|
<a-drawer
|
|
|
- title='分析结果'
|
|
|
- placement='right'
|
|
|
- :closable='true'
|
|
|
- :visible="basicMap.drawerVisible&&result[0].type!==''"
|
|
|
- @close='handleCancel'
|
|
|
- width='700'
|
|
|
- :mask='false'
|
|
|
- class='analysis'
|
|
|
+ title="分析结果"
|
|
|
+ placement="right"
|
|
|
+ :closable="true"
|
|
|
+ :visible="basicMap.drawerVisible && result[0].type !== ''"
|
|
|
+ @close="handleCancel"
|
|
|
+ width="700"
|
|
|
+ :mask="false"
|
|
|
+ class="analysis"
|
|
|
>
|
|
|
<!-- 分析结果内容 -->
|
|
|
- <div style=' '>
|
|
|
- <a-tabs v-model='key' tab-position='left' @change='tabsCallback' size='small'>
|
|
|
- <a-tab-pane v-if='gdXx' style='position: relative' key='项目信息' tab='项目信息'>
|
|
|
- <div class='info'>
|
|
|
- <div class='content'>
|
|
|
- <div v-for='dk in gdXxList' :key='dk.title'>
|
|
|
- <div v-show='dk.content!=null' class='caseother'><span class='title'>【{{ dk.title }}】</span><span
|
|
|
- class='text'>{{ dk.content }}</span></div>
|
|
|
+ <div style=" ">
|
|
|
+ <a-tabs v-model="key" tab-position="left" @change="tabsCallback" size="small">
|
|
|
+ <a-tab-pane v-if="gdXx" style="position: relative" key="项目信息" tab="项目信息">
|
|
|
+ <div class="info">
|
|
|
+ <div class="content">
|
|
|
+ <div v-for="dk in gdXxList" :key="dk.title">
|
|
|
+ <div v-show="dk.content != null" class="caseother">
|
|
|
+ <span class="title">【{{ dk.title }}】</span><span class="text">{{ dk.content }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</a-tab-pane>
|
|
|
- <a-tab-pane v-for='(item,index) in result' style='position: relative' :key='item.type' :tab='item.type'>
|
|
|
+ <a-tab-pane v-for="(item, index) in result" style="position: relative" :key="item.type" :tab="item.type">
|
|
|
<div>
|
|
|
- <div v-if='isTotal[index]' style=''>
|
|
|
- <a-table style='' :columns='item.columns' :data-source='item.data' :pagination='false'
|
|
|
- :scroll='{y: 300 }'>
|
|
|
- <template slot='types' slot-scope='text'>
|
|
|
+ <div v-if="isTotal[index]" style="">
|
|
|
+ <a-table
|
|
|
+ style=""
|
|
|
+ :columns="item.columns"
|
|
|
+ :data-source="item.data"
|
|
|
+ :pagination="false"
|
|
|
+ :scroll="{ y: 300 }"
|
|
|
+ >
|
|
|
+ <template slot="types" slot-scope="text">
|
|
|
<a>{{ text }}</a>
|
|
|
</template>
|
|
|
- <template slot='area' slot-scope='text,record'>
|
|
|
- <a @click='handleLocate(record)'>{{ text }}</a>
|
|
|
+ <template slot="area" slot-scope="text, record">
|
|
|
+ <a @click="handleLocate(record)">{{ text }}</a>
|
|
|
</template>
|
|
|
</a-table>
|
|
|
<!--饼图-->
|
|
|
- <Pie style=' margin-top: 80px; ' :height='300' :dataSource='item.pieData'></Pie>
|
|
|
+ <Pie style=" margin-top: 80px; " :height="300" :dataSource="item.pieData"></Pie>
|
|
|
</div>
|
|
|
<div v-else>
|
|
|
- <a-icon type='rollback' style='position: absolute; right: 10px;top:-10px;font-size: 16px;z-index: 100'
|
|
|
- @click='handleBack(index)' />
|
|
|
- <div v-if="item.type=='案件'" class='info' style='overflow: unset;user-select: auto;'>
|
|
|
- <a-timeline style=''>
|
|
|
- <template v-for='(item) in data'>
|
|
|
- <a-timeline-item color='green' v-if="item.TYPE=='sb'" :key=item.id>
|
|
|
- <div slot='dot'
|
|
|
- style='font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative'>
|
|
|
- <span
|
|
|
- style='font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;'>
|
|
|
- 报
|
|
|
- </span>
|
|
|
+ <a-icon
|
|
|
+ type="rollback"
|
|
|
+ style="position: absolute; right: 10px;top:-10px;font-size: 16px;z-index: 100"
|
|
|
+ @click="handleBack(index)"
|
|
|
+ />
|
|
|
+ <div v-if="item.type == '案件'" class="info" style="overflow: unset;user-select: auto;">
|
|
|
+ <a-timeline style="">
|
|
|
+ <template v-for="item in data">
|
|
|
+ <a-timeline-item color="green" v-if="item.TYPE == 'sb'" :key="item.id">
|
|
|
+ <div
|
|
|
+ slot="dot"
|
|
|
+ style="font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ style="font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;"
|
|
|
+ >
|
|
|
+ 报
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- <div class='content'>
|
|
|
- <div class='ant-popover-arrow' style=' left: -5px;top: 12px;color: #AFDCF8;'></div>
|
|
|
- <div class='casedate'><span class='title'>【上报日期】</span><span>{{ item.RQ }}</span></div>
|
|
|
- <div class='caseother'><span class='title'>【巡查员】</span><span>{{ item.REALNAME }}</span>
|
|
|
+ <div class="content">
|
|
|
+ <div class="ant-popover-arrow" style=" left: -5px;top: 12px;color: #AFDCF8;"></div>
|
|
|
+ <div class="casedate">
|
|
|
+ <span class="title">【上报日期】</span><span>{{ item.RQ }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【巡查员】</span><span>{{ item.REALNAME }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【描述】</span><span>{{ item.MS }}</span>
|
|
|
</div>
|
|
|
- <div class='caseother'><span
|
|
|
- class='title'>【描述】</span><span>{{ item.MS }}</span></div>
|
|
|
- <div class='caseother' v-show='item.ZPNAME'>
|
|
|
- <span class='title'>【媒体信息】</span>
|
|
|
- <div class='images' v-viewer>
|
|
|
- <img v-for='src in item.ZPNAME' :key='src' :src='src'>
|
|
|
+ <div class="caseother" v-show="item.ZPNAME">
|
|
|
+ <span class="title">【媒体信息】</span>
|
|
|
+ <div class="images" v-viewer>
|
|
|
+ <img v-for="src in item.ZPNAME" :key="src" :src="src" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class='caseother' v-show='item.SPNAME'>
|
|
|
- <span class='title'>【视频信息】</span>
|
|
|
+ <div class="caseother" v-show="item.SPNAME">
|
|
|
+ <span class="title">【视频信息】</span>
|
|
|
<div>
|
|
|
- <img src='@/assets/caseVideoNew.png' @click='handleVideo(item.SPNAME)'>
|
|
|
+ <img src="@/assets/caseVideoNew.png" @click="handleVideo(item.SPNAME)" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</a-timeline-item>
|
|
|
- <a-timeline-item color='green' v-else-if="item.TYPE=='zp'">
|
|
|
- <div slot='dot'
|
|
|
- style='font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative'>
|
|
|
- <span
|
|
|
- style='font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;'>
|
|
|
- 派
|
|
|
- </span>
|
|
|
+ <a-timeline-item color="green" v-else-if="item.TYPE == 'zp'">
|
|
|
+ <div
|
|
|
+ slot="dot"
|
|
|
+ style="font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ style="font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;"
|
|
|
+ >
|
|
|
+ 派
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- <div class='content'>
|
|
|
- <div class='ant-popover-arrow' style=' left: -5px;top: 12px;color: #AFDCF8;'></div>
|
|
|
- <div class='casedate'><span class='title'>【派发日期】</span><span>{{ item.RQ }}</span></div>
|
|
|
- <div class='caseother'><span class='title'>【处理员】</span><span>{{ item.REALNAME }}</span>
|
|
|
+ <div class="content">
|
|
|
+ <div class="ant-popover-arrow" style=" left: -5px;top: 12px;color: #AFDCF8;"></div>
|
|
|
+ <div class="casedate">
|
|
|
+ <span class="title">【派发日期】</span><span>{{ item.RQ }}</span>
|
|
|
</div>
|
|
|
- <div class='caseother'><span
|
|
|
- class='title'>【描述】</span><span>{{ item.MS }}</span></div>
|
|
|
- <div class='caseother' v-show='item.ZPNAME'>
|
|
|
- <span class='title'>【媒体信息】</span>
|
|
|
- <div class='images' v-viewer>
|
|
|
- <img v-for='src in item.ZPNAME' :key='src' :src='src'>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【处理员】</span><span>{{ item.REALNAME }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【描述】</span><span>{{ item.MS }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother" v-show="item.ZPNAME">
|
|
|
+ <span class="title">【媒体信息】</span>
|
|
|
+ <div class="images" v-viewer>
|
|
|
+ <img v-for="src in item.ZPNAME" :key="src" :src="src" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class='caseother' v-show='item.SPNAME'>
|
|
|
- <span class='title'>【视频信息】</span>
|
|
|
+ <div class="caseother" v-show="item.SPNAME">
|
|
|
+ <span class="title">【视频信息】</span>
|
|
|
<div>
|
|
|
- <img src='@/assets/caseVideoNew.png' @click='handleVideo(item.SPNAME)'>
|
|
|
+ <img src="@/assets/caseVideoNew.png" @click="handleVideo(item.SPNAME)" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</a-timeline-item>
|
|
|
- <a-timeline-item color='green' v-else-if="item.TYPE=='db'" :key='item.ID'>
|
|
|
- <div slot='dot'
|
|
|
- style='font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative'>
|
|
|
- <span
|
|
|
- style='font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;'>
|
|
|
- 督
|
|
|
- </span>
|
|
|
+ <a-timeline-item color="green" v-else-if="item.TYPE == 'db'" :key="item.ID">
|
|
|
+ <div
|
|
|
+ slot="dot"
|
|
|
+ style="font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ style="font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;"
|
|
|
+ >
|
|
|
+ 督
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- <div class='content'>
|
|
|
- <div class='ant-popover-arrow' style=' left: -5px;top: 12px;color: #AFDCF8;'></div>
|
|
|
- <div class='casedate'><span class='title'>【督办日期】</span><span>{{ item.RQ }}</span></div>
|
|
|
- <div class='caseother'><span class='title'>【督办员】</span><span>{{ item.REALNAME }}</span>
|
|
|
+ <div class="content">
|
|
|
+ <div class="ant-popover-arrow" style=" left: -5px;top: 12px;color: #AFDCF8;"></div>
|
|
|
+ <div class="casedate">
|
|
|
+ <span class="title">【督办日期】</span><span>{{ item.RQ }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【督办员】</span><span>{{ item.REALNAME }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【描述】</span><span>{{ item.MS }}</span>
|
|
|
</div>
|
|
|
- <div class='caseother'><span
|
|
|
- class='title'>【描述】</span><span>{{ item.MS }}</span></div>
|
|
|
- <div class='caseother' v-show='item.ZPNAME'>
|
|
|
- <span class='title'>【媒体信息】</span>
|
|
|
- <div class='images' v-viewer>
|
|
|
- <img v-for='src in item.ZPNAME' :key='src' :src='src'>
|
|
|
+ <div class="caseother" v-show="item.ZPNAME">
|
|
|
+ <span class="title">【媒体信息】</span>
|
|
|
+ <div class="images" v-viewer>
|
|
|
+ <img v-for="src in item.ZPNAME" :key="src" :src="src" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class='caseother' v-show='item.SPNAME'>
|
|
|
- <span class='title'>【视频信息】</span>
|
|
|
+ <div class="caseother" v-show="item.SPNAME">
|
|
|
+ <span class="title">【视频信息】</span>
|
|
|
<div>
|
|
|
- <img src='@/assets/caseVideoNew.png' @click='handleVideo(item.SPNAME)'>
|
|
|
+ <img src="@/assets/caseVideoNew.png" @click="handleVideo(item.SPNAME)" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</a-timeline-item>
|
|
|
- <a-timeline-item color='green' v-else-if="item.TYPE=='cl'">
|
|
|
- <div slot='dot'
|
|
|
- style='font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative'>
|
|
|
- <span
|
|
|
- style='font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;'>
|
|
|
- 处
|
|
|
- </span>
|
|
|
+ <a-timeline-item color="green" v-else-if="item.TYPE == 'cl'">
|
|
|
+ <div
|
|
|
+ slot="dot"
|
|
|
+ style="font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ style="font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;"
|
|
|
+ >
|
|
|
+ 处
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- <div class='content'>
|
|
|
- <div class='ant-popover-arrow' style=' left: -5px;top: 12px;color: #AFDCF8;'></div>
|
|
|
- <div class='casedate'><span class='title'>【处理日期】</span><span>{{ item.RQ }}</span></div>
|
|
|
- <div class='caseother'><span class='title'>【处理员】</span><span>{{ item.REALNAME }}</span>
|
|
|
+ <div class="content">
|
|
|
+ <div class="ant-popover-arrow" style=" left: -5px;top: 12px;color: #AFDCF8;"></div>
|
|
|
+ <div class="casedate">
|
|
|
+ <span class="title">【处理日期】</span><span>{{ item.RQ }}</span>
|
|
|
</div>
|
|
|
- <div class='caseother'><span
|
|
|
- class='title'>【描述】</span><span>{{ item.MS }}</span></div>
|
|
|
- <div class='caseother' v-show='item.ZPNAME'>
|
|
|
- <span class='title'>【媒体信息】</span>
|
|
|
- <div class='images' v-viewer>
|
|
|
- <img v-for='src in item.ZPNAME' :key='src' :src='src'>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【处理员】</span><span>{{ item.REALNAME }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【描述】</span><span>{{ item.MS }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother" v-show="item.ZPNAME">
|
|
|
+ <span class="title">【媒体信息】</span>
|
|
|
+ <div class="images" v-viewer>
|
|
|
+ <img v-for="src in item.ZPNAME" :key="src" :src="src" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class='caseother' v-show='item.SPNAME'>
|
|
|
- <span class='title'>【视频信息】</span>
|
|
|
+ <div class="caseother" v-show="item.SPNAME">
|
|
|
+ <span class="title">【视频信息】</span>
|
|
|
<div>
|
|
|
- <img src='@/assets/caseVideoNew.png' @click='handleVideo(item.SPNAME)'>
|
|
|
+ <img src="@/assets/caseVideoNew.png" @click="handleVideo(item.SPNAME)" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</a-timeline-item>
|
|
|
- <a-timeline-item color='green' v-else-if="item.TYPE=='ff'" :key='item.TYPE'>
|
|
|
- <div slot='dot'
|
|
|
- style='font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative'>
|
|
|
- <span
|
|
|
- style='font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;'>
|
|
|
- 飞
|
|
|
- </span>
|
|
|
+ <a-timeline-item color="green" v-else-if="item.TYPE == 'ff'" :key="item.TYPE">
|
|
|
+ <div
|
|
|
+ slot="dot"
|
|
|
+ style="font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ style="font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;"
|
|
|
+ >
|
|
|
+ 飞
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- <div class='content'>
|
|
|
- <div class='ant-popover-arrow' style=' left: -5px;top: 12px;color: #AFDCF8;'></div>
|
|
|
- <div class='casedate'><span class='title'>【复飞日期】</span><span>{{ item.RQ }}</span></div>
|
|
|
- <div class='caseother'><span class='title'>【复飞员】</span><span>{{ item.REALNAME }}</span>
|
|
|
+ <div class="content">
|
|
|
+ <div class="ant-popover-arrow" style=" left: -5px;top: 12px;color: #AFDCF8;"></div>
|
|
|
+ <div class="casedate">
|
|
|
+ <span class="title">【复飞日期】</span><span>{{ item.RQ }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【复飞员】</span><span>{{ item.REALNAME }}</span>
|
|
|
</div>
|
|
|
- <div class='caseother'><span
|
|
|
- class='title'>【描述】</span><span>{{ item.MS }}</span></div>
|
|
|
- <div class='caseother' v-show='item.ZPNAME'>
|
|
|
- <span class='title'>【媒体信息】</span>
|
|
|
- <div class='images' v-viewer>
|
|
|
- <img v-for='src in item.ZPNAME' :key='src' :src='src'>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【描述】</span><span>{{ item.MS }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother" v-show="item.ZPNAME">
|
|
|
+ <span class="title">【媒体信息】</span>
|
|
|
+ <div class="images" v-viewer>
|
|
|
+ <img v-for="src in item.ZPNAME" :key="src" :src="src" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class='caseother' v-show='item.SPNAME'>
|
|
|
- <span class='title'>【视频信息】</span>
|
|
|
+ <div class="caseother" v-show="item.SPNAME">
|
|
|
+ <span class="title">【视频信息】</span>
|
|
|
<div>
|
|
|
- <img src='@/assets/caseVideoNew.png' @click='handleVideo(item.SPNAME)'>
|
|
|
+ <img src="@/assets/caseVideoNew.png" @click="handleVideo(item.SPNAME)" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</a-timeline-item>
|
|
|
- <a-timeline-item color='green' v-else-if="item.TYPE=='sh'">
|
|
|
- <div slot='dot'
|
|
|
- style='font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative'>
|
|
|
- <span
|
|
|
- style='font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;'>
|
|
|
- 审
|
|
|
- </span>
|
|
|
+ <a-timeline-item color="green" v-else-if="item.TYPE == 'sh'">
|
|
|
+ <div
|
|
|
+ slot="dot"
|
|
|
+ style="font-size: 14px;background-color: #336699;border-radius: 50%;text-align: center;width: 30px;height: 30px;position: relative"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ style="font-weight: bold;color: #FFF;background-color: #46A4DA;border-radius: 50%;width:75%;height:75%;display: inline-block;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);line-height: initial;"
|
|
|
+ >
|
|
|
+ 审
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- <div class='content'>
|
|
|
- <div class='ant-popover-arrow' style=' left: -5px;top: 12px;color: #AFDCF8;'></div>
|
|
|
- <div class='casedate'><span class='title'>【审核日期】</span><span>{{ item.RQ }}</span></div>
|
|
|
- <div class='caseother'><span class='title'>【审核员】</span><span>{{ item.REALNAME }}</span>
|
|
|
+ <div class="content">
|
|
|
+ <div class="ant-popover-arrow" style=" left: -5px;top: 12px;color: #AFDCF8;"></div>
|
|
|
+ <div class="casedate">
|
|
|
+ <span class="title">【审核日期】</span><span>{{ item.RQ }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【审核员】</span><span>{{ item.REALNAME }}</span>
|
|
|
</div>
|
|
|
- <div class='caseother'><span
|
|
|
- class='title'>【描述】</span><span>{{ item.MS }}</span></div>
|
|
|
- <div class='caseother' v-show='item.ZPNAME'>
|
|
|
- <span class='title'>【媒体信息】</span>
|
|
|
- <div class='images' v-viewer>
|
|
|
- <img v-for='src in item.ZPNAME' :key='src' :src='src'>
|
|
|
+ <div class="caseother">
|
|
|
+ <span class="title">【描述】</span><span>{{ item.MS }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="caseother" v-show="item.ZPNAME">
|
|
|
+ <span class="title">【媒体信息】</span>
|
|
|
+ <div class="images" v-viewer>
|
|
|
+ <img v-for="src in item.ZPNAME" :key="src" :src="src" />
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class='caseother' v-show='item.SPNAME'>
|
|
|
- <span class='title'>【视频信息】</span>
|
|
|
+ <div class="caseother" v-show="item.SPNAME">
|
|
|
+ <span class="title">【视频信息】</span>
|
|
|
<div>
|
|
|
- <img src='@/assets/caseVideoNew.png' @click='handleVideo(item.SPNAME)'>
|
|
|
+ <img src="@/assets/caseVideoNew.png" @click="handleVideo(item.SPNAME)" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -280,26 +331,23 @@ TODO: 待完善
|
|
|
</a-timeline-item>-->
|
|
|
</a-timeline>
|
|
|
</div>
|
|
|
- <div v-else class='info' style='width: 100%'>
|
|
|
- <div class='content' v-for='(dks,ind) in item.list' :key='ind'>
|
|
|
- <div v-for='dk in dks' :key='dk.name'>
|
|
|
- <div v-show='dk.content!=null' class='caseother'><span class='title'>【{{ dk.name }}】</span><span
|
|
|
- class='text'>{{ dk.content }}</span></div>
|
|
|
+ <div v-else class="info" style="width: 100%">
|
|
|
+ <div class="content" v-for="(dks, ind) in item.list" :key="ind">
|
|
|
+ <div v-for="dk in dks" :key="dk.name">
|
|
|
+ <div v-show="dk.content != null" class="caseother">
|
|
|
+ <span class="title">【{{ dk.name }}】</span><span class="text">{{ dk.content }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
-
|
|
|
</a-tab-pane>
|
|
|
</a-tabs>
|
|
|
</div>
|
|
|
</a-drawer>
|
|
|
- <locate-by-geoinfo ref='locateByGeoinfo'></locate-by-geoinfo>
|
|
|
-
|
|
|
+ <locate-by-geoinfo ref="locateByGeoinfo"></locate-by-geoinfo>
|
|
|
</div>
|
|
|
-
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
@@ -370,8 +418,8 @@ export default {
|
|
|
let list = []
|
|
|
console.log(666, this.basicMap.layerList)
|
|
|
if (this.basicMap.layerList.length > 0) {
|
|
|
- this.basicMap.layerList.map((item) => {
|
|
|
- item.layers.map((layer) => {
|
|
|
+ this.basicMap.layerList.map(item => {
|
|
|
+ item.layers.map(layer => {
|
|
|
if (layer.analyzable) {
|
|
|
list.push(layer)
|
|
|
}
|
|
@@ -443,7 +491,10 @@ export default {
|
|
|
}
|
|
|
if (item.ZPNAME) {
|
|
|
this.data[index].ZPNAME = this.data[index].ZPNAME.split(';')
|
|
|
- if (!this.data[index].ZPNAME[this.data[index].length - 1] || this.data[index].ZPNAME[this.data[index].length - 1] === '') {
|
|
|
+ if (
|
|
|
+ !this.data[index].ZPNAME[this.data[index].length - 1] ||
|
|
|
+ this.data[index].ZPNAME[this.data[index].length - 1] === ''
|
|
|
+ ) {
|
|
|
this.data[index].ZPNAME.pop()
|
|
|
}
|
|
|
this.data[index].ZPNAME.forEach((itemA, ind) => {
|
|
@@ -452,7 +503,6 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
-
|
|
|
}
|
|
|
let { success, message, result } = await getAction(this.url.detail, {
|
|
|
table: this.key,
|
|
@@ -471,7 +521,7 @@ export default {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
- result.forEach((item) => {
|
|
|
+ result.forEach(item => {
|
|
|
let list = []
|
|
|
for (var key in item.fldalia) {
|
|
|
list.push({ name: item.fldalia[key], content: item.result[key], wkt: item.result.WKT })
|
|
@@ -487,7 +537,6 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
handleLocate(record, isOwn) {
|
|
|
-
|
|
|
if (!isOwn) {
|
|
|
this.basicMap.analysis_Drew_GraphicsLayer.removeAll()
|
|
|
this.lng = []
|
|
@@ -517,13 +566,16 @@ export default {
|
|
|
return
|
|
|
} else if (item.includes('MULTIPOLYGON')) {
|
|
|
if (bsIndex != -1) {
|
|
|
- type = geomInfo.slice(0, bsIndex).trim().toUpperCase()
|
|
|
+ type = geomInfo
|
|
|
+ .slice(0, bsIndex)
|
|
|
+ .trim()
|
|
|
+ .toUpperCase()
|
|
|
geojson = new wktParser.parse(geomInfo)
|
|
|
} else {
|
|
|
type = JSON.parse(item.geoinfo).type.toUpperCase()
|
|
|
geojson = JSON.parse(item.geoinfo)
|
|
|
}
|
|
|
- geojson.coordinates.forEach((coords) => {
|
|
|
+ geojson.coordinates.forEach(coords => {
|
|
|
let rings = []
|
|
|
for (let i = 0; i < coords.length; i++) {
|
|
|
let ring = []
|
|
@@ -534,14 +586,14 @@ export default {
|
|
|
}
|
|
|
rings.push(ring)
|
|
|
}
|
|
|
- rings.forEach((coords) => {
|
|
|
+ rings.forEach(coords => {
|
|
|
coords.forEach((itemC, index) => {
|
|
|
if (rings.length > 1) {
|
|
|
if (!Array.isArray(itemC)) {
|
|
|
this.lng.push(coords[0])
|
|
|
this.lat.push(coords[1])
|
|
|
} else {
|
|
|
- itemC.forEach((it) => {
|
|
|
+ itemC.forEach(it => {
|
|
|
this.lng.push(it[0])
|
|
|
this.lat.push(it[1])
|
|
|
})
|
|
@@ -562,10 +614,11 @@ export default {
|
|
|
let g = Math.floor(Math.random() * 255)
|
|
|
let b = Math.floor(Math.random() * 255)
|
|
|
const polygonSymbol = {
|
|
|
- type: 'simple-fill', // autocasts as new SimpleFillSymbol()
|
|
|
+ type: 'simple-fill', // autocasts as new SimpleFillSymbol()
|
|
|
// color: [128, 128, 128, 0.5],
|
|
|
color: [r, g, b, 0.5],
|
|
|
- outline: { // autocasts as new SimpleLineSymbol()
|
|
|
+ outline: {
|
|
|
+ // autocasts as new SimpleLineSymbol()
|
|
|
color: [r, g, b],
|
|
|
width: '6px',
|
|
|
style: 'short-dot'
|
|
@@ -578,9 +631,11 @@ export default {
|
|
|
this.basicMap.analysis_Drew_GraphicsLayer.add(graphic)
|
|
|
})
|
|
|
} else {
|
|
|
-
|
|
|
if (bsIndex != -1) {
|
|
|
- type = geomInfo.slice(0, bsIndex).trim().toUpperCase()
|
|
|
+ type = geomInfo
|
|
|
+ .slice(0, bsIndex)
|
|
|
+ .trim()
|
|
|
+ .toUpperCase()
|
|
|
geojson = new wktParser.parse(geomInfo)
|
|
|
} else {
|
|
|
type = JSON.parse(item.geoinfo).type.toUpperCase()
|
|
@@ -598,14 +653,14 @@ export default {
|
|
|
}
|
|
|
rings.push(ring)
|
|
|
}
|
|
|
- rings.forEach((coords) => {
|
|
|
+ rings.forEach(coords => {
|
|
|
coords.forEach((itemC, index) => {
|
|
|
if (rings.length > 1) {
|
|
|
if (!Array.isArray(itemC)) {
|
|
|
this.lng.push(coords[0])
|
|
|
this.lat.push(coords[1])
|
|
|
} else {
|
|
|
- itemC.forEach((it) => {
|
|
|
+ itemC.forEach(it => {
|
|
|
this.lng.push(it[0])
|
|
|
this.lat.push(it[1])
|
|
|
})
|
|
@@ -626,10 +681,11 @@ export default {
|
|
|
let g = Math.floor(Math.random() * 255)
|
|
|
let b = Math.floor(Math.random() * 255)
|
|
|
const polygonSymbol = {
|
|
|
- type: 'simple-fill', // autocasts as new SimpleFillSymbol()
|
|
|
+ type: 'simple-fill', // autocasts as new SimpleFillSymbol()
|
|
|
// color: [128, 128, 128, 0.5],
|
|
|
color: [g, r, b, 0.5],
|
|
|
- outline: { // autocasts as new SimpleLineSymbol()
|
|
|
+ outline: {
|
|
|
+ // autocasts as new SimpleLineSymbol()
|
|
|
color: [r, g, b],
|
|
|
width: '3px',
|
|
|
style: 'solid'
|
|
@@ -652,19 +708,18 @@ export default {
|
|
|
}
|
|
|
this.lng.sort()
|
|
|
this.lat.sort()
|
|
|
- let extent = new Extent(
|
|
|
- this.lng[0], this.lat[0], this.lng[this.lat.length - 1], this.lat[this.lat.length - 1]
|
|
|
- )
|
|
|
+ let extent = new Extent(this.lng[0], this.lat[0], this.lng[this.lat.length - 1], this.lat[this.lat.length - 1])
|
|
|
this.basicMap.mapView.extent = extent
|
|
|
let cur_scale = this.basicMap.mapView.scale
|
|
|
- this.basicMap.mapView.goTo({
|
|
|
+ this.basicMap.mapView.goTo(
|
|
|
+ {
|
|
|
scale: cur_scale * 1.2
|
|
|
- }, {
|
|
|
+ },
|
|
|
+ {
|
|
|
duration: 500
|
|
|
}
|
|
|
)
|
|
|
this.basicMap.mapView2.extent = this.basicMap.mapView.extent
|
|
|
-
|
|
|
},
|
|
|
handleCancel() {
|
|
|
this.basicMap.drawerVisible = false
|
|
@@ -688,8 +743,8 @@ export default {
|
|
|
m_layer.visible = checked
|
|
|
}
|
|
|
})
|
|
|
- this.basicMap.layerList.map((item) => {
|
|
|
- item.layers.map((layerItem) => {
|
|
|
+ this.basicMap.layerList.map(item => {
|
|
|
+ item.layers.map(layerItem => {
|
|
|
if (layerItem === layer) {
|
|
|
layerItem.visible = true
|
|
|
} else {
|
|
@@ -743,8 +798,8 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
- this.basicMap.layerList.map((item) => {
|
|
|
- item.layers.map((layerItem) => {
|
|
|
+ this.basicMap.layerList.map(item => {
|
|
|
+ item.layers.map(layerItem => {
|
|
|
if (layerItem.analyzable) {
|
|
|
if (layerItem === layer) {
|
|
|
layerItem.visible = true
|
|
@@ -759,7 +814,7 @@ export default {
|
|
|
this.indeterminate = !!checkedList.length && checkedList.length < this.plainOptions.length
|
|
|
this.checkAll = checkedList.length === this.plainOptions.length
|
|
|
this.orderTable = []
|
|
|
- checkedList.forEach((item) => {
|
|
|
+ checkedList.forEach(item => {
|
|
|
this.orderTableList.forEach((itemTable, index) => {
|
|
|
if (itemTable.atablecname === item) {
|
|
|
this.orderTable.push(itemTable.atableename)
|
|
@@ -789,9 +844,9 @@ export default {
|
|
|
this.basicMap.drawerVisible = true
|
|
|
},
|
|
|
mercatorTolonlat(mercator) {
|
|
|
- var x = mercator[0] / 20037508.34 * 180
|
|
|
- var y = mercator[1] / 20037508.34 * 180
|
|
|
- y = 180 / Math.PI * (2 * Math.atan(Math.exp(y * Math.PI / 180)) - Math.PI / 2)
|
|
|
+ var x = (mercator[0] / 20037508.34) * 180
|
|
|
+ var y = (mercator[1] / 20037508.34) * 180
|
|
|
+ y = (180 / Math.PI) * (2 * Math.atan(Math.exp((y * Math.PI) / 180)) - Math.PI / 2)
|
|
|
return [x, y]
|
|
|
},
|
|
|
stopDraw() {
|
|
@@ -836,32 +891,19 @@ export default {
|
|
|
view.focus()
|
|
|
switch (this.typeSelected) {
|
|
|
case 'point':
|
|
|
- action.on(
|
|
|
- [
|
|
|
- 'vertex-add',
|
|
|
- 'vertex-remove',
|
|
|
- 'redo',
|
|
|
- 'undo',
|
|
|
- 'draw-complete'
|
|
|
- ], this.createPoint)
|
|
|
+ action.on(['vertex-add', 'vertex-remove', 'redo', 'undo', 'draw-complete'], this.createPoint)
|
|
|
break
|
|
|
case 'polygon':
|
|
|
action.on(
|
|
|
- [
|
|
|
- 'vertex-add',
|
|
|
- 'vertex-remove',
|
|
|
- 'redo',
|
|
|
- 'undo',
|
|
|
- 'draw-complete',
|
|
|
- 'cursor-update'
|
|
|
- ], this.createPolygon)
|
|
|
+ ['vertex-add', 'vertex-remove', 'redo', 'undo', 'draw-complete', 'cursor-update'],
|
|
|
+ this.createPolygon
|
|
|
+ )
|
|
|
break
|
|
|
default:
|
|
|
-
|
|
|
break
|
|
|
}
|
|
|
|
|
|
- action.on('draw-complete', (evt) => {
|
|
|
+ action.on('draw-complete', evt => {
|
|
|
let type = 'Polygon'
|
|
|
evt.vertices.forEach((item, index) => {
|
|
|
evt.vertices[index] = this.mercatorTolonlat(item)
|
|
@@ -878,9 +920,9 @@ export default {
|
|
|
},
|
|
|
properties: null,
|
|
|
crs: {
|
|
|
- 'type': 'name',
|
|
|
- 'properties': {
|
|
|
- 'name': 'EPSG:4490'
|
|
|
+ type: 'name',
|
|
|
+ properties: {
|
|
|
+ name: 'EPSG:4490'
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -912,13 +954,14 @@ export default {
|
|
|
spatialReference: this.view.spatialReference
|
|
|
}),
|
|
|
symbol: {
|
|
|
- type: 'simple-marker', // autocasts as new SimpleMarkerSymbol()
|
|
|
+ type: 'simple-marker', // autocasts as new SimpleMarkerSymbol()
|
|
|
style: 'square',
|
|
|
color: 'blue',
|
|
|
- size: '8px', // pixels
|
|
|
- outline: { // autocasts as new SimpleLineSymbol()
|
|
|
+ size: '8px', // pixels
|
|
|
+ outline: {
|
|
|
+ // autocasts as new SimpleLineSymbol()
|
|
|
color: [255, 255, 0],
|
|
|
- width: 3 // points
|
|
|
+ width: 3 // points
|
|
|
}
|
|
|
}
|
|
|
})
|
|
@@ -940,10 +983,11 @@ export default {
|
|
|
spatialReference: this.view.spatialReference
|
|
|
}),
|
|
|
symbol: {
|
|
|
- type: 'simple-fill', // autocasts as new SimpleFillSymbol()
|
|
|
+ type: 'simple-fill', // autocasts as new SimpleFillSymbol()
|
|
|
color: [51, 51, 204, 0.4],
|
|
|
style: 'solid',
|
|
|
- outline: { // autocasts as new SimpleLineSymbol()
|
|
|
+ outline: {
|
|
|
+ // autocasts as new SimpleLineSymbol()
|
|
|
color: 'red',
|
|
|
width: 1
|
|
|
}
|
|
@@ -979,7 +1023,6 @@ export default {
|
|
|
})
|
|
|
this.checkedList = this.plainOptions
|
|
|
this.orderTable = this.allOrderTable
|
|
|
-
|
|
|
} else {
|
|
|
if (message.includes('null')) {
|
|
|
message = '没有查询到数据'
|
|
@@ -996,7 +1039,7 @@ export default {
|
|
|
let length = 1
|
|
|
this.gdXx = false
|
|
|
let url = this.url.polygon
|
|
|
- // console.log('------------------------------------地块分析传入参数---------------------------------')
|
|
|
+ // console.log('------------------------------------地块分析传入参数---------------------------------')
|
|
|
if (this.typeSelected === 'point') {
|
|
|
url = this.url.point
|
|
|
if (this.table === 'GD_DKXX') {
|
|
@@ -1053,8 +1096,10 @@ export default {
|
|
|
if (!item.result) {
|
|
|
item.type = '项目信息'
|
|
|
item.list = []
|
|
|
- for (var key in item) { //遍历对象的所有属性,包括原型链上的所有属性
|
|
|
- if (item.hasOwnProperty(key) && key != 'type' && key != 'list') { //判断是否是对象自身的属性,而不包含继承自原型链上的属性,不是后加的属性
|
|
|
+ for (var key in item) {
|
|
|
+ //遍历对象的所有属性,包括原型链上的所有属性
|
|
|
+ if (item.hasOwnProperty(key) && key != 'type' && key != 'list') {
|
|
|
+ //判断是否是对象自身的属性,而不包含继承自原型链上的属性,不是后加的属性
|
|
|
let val = { title: key, content: item[key] }
|
|
|
item.list.push(val)
|
|
|
}
|
|
@@ -1081,8 +1126,8 @@ export default {
|
|
|
this.isTotal.push(true)
|
|
|
this.result[resInd].type = item.type
|
|
|
type = item.type
|
|
|
- this.basicMap.layerList.map((child) => {
|
|
|
- child.layers.map((layer) => {
|
|
|
+ this.basicMap.layerList.map(child => {
|
|
|
+ child.layers.map(layer => {
|
|
|
if (layer.alias === item.type) {
|
|
|
this.keys.push(layer)
|
|
|
}
|
|
@@ -1093,14 +1138,14 @@ export default {
|
|
|
col = { title: '用途', dataIndex: 'types', key: 'types', scopedSlots: { customRender: 'types' } }
|
|
|
col2 = { title: '面积(公顷)', dataIndex: 'area', key: 'area', scopedSlots: { customRender: 'area' } }
|
|
|
// 土地价值
|
|
|
- col3 = { title: '土地价值(元)', dataIndex: 'tdjz', key: 'tdjz', scopedSlots: { customRender: 'tdjz' } }
|
|
|
+ // col3 = { title: '土地价值(元)', dataIndex: 'tdjz', key: 'tdjz', scopedSlots: { customRender: 'tdjz' } }
|
|
|
col.title = item.afieldcname
|
|
|
//列信息
|
|
|
- this.result[resInd].columns.push(col, col2, col3)
|
|
|
+ this.result[resInd].columns.push(col, col2)
|
|
|
}
|
|
|
data[resInd].push(item.result)
|
|
|
//遍历分组
|
|
|
- if (index === (result.length - length)) {
|
|
|
+ if (index === result.length - length) {
|
|
|
data.forEach((arr, index) => {
|
|
|
let pies = []
|
|
|
let map = {}
|
|
@@ -1108,37 +1153,23 @@ export default {
|
|
|
//遍历分组
|
|
|
for (let i = 0; i < arr.length; i++) {
|
|
|
let ai = arr[i]
|
|
|
- console.log("############要遍历的 result 信息(ai)#############")
|
|
|
+ console.log('############要遍历的 result 信息(ai)#############')
|
|
|
console.log(ai)
|
|
|
console.log(map[ai.types])
|
|
|
|
|
|
//判断map里记录类型存在######################
|
|
|
- if (!map[ai.types]) {
|
|
|
- dest.push({
|
|
|
- key: ai.types,
|
|
|
- types: ai.types,
|
|
|
- objectids: [ai.objectid],
|
|
|
- wkt: [ai.info],
|
|
|
- area: ai.area,
|
|
|
- tdjz: ai.tdjz == null ? '地类不确定' : ai.tdjz
|
|
|
- })
|
|
|
- let pie = { item: '示例一', count: 40 }
|
|
|
- pie.item = ai.types
|
|
|
- pie.count = parseFloat(ai.area)
|
|
|
- pies.push(pie)
|
|
|
- map[ai.types] = ai
|
|
|
- } else {
|
|
|
- for (let j = 0; j < dest.length; j++) {
|
|
|
- let dj = dest[j]
|
|
|
- if (dj.types === ai.types) {
|
|
|
- dj.area = parseFloat(parseFloat(dj.area) + parseFloat(ai.area)).toFixed(4)
|
|
|
- dj.wkt.push(ai.info)
|
|
|
- dj.objectids.push(ai.objectid)
|
|
|
- pies[j].count = parseFloat(dj.area)
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ dest.push({
|
|
|
+ key: ai.types,
|
|
|
+ types: ai.types,
|
|
|
+ objectids: [ai.objectid],
|
|
|
+ wkt: [ai.info],
|
|
|
+ area: ai.area
|
|
|
+ })
|
|
|
+ let pie = { item: '示例一', count: 40 }
|
|
|
+ pie.item = ai.types
|
|
|
+ pie.count = parseFloat(ai.area)
|
|
|
+ pies.push(pie)
|
|
|
+ map[ai.types] = ai
|
|
|
//##############################################
|
|
|
}
|
|
|
//饼图
|
|
@@ -1182,7 +1213,6 @@ export default {
|
|
|
this.basicMap.mapView.graphics.removeAll()
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
</script>
|
|
|
<style scoped>
|
|
@@ -1195,7 +1225,6 @@ export default {
|
|
|
/*display: flex;*/
|
|
|
flex-wrap: wrap;
|
|
|
align-items: center;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
.info {
|
|
@@ -1222,22 +1251,24 @@ export default {
|
|
|
top: 50%;
|
|
|
transform: translateY(-50%);
|
|
|
}
|
|
|
-
|
|
|
</style>
|
|
|
<style>
|
|
|
.analysis .ant-tabs .ant-tabs-left-content {
|
|
|
overflow-y: auto;
|
|
|
}
|
|
|
|
|
|
-.analysis .ant-tabs-tab-prev, .ant-tabs-tab-next {
|
|
|
+.analysis .ant-tabs-tab-prev,
|
|
|
+.ant-tabs-tab-next {
|
|
|
color: rgba(0, 0, 0, 0.55);
|
|
|
}
|
|
|
|
|
|
-:root .analysis .ant-tabs-tab-prev-icon-target, :root .analysis .ant-tabs-tab-next-icon-target {
|
|
|
+:root .analysis .ant-tabs-tab-prev-icon-target,
|
|
|
+:root .analysis .ant-tabs-tab-next-icon-target {
|
|
|
font-size: 24px;
|
|
|
}
|
|
|
|
|
|
-.analysis .ant-tabs-tab-btn-disabled, .analysis .ant-tabs-tab-btn-disabled:hover {
|
|
|
+.analysis .ant-tabs-tab-btn-disabled,
|
|
|
+.analysis .ant-tabs-tab-btn-disabled:hover {
|
|
|
color: rgba(0, 0, 0, 0.25);
|
|
|
}
|
|
|
|
|
@@ -1275,6 +1306,5 @@ export default {
|
|
|
.analysis .ant-spin-nested-loading {
|
|
|
max-height: 50vh;
|
|
|
overflow-y: auto;
|
|
|
-
|
|
|
}
|
|
|
</style>
|