queenwuli
2021-01-06 5579e668ef0d3d923fb76d07b4c93d9c01f29d4a
hive-app/pages/member/skinDetectionDetail.vue
@@ -1,15 +1,194 @@
<template>
   <view>
      <view>
         <h-tabs
            class="tab"
            :activeIndex="tabIndex"
            :tabData="tabs"
            :config="{
               color: '#abb1cc',
               activeColor: '#518EFF',
               underLineColor: '#518EFF',
               underLineHeight: 6,
               fontSize: '30',
               underLineWidth: 110,
            }"
            @tabClick="tabClick($event)"
         />
      </view>
      <view class="content" v-if="tabIndex==0">
         <view class="flex flex-v align-center font-13">
            <image class="content-header-img" :src="info.photo?info.photo:'../../static/images/default-avatar.png'"></image>
            <view class="flex mt-10">
               <text>姓名: {{info.vipName}}</text>
               <text class="ml-10">性别: {{info.sex}}</text>
            </view>
            <text class="mt-5 gray">生成时间: {{info.checkTime}}</text>
         </view>
         <view class="mt-20">
            <view class="flex align-center">
               <text class="iconfont icondd big-dot"></text>
               <text class="font-15 font-bold">AI诊断结果(平均概率)</text>
            </view>
            <view class="font-13 flex ml-15 mt-10">
               <view class="flex align-center mr-20" v-for="item in info.diagnoseItems">
                  <text class="iconfont icondd small-dot red"></text>
                  <text>{{item.title}}: {{item.percentage}}%</text>
               </view>
            </view>
         </view>
         <view class="mt-20">
            <view class="flex align-center">
               <text class="iconfont icondd big-dot"></text>
               <text class="font-15 font-bold">问题分析</text>
            </view>
            <view class="flex problem-row" v-for="item in info.analysisItems">
               <view>
                  <image class="skin-img" :src="item.img?item.img:'../../static/images/no-img.png'"></image>
               </view>
               <view class="flex flex-v">
                  <view>
                     <text class="iconfont icondd small-dot"></text>
                     <text class="font-14">{{item.title}}</text>
                  </view>
                  <text class="font-10 ml-10 mt-10 dark-gray">症状描述:</text>
                  <text class="font-10 ml-10 mt-5 gray">{{item.analysis}}</text>
               </view>
            </view>
         </view>
      </view>
      <template v-else>
         <view class="content" v-for="item in info.analysisItems">
            <view class="content-title center">
               <text class="font-16 font-bold blue">{{item.title}}</text>
            </view>
            <view class="flex content-row">
               <text class="iconfont icondd big-dot mt-10"></text>
               <view class="flex flex-v content-row-right mr-10">
                  <text class="font-15 font-bold">症状描述:</text>
                  <text class="gray mt-5 font-13">{{item.analysis}}</text>
               </view>
            </view>
            <view class="flex content-row">
               <text class="iconfont icondd big-dot mt-10"></text>
               <view class="flex flex-v content-row-right mr-10">
                  <text class="font-15 font-bold">建议护理:</text>
                  <text class="gray mt-5 font-13">{{item.solution}}。</text>
               </view>
            </view>
            <view class="flex content-row">
               <text class="iconfont icondd big-dot mt-10"></text>
               <view class="flex flex-v content-row-right mr-10">
                  <text class="font-15 font-bold">建议使用产品:</text>
                  <view class="font-13 gray flex align-center mt-10" v-for="op in item.products">
                     <text class="iconfont iconchanpin mr-5"></text>
                     <text>{{op}}</text>
                  </view>
               </view>
            </view>
         </view>
      </template>
   </view>
</template>
<script>
   import HTabs from "@/components/liuyuno-tabs/liuyuno-tabs.vue";
   export default{
      components: {
          HTabs
      },
      data() {
        return {
          tabs:[
            {
               state: 0,
               name: '问题分析'
            },
            {
               state: 1,
               name: '解决方案'
            }
         ],
         tabIndex:0,
         info: {}
        }
      },
      onLoad(options) {
         uni.setNavigationBarTitle({
            title: options.title
         });
         if(options.title){
            uni.setNavigationBarTitle({
               title: options.title
            });
         }
         this.loadInfo(options.id);
      },
      methods:{
         tabClick(index){
            this.tabIndex=index
         },
         loadInfo(id){
            this.$httpUtils.request('/api/skinCheck/findSkinCheckDetail/'+id).then((res) => {
               if(res.status == 200){
                  this.info = res.mapInfo.detail
               }
            })
         }
      }
   }
</script>
<style>
   page{
      background: #F6F6F8;
   }
   .tab{
      background: #FFFFFF;
      border-bottom-left-radius: 4px;
      border-bottom-right-radius: 4px;
      box-shadow:0 6px 6px rgba(237,234,244,0.5);
   }
   .content{
      background: #FFFFFF;
      margin: 10px;
      padding: 10px 0;
      border: 1px solid #EDEAF4;
      border-radius: 4px;
      box-shadow:0 6px 6px rgba(237,234,244,0.5);
   }
   .content-header-img{
      width: 80px;
      height: 80px;
      border-radius: 50%;
   }
   .big-dot{
      font-size: 20px;
   }
   .small-dot{
      font-size: 10px;
   }
   .skin-img{
      width: 100px;
      height: 100px;
      border-radius: 4px;
   }
   .problem-row{
      padding: 10px 0;
      border-bottom: 1px solid #EDEAF4;
      margin: 0 10px;
   }
   .problem-row:nth-last-child(1){
      border: 0;
   }
   .content-title{
      border-bottom: 1px solid #EDEAF4;
      margin: 0 10px;
      padding-bottom: 10px;
   }
   .content-row-right{
      flex: 1;
      padding: 10px 0;
      border-bottom: 1px solid #EDEAF4;
   }
   .content-row:nth-last-child(1) .content-row-right{
      border: 0;
   }
</style>