208 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			208 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
<template>
 | 
						||
  <div class="DetailCard">
 | 
						||
    <div class="top"></div>
 | 
						||
 | 
						||
    <div class="middle">
 | 
						||
      <div class="hint">家庭地址</div>
 | 
						||
 | 
						||
      <div class="areaHint">
 | 
						||
        <u-icon name="map-fill" color="#73ABFF"></u-icon>
 | 
						||
        <span>{{ resident.currentAreaName }}</span>
 | 
						||
        <span v-if="resident.currentAddress">{{ resident.currentAddress }}</span>
 | 
						||
      </div>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <div class="bottom">
 | 
						||
      <div class="hints">家庭成员 {{ data.family && data.family.length }}人</div>
 | 
						||
 | 
						||
      <div v-if="data.family && data.family.length > 0">
 | 
						||
        <div class="card" v-for="(item, i) in data.family" :key="i" @click="toDetailPeople(item)">
 | 
						||
          <div class="photos">
 | 
						||
            <img :src="item.photo" alt="" v-if="item.photo" />
 | 
						||
            <img src="./components/img/44.png" alt="" v-else />
 | 
						||
          </div>
 | 
						||
 | 
						||
          <div class="right">
 | 
						||
            <div class="rightTop">
 | 
						||
              <div class="rightTop-lefts">
 | 
						||
                <span class="names">{{ item.name }}</span>
 | 
						||
                <span class="fileStatuss" v-if="item.fileStatus == 1"> {{ $dict.getLabel('fileStatus', item.fileStatus) }}</span>
 | 
						||
                <span class="householdNames" v-if="item.householdName == 1">户主</span>
 | 
						||
                <span class="householdNames" v-else>
 | 
						||
                  {{ $dict.getLabel('householdRelation', item.householdRelation) }}
 | 
						||
                </span>
 | 
						||
              </div>
 | 
						||
 | 
						||
              <div class="rightTop-rights">
 | 
						||
                <u-section :show-line="false" sub-title="详情"></u-section>
 | 
						||
              </div>
 | 
						||
            </div>
 | 
						||
 | 
						||
            <div class="rightBottom">
 | 
						||
              <span>身份证号:</span>
 | 
						||
              <span>{{ item.idNumber.replace(/^(\w{6})\w{8}(.*)$/, '$1******$2') }}</span>
 | 
						||
            </div>
 | 
						||
          </div>
 | 
						||
        </div>
 | 
						||
      </div>
 | 
						||
 | 
						||
      <AiEmpty v-else></AiEmpty>
 | 
						||
    </div>
 | 
						||
  </div>
 | 
						||
</template>
 | 
						||
 | 
						||
<script>
 | 
						||
export default {
 | 
						||
  name: 'DetailCard',
 | 
						||
  components: {},
 | 
						||
  props: {},
 | 
						||
  data() {
 | 
						||
    return {
 | 
						||
      id: '',
 | 
						||
      data: [],
 | 
						||
      resident: {},
 | 
						||
    }
 | 
						||
  },
 | 
						||
  computed: {},
 | 
						||
  watch: {},
 | 
						||
  onLoad(o) {
 | 
						||
    document.title = '居民档案'
 | 
						||
    this.id = o.id
 | 
						||
    this.$dict.load('householdRelation', 'fileStatus').then(() => {
 | 
						||
      this.getDetail()
 | 
						||
    })
 | 
						||
  },
 | 
						||
  onShow() {},
 | 
						||
  methods: {
 | 
						||
    getDetail() {
 | 
						||
      this.$http.post(`/app/appresident/detail?id=${this.id}`).then((res) => {
 | 
						||
        if (res.code == 0) {
 | 
						||
          this.data = res.data
 | 
						||
          this.$nextTick(() => {
 | 
						||
            this.resident = res.data.resident
 | 
						||
          })
 | 
						||
        }
 | 
						||
      })
 | 
						||
    },
 | 
						||
 | 
						||
    toDetailPeople(item) {
 | 
						||
      uni.navigateTo({ url: `./DetailPeople?id=${item.id}` })
 | 
						||
    },
 | 
						||
  },
 | 
						||
}
 | 
						||
</script>
 | 
						||
 | 
						||
<style scoped lang="scss">
 | 
						||
