Karsa 10 сар өмнө
parent
commit
00064fee61

+ 9 - 1
src/lang/commonLang.js

@@ -397,7 +397,15 @@ export default {
     sim_hei:{
       en:'SimHei',
       zh:'黑体'
-    }
+    },
+    yes_text: {
+      en: 'Yes',
+      zh: '是'
+    },
+    no_text: {
+      en: 'No',
+      zh: '否'
+    },
   },
   Edb,
   Chart,

+ 64 - 0
src/lang/modules/ReportManagement/ReportList.js

@@ -34,6 +34,7 @@ export const ReportListEn = {
   no_reports_msg: "There are currently no reports for this category",
   chart_insertion_progress: "Batch chart insertion in progress",
   last_save_time: "Last save time",
+  click_clear_btn: "Clear Content",
   click_refresh_btn: "Rfrsh",
   preview_btn: "Preview",
   save_draft_btn: "Draft",
@@ -103,6 +104,7 @@ export const ReportListEn = {
   recorded_audio: "The recording has been uploaded.",
   not_recorded_audio: "The recording has not been uploaded.",
   weChat_share: "WeChat share",
+  copy_share_link:'Copy Link',
   set_tags_title: "Set tags",
   select_ipt_pld: "Enter or select",
   input_email_subject: "Please input email subject",
@@ -118,6 +120,36 @@ export const ReportListEn = {
   upload_img_error_msg: "Some images have not finished uploading, please wait.",
   all_update_publish_msg: "This report's varieties have all been updated. Clicking 'Publish' will also release the weekly report. Are you sure you want to publish both simultaneously?",
   is_publish_report_msg: "You have not uploaded an audio recording file yet. Are you sure you want to publish the report?",
+
+
+
+  tab_public:'Public Research Report',
+  tab_share:'Shared Research Report',
+  tab_mine:'My Research Report',
+  /* 添加报告弹窗 */
+  label_add_way:'Addition Method',
+  label_report_tit:'Report Title',
+  choose_inherit_report: 'Select Inherited Report',
+  label_report_classify:'Report Category',
+  label_relation_variety: 'Associated Varieties',
+  label_report_abstract:'Report Summary',
+  label_report_author:'Report Author',
+  label_frequency:'Frequency',
+  label_createtime:'CreateTime',
+  label_coop:'Collaboration Method',
+  choose_cooper:'Select Collaborators',
+  coop_own: 'Individual',
+  coop_more: 'Collaborative (Multiple People)',
+  label_report_layout:'Report Layout',
+  layout_default:'Standard Layout',
+  layout_smart:'Intelligent Layout',
+  label_public:'Public Release',
+
+  tit_report_chap:'Research Report Section',
+  btn_add_chap: 'Add Section',
+  /* 添加章节弹窗 */
+  label_chap_name:'Section Name',
+  label_chap_editor:'Editor',
 };
 
 /* 中文 */
@@ -152,6 +184,7 @@ export const ReportListZh = {
   no_reports_msg: "此分类暂无报告",
   chart_insertion_progress: "图表批量插入中...",
   last_save_time: "最近保存时间",
+  click_clear_btn: "一键清空内容",
   click_refresh_btn: "一键刷新",
   preview_btn: "预览",
   save_draft_btn: "存草稿",
@@ -222,6 +255,7 @@ export const ReportListZh = {
   recorded_audio: "已传录音",
   not_recorded_audio: "未传录音",
   weChat_share: "微信分享",
+  copy_share_link:'复制链接',
   set_tags_title: "设置标签",
   select_ipt_pld: "输入或者选择",
   input_email_subject: "请输入邮件主题",
@@ -236,4 +270,34 @@ export const ReportListZh = {
   upload_img_error_msg: "有图片未上传完成,请稍等",
   all_update_publish_msg: "本期报告品种已全部更新,点击发布将同时发布周报,确认同时发布吗?",
   is_publish_report_msg: "您还未上传录音文件,确定发布报告吗?",
+
+
+
+  tab_public:'公共研报',
+  tab_share:'共享研报',
+  tab_mine:'我的研报',
+  /* 添加报告弹窗 */
+  label_add_way:'新增方式',
+  label_report_tit:'报告标题',
+  choose_inherit_report: '选择继承报告',
+  label_report_classify:'报告分类',
+  label_relation_variety: '关联品种',
+  label_report_abstract:'报告摘要',
+  label_report_author:'报告作者',
+  label_frequency:'频度',
+  label_createtime:'创建时间',
+  label_coop:'协作方式',
+  choose_cooper:'选择协作人',
+  coop_own: '个人',
+  coop_more: '多人协作',
+  label_report_layout:'报告布局',
+  layout_default:'常规布局',
+  layout_smart:'智能布局',
+  label_public:'公开发布',
+
+  tit_report_chap:'研报章节',
+  btn_add_chap: '添加章节',
+  /* 添加章节弹窗 */
+  label_chap_name:'章节名称',
+  label_chap_editor:'编辑人',
 };

+ 2 - 2
src/views/approve_manage/components/flowNode/approveNode.vue

@@ -57,14 +57,14 @@
                     <div class="block" style="margin-top:30px;">
                         <p>{{$t('SystemManage.ReportApprove.mutl_person')}}</p>
                         <el-radio-group v-model="approveType">
-                            <el-radio :label="1">
+                            <!-- <el-radio :label="1">
                                 {{$t('SystemManage.ReportApprove.approval_type01')}}
                                 <el-tooltip effect="dark" placement="top" :content="$t('SystemManage.ReportApprove.des01')" >
                                     <span class="hint-text">
                                         <i class="el-icon-info"></i>
                                     </span>
                                 </el-tooltip>
-                            </el-radio>
+                            </el-radio> -->
                             <el-radio :label="2">
                                 {{$t('SystemManage.ReportApprove.approval_type02')}}
                                 <el-tooltip effect="dark" placement="top" :content="$t('SystemManage.ReportApprove.des02')" >

+ 72 - 0
src/views/classify_manage/classifylistV2.vue

@@ -135,6 +135,59 @@
                 >{{ $t('Dialog.confirm_save_btn') }}</el-button>
             </div>
         </m-dialog>
+
+        <!-- 转移报告弹窗 -->
+        <m-dialog
+            title="分类报告转移"
+            :show.sync="isTransferReport"
+            width="650px"
+        >
+
+            <div>
+                <el-form
+                    :model="transferForm"
+                    hide-required-asterisk
+                    label-width="auto"
+                >
+                    <el-form-item prop="classify_name" label="原分类">
+                        <el-cascader
+                          v-model="transferForm.oldClassify"
+                          @change="filterChange"
+                          :options="classifyparentArr"
+                          clearable
+                          placeholder="请选择分类"
+                          style="width:100%;"
+                      ></el-cascader>
+                    </el-form-item>
+                    <!-- 上级分类 -->
+                    <el-form-item prop="parent_id" label="转移至分类">
+
+                        <el-cascader
+                          v-model="transferForm.newClassify"
+                          @change="filterChange"
+                          :options="classifyparentArr"
+                          clearable
+                          placeholder="请选择分类"
+                          style="width:100%;"
+                      ></el-cascader>
+                    </el-form-item>
+                    
+                </el-form>
+            </div>
+
+            <div slot="footer" style="margin-top: 20px;">
+                <el-button
+                @click="isTransferReport=false"
+                style="width: 132px; height: 40px"
+                >{{ $t('Dialog.cancel_btn') }}</el-button>
+                <el-button
+                @click="handleSaveTransferReport"
+                type="primary"
+                style="width: 132px; height: 40px"
+                >{{ $t('Dialog.confirm_save_btn') }}</el-button>
+            </div>
+
+        </m-dialog>
     </div>
 </template>
 
@@ -164,6 +217,11 @@ export default {
             classifyparentArr:[],
 
             reportVarietyList:[],//中文品种列表
+
+            /* 转移报告弹窗 */
+            isTransferReport: false,
+            transferForm: {}
+
         }
     },
     mounted(){
@@ -171,6 +229,20 @@ export default {
         this.getReportVarietyList()
     },
     methods: {
+        /* 报告转移 */
+        transferReport() {
+            this.isTransferReport = true;
+            this.transferForm = {
+                oldClassify: '',
+                newClassify: ''
+            }
+        },
+        
+        handleSaveTransferReport() {
+            
+        },
+
+
         async getList(type){
             const res=await classifylist({
                 KeyWord:this.searchVal,

+ 15 - 15
src/views/report_manage/reportV2/components/chapterEditWrapper.vue

@@ -5,24 +5,24 @@
 
       <ul class="handle-list">
         <li>
-          <el-button type="text">基础信息</el-button>
+          <el-button type="text"><!-- 基础信息 -->{{$t('ReportManage.ReportList.information_title')}}</el-button>
         </li>
         <li>
-          <el-button type="text">预览</el-button>
+          <el-button type="text"><!-- 预览 -->{{$t('ReportManage.ReportList.preview_btn')}}</el-button>
         </li>
         <li>
-          <el-button type="text">存草稿</el-button>
+          <el-button type="text"><!-- 存草稿 -->{{$t('ReportManage.ReportList.save_draft_btn')}}</el-button>
         </li>
         <li>
-          <el-button type="text">提交</el-button>
+          <el-button type="text"><!-- 提交 -->{{$t('ReportManage.ReportList.submission_btn')}}</el-button>
         </li>
       </ul>
     </div>
 
     <div class="box-main">
       <div class="main-top">
-        <h3>研报章节</h3>
-        <el-button type="primary" size="small" @click="openAddChapter">添加章节</el-button>
+        <h3><!-- 研报章节 -->{{$t('ReportManage.ReportList.tit_report_chap')}}</h3>
+        <el-button type="primary" size="small" @click="openAddChapter"><!-- 添加章节 -->{{$t('ReportManage.ReportList.btn_add_chap')}}</el-button>
       </div>
       
       <ul class="chapter-list">
@@ -36,7 +36,7 @@
           <li v-for="(item,index) in chapterList" :key="index">
             <div class="card-top">
               <span>{{item.title}}</span>
-              <span class="editsty">编辑</span>
+              <span class="editsty"><!-- 编辑 -->{{$t('Table.edit_btn')}}</span>
             </div>
             
             <div class="card-bottom">
@@ -53,11 +53,11 @@
                     <i class="el-icon-more"></i>
                   </span>
                   <el-dropdown-menu slot="dropdown">
-                    <el-dropdown-item :command="{type:'beseInfo',item}">基础信息</el-dropdown-item>
-                    <el-dropdown-item :command="{type:'del',item}">删除</el-dropdown-item>
-                    <el-dropdown-item :command="{type:'adTag',item}">添加标签</el-dropdown-item>
-                    <el-dropdown-item :command="{type:'upAudio',item}">上传录音</el-dropdown-item>
-                    <el-dropdown-item :command="{type:'wxShare',item}">微信分享</el-dropdown-item>
+                    <el-dropdown-item :command="{type:'beseInfo',item}"><!-- 基础信息 -->{{$t('ReportManage.ReportList.information_title')}}</el-dropdown-item>
+                    <el-dropdown-item :command="{type:'del',item}"><!-- 删除 -->{{$t('Table.delete_btn')}}</el-dropdown-item>
+                    <el-dropdown-item :command="{type:'adTag',item}"><!-- 添加标签 -->{{$t('ReportManage.ReportList.add_labels_section')}}</el-dropdown-item>
+                    <el-dropdown-item :command="{type:'upAudio',item}"><!-- 上传录音 -->{{$t('ReportManage.ReportList.up_recording_lable')}}</el-dropdown-item>
+                    <el-dropdown-item :command="{type:'wxShare',item}"><!-- 微信分享 -->{{$t('ReportManage.ReportList.weChat_share')}}</el-dropdown-item>
                   </el-dropdown-menu>
                 </el-dropdown>
               </div>
@@ -83,7 +83,7 @@
           hide-required-asterisk
           label-width="120px"
         >
-          <el-form-item prop="chapterName" label="章节名称">
+          <el-form-item prop="chapterName" :label="$t('ReportManage.ReportList.label_chap_name')">
               <el-input
                 type="text" 
                 v-model="chapterInfo.chapterName"
@@ -91,7 +91,7 @@
                 placeholder="请输入章节名称"
               />
           </el-form-item>
-          <el-form-item prop="editors" label="关联品种">
+          <el-form-item prop="editors">
               <template slot="label">
                   <el-tooltip class="item" effect="dark" :content="$t('ReportManage.CategoryList.related_variety_hint')">
                       <div>
@@ -118,7 +118,7 @@
                   clearable
               ></el-cascader>
           </el-form-item>
-          <el-form-item prop="editors" label="编辑人">
+          <el-form-item prop="editors" :label="$t('ReportManage.ReportList.label_chap_editor')">
             <el-cascader
               v-model="chapterInfo.editors"
               :options="userOpts"

+ 20 - 20
src/views/report_manage/reportV2/components/reportBaseInfoDia.vue

@@ -15,9 +15,9 @@
       :rules="rules"
       ref="baseinfoForm"
       class="baseinfo-form-wrap"
-      label-width="120px"
+      label-width="125px"
     >
-      <el-form-item prop="type" label="新增方式">
+      <el-form-item prop="type" :label="$t('ReportManage.ReportList.label_add_way')">
         <el-radio-group
           v-model="formData.type"
           :disabled="id"
@@ -32,17 +32,17 @@
         </el-radio-group>
       </el-form-item>
 
-      <el-form-item prop="title" label="报告标题">
+      <el-form-item prop="title" :label="$t('ReportManage.ReportList.label_report_tit')">
         <el-input
           :placeholder="$t('ReportManage.ReportList.input_title_please')"
           v-model="formData.title"
           style="width: 350px"
         ></el-input>
         
-        <el-button type="text" v-if="formData.type===2">选择继承报告</el-button>
+        <el-button type="text" v-if="formData.type===2"><!-- 选择继承报告 -->{{$t('ReportManage.ReportList.choose_inherit_report')}}</el-button>
       </el-form-item>
 
-      <el-form-item prop="classify" label="报告分类">
+      <el-form-item prop="classify" :label="$t('ReportManage.ReportList.label_report_classify')">
         <el-cascader
           ref="cascader"
           :options="classifyArr"
@@ -54,13 +54,13 @@
         />
       </el-form-item>
 
-      <el-form-item prop="relationVariety" label="关联品种" v-if="formData.relationVariety.length">
+      <el-form-item prop="relationVariety" :label="$t('ReportManage.ReportList.label_relation_variety')" v-if="formData.relationVariety.length">
         <div>
           <el-tag v-for="item in formData.relationVariety" :key="item"></el-tag>
         </div>
       </el-form-item>
       
-      <el-form-item prop="abstract" label="报告摘要">
+      <el-form-item prop="abstract" :label="$t('ReportManage.ReportList.label_report_abstract')">
         <el-input
           type="textarea"
           :placeholder="$t('ReportManage.ReportList.please_input_abstract')"
@@ -69,7 +69,7 @@
         ></el-input>
       </el-form-item>
 
-      <el-form-item prop="author" label="报告作者">
+      <el-form-item prop="author" :label="$t('ReportManage.ReportList.label_report_author')">
         <el-select
           v-model="formData.author"
           multiple
@@ -86,7 +86,7 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item prop="frequency" label="频度">
+      <el-form-item prop="frequency" :label="$t('ReportManage.ReportList.label_frequency')">
         <el-select
           v-model="formData.frequency"
           :placeholder="$t('ReportManage.ReportList.please_select_frequency')"
@@ -102,7 +102,7 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item prop="time" label="创建时间">
+      <el-form-item prop="time" :label="$t('ReportManage.ReportList.label_createtime')">
         <el-date-picker
           v-model="formData.time"
           type="date"
@@ -114,35 +114,35 @@
         ></el-date-picker>
       </el-form-item>
 
-      <el-form-item prop="cooperationType" label="协作方式">
+      <el-form-item prop="cooperationType" :label="$t('ReportManage.ReportList.label_coop')">
         <el-radio-group
           v-model="formData.cooperationType"
           :disabled="id"
           @change="handleUpdateBaseInfo"
         >
-          <el-radio :label="1">个人</el-radio>
-          <el-radio :label="2">多人协作</el-radio>
+          <el-radio :label="1"><!-- 个人 -->{{$t('ReportManage.ReportList.coop_own')}}</el-radio>
+          <el-radio :label="2"><!-- 多人协作 -->{{$t('ReportManage.ReportList.coop_more')}}</el-radio>
         </el-radio-group>
 
         <el-button 
           type="text" 
           v-if="formData.cooperationType===2"
           style="margin-left: 20px"
-        >选择协作人</el-button>
+        ><!-- 选择协作人 -->{{$t('ReportManage.ReportList.choose_cooper')}}</el-button>
       </el-form-item>
-      <el-form-item prop="reportLayout" label="报告布局">
+      <el-form-item prop="reportLayout" :label="$t('ReportManage.ReportList.label_report_layout')">
         <el-radio-group
           v-model="formData.reportLayout"
           :disabled="id"
           @change="handleUpdateBaseInfo"
         >
-          <el-radio :label="1">常规布局</el-radio>
-          <el-radio :label="2">智能布局</el-radio>
+          <el-radio :label="1"><!-- 常规布局 -->{{$t('ReportManage.ReportList.layout_default')}}</el-radio>
+          <el-radio :label="2"><!-- 智能布局 -->{{$t('ReportManage.ReportList.layout_smart')}}</el-radio>
         </el-radio-group>
       </el-form-item>
       <el-form-item prop="isPublcPublish">
         <template slot="label">
-          <span>公开发布</span>
+          <span><!-- 公开发布 -->{{$t('ReportManage.ReportList.label_public')}}</span>
           <el-tooltip class="item" effect="dark" placement="top">
             <div slot="content" v-html="publishTip"></div>
             <i class="el-icon-info"/>
@@ -154,8 +154,8 @@
           :disabled="id"
           @change="handleUpdateBaseInfo"
         >
-          <el-radio :label="true"></el-radio>
-          <el-radio :label="false"></el-radio>
+          <el-radio :label="true">{{$t('Common.yes_text')}}</el-radio>
+          <el-radio :label="false">{{$t('Common.no_text')}}</el-radio>
         </el-radio-group>
       </el-form-item>
 

+ 2 - 2
src/views/report_manage/reportV2/components/reportEditHeader.vue

@@ -4,7 +4,7 @@
       <ul class="action-list">
           <li class="action-item" @click="$emit('handleClearContent')">
               <img src="~@/assets/img/smartReport/icon01.png" alt="">
-              <span>一键清空内容</span>
+              <span><!-- 一键清空内容 -->{{$t('ReportManage.ReportList.click_clear_btn')}}</span>
           </li>
           <li class="action-item" @click="$emit('openBaseInfo')">
               <img src="~@/assets/img/smartReport/icon01.png" alt="">
@@ -12,7 +12,7 @@
           </li>
           <li class="action-item" @click="$emit('handleRefreshAllChart')">
               <img src="~@/assets/img/smartReport/icon02.png" alt="">
-              <span>一键刷新</span>
+              <span><!-- 一键刷新 -->{{$t('ReportManage.ReportList.click_refresh_btn')}}</span>
           </li>
           <li class="action-item" @click="$emit('handlePreviewReport')">
               <img src="~@/assets/img/smartReport/icon03.png" alt="">

+ 6 - 6
src/views/report_manage/reportV2/components/reportPreview.vue

@@ -21,8 +21,8 @@
         <span style="float:right;">{{reportInfo.PublishTime}}</span>
       </div>
       
-      <div id="abstract">
-        <div>摘要:{{reportInfo.Abstract}}</div>
+      <div id="abstract" v-if="reportInfo.Abstract">
+        <div><!-- 摘要 -->{{$t('ReportManage.ReportList.abstract_ipt')}}:{{reportInfo.Abstract}}</div>
       </div>
       <div id="resetsty" style="padding:30px; box-sizing:border-box; overflow:hidden;">
         <block v-if="reportInfo.ChapterType=='day'||reportInfo.ChapterType=='week'">
@@ -42,18 +42,18 @@
 
     <ul class="fixed-handles">
         <li v-permission="permissionBtn.reportManageBtn.reportManage_reportView_copyWechat" :data-clipboard-text='linkUrl' @click="copyHandle" class="copy">
-            <el-button type="text">复制链接</el-button>
+            <el-button type="text"><!-- 复制链接 -->{{$t('ReportManage.ReportList.copy_share_link')}}</el-button>
         </li>
         <li v-permission="permissionBtn.reportManageBtn.reportManage_reportView_wechartShare" @mouseenter="isShowCode=true" @mouseleave="isShowCode=false" style="position:relative">
-            <el-button type="text">微信分享</el-button>
+            <el-button type="text"><!-- 微信分享 -->{{$t('ReportManage.ReportList.weChat_share')}}</el-button>
 
           <vue-qr :text="linkUrl" :margin="0" colorDark="#333" colorLight="#fff" :dotScale="1" :size="100" style="position:absolute;left:-20px;top:-120px;" v-if="isShowCode"></vue-qr>
         </li>
         <li>
-            <el-button type="text" @click="$emit('itemclick',{type:'下载Pdf',data: reportIdInfo})">下载PDF</el-button>
+            <el-button type="text" @click="$emit('itemclick',{type:'下载Pdf',data: reportIdInfo})"><!-- 下载PDF -->{{$t('ReportManage.smart_btn.download_pdf')}}</el-button>
         </li>
         <li>
-            <el-button type="text" @click="$emit('itemclick',{type:'下载长图',data: reportIdInfo})">下载长图</el-button>
+            <el-button type="text" @click="$emit('itemclick',{type:'下载长图',data: reportIdInfo})"><!-- 下载长图 -->{{$t('ReportManage.smart_btn.download_long_image')}}</el-button>
         </li>
 
     </ul>

+ 45 - 23
src/views/report_manage/reportV2/list.vue

@@ -38,19 +38,25 @@
                           style="width:100%;"
                       ></el-cascader>
                   </div>
+
                   <div class="select-item">
                       <el-select
-                          v-model="searchform.timeType"
-                          :placeholder="$t('ReportManage.smart_select_time_type_btn')"
+                          v-model.number="searchform.publishState"
+                          :placeholder="$t('ReportManage.smart_status_filtering')"
                           size="medium"
+                          clearable
                           style="width:100%;"
                           @change="filterChange"
                       >
-                          <el-option :label="$t('ReportManage.smart_publish_time')" value="publish_time"></el-option>
-                          <el-option :label="$t('ReportManage.smart_approval_time')" value="approve_time"></el-option>
-                          <el-option :label="$t('ReportManage.smart_update_time')" value="modify_time"></el-option>
-                      </el-select>
+                        <el-option :label="$t('ReportManage.smart_unpublished')" :value="1" v-if="!isOtherApprove"></el-option>
+                          <el-option :label="$t('ReportManage.smart_published')" :value="2"></el-option>
+                          <el-option :label="$t('ReportManage.smart_pending')" :value="3" v-if="isApprove"></el-option>
+                          <el-option :label="$t('ReportManage.smart_awaiting_approval')" :value="4" v-if="isApprove"></el-option>
+                          <el-option :label="$t('ReportManage.smart_rejected')" :value="5"></el-option>
+                          <el-option :label="$t('ReportManage.smart_approved')" :value="6"></el-option>
+                        </el-select>
                   </div>
+
                   <div class="select-item">
                       <el-select
                           @change="filterChange"
@@ -69,23 +75,6 @@
                       </el-select>
                   </div>
                 
-                  <div class="select-item">
-                      <el-select
-                          v-model.number="searchform.publishState"
-                          :placeholder="$t('ReportManage.smart_status_filtering')"
-                          size="medium"
-                          clearable
-                          style="width:100%;"
-                          @change="filterChange"
-                      >
-                        <el-option :label="$t('ReportManage.smart_unpublished')" :value="1" v-if="!isOtherApprove"></el-option>
-                          <el-option :label="$t('ReportManage.smart_published')" :value="2"></el-option>
-                          <el-option :label="$t('ReportManage.smart_pending')" :value="3" v-if="isApprove"></el-option>
-                          <el-option :label="$t('ReportManage.smart_awaiting_approval')" :value="4" v-if="isApprove"></el-option>
-                          <el-option :label="$t('ReportManage.smart_rejected')" :value="5"></el-option>
-                          <el-option :label="$t('ReportManage.smart_approved')" :value="6"></el-option>
-                        </el-select>
-                  </div>
                   <div class="select-item">
                     <el-date-picker
                       @change="filterChange"
@@ -118,6 +107,15 @@
 
             </el-form-item>
           </el-form>
+          
+          <ul class="report-types-cont">
+            <li 
+              v-for="item in reportTypes" 
+              :key="item.key" 
+              :class="{'act':item.key===searchform.listType}"
+              @click="searchform.listType=item.key"
+            >{{item.label}}</li>
+          </ul>
         </div>
         
         <el-table
@@ -539,11 +537,20 @@ export default {
     hasUV(){
       return this.permissionBtn.checkPermissionBtn(this.permissionBtn.reportManageBtn.reportManage_reportList_uv)
     },
+
+    reportTypes(){
+      return [
+        { label: /* '公共研报' */this.$t('ReportManage.ReportList.tab_public'),key:'public' },
+        { label: /* '共享研报' */this.$t('ReportManage.ReportList.tab_share'),key:'share' },
+        { label: /* '我的研报' */this.$t('ReportManage.ReportList.tab_mine'),key:'mine' },
+      ]
+    }
   },
   data() {
     return {
       reportFrequencyOption,
       searchform: {
+        listType: 'public',
         timeType:'publish_time',
         dateValue: "",
         frequency: "",
@@ -1239,5 +1246,20 @@ export default {
       margin: 0 3px;
     }
   }
+
+  .report-types-cont {
+    display: flex;
+    align-items: center;
+    gap: 0 15px;
+    margin-bottom: 15px;
+    li {
+      padding: 10px 20px;
+      border-radius: 4px;
+      &.act {
+        color: #fff;
+        background: #0052D9;
+      }
+    }
+  }
 }
 </style>

+ 230 - 0
src/views/report_manage/reportV2/normalReport/reportdtl.vue

@@ -0,0 +1,230 @@
+<template>
+	<div id="reportdtl" v-if="isshow">
+		<header>{{reportInfo.Title}}</header>
+		<div style="padding:0 35px 0; box-sizing:border-box; color:#666; font-size:24px; overflow:hidden;">
+		  <span>{{reportInfo.Author}}</span>
+		  <span style="float:right;">{{reportInfo.PublishTime}}</span>
+		</div>
+		
+		<div id="abstract">
+		  <div>摘要:{{reportInfo.Abstract}}</div>
+		</div>
+		<div id="resetsty" style="padding:30px; box-sizing:border-box; overflow:hidden;">
+			<block v-if="reportInfo.ChapterType=='day'||reportInfo.ChapterType=='week'">
+				<div class="chapter-item" v-for="item in reportInfo.ChapterList" :key="item.ReportChapterId">
+					<div style="margin-bottom:10px">
+						<span class="type">{{item.TypeName}}</span>
+						<span class="title">{{item.Title}}</span>
+					</div>
+					<div id="resetcss" style="overflow:hidden;" v-html="item.Content"></div>
+				</div>
+			</block>
+			<block v-else>
+				<div id="resetcss" style="overflow:hidden;" v-html="reportInfo.Content"></div>
+			</block>
+		</div>
+		<div v-if="linkUrl" style="width:100px;height30px;position:absolute;right:-100px;top:100px;cursor:pointer;">
+			<div v-permission="$route.query.fromPage==='en'
+                ?permissionBtn.enReportManageBtn.enReport_reportView_copyWechat
+                :permissionBtn.reportManageBtn.reportManage_reportView_copyWechat"
+                style="display:flex;alignItems:center;color:#333;" :data-clipboard-text='linkUrl' @click="copyHandle" class="copy">
+				<img src="../../assets/img/icons/cop.png" alt="" style="width:30px;height:30px;marginRight:10px;">复制链接
+			</div>
+			<div v-permission="$route.query.fromPage==='en'
+                ?permissionBtn.enReportManageBtn.enReport_reportView_wechatShare
+                :permissionBtn.reportManageBtn.reportManage_reportView_wechartShare"
+                style="display:flex;alignItems:center;color:#333;marginTop:20px;"  @mouseenter="isShowCode=true" @mouseleave="isShowCode=false">
+				<img src="../../assets/img/icons/wechat.png" alt="" style="width:30px;height:30px;marginRight:10px;">微信分享
+			</div>
+			<vue-qr :text="linkUrl" :margin="0" colorDark="#333" colorLight="#fff" :dotScale="1" :size="100" style="position:absolute;right:0;top:100px;" v-if="isShowCode"></vue-qr>
+		</div>
+	</div>
+</template>
+
+<script>
+	import { reportdetail,departInterence } from 'api/api.js';
+	import http from '@/api/http.js';
+	import * as reportEnInterface from '@/api/modules/reportEnApi';
+	import {strategyReportInterence} from '@/api/api.js'
+	import vueQr from 'vue-qr'
+	export default {
+		computed: {
+			linkUrl(){
+				let str=''
+				const baseUrl= localStorage.getItem('dynamicOutLinks') ? JSON.parse(localStorage.getItem('dynamicOutLinks')).ReportViewUrl : '';
+				if(this.$route.query.code){
+					// 设置水印文案
+					let waterMarkStr=''
+					if(this.systemUserInfo){
+						waterMarkStr=`${this.systemUserInfo.RealName}${this.systemUserInfo.Mobile?this.systemUserInfo.Mobile:this.systemUserInfo.Email}`
+						const base64=new http.Base64()
+						waterMarkStr=encodeURIComponent(waterMarkStr)
+						waterMarkStr=base64.encode(waterMarkStr)
+					}
+					
+					if(this.$route.query.fromPage == 'en'){
+						str=`${baseUrl}/reportshare_crm_report_en?code=${this.$route.query.code}&flag=${waterMarkStr}`
+					}else{
+						str=`${baseUrl}/reportshare_crm_report?code=${this.$route.query.code}&flag=${waterMarkStr}`
+					}
+				}
+				
+				return str
+			}
+		},
+		props:{
+			reportId:{ //审批详情-预览报告
+				type:Number,
+				default:0
+			},
+			isEn:{
+				type:Boolean,
+				default:false
+			}
+		},
+		data() {
+			return {
+				id:parseInt(this.$route.query.id),
+				isshow:false,
+				reportInfo:{},
+				isShowCode:false,
+
+				systemUserInfo:null,
+				// linkUrl:this.$route.query.code?'https://share.hzinsights.com/reportdtl?code='+this.$route.query.code:''
+			}
+		},
+		components: {
+			vueQr
+		},
+		mounted() {
+			if(this.$route.query.id||this.reportId) {
+				this.getreportdetail();
+			}else {
+				let reportdtl=sessionStorage.getItem('reportdtl') || false;
+				this.reportInfo=JSON.parse(reportdtl);
+				console.info("reportInfo");
+				console.log(this.reportInfo);
+				this.isshow=true;
+			}
+			this.getSystemUserInfo()
+		},
+		updated(){
+		  $('#resetcss').find('img').css({display:'block',margin:'0 auto'});
+		  $('#resetcss').find('video').css({display:'block',margin:'0 auto'});
+			$("#resetcss").find("pre").css({display: "block",whiteSpace: "pre-wrap"});
+		},
+		methods: {
+			getSystemUserInfo(){
+				departInterence.systemUserInfo().then(res=>{
+					if(res.Ret===200){
+						this.systemUserInfo=res.Data
+					}
+				})
+			},
+			async getreportdetail(){
+				let res
+				let reportId = this.id||this.reportId
+				this.$emit("reportStartLoading")
+				if((this.$route.query.fromPage == 'en'||this.isEn)){
+					res=await reportEnInterface.reportDetail({ReportId:parseInt(reportId)})
+				}else if(this.$route.query.fromPage == 'strategyReport'){
+					res=await strategyReportInterence.getReportDetail({Id:parseInt(reportId)})
+				}else{
+					res=await reportdetail({ReportId:parseInt(reportId)})
+				}
+				this.$emit("reportEndLoading")
+				if( res.Ret!==200 ){
+					this.$emit("reportError")
+					return 
+				}
+
+				this.reportInfo=res.Data;
+				this.isshow=true;
+		},
+			/* 复制链接 */
+			copyHandle() {
+				var clipboard = new this.Clipboard('.copy')
+				clipboard.on('success', e => {
+					this.$message.success(/* '复制链接成功' */this.$t('Chart.OptMsg.copy_link_success'))
+					e.clearSelection() // 释放内存
+					clipboard.destroy()
+				})
+				// // 浏览器不支持
+				clipboard.on('error', e => {
+					this.$message.warning(/* '浏览器暂不支持' */this.$t('MsgPrompt.browser_not_support'))
+					// 释放内存
+					clipboard.destroy()
+				})
+			}
+		},
+	}
+</script>
+
+<style lang="scss">
+	#reportdtl{ background:#fff;  max-width:1200px; margin:10px auto;position:relative;
+		img{ display:'block'; width:'100%'; margin:'0 auto'; }
+		header{ padding:10px 30px; box-sizing:border-box; font-size:28px; font-weight:500; color:#333; background:#fff; }
+		#abstract{ padding:10px 30px 0; box-sizing:border-box; font-size:22px; line-height:36px;
+		  >div{ padding:10px 20px; box-sizing:border-box; background:rgba(20,121,253,0.1); color:#4099ef; border-radius:10px; }
+		}
+		#resetsty{ 
+			img{ display:block; max-width:100%; height:auto; margin:0 auto; }
+		}
+		table{ border-top:1px solid #eaeaea; border-left:1px solid #eaeaea; border-collapse:collapse; 
+			th,td{ border-right:1px solid #eaeaea; border-bottom:1px solid #eaeaea; padding:5px 10px; box-sizing:border-box; }
+		}
+
+		.chapter-item{
+			margin-bottom: 20px;
+			padding-bottom: 20px;
+			border-bottom: 1px dashed #ccc;
+			.type{
+				font-size: 15px;
+				color: #fff;
+				padding: 5px 10px;
+				background-color: #E6A23C;
+				border-radius: 4px;
+			}
+			.title{
+				font-size: 15px;
+				margin-left: 10px;
+				font-weight: bold;
+			}
+		}
+    #abstract-en{
+      margin:35px 35px;
+      padding:20px;
+      background-color: rgba(77, 130, 191, 0.1);
+      border: 1px solid #E2E2E2;
+      .abstract{
+        font-size: 24px;
+        font-weight: 600;
+        padding-bottom: 20px;
+        border-bottom: 1px solid #C1C1C1;
+      }
+      #overview{
+        margin-top:20px;
+        font-size: 24px;
+        .overview{
+          margin-top:20px;
+          font-size: 18px;
+        }
+      }
+    }
+		#resetcss{
+			p{
+				font-size: 18px !important;
+			}
+			span{
+				font-size: 18px !important;
+			}
+			ul,ol {
+				list-style-position: inside !important;
+			}
+		}
+        @media (max-width:1400px) {
+            margin-right: 100px;
+            
+        }
+	}
+</style>