Explorar el Código

Merge branch 'master' into cygx_12.4

bding hace 1 año
padre
commit
402d45df10

+ 4 - 0
src/api/modules/rai/YanXuanApi.js

@@ -21,6 +21,10 @@ const YanXuanApi = {
   yanxuan_specialEnable: (params) => {
     return http.post("/cygx/yanxuan_special/enable", params);
   },
+  // 置顶、取消置顶
+  yanxuan_tope_change: (params) => {
+    return http.post("/cygx/activity/tope_change ", params);
+  },
 };
 
 export default YanXuanApi;

+ 45 - 5
src/views/business_ETA_manage/businessAuth.vue

@@ -33,7 +33,8 @@ export default {
             defaultCheckedKeys:[],
             treeLoading:false,
             checkAll:false,
-            isIndeterminate:false
+            isIndeterminate:false,
+            checkList:[],
         };
     },
     watch:{
@@ -61,10 +62,49 @@ export default {
                 if(!res.Data) return
                 const {List,ChoiceList=[],HalfChoiceList=[]} = res.Data
                 this.authList = List||[]
-                this.defaultCheckedKeys = ChoiceList.filter((item)=>!HalfChoiceList.some((halfItem)=>item===halfItem))
-                this.handleCheckChange(this.defaultCheckedKeys,HalfChoiceList)
+                this.checkList = ChoiceList
+                this.authList.forEach(item=>{
+                    this.checkTree(item)
+                })
+                //this.defaultCheckedKeys = ChoiceList.filter((item)=>!HalfChoiceList.some((halfItem)=>item===halfItem))
+                this.$nextTick(()=>{
+                    this.defaultCheckedKeys = this.checkList
+                    this.handleCheckChange(this.defaultCheckedKeys/* ,HalfChoiceList */)
+                })
+                
             })
         },
