creditReport.vue 16.1 KB
<template>
  <v-layout id="CreditReport" column justify-center align-center>
    <v-flex>
      <div class="label">更新时间:{{report.update}}</div>      
      <v-card id="basicInfo" flat class="white--text">
        <div class="infoBlcok">
          <div id="name">{{report.name}}</div>
          <v-list class="list">
            <v-list-tile class="ListItem">
              <v-list-tile-content class="ListItemCell">
                <div><span>身份证:</span>{{report.idNo}}</div>
              </v-list-tile-content>
            </v-list-tile>
            <v-list-tile class="ListItem">
              <v-list-tile-content class="ListItemCell">
                <div><span>手机号:</span>{{report.phone}}</div>
              </v-list-tile-content>
            </v-list-tile>
            <v-list-tile class="ListItem">
              <v-list-tile-content class="ListItemCell">
                <div><span>微信号:</span>{{report.wechatAccount}}</div>
              </v-list-tile-content>
            </v-list-tile>
            <v-list-tile class="ListItem">
              <v-list-tile-content class="ListItemCell">
                <div><span>现居地:</span>{{report.address}}</div>
              </v-list-tile-content>
            </v-list-tile>
          </v-list>
        </div>
        <div class="avatarBlock">
          <div class="avatar">
            <svg width="7rem" height="7rem" viewBox="0 0 183 183" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
              <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
                  <g id="个人中心" transform="translate(-284.000000, -149.000000)">
                    <image id="e3f6ced22ab588cfcaf329d7cbc51b98-copy" x="284" y="149" width="183" height="183" xlink:href="data:image/png;base64,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"></image>
                  </g>
              </g>
            </svg>
          </div>
        </div>
      </v-card>
      <div class="label">详细数据</div>
      <v-card id="dataSource" flat class="white--text pannelBlock">
        <v-expansion-panel>
          <v-expansion-panel-content :value="true"> 
            <div class="header" slot="header">
              <div><v-icon color="blue">list</v-icon>数据源分析</div>
            </div>
            <v-card flat>
              <v-divider></v-divider>
              <v-list class="list">
                <v-list-tile class="ListItem ListHeader">
                  <v-list-tile-content class="ListItemCell">数据源</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">使用时长(月)</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">授权采集时间</v-list-tile-content>
                </v-list-tile>
                <v-list-tile class="ListItem">
                  <v-list-tile-content class="ListItemCell">移动运营商</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.mobile.netAge === '未知' ? '未知' : `${report.mobile.netAge}个月`}}</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.mobile.createdAt}}</v-list-tile-content>
                </v-list-tile>
              </v-list>
            </v-card>
          </v-expansion-panel-content>
        </v-expansion-panel>
      </v-card>
      <v-card id="contact" flat class="white--text pannelBlock">
        <v-expansion-panel light>
          <v-expansion-panel-content :value="true">
            <div class="header" slot="header" >
              <div><v-icon color="orange">contacts</v-icon>紧急联系人分析</div>
            </div>
            <v-card flat>
              <v-divider></v-divider>
              <v-list class="list">
                <v-list-tile class="ListItem ListHeader">
                  <v-list-tile-content class="ListItemCell">姓名</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.contactA}}</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.contactB}}</v-list-tile-content>
                </v-list-tile>               
                <v-list-tile class="ListItem">
                  <v-list-tile-content class="ListItemCell">与本人关系</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.contactARole}}</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.contactBRole}}</v-list-tile-content>
                </v-list-tile>
                <v-list-tile class="ListItem">
                  <v-list-tile-content class="ListItemCell">联系方式</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.contactAPhone}}</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.contactBPhone}}</v-list-tile-content>
                </v-list-tile>
                <v-list-tile class="ListItem">
                  <v-list-tile-content class="ListItemCell">半年内通话次数</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.contactATime}}</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.contactBTime}}</v-list-tile-content>
                </v-list-tile>
                <v-list-tile class="ListItem">
                  <v-list-tile-content class="ListItemCell">通话时长</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{Math.floor(report.contactAAmount / 60)}}</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{Math.floor(report.contactBAmount / 60)}}</v-list-tile-content>
                </v-list-tile>
              </v-list>
            </v-card>
          </v-expansion-panel-content>
        </v-expansion-panel>
      </v-card>
      <v-card id="mobile" flat class="white--text pannelBlock">
        <v-expansion-panel light>
          <v-expansion-panel-content :value="true">
            <div class="header" slot="header" >
              <div><v-icon color="green">smartphone</v-icon>手机号分析(数据源于运营商)</div>
            </div>
            <v-card flat>
              <v-divider></v-divider>
              <v-list class="list">
                <v-list-tile class="ListItem ListHeader">
                  <v-list-tile-content class="ListItemCell">注册手机号</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.phone}}</v-list-tile-content>
                </v-list-tile> 
                <v-list-tile class="ListItem ListHeader">
                  <v-list-tile-content class="ListItemCell">运营商认证手机号</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.phone}}</v-list-tile-content>
                </v-list-tile>
                <v-list-tile class="ListItem ListHeader">
                  <v-list-tile-content class="ListItemCell">使用时长</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.mobile.netAge === '未知' ? '未知' : `${report.mobile.netAge}个月`}}</v-list-tile-content>
                </v-list-tile>               
                <v-list-tile class="ListItem">
                  <v-list-tile-content class="ListItemCell">互通联系人</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.mobile.contactNum}}个</v-list-tile-content>
                </v-list-tile>
                <v-list-tile class="ListItem">
                  <v-list-tile-content class="ListItemCell">半年内通话次数</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{report.mobile.totalCallCount}}</v-list-tile-content>
                </v-list-tile>
                <v-list-tile class="ListItem">
                  <v-list-tile-content class="ListItemCell">通话时长</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">{{Math.floor(report.mobile.totalCallTime / 60)}}分钟</v-list-tile-content>
                </v-list-tile>
                <v-list-tile class="ListItem">
                  <v-list-tile-content class="ListItemCell">通话记录详情</v-list-tile-content>
                  <v-list-tile-content class="ListItemCell">
                    <span class="orange--text" @click="$router.push(`/callRecord?id=${$route.query.id}`)">点击查看</span></v-list-tile-content>
                </v-list-tile>
              </v-list>
            </v-card>
          </v-expansion-panel-content>
        </v-expansion-panel>
      </v-card>
    </v-flex>
    <div id="FuckIphoneX"></div>
  </v-layout>
