5 changed files with 292 additions and 12 deletions
			
			
		@ -0,0 +1,166 @@ | 
				
			|||
<template> | 
				
			|||
  <div class="follow-up"> | 
				
			|||
    <div class="content"> | 
				
			|||
      <div class="left"> | 
				
			|||
        <div class="total"> | 
				
			|||
          <div class="tit">回访总数</div> | 
				
			|||
          <div class="num"><span>{{ sumNum ? sumNum : 0 }}</span>个</div> | 
				
			|||
        </div> | 
				
			|||
        <div class="left-item"> | 
				
			|||
          <div class="tit">电话回访</div> | 
				
			|||
          <div class="num"><span>{{ mobileNum ? mobileNum : 0 }}</span>个</div> | 
				
			|||
        </div> | 
				
			|||
        <div class="left-item"> | 
				
			|||
          <div class="tit">上门回访</div> | 
				
			|||
          <div class="num"><span>{{ visitNum ? visitNum : 0 }}</span>个</div> | 
				
			|||
        </div> | 
				
			|||
      </div> | 
				
			|||
      <div class="xc"> | 
				
			|||
        <div class="tit">回访消除 <br/> 风险人数</div> | 
				
			|||
        <div class="num blue">{{ notRiskyNum ? notRiskyNum : 0 }}</div> | 
				
			|||
      </div> | 
				
			|||
    </div> | 
				
			|||
  </div> | 
				
			|||
</template> | 
				
			|||
 | 
				
			|||
<script> | 
				
			|||
