Răsfoiți Sursa

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

yangfeng 1 lună în urmă
părinte
comite
34979626f5

+ 2 - 2
apps/bigmember_pc/src/views/portrayal/components/EntNewContent.vue

@@ -988,7 +988,7 @@ const onKnowConfirm = () => {
       }
       }
     }
     }
     .level3-item {
     .level3-item {
-      font-size: 12px;
+      font-size: 14px;
       line-height: 18px;
       line-height: 18px;
       color: #686868;
       color: #686868;
       cursor: pointer;
       cursor: pointer;
@@ -996,7 +996,7 @@ const onKnowConfirm = () => {
         color: $color_main;
         color: $color_main;
       }
       }
       &:not(:last-child) {
       &:not(:last-child) {
-        margin-bottom: 10px;
+        margin-bottom: 16px;
       }
       }
     }
     }
   }
   }

+ 0 - 11
apps/mobile/src/views/article/components/ActionDownloadReport.vue

@@ -22,13 +22,6 @@
           class="action-monitor"
           class="action-monitor"
           @click.native.stop="changePopoverState"
           @click.native.stop="changePopoverState"
         >
         >
-          <!-- <AppIcon
-            slot="icon"
-            name="xiazaixiangmubaogao"
-            color="#2ABED1"
-            svg
-            size="20"
-          ></AppIcon> -->
           <van-icon slot="icon" name="custom-report"></van-icon>
           <van-icon slot="icon" name="custom-report"></van-icon>
           <template #text>
           <template #text>
             <span class="highlight-text">下载报告</span>
             <span class="highlight-text">下载报告</span>
@@ -120,10 +113,6 @@ export default {
       type: Array,
       type: Array,
       default: () => []
       default: () => []
     },
     },
-    winnerName: {
-      type: String,
-      default: ''
-    },
     projectName: {
     projectName: {
       type: String,
       type: String,
       default: ''
       default: ''

+ 53 - 12
apps/mobile/src/views/article/components/ContentProjectTimeline.vue

@@ -4,14 +4,24 @@
     class="content-project-timeline"
     class="content-project-timeline"
     v-if="stepList.length"
     v-if="stepList.length"
   >
   >
-    <div class="action-right-container" slot="header-actions">
-      <DownProjectReport
-        class="action-item"
-        v-if="hasProject"
-        :id="content.id"
-        :name="projectName"
-        :beforeLeavePage="beforeLeavePage"
-      />
+    <div class="flex items-center justify-between action-right-container">
+      <div class="flex items-center">
+        <DownProjectReport
+          class="action-item"
+          v-if="hasProject"
+          :id="content.id"
+          :name="projectName"
+          :beforeLeavePage="beforeLeavePage"
+        />
+        <div
+          v-if="showProjectButton"
+          class="flex items-center action-item"
+          @click="onProjectReport"
+        >
+          <i class="iconfont icon-xiazaixiangmubaogao font-size-20px"></i>
+          <span class="action-text">项目分析报告</span>
+        </div>
+      </div>
       <span class="action-item clickable follow-project">
       <span class="action-item clickable follow-project">
         <QuickMonitor
         <QuickMonitor
           :beforeLeavePage="beforeLeavePage"
           :beforeLeavePage="beforeLeavePage"
@@ -26,7 +36,7 @@
     <div class="bg-white">
     <div class="bg-white">
       <h5 class="project-title">{{ projectName }}</h5>
       <h5 class="project-title">{{ projectName }}</h5>
       <ProjectTimeline :stepList="stepList2" @itemClick="itemClick" />
       <ProjectTimeline :stepList="stepList2" @itemClick="itemClick" />
-      <div style="height: 8px;background-color: brown;" v-if="false"></div>
+      <div style="height: 8px; background-color: brown" v-if="false"></div>
       <TimeLine :stepList="stepList" @itemClick="itemClick" v-if="false">
       <TimeLine :stepList="stepList" @itemClick="itemClick" v-if="false">
         <template v-slot:step-footer="{ step }">
         <template v-slot:step-footer="{ step }">
           <span v-if="step.bidAmountFormatted">
           <span v-if="step.bidAmountFormatted">
@@ -90,7 +100,8 @@ export default {
     ...mapState({
     ...mapState({
       content: (state) => state.article.mainModel.content,
       content: (state) => state.article.mainModel.content,
       expandModel: (state) => state.article.expandModel,
       expandModel: (state) => state.article.expandModel,
-      otherModel: (state) => state.article.otherModel
+      otherModel: (state) => state.article.otherModel,
+      reportBtn: (state) => state.article.reportBtn
     }),
     }),
     ...mapGetters('user', ['isNewBusiness']),
     ...mapGetters('user', ['isNewBusiness']),
     projectName() {
     projectName() {
@@ -130,6 +141,9 @@ export default {
           bidAmountFormatted: p.bidAmount ? formatMoney(p.bidAmount) : ''
           bidAmountFormatted: p.bidAmount ? formatMoney(p.bidAmount) : ''
         }
         }
       })
       })
