AddPosts
This commit is contained in:
		
							
								
								
									
										137
									
								
								src/apps/AppResidentActivitie/AddPosts.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										137
									
								
								src/apps/AppResidentActivitie/AddPosts.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,137 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="page">
 | 
			
		||||
    <div class="textarea-div mar-b16">
 | 
			
		||||
      <div class="title mar-b32"><span></span>帖子内容</div>
 | 
			
		||||
      <div class="pad-l20">
 | 
			
		||||
        <u-input v-model="form.content" type="textarea" :border="false" :height="140" :auto-height="true" placeholder="请输入内容(1000字以内)" placeholder-style="color:#999;font-size:16px;" maxLength="140" />
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="textarea-div pad-b208">
 | 
			
		||||
      <div class="title mar-b32"><span></span>图片(最多9张)</div>
 | 
			
		||||
      <div class="pad-l20">
 | 
			
		||||
        <AiUploader :limit="9" v-model="form.images"></AiUploader>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="footer-btn">
 | 
			
		||||
      <div class="btn" @click="addPost">立即发布</div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { mapState } from 'vuex'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'AddPosts',
 | 
			
		||||
  components: {},
 | 
			
		||||
  computed: {
 | 
			
		||||
    ...mapState(['user']),
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      files: [],
 | 
			
		||||
      id: '',
 | 
			
		||||
      flag: false,
 | 
			
		||||
      form: {
 | 
			
		||||
        content: '',
 | 
			
		||||
        images: [],
 | 
			
		||||
      },
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  onLoad(o) {
 | 
			
		||||
    this.id = o.id || ''
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    addPost() {
 | 
			
		||||
      if (this.flag) return
 | 
			
		||||
 | 
			
		||||
      if (!this.form.content && !this.form.images.length) {
 | 
			
		||||
        return this.$u.toast('帖子内容不能为空')
 | 
			
		||||
      }
 | 
			
		||||
      this.flag = true
 | 
			
		||||
 | 
			
		||||
      let imagesList = []
 | 
			
		||||
      if (this.form.images) {
 | 
			
		||||
        this.form.images.map((item) => {
 | 
			
		||||
          imagesList.push({ id: item.id, url: item.url })
 | 
			
		||||
        })
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      this.$http
 | 
			
		||||
        .post(`/app/appvillageactivitypost/addOrUpdate`, {
 | 
			
		||||
          content: this.form.content,
 | 
			
		||||
          avatar: this.user.avatarUrl,
 | 
			
		||||
          name: this.user.realName,
 | 
			
		||||
          phone: this.user.phone ? this.user.phone : '',
 | 
			
		||||
          userId: this.user.partyId,
 | 
			
		||||
          activityId: this.id,
 | 
			
		||||
          images: JSON.stringify(imagesList),
 | 
			
		||||
        })
 | 
			
		||||
        .then((res) => {
 | 
			
		||||
          if (res.code == 0) {
 | 
			
		||||
            this.$u.toast('发布成功')
 | 
			
		||||
            this.flag = false
 | 
			
		||||
            uni.$emit('refresh')
 | 
			
		||||
            uni.navigateBack()
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.textarea-div {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  padding: 32px 32px 38px 32px;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
.title {
 | 
			
		||||
  font-size: 32px;
 | 
			
		||||
  font-family: PingFangSC-Regular, PingFang SC;
 | 
			
		||||
  color: #333;
 | 
			
		||||
  line-height: 44px;
 | 
			
		||||
  span {
 | 
			
		||||
    font-family: PingFangSC-Regular, PingFang SC;
 | 
			
		||||
    color: #ff4466;
 | 
			
		||||
    margin-right: 4px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
.border {
 | 
			
		||||
  border-bottom: 2px solid #ddd;
 | 
			
		||||
}
 | 
			
		||||
.mar-b32 {
 | 
			
		||||
  margin-bottom: 32px;
 | 
			
		||||
}
 | 
			
		||||
.pad-l20 {
 | 
			
		||||
  padding-left: 20px;
 | 
			
		||||
}
 | 
			
		||||
.mar-b16 {
 | 
			
		||||
  margin-bottom: 16px;
 | 
			
		||||
}
 | 
			
		||||
.pad-b208 {
 | 
			
		||||
  padding-bottom: 208px;
 | 
			
		||||
}
 | 
			
		||||
.footer-btn {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  padding: 116px 32px 32px;
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  position: fixed;
 | 
			
		||||
  bottom: 0;
 | 
			
		||||
  left: 0;
 | 
			
		||||
  background-color: #f3f6f9;
 | 
			
		||||
  z-index: 99;
 | 
			
		||||
  .btn {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 92px;
 | 
			
		||||
    line-height: 92px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    background: #1365dd;
 | 
			
		||||
    border-radius: 8px;
 | 
			
		||||
    font-size: 34px;
 | 
			
		||||
    color: #fff;
 | 
			
		||||
    font-family: PingFangSC-Medium, PingFang SC;
 | 
			
		||||
    font-weight: 500;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
  <div class="page">
 | 
			
		||||
    <div class="header-content">
 | 
			
		||||
      <div class="header-top">
 | 
			
		||||
        <img :src="detail.url[0].url" alt="" />
 | 
			
		||||
        <img :src="detail.url && detail.url[0].url" alt="" />
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="header-middle">
 | 
			
		||||
@@ -104,7 +104,7 @@
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <AiFixedBtn>
 | 
			
		||||
      <div class="addBtn iconfont iconfont-iconfangda" @tap.stop="toAdd()" />
 | 
			
		||||
      <div class="addBtn iconfont iconfont-iconfangda" @tap.stop="AddPosts()" />
 | 
			
		||||
    </AiFixedBtn>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
@@ -140,6 +140,10 @@ export default {
 | 
			
		||||
    this.$dict.load(['villageActivityStatus']).then(() => {
 | 
			
		||||
      this.getDetail()
 | 
			
		||||
    })
 | 
			
		||||
 | 
			
		||||
    uni.$on('refresh', () => {
 | 
			
		||||
      this.getListInit()
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    getDetail() {
 | 
			
		||||
@@ -154,32 +158,43 @@ export default {
 | 
			
		||||
              console.log(this.detail.url)
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
          this.getActiveList()
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getListInit() {
 | 
			
		||||
      this.current == 1
 | 
			
		||||
      this.getActiveList()
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    getActiveList() {
 | 
			
		||||
      this.$http.post(`/app/apppostinfo/list?activityId=${this.id}`).then((res) => {
 | 
			
		||||
        if (res?.data) {
 | 
			
		||||
          // this.activeList = res.data.records
 | 
			
		||||
          // if (this.activeList) {
 | 
			
		||||
          //   let imagesList = []
 | 
			
		||||
          //   this.activeList.map((item) => {
 | 
			
		||||
          //     if (item.images) {
 | 
			
		||||
          //       item.images = JSON.parse(item.images || '[]')
 | 
			
		||||
          //       imagesList.push(item.images)
 | 
			
		||||
          //     }
 | 
			
		||||
          //     return item
 | 
			
		||||
          //   })
 | 
			
		||||
          //   this.imgList = imagesList
 | 
			
		||||
          // }
 | 
			
		||||
          this.activeList = res.data.records
 | 
			
		||||
          if (this.activeList) {
 | 
			
		||||
            let imagesList = []
 | 
			
		||||
            this.activeList.map((item) => {
 | 
			
		||||
              if (item.images) {
 | 
			
		||||
                item.images = JSON.parse(item.images || '[]')
 | 
			
		||||
                imagesList.push(item.images)
 | 
			
		||||
              }
 | 
			
		||||
              return item
 | 
			
		||||
            })
 | 
			
		||||
            this.imgList = imagesList
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    change(index) {
 | 
			
		||||
      this.current = index
 | 
			
		||||
      if (this.current == 1) {
 | 
			
		||||
        this.getActiveList()
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    AddPosts() {
 | 
			
		||||
      uni.navigateTo({ url: `./AddPosts` })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    previewImage(images, img) {
 | 
			
		||||
@@ -414,63 +429,21 @@ export default {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .addicon {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 280px;
 | 
			
		||||
    right: 30px;
 | 
			
		||||
    background: #fefefe;
 | 
			
		||||
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
 | 
			
		||||
    border-radius: 50%;
 | 
			
		||||
    padding: 26px 24px 22px 24px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .btn {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    // height: 112px;
 | 
			
		||||
    background: #f3f6f9;
 | 
			
		||||
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: space-between;
 | 
			
		||||
    padding: 32px 0;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    .edit {
 | 
			
		||||
      width: 254px;
 | 
			
		||||
      height: 92px;
 | 
			
		||||
      line-height: 92px;
 | 
			
		||||
      background: #ffffff;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      border: 2px solid #3671ee;
 | 
			
		||||
 | 
			
		||||
      font-size: 34px;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      color: #3671ee;
 | 
			
		||||
      margin-left: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .public {
 | 
			
		||||
      width: 400px;
 | 
			
		||||
 | 
			
		||||
      line-height: 92px;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
      font-size: 34px;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      color: #ffffff;
 | 
			
		||||
      margin-right: 32px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .max {
 | 
			
		||||
      margin: 0 auto;
 | 
			
		||||
      width: 686px;
 | 
			
		||||
      height: 92px;
 | 
			
		||||
      line-height: 92px;
 | 
			
		||||
      background: #cbddf9;
 | 
			
		||||
      border-radius: 8px;
 | 
			
		||||
 | 
			
		||||
      font-size: 34px;
 | 
			
		||||
      font-weight: 500;
 | 
			
		||||
      color: #ffffff;
 | 
			
		||||
  .AiFixedBtn {
 | 
			
		||||
    .movableArea {
 | 
			
		||||
      .addBtn {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: center;
 | 
			
		||||
        align-items: center;
 | 
			
		||||
        width: 96px;
 | 
			
		||||
        height: 96px;
 | 
			
		||||
        flex-shrink: 0;
 | 
			
		||||
        background: #fff;
 | 
			
		||||
        box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2);
 | 
			
		||||
        font-size: 48px;
 | 
			
		||||
        color: #1365dd;
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,193 +0,0 @@
 | 
			
		||||
<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>{{ currentAreaName }}</span>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="bottom">
 | 
			
		||||
      <div class="hints">家庭成员</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/2.png" alt="" v-else />
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <div class="right">
 | 
			
		||||
            <div class="rightTop">
 | 
			
		||||
              <div class="rightTop-lefts">
 | 
			
		||||
                <span class="names">{{ item.name }}</span>
 | 
			
		||||
                <span class="householdNames" v-if="item.householdName == 1">户主</span>
 | 
			
		||||
                <span class="householdNames" v-else>
 | 
			
		||||
                  {{ $dict.getLabel('householdRelation', item.householdName) }}
 | 
			
		||||
                </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: [],
 | 
			
		||||
      currentAreaName: '',
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {},
 | 
			
		||||
  watch: {},
 | 
			
		||||
  onLoad(o) {
 | 
			
		||||
    this.id = o.id
 | 
			
		||||
    this.$dict.load('householdRelation').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.currentAreaName = res.data.resident.currentAreaName
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    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;
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
          .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>
 | 
			
		||||
@@ -1,215 +0,0 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="DetailPeople">
 | 
			
		||||
    <div class="top">
 | 
			
		||||
      <div class="photos">
 | 
			
		||||
        <img :src="data.resident.photo" alt="" v-if="data.resident.photo" />
 | 
			
		||||
        <img src="./components/img/2.png" alt="" v-else />
 | 
			
		||||
      </div>
 | 
			
		||||
 | 
			
		||||
      <div class="right">
 | 
			
		||||
        <div class="rightTop">
 | 
			
		||||
          <span class="names">{{ data.resident.name }}</span>
 | 
			
		||||
 | 
			
		||||
          <span class="householdNames" v-if="data.resident.name == 1">户主</span>
 | 
			
		||||
          <span class="householdNames" v-else>
 | 
			
		||||
            {{ $dict.getLabel('householdRelation', data.resident.householdName) }}
 | 
			
		||||
          </span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="rightBottom">{{ data.resident.phone }}</div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="line"></div>
 | 
			
		||||
 | 
			
		||||
    <div class="middle">
 | 
			
		||||
      <div class="hint">个人基本信息</div>
 | 
			
		||||
 | 
			
		||||
      <div class="contents">
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>家庭地址</span>
 | 
			
		||||
          <span>{{ data.resident.birthplaceAreaName }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>身份证号</span>
 | 
			
		||||
          <span>{{ data.resident.idNumber.replace(/^(\w{6})\w{8}(.*)$/, '$1****$2') }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>民族</span>
 | 
			
		||||
          <span> {{ $dict.getLabel('nation', data.resident.householdName) }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>文化程度</span>
 | 
			
		||||
          <span>{{ $dict.getLabel('education', data.resident.education) }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>婚姻状况</span>
 | 
			
		||||
          <span>{{ $dict.getLabel('maritalStatus', data.resident.maritalStatus) }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>政治面貌</span>
 | 
			
		||||
          <span>{{ $dict.getLabel('politicsStatus', data.resident.politicsStatus) }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>兵役状况</span>
 | 
			
		||||
          <span>{{ $dict.getLabel('militaryStatus', data.resident.militaryStatus) }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>宗教信仰</span>
 | 
			
		||||
          <span>{{ $dict.getLabel('faithType', data.resident.faithType) }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>职业</span>
 | 
			
		||||
          <span>{{ $dict.getLabel('job', data.resident.job) }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="lines"></div>
 | 
			
		||||
 | 
			
		||||
    <div class="bottom">
 | 
			
		||||
      <div class="hint">联络信息</div>
 | 
			
		||||
 | 
			
		||||
      <div class="contents">
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>联系方式</span>
 | 
			
		||||
          <span class="phones">{{ data.resident.phone }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>现住址</span>
 | 
			
		||||
          <span>{{ data.resident.currentAreaName }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>现住详细地址</span>
 | 
			
		||||
          <span>{{ data.resident.currentAddress }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>户籍地址</span>
 | 
			
		||||
          <span>{{ data.resident.householdAreaName }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="item">
 | 
			
		||||
          <span>户籍详细地址</span>
 | 
			
		||||
          <span>{{ data.resident.householdAddress }}</span>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'DetailPeople',
 | 
			
		||||
  components: {},
 | 
			
		||||
  props: {},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      id: '',
 | 
			
		||||
      data: [],
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  computed: {},
 | 
			
		||||
  watch: {},
 | 
			
		||||
  onLoad(o) {
 | 
			
		||||
    this.id = o.id
 | 
			
		||||
    this.$dict.load('householdRelation', 'nation', 'education', 'maritalStatus', 'politicsStatus', 'militaryStatus', 'faithType', 'job').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.currentAreaName = res.data.resident.currentAreaName
 | 
			
		||||
          // })
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss">
 | 
			
		||||
.DetailPeople {
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  background: #fff;
 | 
			
		||||
  .top {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    padding: 48px 32px 32px 32px;
 | 
			
		||||
    .photos {
 | 
			
		||||
      img {
 | 
			
		||||
        width: 112px;
 | 
			
		||||
        height: 112px;
 | 
			
		||||
        border-radius: 50%;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    .right {
 | 
			
		||||
      display: flex;
 | 
			
		||||
      flex-direction: column;
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      margin-left: 24px;
 | 
			
		||||
      .rightTop {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        .names {
 | 
			
		||||
          font-size: 32px;
 | 
			
		||||
          font-weight: 600;
 | 
			
		||||
        }
 | 
			
		||||
        .householdNames {
 | 
			
		||||
          margin-left: 30px;
 | 
			
		||||
          font-size: 26px;
 | 
			
		||||
          font-weight: 500;
 | 
			
		||||
          color: #5aad6a;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      .rightBottom {
 | 
			
		||||
        margin-top: 16px;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .line {
 | 
			
		||||
    height: 8px;
 | 
			
		||||
    background: #f5f5f5;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .middle,
 | 
			
		||||
  .bottom {
 | 
			
		||||
    padding: 0 32px;
 | 
			
		||||
 | 
			
		||||
    .hint {
 | 
			
		||||
      padding: 32px 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    .contents {
 | 
			
		||||
      .item {
 | 
			
		||||
        display: flex;
 | 
			
		||||
        justify-content: space-between;
 | 
			
		||||
        padding: 14px 0;
 | 
			
		||||
        .phones {
 | 
			
		||||
          color: #3d94fb;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .lines {
 | 
			
		||||
    height: 4px;
 | 
			
		||||
    background: #f5f5f5;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
		Reference in New Issue
	
	Block a user