Procházet zdrojové kódy

Merge branch 'dev/v1.1.11_yf' of jianyu/web into feature/v1.1.11

yangfeng před 1 měsícem
rodič
revize
9e4bb5e0da

+ 11 - 1
apps/bigmember_pc/src/components/zhima/report-guide-banner.vue

@@ -204,6 +204,11 @@ const getReportBtnStatus = async () => {
     reportBtnList.value = list.filter((v) => v.visible)
   }
 }
+const onClickOutSide = () => {
+  reportBtnList.value.forEach((v) => {
+    v.showPopover = false
+  })
+}
 onMounted(() => {
   getReportBtnStatus()
 })
@@ -232,7 +237,10 @@ onMounted(() => {
         <span>{{ discountMsg }}</span>
       </div>
     </div>
-    <div class="flex flex-items-center banner-right">
+    <div
+      class="flex flex-items-center banner-right"
+      v-clickoutside="onClickOutSide"
+    >
       <div v-for="(item, index) in reportBtnList" :key="index">
         <el-popover
           popper-class="report-btn-popover"
@@ -348,6 +356,8 @@ onMounted(() => {
   .competitor-container {
     display: flex;
     flex-direction: column;
+    max-height: 400px;
+    overflow-y: auto;
     background: #fff;
     box-shadow: 0px 4px 8px 0px #00000014;
     border-radius: 8px;

+ 46 - 3
apps/bigmember_pc/src/views/project/ProjectInfo.vue

@@ -105,11 +105,21 @@
                   'iconfont icon-yijiankong': projectContent.isfollow,
                   'iconfont icon-jiankong': !projectContent.isfollow
                 }"
+                style="font-size: 20px"
               ></span>
               <span class="text">{{
                 projectContent.isfollow ? '已监控' : '监控'
               }}</span>
             </div>
+            <div
+              class="flex-r-c center left down-report"
+              v-if="showProjectReport"
+              @click="goProjectReport"
+            >
+              <i class="el-icon-jy-report"></i>
+              <i class="el-icon-jy-report-active"></i>
+              <span>项目分析报告</span>
+            </div>
             <div
               class="flex-r-c center left down-report"
               @click="goDownReport"
@@ -117,7 +127,7 @@
             >
               <i class="el-icon-jy-report"></i>
               <i class="el-icon-jy-report-active"></i>
-              <span>下载项目报告</span>
+              <span>项目进度报告</span>
               <i class="el-icon-jy-vip"></i>
             </div>
           </div>
@@ -271,7 +281,8 @@ import {
   joinBidAction,
   getProjectRecords,
   getEntPersons,
-  getProjectRecordStatusOptions
+  getProjectRecordStatusOptions,
+  ajaxGetReportBtnStatus
 } from '@/api/modules/'
 
 import { replaceKeyword, dateFormatter, getCountDown } from '@/utils'
@@ -356,7 +367,9 @@ export default {
       isFollowUp: false, // 是否跟进
       selectedName: '',
       selectedUserId: '',
-      loadingPerson: false
+      loadingPerson: false,
+      showProjectReport: false,
+      projectReportId: ''
     }
   },
   computed: {
@@ -432,6 +445,7 @@ export default {
       }
     })
     await this.getJoinBidInfo()
+    await this.getProjectReportStatus()
   },
   beforeDestroy() {
     if (this.bidTimer) {
@@ -845,6 +859,35 @@ export default {
       try {
         this.personVal = []
       } catch (error) {}
+    },
+    async getProjectReportStatus() {
+      if (!this.sid) return
+      const {
+        error_code: code,
+        data,
+        error_msg: msg
+      } = await ajaxGetReportBtnStatus({
+        // 项目处在招标阶段传id(显示项目分析报告入口)
+        bidding_id: this.projectInfo.bidstatus === '招标' ? this.sid : '',
+        buyer: this.projectInfo.buyer
+      })
+      if (code === 0 && data) {
+        this.showProjectReport = data?.project_report_button
+        this.projectReportId = data?.project_report_id
+      } else {
+        console.error(msg)
+      }
+    },
+    goProjectReport() {
+      if (this.projectReportId) {
+        window.open(
+          `/swordfish/page_big_pc/report/analysis/detail?id=${this.projectReportId}`
+        )
+      } else {
+        window.open(
+          `/swordfish/page_big_pc/order/analysis-report/project?name=${this.projectInfo.projectname}&id=${this.sid}&buyer=${this.projectInfo.buyer}`
+        )
+      }
     }
   }
 }