xuzhiheng 3 tahun lalu
induk
melakukan
d9c111a828

+ 1 - 0
src/api/modules/index.js

@@ -14,3 +14,4 @@ export * from './customer'
 export * from './dataExport'
 export * from './marketing'
 export * from './medicalField'
+export * from './medical'

+ 71 - 0
src/api/modules/medical.js

@@ -0,0 +1,71 @@
+import request from '@/api'
+
+// 查询我关注的医疗机构
+export function followInstitutionList (data) {
+  return request({
+    url: '/domain/claim/institution',
+    baseURL: '/jyapi',
+    method: 'POST',
+    data
+  })
+}
+
+// 查询我关注的经销商
+export function followDistributorList (data) {
+  return request({
+    url: '/domain/claim/distributor',
+    baseURL: '/jyapi',
+    method: 'POST',
+    data
+  })
+}
+
+// 取消认领
+export function unclaimed (data) {
+  return request({
+    url: '/domain/unclaimed',
+    baseURL: '/jyapi',
+    method: 'POST',
+    data
+  })
+}
+
+// 医疗机构画像-基本信息
+export function getInstitution (data) {
+  return request({
+    url: '/domain/portrait/institution',
+    baseURL: '/jyapi',
+    method: 'post',
+    data: data
+  })
+}
+
+// 医疗机构-最新标讯信息
+export function getMeNewMsgList (data) {
+  return request({
+    url: '/domain/portrait/getNewMsgList',
+    baseURL: '/jyapi',
+    method: 'post',
+    data: data
+  })
+}
+
+// 医疗机构画像-认领
+export function setClaim (data) {
+  return request({
+    url: '/domain/claim',
+    baseURL: '/jyapi',
+    method: 'post',
+    data: data
+  })
+}
+
+// 医疗机构画像-是否认领
+export function isClaimed (data) {
+  return request({
+    url: '/domain/isClaimed',
+    baseURL: '/jyapi',
+    method: 'post',
+    data: data
+  })
+}

+ 1 - 0
src/api/modules/medicalField.js

