瀏覽代碼

feat: 完善商机列表

zhangyuhan 1 年之前
父節點
當前提交
310650bcdb

+ 1 - 1
apps/bigmember_pc/src/views/article-content/components/RecommendEnt.vue

@@ -88,7 +88,7 @@ function doOpen(item) {
             {{ item?.type === 'buyer' ? '采购单位' : '中标单位' }}画像
             {{ item?.type === 'buyer' ? '采购单位' : '中标单位' }}画像
           </span>
           </span>
           <h3>{{ item.name }}</h3>
           <h3>{{ item.name }}</h3>
-          <div class="monitor-action">
+          <div class="monitor-action" v-if="item.id">
             <quick-monitor
             <quick-monitor
               class="action-item"
               class="action-item"
               :type="item.type === 'buyer' ? 'client' : 'ent'"
               :type="item.type === 'buyer' ? 'client' : 'ent'"

+ 142 - 19
apps/bigmember_pc/src/views/article-content/pages/Article.vue

@@ -63,19 +63,15 @@ function doSelectTab(item) {
   scrollToTop(goElement, 45)
   scrollToTop(goElement, 45)
 }
 }
 
 
-const testTitle = replaceKeyword(
-  '淮安市高级职业技术学校台式电脑采购项目二次招标中标公告',
-  '淮安市高级职业技术学校',
-  `<span class="highlight-text">淮安市高级职业技术学校</span>`
-)
-
+// 招标、采购进度
 const timeLineList = computed(() => {
 const timeLineList = computed(() => {
   return ContentExpandsModel.value.projectProgress.list.map((v) => {
   return ContentExpandsModel.value.projectProgress.list.map((v) => {
     return {
     return {
-      content: replaceKeyword(v.title, ContentModel.value.projectName, [
-        '<span class="highlight-text">',
-        '</span>'
-      ]),
+      content: replaceKeyword(
+        v.title,
+        ContentExpandsModel.value.projectProgress.name,
+        ['<span class="highlight-text">', '</span>']
+      ),
       s_id: v.id,
       s_id: v.id,
       tags: [v.tag],
       tags: [v.tag],
       time: v.time,
       time: v.time,
@@ -84,6 +80,52 @@ const timeLineList = computed(() => {
   })
   })
 })
 })
 
 
+const recommendProjects = computed(() => {
+  const list = ContentExpandsModel.value.recommendProjects.list.map((v) => {
+    return Object.assign({}, v, {
+      _id: v.id,
+      matchKeys: []
+    })
+  })
+  return {
+    list,
+    title: ContentExpandsModel.value.recommendProjects.title,
+    total: ContentExpandsModel.value.recommendProjects.total,
+    more: ContentExpandsModel.value.recommendProjects.more
+  }
+})
+
+const recommendBuyers = computed(() => {
+  const list = ContentExpandsModel.value.recommendBuyers.list.map((v) => {
+    return Object.assign({}, v, {
+      _id: v.id,
+      matchKeys: []
+    })
+  })
+  return {
+    list,
+    title: ContentExpandsModel.value.recommendBuyers.title,
+    total: ContentExpandsModel.value.recommendBuyers.total,
+    more: ContentExpandsModel.value.recommendBuyers.more
+  }
+})
+
+const recommendWinners = computed(() => {
+  const list = ContentExpandsModel.value.recommendWinners.list.map((v) => {
+    return Object.assign({}, v, {
+      _id: v.id,
+      matchKeys: []
+    })
+  })
+  return {
+    list,
+    id: ContentExpandsModel.value.recommendWinners.winnerId,
+    title: ContentExpandsModel.value.recommendWinners.title,
+    total: ContentExpandsModel.value.recommendWinners.total,
+    more: ContentExpandsModel.value.recommendWinners.more
+  }
+})
+
 const recommendInfo = {
 const recommendInfo = {
   list: [
   list: [
     {
     {
@@ -383,7 +425,7 @@ const contentId = useRoute().params.id.replace('.html', '')
 
 
       <div class="content-card watch-tab-content" name="商机推荐">
       <div class="content-card watch-tab-content" name="商机推荐">
         <div class="content-block-header">商机推荐</div>
         <div class="content-block-header">商机推荐</div>
-
+        <!--   超前项目     -->
         <div
         <div
           class="recommend-info-header flex flex-(row items-end justify-between)"
           class="recommend-info-header flex flex-(row items-end justify-between)"
         >
         >
@@ -392,9 +434,51 @@ const contentId = useRoute().params.id.replace('.html', '')
               <span class="el-icon-jy-re-info"></span>
               <span class="el-icon-jy-re-info"></span>
               <span>超前项目推荐</span>
               <span>超前项目推荐</span>
             </div>
             </div>
-            <span class="number-text">30</span>
+            <span class="number-text">
+              {{ recommendProjects.total }}
+            </span>
+          </div>
+          <span class="more-text" v-if="recommendProjects.more">
+            查看更多 >
+          </span>
+        </div>
+
+        <div class="article-info-list">
+          <article-item
+            model="S"
+            :grid-data="[]"
+            class="article-info-item"
+            v-for="(item, index) in recommendProjects.list"
+            :class="{ visited: item.visited || item.ca_isvisit }"
+            :key="index"
+            :index="index + 1"
+            :article="item"
+            :config="recommendInfo.config"
+            :vt="'f'"
+          >
+            <div slot="right-time"></div>
+            <div class="time-text" slot="right-handle-container">
+              2022-11-11
+            </div>
+          </article-item>
+        </div>
+
+        <!--   采购单位     -->
+        <div
+          class="recommend-info-header flex flex-(row items-end justify-between)"
+        >
+          <div class="flex flex-(row items-end justify-between)">
+            <div class="flex flex-(row items-center)">
+              <span class="el-icon-jy-re-unit"></span>
+              <span>{{ recommendBuyers.title }}</span>
+            </div>
+            <span class="number-text">
+              {{ recommendBuyers.total }}
+            </span>
           </div>
           </div>
-          <span class="more-text">查看更多 ></span>
+          <span class="more-text" v-if="recommendBuyers.more">
+            查看更多 >
+          </span>
         </div>
         </div>
 
 
         <div class="article-info-list">
         <div class="article-info-list">
@@ -402,7 +486,7 @@ const contentId = useRoute().params.id.replace('.html', '')
             model="S"
             model="S"
             :grid-data="[]"
             :grid-data="[]"
             class="article-info-item"
             class="article-info-item"
-            v-for="(item, index) in recommendInfo.list"
+            v-for="(item, index) in recommendBuyers.list"
             :class="{ visited: item.visited || item.ca_isvisit }"
             :class="{ visited: item.visited || item.ca_isvisit }"
             :key="index"
             :key="index"
             :index="index + 1"
             :index="index + 1"
@@ -415,18 +499,56 @@ const contentId = useRoute().params.id.replace('.html', '')
               2022-11-11
               2022-11-11
             </div>
             </div>
           </article-item>
           </article-item>
+          <div class="mask-drainage" v-if="false">
+            <div
+              class="recommend-serve-card has-header flex flex-(col items-center justify-between)"
+            >
+              <div
+                class="recommend-serve-header w-full flex flex-(row items-center justify-between)"
+              >
+                <span>大会员权益</span>
+                <span class="action-text">查看服务介绍 ></span>
+              </div>
+              <div
+                class="recommend-serve-content flex flex-(1 col items-center justify-between)"
+              >
+                <div>
+                  <span class="title-text">项目提前介入,中标更轻松</span>
+                  <div class="text-center">
+                    提前1-3个月获取项目采购计划,获取采购内容、预算金额、预计采购时间等,提前运作提高中标率。
+                  </div>
+                </div>
+                <div class="action-btns flex flex-(row items-center)">
+                  <el-button type="primary">免费体验</el-button>
+                </div>
+              </div>
+            </div>
+          </div>
         </div>
         </div>
+
+        <!--   中标单位     -->
         <div
         <div
           class="recommend-info-header flex flex-(row items-end justify-between)"
           class="recommend-info-header flex flex-(row items-end justify-between)"
         >
         >
           <div class="flex flex-(row items-end justify-between)">
           <div class="flex flex-(row items-end justify-between)">
             <div class="flex flex-(row items-center)">
             <div class="flex flex-(row items-center)">
               <span class="el-icon-jy-re-unit"></span>
               <span class="el-icon-jy-re-unit"></span>
-              <span>采购单位名称XXX的其他招标动态</span>
+              <span>{{ recommendWinners.title }}</span>
             </div>
             </div>
-            <span class="number-text">30</span>
+            <span class="number-text">
+              {{ recommendWinners.total }}
+            </span>
+          </div>
+          <div>
+            <quick-monitor
+              v-if="recommendWinners.id"
+              type="ent"
+              :params="recommendWinners.id"
+            />
+            <span class="more-text" v-if="recommendWinners.more">
+              查看更多 >
+            </span>
           </div>
           </div>
-          <span class="more-text">查看更多 ></span>
         </div>
         </div>
 
 
         <div class="article-info-list">
         <div class="article-info-list">
@@ -434,7 +556,7 @@ const contentId = useRoute().params.id.replace('.html', '')
             model="S"
             model="S"
             :grid-data="[]"
             :grid-data="[]"
             class="article-info-item"
             class="article-info-item"
-            v-for="(item, index) in recommendInfo.list"
+            v-for="(item, index) in recommendWinners.list"
             :class="{ visited: item.visited || item.ca_isvisit }"
             :class="{ visited: item.visited || item.ca_isvisit }"
             :key="index"
             :key="index"
             :index="index + 1"
             :index="index + 1"
@@ -447,7 +569,7 @@ const contentId = useRoute().params.id.replace('.html', '')
               2022-11-11
               2022-11-11
             </div>
             </div>
           </article-item>
           </article-item>
-          <div class="mask-drainage">
+          <div class="mask-drainage" v-if="false">
             <div
             <div
               class="recommend-serve-card has-header flex flex-(col items-center justify-between)"
               class="recommend-serve-card has-header flex flex-(col items-center justify-between)"
             >
             >
@@ -516,6 +638,7 @@ const contentId = useRoute().params.id.replace('.html', '')
     ::v-deep {
     ::v-deep {
       > .flex-center {
       > .flex-center {
         flex: 1;
         flex: 1;
+        width: 0;
       }
       }
       .content-item {
       .content-item {
         width: calc(100% - 32px);
         width: calc(100% - 32px);