</template>

<script>
export default {
  layout: 'lightColor',
  async asyncData({store, query, app, redirect}) {
    console.log(query.id)
    let {data} = await app.$axios.get(`/getCreditReport?userId=${store.state.user.id}&id=${query.id || ''}`)
    if (data.success) {
      if (!data.hasReport) {
        redirect(301, `/userRecord?id=${query.id}`)
        store.dispatch('displayMessage', '该用户还未完成基础信息及运营商信息采集,暂无信用报告')        
        return {report: {
          mobile: {}
        }}
      }
      return {report: data.report}
    } else {
      redirect(301, `/userRecord?id=${query.id}`)
      store.dispatch('displayMessage', data.msg)
      return {report: {
        mobile: {}
      }}
    }
  },
  head:() => ({
    title: '信用报告'
  }),
}
</script>

<style lang="scss" scoped>
  #CreditReport {
    width: 100vw;

    #basicInfo {
      width: 100vw;
      position: relative;
      .infoBlcok {
        display: inline-block;        
        #name {
          width: 100%;
          font-size: 1.7rem;
          font-weight: bold;
          box-sizing: border-box;
          padding: 1rem;
          color: #000;
        }
        .list {
          padding-top: 0;
          .ListItem {
            /deep/ .list__tile {
              height: 2rem;
              line-height: 2rem;

              span {
                color: #666;
              }
            }
          }
        }
      }
      .avatarBlock {
        width: 35%;
        display: flex;
        text-align: center;
        justify-content: center;
        position: absolute;
        right: 0;
        top: 0;
        height: 100%;
      }
    }

    .label {
      width: 100vw;
      height: 2.3rem;
      line-height: 2.3rem;
      font-size: 0.75rem;
      color: #888;
      padding-left: 0.9rem;
      box-sizing: border-box;
      background-color: transparent;
    }
    .header {
      font-weight: bold;
    }
    .pannelBlock {
      margin-bottom: 1rem;

      .list {
      padding: 0 0.8rem;

      .ListItem {
        height: 3rem;
        &:nth-child(1) {
          /deep/ .list__tile {
            border-top: none;
          }
        }
        .ListItemCell {
          width: 24%;
          align-items: center;
        }
        .ListItemCell:nth-child(1) {
          width: 28%;
          align-items: flex-start;
        }

        /deep/ .list__tile {
          height: 3rem;
          padding: 0;
          border-top: 0.1rem solid #586C80;
        }
      }
    }
    }
    #FuckIphoneX {
      position: fixed;
      bottom: 0;
      width: 100%;
      height: constant(safe-area-inset-bottom);
      height: env(safe-area-inset-bottom);
      background-color: transparent;
    }
  }
</style>