@@ -3,6 +3,7 @@ import qs from 'qs'
 export function domainUsersave(data) {//用户认证信息保存
   return request({
     url: '/domain/userAuthInfoSave',
+    baseURL: '/jyapi',
     method: 'post',
     data
   })

+ 18 - 19
src/components/medical/FollowList.vue

@@ -2,11 +2,11 @@
   <div class="listData">
     <div style="padding:0 40px;">
       <div class="entintel-thead">
-        <span style="width:810px;">经销商名称</span>
+        <span style="width:910px;">经销商名称</span>
         <span style="width:100px;" class="thead-flex">
           <em>关注时间</em>
         </span>
-        <span style="width:100px;">分组</span>
+        <span style="width:100px;" v-if="false">分组</span>
         <span style="width:100px;">操作</span>
       </div>
       <ul class="listData_ul" :style="{'padding-bottom': getShowPagination?'': '48px'}">
@@ -16,48 +16,47 @@
           :class="{ visited: item.visited }"
           v-for="(item, index) in getMyData.listState.list"
           :key="index">
-          <div style="padding: 0 12px;width:810px;cursor: pointer" @click="goViewEnt(item.s_entId, item)">
+          <div style="padding: 0 12px;width:910px;cursor: pointer" @click="goViewEnt(item.s_entId, item)">
             <div class="list_name ent_li_name visited-hd">
               <i class="company-icon"></i>
-              {{ item.s_entname }}
+              {{ item.ent_name }}
               <span class="red_point" v-if="item.i_apppushunread === 1"></span>
             </div>
             <div class="list_unit">
               <div class="pur_unit">
                 <span class="unit_label">成立日期:</span>
                 <span class="unit_name entname visited-ft">
-                  {{ item.l_establishdate ? dateFormatter(item.l_establishdate * 1000, 'yyyy-MM-dd') : '--' }}
+                  {{ item.establish_date ? item.establish_date : '--' }}
                 </span>
               </div>
               <div class="pur_unit">
                 <span class="unit_label">注册资本:</span>
                 <span class="unit_name entname visited-ft">
-                  {{ item.f_capital ? moneyUnit(item.f_capital * 10000) : '--' }}
+                  {{ item.capital ? item.capital : '--' }}
                 </span>
               </div>
               <div class="pur_unit">
                 <span class="unit_label">企业地址:</span>
                 <span class="unit_name entname visited-ft">
-                  {{ item.s_area ? item.s_area : '--' }}
-                  {{ item.s_city ? item.s_city : '' }}
+                  {{ item.address ? item.address : '--' }}
                 </span>
               </div>
               <div class="pur_unit">
                 <span class="unit_label">企业联系方式:</span>
                 <span class="unit_name entname visited-ft">
-                  {{ item.s_phone ? item.s_phone : '--' }}
+                  {{ item.company_phone ? item.company_phone : '--' }}
                 </span>
               </div>
             </div>
           </div>
           <div class="list_li_item list_li_gray">
-            {{ item.l_lastpushtime ? dateFormatter(item.l_lastpushtime * 1000, 'yyyy-MM-dd') : '--' }}
+            {{ item.create_time ? item.create_time : '--' }}
           </div>
-          <div class="list_li_item item-flex-column list_li_gray">
+          <div class="list_li_item item-flex-column list_li_gray" v-if="false">
             <span v-for="(s,j) in formatGroup(item.s_group)" :key="'00' + j" style="line-height:20px;">{{ s }}</span>
           </div>
           <div class="list_li_item entintel-handle">
-            <span @click="editGroup(item)">编辑分组</span>
+            <span @click="editGroup(item)" v-if="false">编辑分组</span>
             <span @click="cancelFollow(item)">取消关注</span>
           </div>
         </li>
@@ -115,6 +114,7 @@ import Empty from '@/components/common/Empty.vue'
 import GroupCard from '@/components/selector/GroupSelector.vue'
 import { moneyUnit, dateFormatter } from '@/utils'
 import { setFollowEnt, setCancelEnt, changeEntGroup } from '@/api/modules'
+import { unclaimed } from '@/api/modules/medical'
 
 export default {
   name: 'listData',
@@ -132,7 +132,7 @@ export default {
   data () {
     return {
       filter: {
-        pageNum: 0,
+        pageNum: 1,
         match: '',
         group: '',
         pageSize: 10
@@ -295,15 +295,14 @@ export default {
     // 企业情报监控 取消关注
     cancelFollow (item) {
       const num = this.listState.list.length <= 1 ? 0 : this.filter.pageNum
-      setCancelEnt({
-        entId: item.s_entId,
-        fid: item.fid
+      unclaimed({
+        id: item.id
       }).then(res => {
-        if (res.data === 'success') {
+        if (res.error_code === 0) {
           this.$toast('取消关注成功', 1000)
           this.$emit('onPageChange', num)
         } else {
-          this.$toast(res.error_msg)
+          this.$toast(res.error_msg, 1500)
         }
       })
     },
@@ -397,7 +396,7 @@ export default {
     }
   }
 
-  .list_li_gray{
+  .list_li_gray {
     color: #999999;
   }
 

+ 6 - 0
src/router/medical-field.js

@@ -21,5 +21,11 @@ export default [
     path: '/medical/find_medical',
     name: 'find_medical',
     component: () => import('@/views/medical/FindMedical.vue')
+  },
+  // 医疗机构画像
+  {
+    path: '/medical/medical_portrait',
+    name: 'medical_portrait',
+    component: () => import('@/views/medical-field/MedicalPortrait.vue')
   }
 ]

+ 337 - 0
src/views/medical-field/MedicalPortrait.vue

@@ -0,0 +1,337 @@
+<template>
+  <div class="medical_portrait">
+    <div class="me_ent_info" v-loading="infoloading">
+      <div class="me_info_head">
+        <div class="me_head_left">
+          <div class="me_l_img">
+            <img src="" alt="">
+          </div>
+          <div class="me_l_name">
+            <span>{{info.company_name}}</span>
+            <div class="me_l_tags">
+              <span v-if="info.area">{{info.area}}</span>
+              <span v-if="info.level">{{info.level}}</span>
+              <span>{{setBusstype}}</span>
+              <span v-if="info.mi_type">{{info.mi_type}}</span>
+            </div>
+          </div>
+        </div>
+        <div class="me-head-right">
+          <div class="u-follow" @click="setFollow">
+            <span :class="{ icon_heart_red: follow.followed, icon_heart_gray: !follow.followed }"></span>
+            <span class="follow-text">{{ follow.followed ? '已关注' : '关注' }}</span>
+          </div>
+        </div>
+      </div>
+      <div class="me_info_statick">
+        <ul class="me_info_s_ul">
+          <li class="s_ul_li">
+            <span class="list-num">{{info.establish_date || '--'}}</span>
+            <span class="list-label">成立年份</span>
+          </li>
+          <li class="s_ul_li">
+            <span class="list-num">{{info.beds || '--'}}</span>
+            <span class="list-label">床位数</span>
+          </li>
+          <li class="s_ul_li">
+            <span class="list-num">{{info.visit_perday || '--'}}</span>
+            <span class="list-label">门诊量(日)</span>
+          </li>
+          <li class="s_ul_li">
+            <span class="list-num">{{info.doctorsnum || '--'}}</span>
+            <span class="list-label">员工数</span>
+          </li>
+        </ul>
+      </div>
+      <div class="me_info_main">
+        <ul class="me_i_m_ul">
+          <li class="me_i_m_li">
+            <div class="me_label">地址:</div>
+            <div class="me_content">{{info.address}}</div>
+          </li>
+          <li class="me_i_m_li">
+            <div class="me_label">网址:</div>
+            <div class="me_content">{{info.website || '--'}}</div>
+          </li>
+          <li class="me_i_m_li">
+            <div class="me_label">医院科室:</div>
+            <div class="me_content">{{info.departnames}}</div>
+          </li>
+          <li class="me_i_m_li">
+            <div class="me_label">医院设备:</div>
+            <div class="me_content">{{info.equipment}}</div>
+          </li>
+        </ul>
+      </div>
+    </div>
+    <div class="me_ent_container">
+      <medical-multiple-list :companyName="info.company_name" :config="{baseParam:{entId: decodeURIComponent(this.$route.query.id)},isWinner:false, isMedical: true, hasPower:showConf13}"></medical-multiple-list>
+    </div>
+  </div>
+</template>
+
+<script>
+import MedicalMultipleList from '../portrayal/components/DynamicList.vue'
+import { getInstitution, setClaim, unclaimed, isClaimed } from '@/api/modules'
+import { mapState } from 'vuex'
+export default {
+  name: 'medical_portrait',
+  components: {
+    MedicalMultipleList
+  },
+  data () {
+    return {
+      follow: {
+        followed: false,
+        loading: false
+      },
+      infoloading: false,
+      info: {}
+    }
+  },
+  created () {
+    this.getMedicalInst()
+  },
+  computed: {
+    ...mapState({
+      infoPower: state => state.user.info
+    }),
+    setBusstype () {
+      switch (this.info.business_type) {
+        case 0:
+          return '公立'
+        case 1:
+          return '民营'
+        case 2:
+          return '其他'
+        default:
+          return '其他'
+      }
+    },
+    getCompany () {
+      return this.info.company_name
+    },
+    // 项目动态
+    showConf13 () {
+      return this.infoPower.power.indexOf(13) !== -1
+    }
+  },
+  methods: {
+    // 获取医疗机构基本信息
+    getMedicalInst () {
+      this.infoloading = true
+      const params = { company_id: '25caa43ce64036dfd1f55635e06394a6' }
+      getInstitution(params).then(res => {
+        if (res.error_code === 0) {
+          this.follow.followed = !!res.data.follow
+          this.info = res.data
+        } else {
+          this.$toast(res.error_msg)
+        }
+        // this.$nextTick(() => {
+        //   this.getNewList()
+        // })
+        this.infoloading = false
+      }).catch((err) => {
+        console.log(err)
+        this.infoloading = false
+      })
+    },
+    setFollow () {
+      const param = {
+        company_id: '25caa43ce64036dfd1f55635e06394a6',
+        type: 1
+      }
+      // 查询是否认领
+      isClaimed(param).then(res => {
+        if (res.error_code === 0) {
+          if (res.data.status) {
+            this.setCancelClaim()
+          } else {
+            this.setOptionClaim()
+          }
+        }
+      })
+    },
+    // 认领
+    setOptionClaim () {
+      const param = {
+        type: 1,
+        ent_id: '25caa43ce64036dfd1f55635e06394a6'
+      }
+      setClaim(param).then(res => {
+        if (res.error_code === 0) {
+          this.$toast('关注成功')
+        } else {
+          this.$toast(res.error_msg)
+        }
+      })
+    },
+    // 取消认领
+    setCancelClaim () {
+      const param = {
+        ent_id: '25caa43ce64036dfd1f55635e06394a6'
+      }
+      unclaimed(param).then(res => {
+        if (res.error_code === 0) {
+          this.$toast('取消关注成功')
+        } else {
+          this.$toast(res.error_msg)
+        }
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.medical_portrait{
+  width: 1200px;
+  margin: 24px auto;
+  .me_ent_info{
+    padding: 24px 30px 29px;
+    height: 100%;
+    background: #fff;
+    border-radius: 8px;
+  }
+  .me_info_head{
+    display: flex;
+    justify-content: space-between;
+    align-items: flex-start;
+    height: 64px;
+  }
+  .me_head_left{
+    display: flex;
+    align-items: center;
+    justify-content: flex-start;
+    .me_l_img{
+      margin-right: 18px;
+      width: 64px;
+      height: 64px;
+      img{
+        width: 100%;
+        height: 100%;
+      }
+    }
+    .me_l_name{
+      display: flex;
+      flex-direction: column;
+      font-size: 24px;
+      color: #171826;
+      line-height: 36px;
+      .me_l_tags{
+        span{
+          margin-right: 8px;
+          padding: 1px 8px;
+          background: #F5F5FB;
+          border-radius: 4px;
+          border: 1px solid #ECECEC;
+          font-size: 12px;
+          font-weight: 400;
+          color: #686868;
+          line-height: 18px;
+        }
+      }
+    }
+  }
+  .u-follow{
+    display: flex;
+    align-items: center;
+    line-height: 34px;
+    cursor: pointer;
+    .icon_heart_gray {
+      margin-right: 4px;
+      display: flex;
+      width: 18px;
+      height: 18px;
+      background: url('~@/assets/images/icon/icon-heart.png') no-repeat;
+      background-size: contain;
+    }
+
+    .icon_heart_red {
+      margin-right: 4px;
+      display: flex;
+      width: 18px;
+      height: 18px;
+      background: url('~@/assets/images/icon/icon-favorite.png') no-repeat;
+      background-size: contain;
+    }
+  }
+  .me_info_statick{
+    margin-top: 24px;
+    .me_info_s_ul{
+      display: flex;
+      align-items: center;
+      .s_ul_li{
+        position: relative;
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        align-items: center;
+        width: 168px;
+        height: 72px;
+        .list-num{
+          font-size: 20px;
+          color: #1D1D1D;
+          line-height: 32px;
+        }
+        .list-label{
+          font-size: 14px;
+          color: #999999;
+          line-height: 22px;
+        }
+        &::after{
+          position: absolute;
+          right: 0;
+          top: 16px;
+          content: '';
+          width: 1px;
+          height: 40px;
+          background: #ECECEC;
+        }
+      }
+    }
+  }
+  .me_info_main{
+    margin-top: 24PX;
+    background: #F7F9FC;
+    .me_i_m_ul{
+      display: flex;
+      flex-direction: column;
+      justify-content: space-between;
+      padding: 16px 16px 8px;
+      height: 100%;
+      .me_i_m_li{
+        display: flex;
+        justify-content: flex-start;
+        align-items: flex-start;
+        margin-bottom: 8px;
+        line-height: 22px;
+        font-size: 14px;
+        .me_label{
+          margin-right: 10px;
+          text-align: right;
+          width: 100px;
+          color: #999999;
+        }
+        .me_content{
+          flex: 1;
+          text-align: justify;
+          color: #1D1D1D;
+        }
+      }
+    }
+  }
+  .me_ent_container{
+    padding: 24px 30px 40px;
+    margin-top: 16px;
+    background: #fff;
+    border-radius: 8px;
+    .collect-table-list{
+      .table{
+        max-width: 100%!important;
+      }
+    }
+  }
+}
+</style>

+ 51 - 24
src/views/medical/distributorFollowed.vue

@@ -2,9 +2,9 @@
   <div class="ent-intel">
     <forLayOut :search="false">
       <template v-slot:main>
-        <CommonTab title='筛选条件'></CommonTab>
+        <CommonTab title='筛选条件' v-if="false"></CommonTab>
         <FollowFilter @onPageChange="updateFilters" searchName="经销商名称" searchPlaceholder="请输入经销商名称"
-                      :showGroup=true></FollowFilter>
+                      :showGroup=true v-if="false"></FollowFilter>
         <CommonTab title='我关注的经销商'>
           可关注{{ followNum.max }}个客户,已关注<p style="color: #2CB7CA;padding: 0 5px">{{ followNum.total }}</p>个
         </CommonTab>
@@ -21,7 +21,7 @@ import forLayOut from '@/components/forecast/ForLayout.vue'
 import CommonTab from '@/components/medical/CommonTab.vue'
 import FollowList from '@/components/medical/FollowList.vue'
 import FollowFilter from '@/components/medical/FollowFilter.vue'
-import { getFollowtList } from '@/api/modules'
+import { followDistributorList } from '@/api/modules/medical'
 
 // 关注的医疗机构页面
 export default {
@@ -35,7 +35,7 @@ export default {
   data () {
     return {
       filter: {
-        pageNum: 0,
+        pageNum: 1,
         match: '',
         group: '',
         pageSize: 10
@@ -66,42 +66,69 @@ export default {
     },
     // 我关注的企业列表
     getMyFollowList () {
+      this.loading = true
       if (this.$refs.myList) {
         this.myDataObj.list = []
       }
-      getFollowtList({
-        pageNum: this.filter.pageNum,
-        pageSize: this.filter.pageSize,
-        match: this.filter.match,
-        group: this.filter.group
+      followDistributorList({
+        page: this.filter.pageNum,
+        page_size: this.filter.pageSize
+        //   match: this.filter.match,
+        //   group: this.filter.group
       }).then(res => {
         if (res.error_code === 0 && res.data) {
-          this.loading = false
           if (res.data.list) {
             res.data.list.forEach(v => {
               if (v.s_city && v.s_city.length > 5) {
                 v.s_city = v.s_city.substring(0, 4) + '...'
               }
+              if (v.create_time) {
+                v.create_time = v.create_time.split(' ')[0]
+              }
+              if (v.establish_date) {
+                v.establish_date = v.establish_date.split(' ')[0]
+              }
             })
           }
-          // 更新列表
-          this.myDataObj.list = res.data.list || []
-          this.myDataObj.initTotal = res.data.count
           this.myDataObj.total = res.data.total
+          this.myDataObj.list = res.data.list || []
           this.$refs.myList.entInitData(this.myDataObj, this.filter)
-          // this.$refs.myList.$forceUpdate()
-
-          // 更新关注数量
-          this.followNum.max = res.data.followMax
-          this.followNum.total = res.data.count
-        } else {
-          this.loading = false
-          this.myDataObj.list = []
-          // this.$nextTick(() => {
-          //   this.$refs.myList.listState.pageNum = 1
-          // })
         }
+        this.loading = false
       })
+      // getFollowtList({
+      //   pageNum: this.filter.pageNum,
+      //   pageSize: this.filter.pageSize,
+      //   match: this.filter.match,
+      //   group: this.filter.group
+      // }).then(res => {
+      //   if (res.error_code === 0 && res.data) {
+      //     this.loading = false
+      //     if (res.data.list) {
+      //       res.data.list.forEach(v => {
+      //         if (v.s_city && v.s_city.length > 5) {
+      //           v.s_city = v.s_city.substring(0, 4) + '...'
+      //         }
+      //       })
+      //     }
+      //     // 更新列表
+      //     this.myDataObj.list = res.data.list || []
+      //     this.myDataObj.initTotal = res.data.count
+      //     this.myDataObj.total = res.data.total
+      //     this.$refs.myList.entInitData(this.myDataObj, this.filter)
+      //     // this.$refs.myList.$forceUpdate()
+      //
+      //     // 更新关注数量
+      //     this.followNum.max = res.data.followMax
+      //     this.followNum.total = res.data.count
+      //   } else {
+      //     this.loading = false
+      //     this.myDataObj.list = []
+      //     // this.$nextTick(() => {
+      //     //   this.$refs.myList.listState.pageNum = 1
+      //     // })
+      //   }
+      // })
     }
   }
 }

+ 35 - 40
src/views/medical/institutionFollowed.vue

@@ -2,8 +2,9 @@
   <div class="ent-intel">
     <forLayOut :search="false">
       <template v-slot:main>
-        <CommonTab title='筛选条件'></CommonTab>
-        <ForFilter @onPageChange="updateFilters" searchName="医疗机构名称" searchPlaceholder="请输入已关注的医疗机构名称"></ForFilter>
+        <CommonTab title='筛选条件' v-if="false"></CommonTab>
+        <ForFilter @onPageChange="updateFilters" searchName="医疗机构名称" searchPlaceholder="请输入已关注的医疗机构名称"
+                   v-if="false"></ForFilter>
         <CommonTab title='我关注的医疗机构'>
           可关注{{ followNum.max }}个客户,已关注<p style="color: #2CB7CA;padding: 0 5px">{{ followNum.total }}</p>个
         </CommonTab>
@@ -21,20 +22,16 @@
                 <div class="item-info w-800">
                   <div class="item-line">
                     <i class="company-icon"></i>
-                    <div class="info-name visited-hd" @click="goUnit(item)">{{ item.name }}</div>
+                    <div class="info-name visited-hd" @click="goUnit(item)">{{ item.ent_name }}</div>
                   </div>
                   <div class="info-other">
-                      <span class="other-list" v-if="item.province">
+                      <span class="other-list" v-if="item.address">
                         <em class="text-label">所在地:</em>
-                        <span class="visited-ft">{{ item.province }}</span>
-                      </span>
-                    <span class="other-list" v-if="item.buyerclass">
-                        <em class="text-label">采购单位类型:</em>
-                        <span class="visited-ft">{{ item.buyerclass }}</span>
+                        <span class="visited-ft">{{ item.address }}</span>
                       </span>
                   </div>
                 </div>
-                <div class="item-time w-100">{{ item.followdate }}</div>
+                <div class="item-time w-100">{{ item.create_time }}</div>
                 <div class="item-handle w-100" @click="cancelFollow(item)">取消关注</div>
               </li>
             </ul>
@@ -44,7 +41,7 @@
                 layout="prev, pager, next, ->"
                 :hide-on-single-page="true"
                 :current-page="filter.pageNum"
-                :page-size="client.pageSize"
+                :page-size="filter.pageSize"
                 :total="client.total"
                 @current-change="onPageChange"
               >
@@ -67,7 +64,7 @@ import ForFilter from '@/components/medical/FollowFilter.vue'
 import CommonTab from '@/components/medical/CommonTab.vue'
 import Empty from '@/components/common/Empty.vue'
 import { mixinVisited } from '@/utils/mixins/visited'
-import { followClientList, setStatusCustomer } from '@/api/modules'
+import { followInstitutionList, unclaimed } from '@/api/modules/medical'
 // 关注的经销商页面
 export default {
   name: 'distributor-followed',
@@ -85,24 +82,23 @@ export default {
       filter: {
         pageNum: 1,
         match: '',
-        group: ''
+        group: '',
+        pageSize: 10
       },
       followNum: {
         max: 0,
         total: 0
       },
       client: {
-        followTotal: 0,
         total: 0,
-        list: [],
-        pageSize: 10
+        list: []
       },
       loading: true
     }
   },
   computed: {
     showTips () {
-      if (this.client.followTotal === 0) {
+      if (this.followNum.total === 0) {
         return '暂未关注任何医疗机构'
       } else {
         return '暂未匹配数据'
@@ -125,27 +121,27 @@ export default {
       this.getClientList()
     },
     getClientList () {
-      followClientList({
-        pagesize: 10,
-        pageno: this.filter.pageNum,
-        keyword: this.filter.match
+      this.loading = true
+      followInstitutionList({
+        // keyword: this.filter.match,
+        page: this.filter.pageNum,
+        page_size: this.filter.pageSize
       }).then(res => {
         if (res.error_code === 0 && res.data) {
-          res.data.list.forEach(v => {
-            if (v.followdate) {
-              v.followdate = v.followdate.replace(/\//g, '-')
-            }
-            const visited = this.pathVisited(
-              this.createPathItem(
-                '/unit_portrayal/*',
-                `id=${v.name}`
-              )
-            )
-            this.$set(v, 'visited', visited)
-          })
-          this.client.list = res.data.list
-          this.client.total = res.data.count
-          this.client.followTotal = res.data.total
+          if (res.data.list) {
+            res.data.list.forEach(v => {
+              // const visited = this.pathVisited(
+              //   this.createPathItem(
+              //     '/unit_portrayal/*',
+              //     `id=${v.name}`
+              //   )
+              // )
+              // this.$set(v, 'visited', visited)
+              v.create_time = v.create_time ? v.create_time.split(' ')[0] : ''
+            })
+          }
+          this.client.list = res.data.list || []
+          this.client.total = res.data.total
         }
         this.loading = false
       })
@@ -170,11 +166,10 @@ export default {
     },
     // 取消关注
     cancelFollow (item) {
-      setStatusCustomer({
-        name: item.name,
-        b: true
+      unclaimed({
+        id: item.id
       }).then(res => {
-        if (res.error_code === 0 && res.data) {
+        if (res.error_code === 0) {
           this.$toast('取消关注成功', 1000)
           this.getClientList()
         } else {

+ 22 - 3
src/views/portrayal/components/DynamicList.vue

@@ -49,7 +49,7 @@
       </div>
     </empty>
     <div class="info-list collect-table-list" v-show="isTable&&!showEmpty">
-      <table class="table" v-show="tableList.length" style="max-width: 856px">
+      <table class="table" v-show="tableList.length">
         <thead class="thead">
         <tr>
           <td width="48">序号</td>
@@ -145,7 +145,7 @@ import PortrayalArticleItem from './DynamicListItem.vue'
 import { dateFormatter, moneyUnit } from '@/utils/'
 import { mapState } from 'vuex'
 import { mixinVisited } from '@/utils/mixins/visited'
-import { getNewMsg, getPortrayalSearchExportId, getSvipNewMsg, getUnitDt, getVipUnitDt } from '@/api/modules'
+import { getNewMsg, getPortrayalSearchExportId, getSvipNewMsg, getUnitDt, getVipUnitDt, getMeNewMsgList } from '@/api/modules'
 /* eslint-disable */
 export default {
   name: 'portrayal-dynamic-list',
@@ -163,12 +163,17 @@ export default {
       type: Boolean,
       default: false
     },
+    companyName: {
+      type: String,
+      default: ''
+    },
     config: {
       type: Object,
       default () {
         return {
           isWinner: false,
           hasPower: false,
+          isMedical: false,
           baseParam: {
             buyer: '',
             entId: '',
@@ -192,6 +197,11 @@ export default {
       }
     },
   },
+  watch: {
+    companyName (newVal) {
+      this.getList()
+    }
+  },
   computed: {
     ...mapState({
       userInfo: state => state.user.info
@@ -456,6 +466,7 @@ export default {
     },
     async getList () {
       let query = {
+        companyName: this.companyName,
         pageNum: this.listState.pageNum,
         pageSize: this.listState.pageSize,
       }
@@ -475,13 +486,20 @@ export default {
           } else {
             res = await getSvipNewMsg(query)
           }
-
+        } else if(this.config.isMedical) {
+          // 医疗机构画像
+          if (!query.companyName) return
+          res = await getMeNewMsgList(query)
         } else {//大会员-采购单位画像
           res = await getUnitDt(query)
         }
       } else {
         if (this.config.isWinner) {//超级订阅及免费用户-企业画像
           res = await getSvipNewMsg(query)
+        } else if(this.config.isMedical) {
+          // 医疗机构画像
+          if (!query.companyName) return
+          res = await getMeNewMsgList(query)
         } else {//超级订阅及免费用户-采购单位画像
           res = await getVipUnitDt(query)
         }
@@ -1623,6 +1641,7 @@ export default {
 
 /* table */
 .collect-table-list table {
+  max-width: 100%;
   width: 1199px;
   border-collapse: collapse;
 }

+ 1 - 1
src/views/portrayal/components/EntForm.vue

@@ -158,7 +158,7 @@ export default {
     .ent_list:nth-child(13) {
       border-right: 1px solid #ececec;
     }
-    .li_long{
+    .ent_list.li_long{
       width: 100%;
     }
   }