export default { | 
				
			|||
  name: "FollowUp", | 
				
			|||
  props: { | 
				
			|||
    date: { | 
				
			|||
      type: String, | 
				
			|||
      default: '' | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  data() { | 
				
			|||
    return { | 
				
			|||
      org: this.$store.state.chooseArea.chooseName, | 
				
			|||
      typeList: [{ | 
				
			|||
        label: '12345事件', | 
				
			|||
        value: '12345' | 
				
			|||
      }, { | 
				
			|||
        label: '事件回访', | 
				
			|||
        value: 'follow' | 
				
			|||
      }], | 
				
			|||
      type: 'follow', | 
				
			|||
      sumNum: 0, | 
				
			|||
      mobileNum: 0, | 
				
			|||
      visitNum: 0, | 
				
			|||
      notRiskyNum: 0, | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  watch: { | 
				
			|||
    "$store.state.chooseArea.chooseName"(val) { | 
				
			|||
      if (val.orgId) { | 
				
			|||
        this.getData() | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
    date() { | 
				
			|||
      this.getData() | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  mounted() { | 
				
			|||
    if (this.org.orgId) { | 
				
			|||
      this.getData() | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  methods: { | 
				
			|||
    getData() { | 
				
			|||
      this.$http.get('/actual/base/streetOverview/eventAndFollowGroup?month=' + this.date + '&level=' + this.$store.state.chooseArea.chooseName.level + '&orgId=' + this.$store.state.chooseArea.chooseName.orgId + '&queryType=' + this.type).then(({data: {data}}) => { | 
				
			|||
        this.sumNum = data.sumNum | 
				
			|||
        this.mobileNum = data.mobileNum | 
				
			|||
        this.visitNum = data.visitNum | 
				
			|||
        this.notRiskyNum = data.notRiskyNum | 
				
			|||
      }) | 
				
			|||
    }, | 
				
			|||
    typeChange(val) { | 
				
			|||
      console.log(val,'val') | 
				
			|||
      this.type = val | 
				
			|||
      this.getData() | 
				
			|||
    } | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
</script> | 
				
			|||
 | 
				
			|||
<style scoped lang="scss"> | 
				
			|||
.follow-up { | 
				
			|||
  padding: 10px 16px; | 
				
			|||
} | 
				
			|||
.content { | 
				
			|||
  background: linear-gradient(90deg, rgba(1, 94, 234, 0.1) 0%, rgba(16, 50, 103, 0) 50%, rgba(1, 94, 234, 0.1) 100%); | 
				
			|||
  padding: 40px 19px; | 
				
			|||
  display: flex; | 
				
			|||
  justify-content: space-between; | 
				
			|||
  align-items: center; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.left { | 
				
			|||
  border-right: 1px solid #96B1CE; | 
				
			|||
  padding-right: 35px; | 
				
			|||
  display: flex; | 
				
			|||
  align-items: center; | 
				
			|||
  justify-content: space-between; | 
				
			|||
 | 
				
			|||
  .total { | 
				
			|||
    .tit { | 
				
			|||
      font-size: 16px; | 
				
			|||
      font-weight: 400; | 
				
			|||
      color: #FFFFFF; | 
				
			|||
      margin-bottom: 20px; | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    .num { | 
				
			|||
      font-size: 14px; | 
				
			|||
      font-weight: 500; | 
				
			|||
      color: #A3B9DA; | 
				
			|||
 | 
				
			|||
      span { | 
				
			|||
        font-size: 36px; | 
				
			|||
        font-weight: bold; | 
				
			|||
        font-style: italic; | 
				
			|||
        color: #08EBAE; | 
				
			|||
      } | 
				
			|||
    } | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .left-item { | 
				
			|||
    margin-left: 24px; | 
				
			|||
    .tit { | 
				
			|||
      font-size: 14px; | 
				
			|||
      font-weight: 400; | 
				
			|||
      color: #A3B9DA; | 
				
			|||
      line-height: 24px; | 
				
			|||
      margin-bottom: 24px; | 
				
			|||
    } | 
				
			|||
 | 
				
			|||
    .num { | 
				
			|||
      font-size: 14px; | 
				
			|||
      font-weight: 500; | 
				
			|||
      color: #A3B9DA; | 
				
			|||
      span { | 
				
			|||
        font-size: 30px; | 
				
			|||
        font-weight: bold; | 
				
			|||
        font-style: italic; | 
				
			|||
        color: #78C4F3; | 
				
			|||
      } | 
				
			|||
    } | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.xc { | 
				
			|||
  .tit { | 
				
			|||
    font-size: 16px; | 
				
			|||
    font-weight: 400; | 
				
			|||
    color: #FFFFFF; | 
				
			|||
    line-height: 24px; | 
				
			|||
    margin-bottom: 10px; | 
				
			|||
  } | 
				
			|||
 | 
				
			|||
  .num { | 
				
			|||
    font-size: 32px; | 
				
			|||
    font-weight: bold; | 
				
			|||
    font-style: italic; | 
				
			|||
    color: #FFB73C; | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
</style> | 
				
			|||
@ -0,0 +1,70 @@ | 
				
			|||
<template> | 
				
			|||
  <div class="m-subbox m-sqrfph"> | 
				
			|||
    <div class="table"> | 
				
			|||
      <div class="tr"> | 
				
			|||
        <div class="th">排名</div> | 
				
			|||
        <div class="th">社区</div> | 
				
			|||
        <div class="th">房屋更新数</div> | 
				
			|||
        <div class="th">人口更新数</div> | 
				
			|||
        <div class="th">人房更新总数</div> | 
				
			|||
      </div> | 
				
			|||
      <div class="tr" v-for="(item,index) in pmList" :key="index"> | 
				
			|||
        <div :class="index - 0 + 1 < 4 ? `td tdbg${index-0+1}` : 'td'"> | 
				
			|||
          {{ index - 0 + 1 }} | 
				
			|||
        </div> | 
				
			|||
        <div class="td">{{ item.orgName }}</div> | 
				
			|||
        <div class="td">{{ item.houseNum }}</div> | 
				
			|||
        <div class="td">{{ item.residentNum }}</div> | 
				
			|||
        <div class="td">{{ item.sumNum }}</div> | 
				
			|||
      </div> | 
				
			|||
    </div> | 
				
			|||
  </div> | 
				
			|||
</template> | 
				
			|||
<script> | 
				
			|||
export default { | 
				
			|||
  name: "GridUpdateRanking", | 
				
			|||
  props: { | 
				
			|||
    date: { | 
				
			|||
      type: String, | 
				
			|||
      default: '' | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  data() { | 
				
			|||
    return { | 
				
			|||
      org: this.$store.state.chooseArea.chooseName, | 
				
			|||
      pmList: [], | 
				
			|||
    }; | 
				
			|||
  }, | 
				
			|||
  watch: { | 
				
			|||
    "$store.state.chooseArea.chooseName"(val) { | 
				
			|||
      if (val.orgId) { | 
				
			|||
        this.getList() | 
				
			|||
      } | 
				
			|||
    }, | 
				
			|||
    date() { | 
				
			|||
      this.getList() | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  mounted() { | 
				
			|||
    if (this.org.orgId) { | 
				
			|||
      this.getList() | 
				
			|||
    } | 
				
			|||
  }, | 
				
			|||
  methods: { | 
				
			|||
    getList() { | 
				
			|||
      this.$http.get('/actual/base/streetOverview/residentHouseUpdateGroup?level=' + this.$store.state.chooseArea.chooseName.level + '&orgId=' + this.$store.state.chooseArea.chooseName.orgId).then(({data: {data}}) => { | 
				
			|||
        this.pmList = data | 
				
			|||
      }) | 
				
			|||
    } | 
				
			|||
  } | 
				
			|||
}; | 
				
			|||
</script> | 
				
			|||
 | 
				
			|||
<style lang="scss" src="@/assets/scss/dataBoard/overview/index.scss" scoped/> | 
				
			|||
<style lang="scss" scoped> | 
				
			|||
.m-sqrfph { | 
				
			|||
  padding-top: 0 !important; | 
				
			|||
  height: 160px !important; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
</style> | 
				
			|||
					Loading…
					
					
				
		Reference in new issue