+        checkTree(data){
+            //非叶子节点递归
+            if(data.Children && data.Children.length){
+                data.Children = data.Children.map(i=>{
+                    return this.checkTree(i)
+                })
+            }
+            //叶子节点向上检查MenuId
+            if(!data.Children||data.Children&&data.Children.length===0){
+                this.checkDataList(data)
+            }
+            return data
+        },
+        //根据MenuId找到对应节点
+        findTreeNode(MenuId){
+            return this.$refs.checkboxTree.getNode(MenuId)
+        },
+        checkDataList(data){
+            //获取data的MenuId 和 checkList对比 
+            //如果MenuId不在checkList里,检查data.ParentId在不在checkList里,若在,则从checkList里去除
+            if(!this.checkList.includes(data.MenuId)&&this.checkList.includes(data.ParentId)){
+                const index = this.checkList.indexOf(data.ParentId)
+                index!==-1&&this.checkList.splice(index,1)
+                console.log('应该去除的节点',data.ParentId)
+            }
+            //向上检查MenuId
+            const parentNode = this.findTreeNode(data.ParentId)
+            if(parentNode){
+                this.checkDataList(parentNode.data)
+            }
+        },
         async handleBtnClik(type){
             if(type==='save'){
                 //获取树形列表选择的项 getCheckedKeys getHalfCheckedKeys
@@ -87,9 +127,9 @@ export default {
             }
             this.$router.push('/businessETAList')
         },
-        handleCheckChange(choiceList,HalfChoiceList){
+        handleCheckChange(choiceList/* ,HalfChoiceList */){
             const keys = choiceList||this.$refs.checkboxTree.getCheckedKeys()
-            const halfKeys = HalfChoiceList||this.$refs.checkboxTree.getHalfCheckedKeys()
+            //const halfKeys = HalfChoiceList||this.$refs.checkboxTree.getHalfCheckedKeys()
             const ChoiceList = Array.from(new Set([...keys]))
             const topLevelNodes = this.authList.map(i=>i.MenuId)
             let nodeLength = 0

+ 2 - 2
src/views/custom_manage/customList/applyTurn.vue

@@ -259,7 +259,7 @@ export default {
 						/* 处理数据把复选框 拆分成三个*/
 						res.Data.Item.PermissionList.length&&res.Data.Item.PermissionList.forEach(item => {
 						let arr = item.Items.filter(key=> [22,21,20,19,23,30].includes(key.ChartPermissionId))
-						let ItemsPrivate = item.Items.filter(key=> [29,31,20031].includes(key.ChartPermissionId))
+						let ItemsPrivate = item.Items.filter(key=> [29,31,20031,20032].includes(key.ChartPermissionId))
 						let ItemsUp = item.Items.filter(key=> key.PermissionName.includes('升级'))
 						let ItemsBig = item.Items.filter(key=> key.ChartPermissionId==0)
 							let obj = {
@@ -298,7 +298,7 @@ export default {
 						/* 处理数据把复选框 拆分成三个*/
 						res.Data.List.length&&res.Data.List.forEach(item => {
 						let arr = item.Items.filter(key=> [22,21,20,19,23,30].includes(key.ChartPermissionId))
-						let ItemsPrivate = item.Items.filter(key=> [29,31,20031].includes(key.ChartPermissionId))
+						let ItemsPrivate = item.Items.filter(key=> [29,31,20031,20032].includes(key.ChartPermissionId))
 						let ItemsUp = item.Items.filter(key=> key.PermissionName.includes('升级'))
 						let ItemsBig = item.Items.filter(key=> key.ChartPermissionId==0)
 							let obj = {

+ 10 - 11
src/views/custom_manage/customList/components/raiPermissionbox.vue

@@ -194,13 +194,15 @@
         item.Items.find(its => name.includes(its.PermissionName)).disabled=value
       },
       handlePrivateChecked(value,itP,item){
-        // console.log(value,itP,item);
-        if(![20031,31].includes(itP.ChartPermissionId)) return 
-        // 买方严选的3W与5W互斥
-        let disabledItem = item.ItemsPrivate.find(itPri => {
-          return [20031,31].includes(itPri.ChartPermissionId) && itP.ChartPermissionId!=itPri.ChartPermissionId
+        if(![20032,20031,31].includes(itP.ChartPermissionId)) return 
+        // 买方严选的互斥
+        item.ItemsPrivate.forEach(itPri => {
+         if([20032,20031,31].includes(itPri.ChartPermissionId)&&itP.ChartPermissionId!=itPri.ChartPermissionId && value){
+             itPri.disabled =true
+          }else {
+             itPri.disabled =false
+          }
         })
-        if(disabledItem) disabledItem.disabled=value
       },
       equityGroupDisabled(item){
         return item.some(key=> key>100000);
@@ -214,16 +216,13 @@
 
 <style lang="scss" scoped>
 	.rai-checkbox-content {
-		width: 100%;
+		// width: 100%;
 		// height: 160px;
 		padding: 20px 0 20px 20px;
 		border:1px dashed #aab4cc;
-		display: flex;
+		// display: flex;
 		.rai-checkbox-bigS-box{
 			display: flex;
-			flex-direction: column;
-			align-items: flex-start;
-			height: unset;
 			.bigS-item{
 				display: inline-flex;
 				align-items: center;

+ 2 - 2
src/views/custom_manage/customList/updateServe.vue

@@ -433,7 +433,7 @@ export default {
 						/* 处理数据把复选框 拆分成三个*/
 						res.Data.Item.PermissionList.length&&res.Data.Item.PermissionList.forEach(item => {
 						let arr = item.Items.filter(key=> [22,21,20,19,23,30].includes(key.ChartPermissionId))
-						let ItemsPrivate = item.Items.filter(key=> [29,31,20031].includes(key.ChartPermissionId))
+						let ItemsPrivate = item.Items.filter(key=> [29,31,20031,20032].includes(key.ChartPermissionId))
 						let ItemsUp = item.Items.filter(key=> key.PermissionName.includes('升级'))
 						let ItemsBig = item.Items.filter(key=> key.ChartPermissionId==0)
 							let obj = {
@@ -507,7 +507,7 @@ export default {
 						/* 处理数据把复选框 拆分成三个*/
 						res.Data.List.length&&res.Data.List.forEach(item => {
 						let arr = item.Items.filter(key=> [22,21,20,19,23,30].includes(key.ChartPermissionId))
-						let ItemsPrivate = item.Items.filter(key=> [29,31,20031].includes(key.ChartPermissionId))
+						let ItemsPrivate = item.Items.filter(key=> [29,31,20031,20032].includes(key.ChartPermissionId))
 						let ItemsUp = item.Items.filter(key=> key.PermissionName.includes('升级'))
 						let ItemsBig = item.Items.filter(key=> key.ChartPermissionId==0)
 							let obj = {

+ 28 - 9
src/views/rai_manage/activityManage/activityManage.vue

@@ -61,16 +61,19 @@
         <el-table-column v-if="tabsPitchon === 2" align="center" label="路演回放" min-width="100">
           <template slot-scope="{ row }"> {{ row.IsUpload ? "已上传" : "" }} </template>
         </el-table-column>
-        <el-table-column align="center" width="146" label="操作">
+        <el-table-column align="center" width="156" label="操作">
           <template slot-scope="{ row }">
-            <span v-if="row.PublishStatus == 0 && tabsPitchon == 0" class="editsty" @click="operationBtn(row.ActivityId, '发布')">发布</span>
-            <span v-if="row.PublishStatus == 3" class="editsty" @click="operationBtn(row.ActivityId, '重新发布')">重新发布</span>
-            <span v-if="row.PublishStatus == 1" class="editsty" @click="operationBtn(row.ActivityId, '取消发布')">取消发布</span>
-            &nbsp;&nbsp;
-            <span class="editsty" @click="editBtn(row.ActivityId, row.PublishStatus)">编辑</span>
-            &nbsp;&nbsp;
-            <span class="deletesty" v-if="row.PublishStatus == 0 && tabsPitchon == 0" @click="operationBtn(row.ActivityId, '删除')">删除</span>
-            <span class="editsty" v-if="row.IsShowSigninButton" @click="handleDownLoadImg(row)">下载签到码</span>
+            <div class="operate-box">
+              <p v-if="row.PublishStatus == 0 && tabsPitchon == 0" class="editsty" @click="operationBtn(row.ActivityId, '发布')">发布</p>
+              <p v-if="row.PublishStatus == 3" class="editsty" @click="operationBtn(row.ActivityId, '重新发布')">重新发布</p>
+              <p v-if="row.PublishStatus == 1" class="editsty" @click="operationBtn(row.ActivityId, '取消发布')">取消发布</p>
+              &nbsp;&nbsp;
+              <p class="editsty" @click="editBtn(row.ActivityId, row.PublishStatus)">编辑</p>
+              &nbsp;&nbsp;
+              <p class="deletesty" v-if="row.PublishStatus == 0 && tabsPitchon == 0" @click="operationBtn(row.ActivityId, '删除')">删除</p>
+              <p class="editsty" v-if="row.IsShowSigninButton" @click="handleDownLoadImg(row)">下载签到码</p>
+              <p v-if="row.ChartPermissionId === 31 && tabsPitchon == 0" class="editsty" @click="overheadHandler(row.ActivityId, '置顶')">&nbsp;&nbsp;{{ row.TopTime == 0 ? "置顶" : "取消置顶" }}</p>
+            </div>
           </template>
         </el-table-column>
       </el-table>
@@ -349,6 +352,15 @@ export default {
     childrenImgMeetingHandler() {
       this.$refs.imgUpload.clearFiles();
     },
+    // 是否置顶
+    async overheadHandler(id) {
+      const res = await raiInterface.yanxuan_tope_change({
+        ActivityId: id,
+      });
+      if (res.Ret !== 200) return;
+      this.$message.success("操作成功!");
+      this.getsummaryManageList();
+    },
   },
   /* 页面跳转前记录参数 */
   beforeRouteLeave(to, form, next) {
@@ -418,5 +430,12 @@ export default {
   .customWidth {
     width: 550px !important;
   }
+  .operate-box {
+    display: flex;
+    flex-wrap: wrap;
+    p {
+      flex-shrink: 0;
+    }
+  }
 }
 </style>

+ 1 - 1
src/views/rai_manage/activityManage/components/addActivity.vue

@@ -138,7 +138,7 @@
               <div class="is-visible">
                 <el-radio-group v-model="radioVisibleActivity">
                   <el-radio :label="1">仅本组客户可见</el-radio>
-                  <el-radio :label="2">全部客户可见</el-radio>
+                  <el-radio :label="2">所有组客户可见</el-radio>
                 </el-radio-group>
                 <el-checkbox v-model="decisionChecked">仅决策人可见</el-checkbox>
               </div>

+ 3 - 3
src/views/rai_manage/activityManage/components/addComopnents/ResearchDeduct.vue

@@ -6,7 +6,7 @@
         <i class="el-icon-info" />
       </el-tooltip>
     </el-checkbox>
-    <el-checkbox v-if="isResearch && [1,3,5].includes(cactivityType)" v-model="isShowHz"> 同时在弘则活动页展示 </el-checkbox>
+    <el-checkbox v-if="isResearch && [1, 3, 5, 8].includes(cactivityType)" v-model="isShowHz"> 同时在弘则活动页展示 </el-checkbox>
     <el-checkbox v-if="cactivityType == 3" v-model="isExternalLabel"> 外部资源 </el-checkbox>
     <template v-if="cactivityType == 7 || cactivityType == 2">
       <el-checkbox v-model="isYidongConduct">
@@ -87,7 +87,7 @@ export default {
       default: "",
     },
     isResearch: {
-      type:Boolean,
+      type: Boolean,
       default: false,
     },
   },
@@ -114,7 +114,7 @@ export default {
         CancelDeadlineType: "", //截至报名时间
       },
       dataDeadlineSet: [],
-      isShowHz:false
+      isShowHz: false,
     };
   },
   computed: {

+ 13 - 8
src/views/rai_manage/components/addSummary.vue

@@ -80,7 +80,7 @@
           </div>
         </el-form-item>
         <el-form-item class="form-item-bootm">
-          <div style="color:#f00;font-size: 16px;" v-if="isSource !== 'HZ'">*报告发布前,请在核心观点/核心结论下加分割线</div>
+          <div style="color: #f00; font-size: 16px" v-if="isSource !== 'HZ'">*报告发布前,请在核心观点/核心结论下加分割线</div>
           <el-button type="primary" @click="submitForm('预览')">预览</el-button>
           <el-button type="primary" @click="submitForm('保存')">保存</el-button>
           <el-button type="primary" @click="submitForm('发布')" v-if="isShowStatus">发布</el-button>
@@ -136,11 +136,11 @@ import VueFroala from "vue-froala-wysiwyg";
 import Clipboard from "clipboard";
 import chartDialogVue from "../../dataEntry_manage/components/chartDialog.vue";
 import AddIndustryMark from "../components/addIndustryMark.vue";
-import RichTextMixins from"./reportComponents/RichTextMixins"
+import RichTextMixins from "./reportComponents/RichTextMixins";
 export default {
   name: "",
   components: { AddIndustryMark },
-  mixins:[RichTextMixins],
+  mixins: [RichTextMixins],
   data() {
     var that = this;
     return {
@@ -294,9 +294,14 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,
           ChartPermissionId: this.addOfEditForm.industry,
         };
         if (type == "预览") {
-          sessionStorage.setItem("summaryPre", JSON.stringify(params));
-          let { href } = this.$router.resolve({ name: "预览研选报告" });
-          window.open(href, "_blank");
+          if (!this.isShowStatus) {
+            let href = `${process.env.CYGX_WEB}/material/info/${this.$route.query.id}`;
+            window.open(href, "_blank");
+          } else {
+            sessionStorage.setItem("summaryPre", JSON.stringify(params));
+            let { href } = this.$router.resolve({ name: "预览研选报告" });
+            window.open(href, "_blank");
+          }
           return;
         } else {
           const res = this.isSource === "HZ" ? await raiInterface.reportPreserveAndPublish(params) : await raiInterface.preserveAndPublish(params);
@@ -391,10 +396,10 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX`,
     industrySelectFocus(value) {
       if (!value) return;
       if (this.addOfEditForm.industry || this.addOfEditForm.regions) {
-        this.getIndustry()
+        this.getIndustry();
       } else {
         this.industryArr = [];
-        this.$message.error(this.isSource === 'HZ' ? "请先选择行业" :'请先选择报告类型');
+        this.$message.error(this.isSource === "HZ" ? "请先选择行业" : "请先选择报告类型");
       }
     },
     //添加标的的点击事件

+ 24 - 25
src/views/rai_manage/components/report_preview/summaryPre.vue

@@ -14,7 +14,12 @@
         </div>
       </div>
       <div class="report-disclaimer">注:请务必阅读<span @click="showDisclaimer">免责声明</span></div>
-      <div class="report-abstract">摘要:{{ reportInfo.Abstract }}</div>
+      <div class="report-abstract">
+        <div>摘要:</div>
+        <div>
+          {{ reportInfo.Abstract }}
+        </div>
+      </div>
       <div class="report-content-item">
         <div class="report-content" id="report-content" v-html="reportInfo.Body"></div>
       </div>
@@ -71,15 +76,16 @@ export default {
     display: flex;
     align-items: center;
     .report-author-name {
-        margin-right: 30px;
-        margin-bottom: 0px !important;
+      margin-right: 30px;
+      margin-bottom: 0px !important;
     }
   }
   .report-title {
     font-style: normal;
     font-weight: bold;
-    font-size: 18px;
+    font-size: 30px;
     color: #333333;
+    font-weight: 600;
     margin-bottom: 10px;
   }
   .report-author-box {
@@ -101,16 +107,17 @@ export default {
     .report-publishTime {
       font-style: normal;
       font-weight: 400;
-      font-size: 16px;
-      color: #999999;
+      font-size: 12px;
+      color: #b3b3b3;
     }
   }
   .report-disclaimer {
     font-style: normal;
     font-weight: 400;
-    font-size: 16px;
+    font-size: 14px;
     line-height: 22px;
     color: #999999;
+    margin: 15px 0;
     span {
       color: #3385ff;
       cursor: pointer;
@@ -118,27 +125,19 @@ export default {
     }
   }
   .report-abstract {
-    font-style: normal;
-    font-weight: 400;
-    font-size: 16px;
-    color: #666666;
-    padding: 12px 0;
-    text-indent: 14px;
-    word-break: break-all;
-    position: relative;
-    border-bottom: 1px dashed #dcdfe6;
-    &:before {
-      content: "";
-      height: 20px;
-      width: 4px;
-      background-color: #3385ff;
-      position: absolute;
-      left: 0;
-      top: 12px;
+    border-left: 3px solid #001529;
+    padding-left: 12px;
+    :nth-child(1){
+      margin-bottom: 0.6em;
+      font-size: 20px;
+      color: #000;
+      font-style: italic;
     }
   }
   .report-content-item {
-    margin-top: 10px;
+    margin-top: 20px;
+    padding-top: 20px;
+    border-top: 1px solid #f0f0f0;
   }
   .deeperReport {
     width: 128px;

+ 59 - 173
src/views/rai_manage/reportManage/appletsReport.vue

@@ -4,9 +4,7 @@
     <el-card class="top-card-box">
       <div class="top-card">
         <div>
-          <span v-for="item in tabsList" :key="item.index" :class="tabs_index == item.index ? 'tab_active' : ''" @click="tabActive(item)">{{
-            item.name
-          }}</span>
+          <span v-for="item in tabsList" :key="item.index" :class="tabs_index == item.index ? 'tab_active' : ''" @click="tabActive(item)">{{ item.name }}</span>
         </div>
         <div class="input-box">
           <el-input placeholder="请输入报告标题" v-model="listFrom.KeyWord" @input="listFromInput" clearable>
@@ -20,81 +18,27 @@
       <!-- 筛选条件 -->
       <div class="screen-box">
         <div style="flex: 1">
-          <el-select
-            style="margin-bottom: 20px"
-            placeholder="行业"
-            v-model="listFrom.ChartPermissionId"
-            @clear="clearSelect"
-            clearable
-            @change="listChangeBtn"
-          >
-            <el-option
-              v-for="item in chartPermissionList"
-              :label="item.PermissionName"
-              :key="item.ChartPermissionId"
-              :value="item.ChartPermissionId"
-            ></el-option>
+          <el-select style="margin-bottom: 20px" placeholder="行业" v-model="listFrom.ChartPermissionId" @clear="clearSelect" clearable @change="listChangeBtn">
+            <el-option v-for="item in chartPermissionList" :label="item.PermissionName" :key="item.ChartPermissionId" :value="item.ChartPermissionId"></el-option>
           </el-select>
           <el-select placeholder="系列" v-model="listFrom.SubCategoryName" @focus="reportMappingist" clearable @change="listChangeBtn">
             <el-option v-for="(item, index) in themeList" :label="item.SubCategoryName" :key="index" :value="item.SubCategoryName"></el-option>
           </el-select>
-          <el-select
-            placeholder="报告类型"
-            v-model="listFrom.MatchTypeName"
-            v-show="tabs_index == 1"
-            @focus="reportMappingMatchTypeRep"
-            clearable
-            @change="listChangeBtn"
-          >
+          <el-select placeholder="报告类型" v-model="listFrom.MatchTypeName" v-show="tabs_index == 1" @focus="reportMappingMatchTypeRep" clearable @change="listChangeBtn">
             <el-option v-for="(item, index) in MatchTypeNameList" :label="item.MatchTypeName" :key="index" :value="item.MatchTypeName"></el-option>
           </el-select>
-          <el-select
-            placeholder="产业"
-            v-model="listFrom.IndustrialManagementId"
-            v-show="tabs_index == 1"
-            @focus="getIndustrialManagement"
-            clearable
-            @change="listChangeBtn"
-          >
+          <el-select placeholder="产业" v-model="listFrom.IndustrialManagementId" v-show="tabs_index == 1" @focus="getIndustrialManagement" clearable @change="listChangeBtn">
             <template>
-              <el-option
-                v-for="item in idustrialManagement"
-                :label="item.IndustryName"
-                :key="item.IndustrialManagementId"
-                :value="item.IndustrialManagementId"
-              ></el-option>
+              <el-option v-for="item in idustrialManagement" :label="item.IndustryName" :key="item.IndustrialManagementId" :value="item.IndustrialManagementId"></el-option>
             </template>
           </el-select>
-          <el-input
-            v-if="tabs_index == 1"
-            style="width: 230px; margin-right: 15px"
-            placeholder="请输入报告标签"
-            v-model="listFrom.relevance"
-            @input="listFromInput"
-            clearable
-          >
+          <el-input v-if="tabs_index == 1" style="width: 230px; margin-right: 15px" placeholder="请输入报告标签" v-model="listFrom.relevance" @input="listFromInput" clearable>
             <i slot="prefix" class="el-input__icon el-icon-search"></i>
           </el-input>
-          <el-input
-            v-if="tabs_index != 2"
-            style="width: 230px; margin-right: 15px"
-            placeholder="请输入个股标签"
-            v-model="listFrom.reportLabel"
-            @input="listFromInput"
-            clearable
-          >
+          <el-input v-if="tabs_index != 2" style="width: 230px; margin-right: 15px" placeholder="请输入个股标签" v-model="listFrom.reportLabel" @input="listFromInput" clearable>
             <i slot="prefix" class="el-input__icon el-icon-search"></i>
           </el-input>
-          <date-picker
-            style="margin-bottom: 30px"
-            type="date"
-            range
-            v-model="createdate"
-            placeholder="发布时间"
-            value-type="format"
-            @change="listChangeBtn"
-          >
-          </date-picker>
+          <date-picker style="margin-bottom: 30px" type="date" range v-model="createdate" placeholder="发布时间" value-type="format" @change="listChangeBtn"> </date-picker>
         </div>
         <div style="width: 220px">
           <el-button type="primary" style="margin-bottom: 30px" v-if="IsShowButton" @click="$router.push('/appIndustry')">产业管理</el-button>
@@ -118,11 +62,7 @@
             <template slot-scope="scope">
               <div>
                 <span>{{ scope.row.MatchTypeName }}</span>
-                <img
-                  @click="modification(scope.row.ReportId)"
-                  :src="$icons.amend"
-                  style="color: #fff; width: 12px; height: 12px; margin-left: 5px; vertical-align: middle"
-                />
+                <img @click="modification(scope.row.ReportId)" :src="$icons.amend" style="color: #fff; width: 12px; height: 12px; margin-left: 5px; vertical-align: middle" />
               </div>
             </template>
           </el-table-column>
@@ -154,25 +94,14 @@
           <el-table-column align="center" label="操作" min-width="120">
             <template slot-scope="scope">
               <div v-if="scope.row.SubCategoryName == '专项调研'">
-                <span class="editsty" @click="operationBtn(scope.row.ArticleId, '发布')"
-                  >{{ scope.row.PublishStatus == 0 ? "发布" : "取消发布" }} &nbsp;&nbsp;</span
-                >
+                <span class="editsty" @click="operationBtn(scope.row.ArticleId, '发布')">{{ scope.row.PublishStatus == 0 ? "发布" : "取消发布" }} &nbsp;&nbsp;</span>
                 <span class="editsty" @click="addSummary(scope.row.ArticleId)">编辑 &nbsp;&nbsp;</span>
-                <span class="deletesty" v-if="scope.row.PublishStatus == 0" @click="operationBtn(scope.row.ArticleId, '删除')"
-                  >删除 &nbsp;&nbsp;</span
-                >
+                <span class="deletesty" v-if="scope.row.PublishStatus == 0" @click="operationBtn(scope.row.ArticleId, '删除')">删除 &nbsp;&nbsp;</span>
               </div>
               <div v-else>
                 <el-button type="text" v-if="(tabs_index == 0 || tabs_index == 2) && IsShowButton" @click="classifyBtn(scope.row)">归类</el-button>
-                <el-button type="text" v-if="scope.row.ShowButton && tabs_index == 1 && IsShowButton" @click="classifyBtn(scope.row)"
-                  >修改归类</el-button
-                >
-                <el-button
-                  type="text"
-                  v-if="scope.row.ShowButton && (tabs_index == 0 || tabs_index == 1) && IsShowButton"
-                  @click="filtrationBtn(scope.row.ReportId)"
-                  >过滤</el-button
-                >
+                <el-button type="text" v-if="scope.row.ShowButton && tabs_index == 1 && IsShowButton" @click="classifyBtn(scope.row)">修改归类</el-button>
+                <el-button type="text" v-if="scope.row.ShowButton && (tabs_index == 0 || tabs_index == 1) && IsShowButton" @click="filtrationBtn(scope.row.ReportId)">过滤</el-button>
               </div>
             </template>
           </el-table-column>
@@ -199,40 +128,13 @@
       </div>
       <el-form :model="chartPermissionPost" :rules="rules" ref="ruleForm">
         <el-form-item prop="IndustrialManagementId">
-          <el-select
-            clearable
-            placeholder="请选择所属产业"
-            style="width: 100%"
-            filterable
-            @clear="clearSelectChart"
-            @change="chartPermissionPostChange"
-            multiple
-            v-model="chartPermissionPostOptins"
-          >
-            <el-option
-              v-for="item in idustrialManagement"
-              :label="item.IndustryName"
-              :key="item.IndustrialManagementId"
-              :value="item.IndustrialManagementId"
-            ></el-option>
+          <el-select clearable placeholder="请选择所属产业" style="width: 100%" filterable @clear="clearSelectChart" @change="chartPermissionPostChange" multiple v-model="chartPermissionPostOptins">
+            <el-option v-for="item in idustrialManagement" :label="item.IndustryName" :key="item.IndustrialManagementId" :value="item.IndustrialManagementId"></el-option>
           </el-select>
         </el-form-item>
       </el-form>
-      <el-select
-        placeholder="请选择关联标的"
-        v-model="optionS"
-        style="width: 100%; margin-bottom: 40px; margin-top: 30px"
-        @change="optionsChange"
-        @focus="getIndustrialSubject"
-        multiple
-        clearable
-      >
-        <el-option
-          v-for="item in listSubject"
-          :label="item.SubjectName"
-          :key="item.IndustrialSubjectId"
-          :value="item.IndustrialSubjectId"
-        ></el-option>
+      <el-select placeholder="请选择关联标的" v-model="optionS" style="width: 100%; margin-bottom: 40px; margin-top: 30px" @change="optionsChange" @focus="getIndustrialSubject" multiple clearable>
+        <el-option v-for="item in listSubject" :label="item.SubjectName" :key="item.IndustrialSubjectId" :value="item.IndustrialSubjectId"></el-option>
       </el-select>
       <span slot="footer" class="dialog-footer">
         <el-button type="primary" @click="classifyClick">保存</el-button>
@@ -349,21 +251,8 @@ export default {
   created() {},
   mounted() {
     if (sessionStorage.getItem("appletsReportPageBack")) {
-      let {
-        tabsIndex,
-        page,
-        KeyWord,
-        ChartPermissionId,
-        SubCategoryName,
-        MatchTypeName,
-        IndustrialManagementId,
-        relevance,
-        reportLabel,
-        createdate,
-        IsClass,
-        IsFilter,
-        chartPermissionList,
-      } = JSON.parse(sessionStorage.getItem("appletsReportPageBack"));
+      let { tabsIndex, page, KeyWord, ChartPermissionId, SubCategoryName, MatchTypeName, IndustrialManagementId, relevance, reportLabel, createdate, IsClass, IsFilter, chartPermissionList } =
+        JSON.parse(sessionStorage.getItem("appletsReportPageBack"));
       this.tabs_index = tabsIndex;
       this.page_no = page;
       this.createdate = createdate;
@@ -406,16 +295,8 @@ export default {
       return h("div", { attrs: { style: "padding:0;" } }, [
         h("span", column.label),
         h("el-tooltip", { props: { placement: "top" } }, [
-          h(
-            "p",
-            { slot: "content", attrs: { style: "display:block;padding:5px 0;width:420px;" } },
-            "pv:报告被打开的次数,每次打开都计算一次(只统计有权限用户)"
-          ),
-          h(
-            "p",
-            { slot: "content", attrs: { style: "display:block;padding:5px 0;width:420px;" } },
-            "uv:访问报告的人数,每篇报告同一个人访问只计算一次(只统计有权限用户)"
-          ),
+          h("p", { slot: "content", attrs: { style: "display:block;padding:5px 0;width:420px;" } }, "pv:报告被打开的次数,每次打开都计算一次(只统计有权限用户)"),
+          h("p", { slot: "content", attrs: { style: "display:block;padding:5px 0;width:420px;" } }, "uv:访问报告的人数,每篇报告同一个人访问只计算一次(只统计有权限用户)"),
           h("el-button", { props: { icon: "el-icon-info" }, attrs: { style: "border:none;background:none;pading:2px" } }, ""),
         ]),
       ]);
@@ -558,31 +439,27 @@ export default {
     //获取产业
     getIndustrialManagement() {
       if (this.listFrom.ChartPermissionId == "") return;
-      raiInterface
-        .getIndustrialManagement({ ChartPermissionId: this.listFrom.ChartPermissionId - 0 || this.chartPermissionPost.ChartPermissionId - 0 })
-        .then((res) => {
-          if (res.Ret !== 200) return;
-          if (res.Data.List) {
-            this.idustrialManagement = res.Data.List;
-          } else {
-            this.idustrialManagement = [];
-          }
-        });
+      raiInterface.getIndustrialManagement({ ChartPermissionId: this.listFrom.ChartPermissionId - 0 || this.chartPermissionPost.ChartPermissionId - 0 }).then((res) => {
+        if (res.Ret !== 200) return;
+        if (res.Data.List) {
+          this.idustrialManagement = res.Data.List;
+        } else {
+          this.idustrialManagement = [];
+        }
+      });
     },
     //弹窗获取产业
     getIndustrialManagementDalg() {
       this.listSubject = [];
       this.optionS = [];
-      raiInterface
-        .getIndustrialManagement({ ChartPermissionId: this.listFrom.ChartPermissionId - 0 || this.chartPermissionPost.ChartPermissionId - 0 })
-        .then((res) => {
-          if (res.Ret !== 200) return;
-          if (res.Data.List) {
-            this.idustrialManagement = res.Data.List;
-          } else {
-            this.idustrialManagement = [];
-          }
-        });
+      raiInterface.getIndustrialManagement({ ChartPermissionId: this.listFrom.ChartPermissionId - 0 || this.chartPermissionPost.ChartPermissionId - 0 }).then((res) => {
+        if (res.Ret !== 200) return;
+        if (res.Data.List) {
+          this.idustrialManagement = res.Data.List;
+        } else {
+          this.idustrialManagement = [];
+        }
+      });
     },
     //弹窗获取标的
     getIndustrialSubject() {
@@ -602,13 +479,15 @@ export default {
     },
     //报告类型
     reportMappingMatchTypeRep() {
-      if(!this.listFrom.ChartPermissionId) return this.$message.error('请先选择行业')
-      raiInterface.reportMappingMatchTypeRep({
-         ChartPermissionId: this.listFrom.ChartPermissionId,
-      }).then((res) => {
-        if (res.Ret !== 200) return;
-        this.MatchTypeNameList = res.Data.List;
-      });
+      if (!this.listFrom.ChartPermissionId) return this.$message.error("请先选择行业");
+      raiInterface
+        .reportMappingMatchTypeRep({
+          ChartPermissionId: this.listFrom.ChartPermissionId,
+        })
+        .then((res) => {
+          if (res.Ret !== 200) return;
+          this.MatchTypeNameList = res.Data.List;
+        });
     },
     //报告归类确定事件
     classifyClick() {
@@ -668,11 +547,18 @@ export default {
       this.status = "";
     },
     //文章详情
-    lookDetail(item) {
-      // let href = `https://vmp.hzinsights.com/v2/articles/${item.ArticleId}`;
-      // window.open(href, "_blank");
-      let href = `${process.env.CYGX_WEB}/material/info/${item.ArticleId}`
-      window.open(href, "_blank");
+    async lookDetail(item) {
+      if (item.PublishStatus === 1) {
+        let href = `${process.env.CYGX_WEB}/material/info/${item.ArticleId}`;
+        window.open(href, "_blank");
+      } else {
+        const res = await raiInterface.reportArticleDetail({ ArticleId: item.ArticleId });
+        if (res.Ret === 200) {
+          sessionStorage.setItem("summaryPre", JSON.stringify(res.Data));
+          let { href } = this.$router.resolve({ name: "预览研选报告" });
+          window.open(href, "_blank");
+        }
+      }
     },
     //筛选行业的清除事件
     clearSelect() {

+ 168 - 127
src/views/rai_manage/reportManage/morningMeetingManage.vue

@@ -1,44 +1,69 @@
 <template>
-<!-- 晨会精华管理 -->
+  <!-- 晨会精华管理 -->
   <div class="moring-meeting-wrap">
     <div class="add-btn">
-        <el-button type="primary" @click="handleTableClick({},'add')">添加报告</el-button>
-      </div>
+      <el-button type="primary" @click="handleTableClick({}, 'add')">添加报告</el-button>
+    </div>
     <div class="meeting-wrap">
       <div class="select-box">
         <div class="select">
           <el-select placeholder="请选择发布状态" v-model="searchPublish" clearable @change="changeSelect">
-            <el-option v-for="item in [{label:'已发布',value:1},{label:'未发布',value:0}]" :label="item.label" :key="item.value" :value="item.value"/>
+            <el-option
+              v-for="item in [
+                { label: '已发布', value: 1 },
+                { label: '未发布', value: 0 },
+              ]"
+              :label="item.label"
+              :key="item.value"
+              :value="item.value"
+            />
           </el-select>
           <!-- <date-picker  type="date" range placeholder="晨会时间" v-model="searchDate" value-type="format"/> -->
-          <el-date-picker v-model="searchDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeSelect"
-            class="date-pick" placeholder="晨会时间">
-      </el-date-picker>
+          <el-date-picker v-model="searchDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeSelect" class="date-pick" placeholder="晨会时间"> </el-date-picker>
         </div>
-        
-        <el-input  placeholder="请输入产业标签" clearable v-model="searchLabel" @input="changeSelect">
+
+        <el-input placeholder="请输入产业标签" clearable v-model="searchLabel" @input="changeSelect">
           <i slot="prefix" class="el-input__icon el-icon-search"></i>
         </el-input>
       </div>
-      
+
       <div class="table-wrap">
         <el-table :data="tableData" border>
-          <el-table-column v-for="item in tableColumn" :key="item.key"
-            :prop="item.key" :label="item.label" align="center" :min-width="item.minWidth">
-            <template slot-scope="{row}">
-              <!-- <span v-if="['modifyTime','publishTime'].includes(item.key)&&row[item.key]">{{$moment(row[item.key]).format('YYYY.MM.DD HH:MM:ss')}}</span> -->
-              <span v-if="item.key==='meetingTime'&&row[item.key]">{{$moment(row[item.key]).format('YYYY.MM.DD')}}</span>
-              <span v-else-if="item.key==='status'">{{row[item.key]===1?'已发布':'未发布'}}</span>
-              <span v-else>{{ row[item.key]||'-' }}</span>
+          <el-table-column v-for="item in tableColumn" :key="item.key" :prop="item.key" :label="item.label" align="center" :min-width="item.minWidth">
+            <template slot-scope="{ row }">
+              <span v-if="item.key === 'meetingTime' && row[item.key]">{{ $moment(row[item.key]).format("YYYY.MM.DD") }}</span>
+              <span v-else-if="item.key === 'status'">{{ row[item.key] === 1 ? "已发布" : "未发布" }}</span>
+              <span v-else>{{ row[item.key] || "-" }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column width="150" label="PV / UV" align="center" key="pvUv" :render-header="renderHeader">
+            <template slot="header" slot-scope="scope">
+              <div class="todolabel" style="width: 100%; display: flex; justify-content: center; align-items: center">
+                <span>PV / UV</span>
+                <el-tooltip style="margin-left: 10px" effect="dark" placement="top-start">
+                  <template slot="content">
+                    <p>pv:报告被打开的次数,每次打开都计算一次(只统计有权限用户)</p>
+                    <p>uv:访问报告的人数,每篇报告同一个人访问只计算一次(只统计有权限用户)</p>
+                  </template>
+                  <i class="el-icon-info" />
+                </el-tooltip>
+              </div>
+            </template>
+            <template slot-scope="{ row }">
+              <div class="pv-uv-download">
+                <span>{{ row.Pv }}/{{ row.Uv }}</span>
+                <a :href="`${exportPvUv(row)}`" download>
+                  <img src="~@/assets/img/rai_m/pvuv_download.png" alt="" />
+                </a>
+              </div>
             </template>
           </el-table-column>
           <el-table-column label="操作" align="center" min-width="160">
-            <template slot-scope="{row}">
-              <div style="color:#4099ef; font-size:24px;">
-                <span class="editsty" @click="handleTableClick(row,'publish')">{{row.status===1?'取消发布':'发布'}}</span>
-                <span class="editsty" @click="handleTableClick(row,'edit')">编辑</span>
-                <span class="deletesty" style="cursor: pointer; color: #d1433a" v-if="row.status===0"
-                    @click="handleTableClick(row,'delete')">删除</span>
+            <template slot-scope="{ row }">
+              <div style="color: #4099ef; font-size: 24px">
+                <span class="editsty" @click="handleTableClick(row, 'publish')">{{ row.status === 1 ? "取消发布" : "发布" }}</span>
+                <span class="editsty" @click="handleTableClick(row, 'edit')">编辑</span>
+                <span class="deletesty" style="cursor: pointer; color: #d1433a" v-if="row.status === 0" @click="handleTableClick(row, 'delete')">删除</span>
               </div>
             </template>
           </el-table-column>
@@ -51,10 +76,9 @@
           :page-size="pageSize"
           :total="total"
           style="text-align: end; margin-top: 20px"
-          />
+        />
       </div>
     </div>
-   
   </div>
 </template>
 
@@ -63,159 +87,176 @@ import { raiInterface } from "@/api/api.js";
 export default {
   data() {
     return {
-      tableColumn:[{
-        key:'meetingTime',
-        label:'晨会日期'
-      },{
-        key:'partNums',
-        label:'段落数'
-      },{
-        key:'industryName',
-        label:'相关产业',
-        minWidth:160
-      },{
-        key:'publishTime',
-        label:'发布时间'
-      },{
-        key:'modifyTime',
-        label:'更新时间'
-      },{
-        key:'status',
-        label:'发布状态'
-      }],
-      tableData:[],
+      tableColumn: [
+        {
+          key: "meetingTime",
+          label: "晨会日期",
+        },
+        {
+          key: "partNums",
+          label: "段落数",
+        },
+        {
+          key: "industryName",
+          label: "相关产业",
+          minWidth: 160,
+        },
+        {
+          key: "publishTime",
+          label: "发布时间",
+        },
+        {
+          key: "modifyTime",
+          label: "更新时间",
+        },
+        {
+          key: "status",
+          label: "发布状态",
+        },
+      ],
+      tableData: [],
       //分页相关
-      page_no:1,
-      pageSize:10,
-      total:11,
+      page_no: 1,
+      pageSize: 10,
+      total: 11,
       //搜索相关
-      searchPublish:'',
-      searchDate:'',
-      searchLabel:''
+      searchPublish: "",
+      searchDate: "",
+      searchLabel: "",
     };
   },
-  watch:{
-
-  },
+  watch: {},
   methods: {
-    handleTableClick(data,type){
-      if(type==='delete'){
-        this.$confirm(
-        '确定要删除这篇报告吗?',
-        '提示',
-        {
-            confirmButtonText: '确定',
-            cancelButtonText: '取消',
-            type: 'warning',
-        }
-      ).then(()=>{
-        this.deleteMeeting(data.Id)
-      })
-        
+    handleTableClick(data, type) {
+      if (type === "delete") {
+        this.$confirm("确定要删除这篇报告吗?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        }).then(() => {
+          this.deleteMeeting(data.Id);
+        });
       }
-      if(type==='add'){
-        this.$router.push('/addMorningMeeting')
+      if (type === "add") {
+        this.$router.push("/addMorningMeeting");
       }
-      if(type==='edit'){
+      if (type === "edit") {
         this.$router.push({
-        path: "/editMorningMeeting",
-        query: { id: data.Id },
-      });}
-       if(type==='publish'){
-        this.publishMeeting(data)
+          path: "/editMorningMeeting",
+          query: { id: data.Id },
+        });
+      }
+      if (type === "publish") {
+        this.publishMeeting(data);
       }
     },
-    handleCurrentChange(current){
+    handleCurrentChange(current) {
       this.page_no = current;
       this.getListData();
     },
-    async getListData(){
+    async getListData() {
       const res = await raiInterface.getMorningMeetingList({
-        PageSize:this.pageSize,
-        CurrentIndex:this.page_no,
-        KeyWord:this.searchLabel,
-        MeetingTime:this.searchDate,
-        Status:this.searchPublish
-      })
-      if(res.Ret!==200) return 
-      const {CurrentIndex,Totals} = res.Data.Paging
-      this.tableData = res.Data.List||[]
-      this.page_no = CurrentIndex
-      this.total = Totals
+        PageSize: this.pageSize,
+        CurrentIndex: this.page_no,
+        KeyWord: this.searchLabel,
+        MeetingTime: this.searchDate,
+        Status: this.searchPublish,
+      });
+      if (res.Ret !== 200) return;
+      const { CurrentIndex, Totals } = res.Data.Paging;
+      this.tableData = res.Data.List || [];
+      this.page_no = CurrentIndex;
+      this.total = Totals;
     },
     //删除晨会
-    async deleteMeeting(id){
-      const res  = await raiInterface.deleteListMeeting({ReviewId:id})
-      if(res.Ret!==200) return 
-      this.$message.success("删除成功") 
+    async deleteMeeting(id) {
+      const res = await raiInterface.deleteListMeeting({ ReviewId: id });
+      if (res.Ret !== 200) return;
+      this.$message.success("删除成功");
       let page_num = Math.ceil((this.total - 1) / this.pageSize);
       if (this.page_no > page_num) {
-         this.page_no = page_num;
+        this.page_no = page_num;
       }
-      this.getListData()
+      this.getListData();
     },
     //发布/取消发布晨会
-    async publishMeeting(data){
-      let res = null
-      if(data.status===1){
-        res = await raiInterface.cancelPublish({ReviewId:data.Id})
-      }else{
-        res = await raiInterface.publishListMeeting({ReviewIds:data.Id+''})
+    async publishMeeting(data) {
+      let res = null;
+      if (data.status === 1) {
+        res = await raiInterface.cancelPublish({ ReviewId: data.Id });
+      } else {
+        res = await raiInterface.publishListMeeting({ ReviewIds: data.Id + "" });
       }
-      if(res.Ret!==200) return
-      this.$message.success(`${data.status===0?'':'取消'}发布成功`)
-      this.searchPublish = ''
-      this.searchDate=''
-      this.searchLabel=''
-      this.getListData()
+      if (res.Ret !== 200) return;
+      this.$message.success(`${data.status === 0 ? "" : "取消"}发布成功`);
+      this.searchPublish = "";
+      this.searchDate = "";
+      this.searchLabel = "";
+      this.getListData();
     },
     //筛选条件更改
-    changeSelect(){
-      this.page_no=1
-      this.getListData()
-    }
+    changeSelect() {
+      this.page_no = 1;
+      this.getListData();
+    },
+    exportPvUv(row) {
+      return process.env.API_ROOT + "/cygx/morningMeeting/list_pv?MeetingId=" + row.Id + "&" + localStorage.getItem("auth") + `&IsExport=${true}`;
+    },
+  },
+  computed: {},
+  mounted() {
+    this.getListData();
   },
-  mounted(){
-    this.getListData()
-  }
 };
 </script>
 
 <style scoped lang="scss">
-.moring-meeting-wrap{
-  .add-btn,.meeting-wrap{
+.moring-meeting-wrap {
+  .add-btn,
+  .meeting-wrap {
     background-color: #fff;
     box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
     border-radius: 4px;
     padding: 20px 30px;
     box-sizing: border-box;
   }
-  .add-btn{
+  .add-btn {
     text-align: right;
-    height:80px;
+    height: 80px;
     margin-bottom: 20px;
   }
-  .meeting-wrap{
+  .meeting-wrap {
     min-height: calc(100vh - 220px);
-    .select-box{
+    .select-box {
       display: flex;
       margin-bottom: 20px;
       justify-content: space-between;
-      .el-select,.date-pick{
-        width:210px !important;
+      .el-select,
+      .date-pick {
+        width: 210px !important;
         margin-right: 20px;
       }
-      .el-input{
+      .el-input {
         width: 420px !important;
         margin-right: 0;
       }
-      .date-pick{
-        &.el-input{
-          width:210px !important;
+      .date-pick {
+        &.el-input {
+          width: 210px !important;
           margin-right: 20px;
         }
       }
     }
   }
+  .pv-uv-download {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    img {
+      width: 14px;
+      height: 14px;
+      margin-left: 10px;
+    }
+  }
 }
 </style>

+ 13 - 10
src/views/rai_manage/reportManage/summaryManage.vue

@@ -30,7 +30,7 @@
       <el-table :data="dataList" style="width: 100%" border>
         <el-table-column key="title" align="center" label="报告标题" min-width="300">
           <template slot-scope="scope">
-            <span class="editsty" style="color: #409eff" @click="lookDetail(scope.row.ArticleId)">{{ scope.row.Title }}</span>
+            <span class="editsty" style="color: #409eff" @click="lookDetail(scope.row)">{{ scope.row.Title }}</span>
           </template>
         </el-table-column>
         <el-table-column key="category" prop="ArticleTypeName" align="center" label="报告类型" min-width="95"></el-table-column>
@@ -251,15 +251,18 @@ export default {
       });
     },
     //文章详情
-    lookDetail(id) {
-      // let url =
-      //   process.env.NODE_ENV === "production"
-      //     ? "https://details.hzinsights.com/cygx/report"
-      //     : process.env.NODE_ENV === "test"
-      //     ? "http://xcxh5test.hzinsights.com/xcx_h5/cygx/report"
-      //     : "http://xcxh5test.hzinsights.com/xcx_h5/cygx/report";
-      let href = `${process.env.CYGX_WEB}/material/info/${id}`
-      window.open(href, "_blank");
+    async lookDetail(item) {
+      if (item.PublishStatus === 1) {
+        let href = `${process.env.CYGX_WEB}/material/info/${item.ArticleId}`;
+        window.open(href, "_blank");
+      } else {
+        const res = await raiInterface.getsummaryManagedetail({ ArticleId: item.ArticleId });
+        if (res.Ret === 200) {
+          sessionStorage.setItem("summaryPre", JSON.stringify(res.Data));
+          let { href } = this.$router.resolve({ name: "预览研选报告" });
+          window.open(href, "_blank");
+        }
+      }
     },
     //列表
     getsummaryManageList() {

+ 4 - 4
src/views/rai_manage/reportManage/yanXuanSpecial.vue

@@ -11,8 +11,9 @@
             <img :src="item.HeadImg" alt="" />
           </div>
           <div class="info-content">
-            <p class="info-name">{{ item.RealName }} - {{ item.Mobile }}</p>
+            <p class="info-name">{{ item.SpecialName }}</p>
             <p>昵称:{{ item.NickName }}</p>
+            <p>{{ item.RealName }}-{{ item.Mobile }}</p>
             <p>{{ item.CompanyName }}</p>
           </div>
           <div class="switch-box">
@@ -221,7 +222,6 @@ div {
       overflow-y: auto;
       .author-li {
         flex: 1;
-        height: 116px;
         padding: 20px;
         display: flex;
         justify-content: space-between;
@@ -238,8 +238,8 @@ div {
     flex: 1;
     padding-left: 16px;
     color: #999999;
-    p:nth-child(2) {
-      margin: 8px 0;
+    p {
+      margin: 5px 0;
     }
   }
   .avatar {