+    },
+    showProjectButton() {
+      return this.reportBtn?.project_report_button
     }
     }
   },
   },
   methods: {
   methods: {
@@ -159,6 +173,30 @@ export default {
       if (!id) return
       if (!id) return
       if (item.isActive) return
       if (item.isActive) return
       this.__toArticlePage(id)
       this.__toArticlePage(id)
+    },
+    onProjectReport() {
+      const { project_report_id } = this.reportBtn
+      // 判断是否购买过,已购买跳转报告页,未购买跳转购买页
+      if (project_report_id) {
+        this.$router.push({
+          path: '/report/analysis/detail',
+          query: {
+            id: project_report_id
+          }
+        })
+      } else {
+        // 项目分析报告 name: 项目名称(下单页展示用),buyer:采购单位名称(下单接口参数用)
+        const buyers = this.content?._summary.buyers || []
+        const buyerName = buyers[0]?.name
+        this.$router.push({
+          path: '/order/create/analysis-report/project',
+          query: {
+            name: this.content?.projectName,
+            id: this.content?.id,
+            buyer: buyerName
+          }
+        })
+      }
     }
     }
   }
   }
 }
 }
@@ -174,8 +212,8 @@ export default {
 }
 }
 
 
 .action-right-container {
 .action-right-container {
-  display: flex;
-  align-items: center;
+  padding: 8px 16px 8px 0;
+  background: #fff;
 }
 }
 .action-item {
 .action-item {
   margin-left: 16px;
   margin-left: 16px;
@@ -186,4 +224,7 @@ export default {
     margin-left: 4px;
     margin-left: 4px;
   }
   }
 }
 }
+::v-deep .content-module-header {
+  border-bottom: 0;
+}
 </style>
 </style>

+ 3 - 3
apps/mobile/src/views/article/ui/ReportDownloadCard.vue

@@ -29,11 +29,11 @@
       <div class="report-tips">{{ tips }}</div>
       <div class="report-tips">{{ tips }}</div>
       <div
       <div
         v-if="discountText"
         v-if="discountText"
-        class="highlight-text flex flex-items-center clickable report-buy-btn"
+        class="highlight-text inline-flex flex-items-center clickable report-buy-btn"
         @click.stop="onClickBtn"
         @click.stop="onClickBtn"
       >
       >
         <slot name="btnText">{{ discountText }}</slot>
         <slot name="btnText">{{ discountText }}</slot>
-        <AppIcon name="youbian" svg size="18"></AppIcon>
+        <!-- <AppIcon name="youbian" svg size="18"></AppIcon> -->
       </div>
       </div>
     </div>
     </div>
   </section>
   </section>
@@ -109,7 +109,7 @@ export default {
   margin-top: 12px;
   margin-top: 12px;
 }
 }
 .report-buy-btn {
 .report-buy-btn {
-  width: 122px;
+  min-width: 106px;
   margin: 12px auto 0;
   margin: 12px auto 0;
   white-space: nowrap;
   white-space: nowrap;
   background: rgba(42, 190, 209, 0.12);
   background: rgba(42, 190, 209, 0.12);

+ 6 - 1
apps/mobile/src/views/report/ZhiMaAnalysis.vue

@@ -36,7 +36,7 @@
             </p>
             </p>
           </AppEmpty>
           </AppEmpty>
         </div>
         </div>
-        <div v-else-if="showType === 'pdf'">
+        <div class="flex-1" v-else-if="showType === 'pdf'">
           <PDF :useLoading="false" :usePagination="false" :url="pdfUrl"></PDF>
           <PDF :useLoading="false" :usePagination="false" :url="pdfUrl"></PDF>
         </div>
         </div>
 
 
@@ -266,6 +266,8 @@ export default {
   line-height: 24px;
   line-height: 24px;
   color: #171826;
   color: #171826;
   background: #fff;
   background: #fff;
+  box-shadow: 0px -0.5px 0px 0px #0000000d inset;
+  border-bottom: 1px solid $color_main;
 }
 }
 .analysis-skeleton {
 .analysis-skeleton {
   display: flex;
   display: flex;
@@ -291,4 +293,7 @@ export default {
 .pdfjs {
 .pdfjs {
   padding-top: 0;
   padding-top: 0;
 }
 }
+.pdf-box {
+  height: 100%;
+}
 </style>
 </style>

+ 10 - 0
apps/mobile/src/views/reportAnalysis/components/listItem.vue

@@ -153,6 +153,10 @@
       </div>
       </div>
       <!-- 项目分析5、竞争对手分析6、采购单位分析7 -->
       <!-- 项目分析5、竞争对手分析6、采购单位分析7 -->
       <div v-if="data.type === '5' || data.type === '6' || data.type === '7'">
       <div v-if="data.type === '5' || data.type === '6' || data.type === '7'">
+        <img
+          class="jy-zhima-logo"
+          src="@/assets/image/reportanalysis/jy-zhima-logo.png"
+        />
         <div class="item" v-if="data.biddingId">
         <div class="item" v-if="data.biddingId">
           <p class="label">目标公告:</p>
           <p class="label">目标公告:</p>
           <p
           <p
@@ -503,5 +507,11 @@ export default {
     white-space: nowrap;
     white-space: nowrap;
     text-overflow: ellipsis;
     text-overflow: ellipsis;
   }
   }
+  .jy-zhima-logo {
+    width: 235px;
+    height: 24px;
+    margin-bottom: 8px;
+    object-fit: cover;
+  }
 }
 }
 </style>
 </style>