| | |
| | | <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> |
| | | <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-down">-4%</span></div> |
| | | <div class="label">本季应补偿总额(万元)</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="label">下季应补偿总额(万元)</div> |
| | | <div class="value">{{ data.nextMonthCompensationAmount }} <span>环比</span><span |
| | | class="value-change value-change-up">{{ data.nextMonthCompensationAmountRate }}</span></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <!-- 中间地图 --> |
| | | <div class="center-middle"> |
| | | <Map :data="data.mapResponses" /> |
| | | <Map :data="data" /> |
| | | </div> |
| | | |
| | | <!-- 中间下部数据 --> |
| | | <div class="center-bottom panel-item"> |
| | | |
| | | <div class="center-bott"> |
| | | <div class="bottom-search"> |
| | | <div class="search-box"> |
| | | <input type="text" placeholder="请输入户主名称进行搜索" v-model="searchText" @keydown="searchForText($event)"> |
| | | <img src="@/assets/search.png" class="search-icon" alt=""> |
| | | </div> |
| | | </div> |
| | | <div class="center-bottom panel-item"> |
| | | <div class="compensation-table"> |
| | | <div class="table-header"> |
| | | <div class="batch-number txt-center">安置批次</div> |
| | | <div class="household-count txt-center">户主名称</div> |
| | | <div class="people-count txt-center">安置人数</div> |
| | | <div class="progress-wrapper txt-center">补偿阶段</div> |
| | | </div> |
| | | <div class="table-content"> |
| | | <div class="table-row" v-for="(item, index) in data.quarterProcessResponses" :key="index"> |
| | | <div class="batch-number text-center">{{ item.batchNumber }}</div> |
| | | <div class="household-count text-center">{{ item.householdHead }}</div> |
| | | <div class="people-count text-center">{{ item.currentCount }}</div> |
| | | <div class="progress-wrapper"> |
| | | <div class="progress-bar"> |
| | | <div class="progress-fill"> |
| | | <div class="progress-color" :style="{ width: item.process*5 + '%' }" |
| | | :class="item.process <= 5 ? 'progress-yellow' : item.process <= 10 && item.process > 5 ? 'progress-green' : item.process <= 15 && item.process > 10 ? 'progress-blue' : 'progress-gray'"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="progress-text">{{ item.process }}/20</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | props: { |
| | | data: { |
| | | type: Object, |
| | | default: () => { } |
| | | default: () => { }, |
| | | }, |
| | | searchText: { |
| | | type: String, |
| | | default: '', |
| | | } |
| | | }, |
| | | components: { |
| | |
| | | { label: '已受理', value: '2021103000001', percentage: 90 }, |
| | | { label: '已审核', value: '2021103000002', percentage: 70 }, |
| | | { label: '已完成', value: '2021103000003', percentage: 50 } |
| | | ], |
| | | // searchText: '', // 搜索文本 |
| | | compensationList: [ |
| | | |
| | | ] |
| | | }; |
| | | }, |
| | | methods: { |
| | | searchForText(event) { |
| | | if (event.key === 'Enter') { // 监听回车键事件 |
| | | this.$emit('searchForText', this.searchText); // 触发搜索事件并传递搜索文本 |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .pl-20 { |
| | | padding-left: 20px; |
| | | } |
| | | |
| | | .bottom-search { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | margin-bottom: 8px; |
| | | } |
| | | |
| | | .search-box { |
| | | width: 180px; |
| | | display: flex; |
| | | align-items: center; |
| | | height: 30px; |
| | | background: rgba(2, 0, 77, 0.4); |
| | | box-shadow: inset 0px 0px 34px 0px rgba(17, 40, 255, 0.66); |
| | | border-radius: 4px; |
| | | border: 2px solid #0D53B7; |
| | | |
| | | } |
| | | |
| | | input { |
| | | height: 30px; |
| | | width: 100%; |
| | | line-height: 30px; |
| | | padding-left: 9px; |
| | | background: transparent; |
| | | border: none; |
| | | font-size: 12px; |
| | | font-family: SourceHanSansCN, SourceHanSansCN; |
| | | font-weight: 400; |
| | | font-size: 12px; |
| | | color: rgba(255, 255, 255, 0.7); |
| | | outline: none; |
| | | } |
| | | |
| | | .search-icon { |
| | | width: 14px; |
| | | height: 14px; |
| | | margin-left: 17px; |
| | | } |
| | | |
| | | .text-center { |
| | | text-align: center; |
| | | } |
| | | |
| | | .center-panel { |
| | | position: absolute; |
| | | left: 481px; |
| | |
| | | height: 245px; |
| | | background: url('@/assets/center-bottom-bg.png') no-repeat center center; |
| | | background-size: 100% 100%; |
| | | padding: 20px; |
| | | |
| | | .compensation-table { |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .table-header { |
| | | display: flex; |
| | | align-items: center; |
| | | color: rgba(255, 255, 255, 0.6); |
| | | font-size: 12px; |
| | | // margin-top: 20px; |
| | | margin-bottom: 15px; |
| | | |
| | | >div { |
| | | margin-right: 40px; |
| | | } |
| | | |
| | | .batch-number { |
| | | width: 150px; |
| | | } |
| | | |
| | | .household-count { |
| | | width: 80px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .people-count { |
| | | width: 100px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .progress-wrapper { |
| | | flex: 1; |
| | | padding-right: 20px; |
| | | padding-left: 20px; |
| | | } |
| | | } |
| | | |
| | | .table-content { |
| | | // flex: 1; |
| | | height: 174px; |
| | | display: flex; |
| | | overflow-y: auto; |
| | | scrollbar-width: none; |
| | | /* Firefox */ |
| | | -ms-overflow-style: none; |
| | | |
| | | /* IE 和 Edge */ |
| | | &::-webkit-scrollbar { |
| | | display: none; |
| | | /* Chrome, Safari 和 Opera */ |
| | | } |
| | | |
| | | flex-direction: column; |
| | | // justify-content: space-between; |
| | | |
| | | .table-row { |
| | | display: flex; |
| | | align-items: center; |
| | | color: #fff; |
| | | font-size: 14px; |
| | | padding: 8px 0; |
| | | margin-bottom: 5px; |
| | | box-sizing: border-box; |
| | | |
| | | >div { |
| | | margin-right: 40px; |
| | | } |
| | | |
| | | .batch-number { |
| | | width: 150px; |
| | | } |
| | | |
| | | .household-count { |
| | | width: 80px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .people-count { |
| | | width: 100px; |
| | | text-align: center; |
| | | } |
| | | |
| | | .progress-wrapper { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .progress-bar { |
| | | flex: 1; |
| | | height: 10px; |
| | | background: rgba(255, 255, 255, 0.1); |
| | | border-radius: 5px; |
| | | margin-right: 15px; |
| | | overflow: hidden; |
| | | |
| | | .progress-fill { |
| | | height: 100%; |
| | | display: flex; |
| | | |
| | | .progress-yellow { |
| | | height: 100%; |
| | | background: #FEDB65 !important; |
| | | } |
| | | |
| | | .progress-blue { |
| | | height: 100%; |
| | | background: #00C6FF !important; |
| | | } |
| | | |
| | | .progress-green { |
| | | height: 100%; |
| | | background: rgba(0, 220, 171, 1) !important; |
| | | } |
| | | |
| | | .progress-gray { |
| | | height: 100%; |
| | | background: rgba(0, 242, 240, 1) !important; |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |
| | | |
| | | .progress-text { |
| | | width: 50px; |
| | | text-align: right; |
| | | } |
| | | } |
| | | |
| | | &:nth-child(2n + 1) { |
| | | background: url('@/assets/bg.png') no-repeat center center; |
| | | border: 2px solid; |
| | | border-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(1, 10, 40, 0), rgba(255, 255, 255, 0.6)) 2 2; |
| | | } |
| | | |
| | | &:nth-child(2n) { |
| | | background: url('@/assets/unbg.png') no-repeat center center; |
| | | border: 2px solid; |
| | | border-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(1, 10, 40, 0), rgba(255, 255, 255, 0.2)) 2 2; |
| | | } |
| | | |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .txt-center { |
| | | text-align: center; |
| | | font-size: 12px; |
| | | color: #19ECFF; |
| | | line-height: 18px; |
| | | } |
| | | |
| | | .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; |