.DetailCard {
 | 
						||
  height: 100%;
 | 
						||
  .top {
 | 
						||
    height: 112px;
 | 
						||
    background: #3975c6;
 | 
						||
  }
 | 
						||
 | 
						||
  .middle {
 | 
						||
    margin: -80px 32px 0 32px;
 | 
						||
    padding: 38px 30px 78px 28px;
 | 
						||
    background: #ffffff;
 | 
						||
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.02);
 | 
						||
    border-radius: 16px;
 | 
						||
    z-index: 999;
 | 
						||
    .hint {
 | 
						||
      font-size: 32px;
 | 
						||
      font-weight: 500;
 | 
						||
      color: #333333;
 | 
						||
    }
 | 
						||
    .areaHint {
 | 
						||
      margin-top: 38px;
 | 
						||
      span {
 | 
						||
        margin-left: 14px;
 | 
						||
      }
 | 
						||
    }
 | 
						||
  }
 | 
						||
 | 
						||
  .bottom {
 | 
						||
    margin: 32px 30px 48px 30px;
 | 
						||
    background: #fff;
 | 
						||
    padding: 38px 30px 30px 30px;
 | 
						||
    .hints {
 | 
						||
      margin-bottom: 38px;
 | 
						||
    }
 | 
						||
    .card {
 | 
						||
      display: flex;
 | 
						||
      box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.08);
 | 
						||
      border-radius: 16px;
 | 
						||
      padding: 48px 32px;
 | 
						||
      margin-bottom: 32px;
 | 
						||
      .photos {
 | 
						||
        img {
 | 
						||
          width: 96px;
 | 
						||
          height: 96px;
 | 
						||
          border-radius: 50%;
 | 
						||
        }
 | 
						||
      }
 | 
						||
 | 
						||
      .right {
 | 
						||
        display: flex;
 | 
						||
        flex-direction: column;
 | 
						||
        margin-left: 40px;
 | 
						||
        width: 100%;
 | 
						||
        .rightTop {
 | 
						||
          display: flex;
 | 
						||
          justify-content: space-between;
 | 
						||
          .rightTop-lefts {
 | 
						||
            .names {
 | 
						||
              font-size: 32px;
 | 
						||
              font-weight: 600;
 | 
						||
            }
 | 
						||
            .householdNames {
 | 
						||
              margin-left: 30px;
 | 
						||
              font-size: 26px;
 | 
						||
              font-weight: 500;
 | 
						||
              color: #5aad6a;
 | 
						||
            }
 | 
						||
            .fileStatuss {
 | 
						||
              display: inline-block;
 | 
						||
              margin-left: 30px;
 | 
						||
              color: #ff4466;
 | 
						||
              background: #ffecef;
 | 
						||
              border-radius: 8px;
 | 
						||
              width: 88px;
 | 
						||
              height: 40px;
 | 
						||
              line-height: 40px;
 | 
						||
              text-align: center;
 | 
						||
            }
 | 
						||
          }
 | 
						||
          .rightTop-rights {
 | 
						||
            ::v-deep .u-section {
 | 
						||
              .u-section__right-info {
 | 
						||
                color: #3975c6 !important;
 | 
						||
                .u-section__right-info__icon-arrow {
 | 
						||
                  .u-icon {
 | 
						||
                    .u-icon__icon {
 | 
						||
                      color: #3975c6 !important;
 | 
						||
                    }
 | 
						||
                  }
 | 
						||
                }
 | 
						||
              }
 | 
						||
            }
 | 
						||
          }
 | 
						||
        }
 | 
						||
        .rightBottom {
 | 
						||
          margin-top: 20px;
 | 
						||
        }
 | 
						||
      }
 | 
						||
    }
 | 
						||
    .card:nth-child(2n-1) {
 | 
						||
      // background: royalblue;
 | 
						||
      background: url(http://respub.sinoecare.net/20211222/装饰-20211222162743.png) no-repeat;
 | 
						||
      background-size: 100% 100%;
 | 
						||
    }
 | 
						||
    .card:nth-child(2n) {
 | 
						||
      // background: pink;
 | 
						||
      background: url(http://respub.sinoecare.net/20211222/装饰2-20211222162934.png) no-repeat;
 | 
						||
      background-size: 100% 100%;
 | 
						||
    }
 | 
						||
  }
 | 
						||
}
 | 
						||
</style>
 |