| | |
| | | <img src="@/assets/center-top-left.png" alt=""> |
| | | <div> |
| | | <div class="label">申请总户数(户)</div> |
| | | <div class="value">8888</div> |
| | | <div class="value">{{ data.houseHoldCount }}</div> |
| | | </div> |
| | | |
| | | </div> |
| | |
| | | <img src="@/assets/center-top-right.png" alt=""> |
| | | <div> |
| | | <div class="label">本月应补偿总额(万元)</div> |
| | | <div class="value">8888 <span>环比</span><span class="value-change value-change-down">-4%</span></div> |
| | | <div class="value">{{ data.monthCompensationAmount }} <span>环比</span><span class="value-change value-change-down">{{ data.monthCompensationAmountRate }}</span></div> |
| | | </div> |
| | | </div> |
| | | <div class="data-item"> |
| | | <img src="@/assets/center-top-right.png" alt=""> |
| | | <div> |
| | | <div class="label">下月应补偿总额(万元)</div> |
| | | <div class="value">8888 <span>环比</span><span class="value-change value-change-up">+4%</span></div> |
| | | <div class="value">{{ data.nextMonthCompensationAmount }} <span>环比</span><span class="value-change value-change-up">{{ data.nextMonthCompensationAmountRate }}</span></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 中间地图 --> |
| | | <div class="center-middle panel-item"> |
| | | <div class="map-title">辖区分布</div> |
| | | <div class="map-chart"> |
| | | <v-chart class="chart" :option="mapOption" autoresize /> |
| | | </div> |
| | | <div class="center-middle"> |
| | | <Map :data="data" /> |
| | | </div> |
| | | |
| | | <!-- 中间下部数据 --> |
| | | <div class="center-bottom panel-item"> |
| | | <div class="box-title">处理进度</div> |
| | | <div class="progress-list"> |
| | | <div class="progress-item" v-for="(item, index) in progressList" :key="index"> |
| | | <div class="progress-info"> |
| | | <span class="label">{{ item.label }}</span> |
| | | <span class="value">{{ item.value }}</span> |
| | | </div> |
| | | <div class="progress-bar"> |
| | | <div class="progress" :style="{ width: item.percentage + '%' }"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Map from './map.vue'; |
| | | export default { |
| | | name: 'CenterPanel', |
| | | props: { |
| | | data: { |
| | | type: Object, |
| | | default: () => { } |
| | | } |
| | | }, |
| | | components: { |
| | | Map |
| | | }, |
| | | data() { |
| | | return { |
| | | mapOption: { |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | series: [{ |
| | | type: 'pie', |
| | | radius: ['65%', '80%'], |
| | | center: ['50%', '50%'], |
| | | label: { |
| | | show: false |
| | | }, |
| | | data: [ |
| | | { value: 8888, name: '已完成' }, |
| | | { value: 1112, name: '未完成' } |
| | | ], |
| | | itemStyle: { |
| | | color: function (params) { |
| | | const colorList = ['#00ffff', 'rgba(0,255,255,0.2)']; |
| | | return colorList[params.dataIndex]; |
| | | } |
| | | } |
| | | }] |
| | | }, |
| | | progressList: [ |
| | | { label: '已受理', value: '2021103000001', percentage: 90 }, |
| | | { label: '已审核', value: '2021103000002', percentage: 70 }, |
| | |
| | | bottom: 20px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | |
| | | .panel-item { |
| | | background: rgba(0, 0, 255, 0.1); |
| | | border-radius: 10px; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .center-middle { |
| | | flex: 1; |
| | | |
| | | .map-title { |
| | | font-size: 24px; |
| | | color: #7cb9e8; |
| | | } |
| | | |
| | | .map-chart { |
| | | height: calc(100% - 44px); |
| | | } |
| | | position: fixed; |
| | | top: 281px; |
| | | } |
| | | |
| | | .center-bottom { |
| | | height: 245px; |
| | | background: url('@/assets/center-bottom-bg.png') no-repeat center center; |
| | | background-size: 100% 100%; |
| | | |
| | | .progress-list { |
| | | height: calc(100% - 35px); |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-around; |
| | | |
| | | .progress-item { |
| | | .progress-info { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .label { |
| | | color: #7cb9e8; |
| | | } |
| | | |
| | | .value { |
| | | color: #00ffff; |
| | | } |
| | | } |
| | | |
| | | .progress-bar { |
| | | width: 100%; |
| | | height: 6px; |
| | | background: rgba(0, 255, 255, 0.1); |
| | | border-radius: 3px; |
| | | |
| | | .progress { |
| | | height: 100%; |
| | | background: linear-gradient(to right, #00ffff, #7cb9e8); |
| | | border-radius: 3px; |
| | | transition: width 0.3s ease; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .map-data { |
| | | display: flex; |
| | | justify-content: center; |
| | | justify-content: space-between; |
| | | padding-left: 94px; |
| | | padding-right: 94px; |
| | | height: 100%; |
| | | align-items: center; |
| | | |
| | | .data-item { |
| | | display: flex; |
| | | width: 268px; |
| | | |
| | | flex-shrink: 0; |
| | | img { |
| | | width: 94px; |
| | | height: 80px; |
| | |
| | | -webkit-background-clip: text; |
| | | background-clip: text; |
| | | margin-left: 5px; |
| | | |
| | | span { |
| | | font-size: 12px; |
| | | } |
| | | |
| | | .value-change-up { |
| | | color: #00ffff; |
| | | color: #FEDB65; |
| | | } |
| | | |
| | | .value-change-down { |
| | | color: #FEDB65; |
| | | color: #00ffff; |
| | | } |
| | | } |
| | | } |
| | |
| | | color: #7cb9e8; |
| | | } |
| | | |
| | | .chart { |
| | | width: 100%; |
| | | height: calc(100% - 35px); |
| | | } |
| | | } |
| | | </style> |