cuiyalong 7 mēneši atpakaļ
vecāks
revīzija
a4a95e672c

+ 16 - 12
apps/mobile/src/components/search/bidding/SearchSchemaFilter.vue

@@ -313,18 +313,22 @@ export default {
           if (value.length === 0) {
             return `${prefix}${allText}`
           } else {
-            return `${prefix}${value.length}个`
+            return `${prefix}${value.join('、')}`
           }
         } else {
           const keyLength = Object.keys(value).length
           if (keyLength) {
-            // 取所有二级分类的长度
-            const level2 = [].concat(Object.values(value)).flat()
-            if (level2.length === 0) {
-              return `${prefix}${keyLength}个`
-            } else {
-              return `${prefix}${level2.length}个`
+            const level1 = []
+            let level2 = []
+            for (const key in value) {
+              const item = value[key]
+              if (Array.isArray(item) && item.length > 0) {
+                level2 = level2.concat(item)
+              } else {
+                level1.push(key)
+              }
             }
+            return `${prefix}${level1.concat(level2).join('、')}`
           } else {
             return `${prefix}${allText}`
           }
@@ -386,9 +390,9 @@ export default {
       const defaultData = this.defaultFilterState[type]
       this.cacheMoreFilters[type] = defaultData
       if (Array.isArray(refs)) {
-        refs[0]?.setState(data)
+        refs[0]?.setState(defaultData)
       } else {
-        refs?.setState(data)
+        refs?.setState(defaultData)
       }
       this.popupState(type, false)
     },
@@ -483,9 +487,9 @@ export default {
     .j-main {
       height: 100%;
     }
-    // .default-sidebar-height {
-    //   height: 100%;
-    // }
+    .default-sidebar-height {
+      height: calc(60vh - 16.6vw);
+    }
   }
 }
 

+ 1 - 1
apps/mobile/src/components/selector/money-input-custom-card/index.vue

@@ -166,7 +166,7 @@ export default {
           this.cacheMoreFilters.priceCheckbox = value.split(',')
         }
       } else {
-        this.cacheMoreFilters.all = true
+        this.clickAll()
       }
     }
   }

+ 93 - 56
apps/mobile/src/views/article/components/ContentAbstract.vue

@@ -2,7 +2,7 @@
   <section class="abstract-container bg-white">
     <!-- 超前项目 -->
     <template v-if="summary.isProposed">
-      <div class="abstract-line" v-if="summaryMap.projectName?.value">
+      <div v-if="summaryMap.projectName?.value" class="abstract-line">
         <div class="abstract-line-label">项目名称</div>
         <div class="abstract-line-value">
           <span class="abstract-line-value-text ellipsis-2">
@@ -11,7 +11,7 @@
         </div>
       </div>
       <div class="abstract-line-container">
-        <div class="abstract-line" v-if="summaryMap.area?.value">
+        <div v-if="summaryMap.area?.value" class="abstract-line">
           <div class="abstract-line-label">省份</div>
           <div class="abstract-line-value">
             <span class="abstract-line-value-text">
@@ -19,7 +19,7 @@
             </span>
           </div>
         </div>
-        <div class="abstract-line" v-if="summaryMap.buyerClass?.value">
+        <div v-if="summaryMap.buyerClass?.value" class="abstract-line">
           <div class="abstract-line-label">业主类型</div>
           <div class="abstract-line-value">
             <span class="abstract-line-value-text">
@@ -28,7 +28,7 @@
           </div>
         </div>
       </div>
-      <div class="abstract-line" v-if="summaryMap.buyer?.value">
+      <div v-if="summaryMap.buyer?.value" class="abstract-line">
         <div class="abstract-line-label">业主单位</div>
         <div class="abstract-line-value">
           <span
@@ -43,7 +43,7 @@
         </div>
       </div>
       <div class="abstract-line-container">
-        <div class="abstract-line" v-if="summaryMap.totalInvestment?.value">
+        <div v-if="summaryMap.totalInvestment?.value" class="abstract-line">
           <div class="abstract-line-label">总投资</div>
           <div class="abstract-line-value">
             <span class="abstract-line-value-text">
@@ -51,7 +51,7 @@
             </span>
           </div>
         </div>
-        <div class="abstract-line" v-if="summaryMap.projectPeriod?.value">
+        <div v-if="summaryMap.projectPeriod?.value" class="abstract-line">
           <div class="abstract-line-label">建设年份</div>
           <div class="abstract-line-value">
             <span class="abstract-line-value-text">
@@ -60,7 +60,7 @@
           </div>
         </div>
       </div>
-      <div class="abstract-line" v-if="summaryMap.address?.value">
+      <div v-if="summaryMap.address?.value" class="abstract-line">
         <div class="abstract-line-label">建设地点</div>
         <div class="abstract-line-value">
           <span class="abstract-line-value-text ellipsis-2">
@@ -68,7 +68,7 @@
           </span>
         </div>
       </div>
-      <div class="abstract-line" v-if="summaryMap.approveDept?.value">
+      <div v-if="summaryMap.approveDept?.value" class="abstract-line">
         <div class="abstract-line-label">审批机关</div>
         <div class="abstract-line-value">
           <span class="abstract-line-value-text ellipsis-2">
@@ -76,7 +76,7 @@
           </span>
         </div>
       </div>
-      <div class="abstract-line" v-if="summaryMap.approveContent?.value">
+      <div v-if="summaryMap.approveContent?.value" class="abstract-line">
         <div class="abstract-line-label">审批事项</div>
         <div class="abstract-line-value">
           <span class="abstract-line-value-text">
@@ -84,7 +84,7 @@
           </span>
         </div>
       </div>
-      <div class="abstract-line" v-if="summaryMap.approvalNumber?.value">
+      <div v-if="summaryMap.approvalNumber?.value" class="abstract-line">
         <div class="abstract-line-label">批准文号</div>
         <div class="abstract-line-value">
           <span class="abstract-line-value-text">
@@ -93,7 +93,7 @@
         </div>
       </div>
       <div class="abstract-line-container">
-        <div class="abstract-line" v-if="summaryMap.approveTime?.value">
+        <div v-if="summaryMap.approveTime?.value" class="abstract-line">
           <div class="abstract-line-label">审批时间</div>
           <div class="abstract-line-value">
             <span class="abstract-line-value-text">
@@ -101,7 +101,7 @@
             </span>
           </div>
         </div>
-        <div class="abstract-line" v-if="summaryMap.approveStatus?.value">
+        <div v-if="summaryMap.approveStatus?.value" class="abstract-line">
           <div class="abstract-line-label">审批结果</div>
           <div class="abstract-line-value">
             <span class="abstract-line-value-text">
@@ -110,7 +110,7 @@
           </div>
         </div>
       </div>
-      <div class="abstract-line" v-if="summaryMap.content?.value">
+      <div v-if="summaryMap.content?.value" class="abstract-line">
         <div class="abstract-line-label">建设内容</div>
         <div class="abstract-line-value">
           <span class="abstract-line-value-text ellipsis-2">
@@ -121,13 +121,18 @@
     </template>
     <!-- 非超前项目 -->
     <template v-else>
-      <div class="abstract-line" v-if="summaryMap.buyer?.value">
+      <div v-if="summaryMap.buyer?.value" class="abstract-line">
         <div class="abstract-line-label">采购单位</div>
         <div class="abstract-line-value">
+          <span v-if="yyszbContent" class="ellipsis-2">{{
+            summaryMap.buyer?.value
+          }}</span>
           <span
+            v-else
             class="ellipsis-2"
             :class="{
-              'highlight-text underline clickable': summaryMap.buyer?.link || summaryMap.buyer?.isFreeView,
+              'highlight-text underline clickable':
+                summaryMap.buyer?.link || summaryMap.buyer?.isFreeView,
               'free-view': summaryMap.buyer?.isFreeView
             }"
             @click="goToBuyerPortrait(summaryMap.buyer, 'link')"
@@ -136,30 +141,38 @@
           </span>
         </div>
       </div>
-      <div class="abstract-line" v-if="summaryMap.buyerContactInfo?.value">
+      <div v-if="summaryMap.buyerContactInfo?.value" class="abstract-line">
         <div class="abstract-line-label">采购联系人 / 联系电话</div>
         <div class="abstract-line-value">
           <span
             class="abstract-line-value-text ellipsis-2"
-            @click="beforeDoCallPhone(summaryMap.buyerContactInfo?.tel, summaryMap.buyerContactInfo?.isFreeView)"
             :class="{
               'highlight-text': summaryMap.buyerContactInfo?.isFreeView,
               'free-view underline': summaryMap.buyerContactInfo?.isFreeView
             }"
+            @click="
+              beforeDoCallPhone(
+                summaryMap.buyerContactInfo?.tel,
+                summaryMap.buyerContactInfo?.isFreeView
+              )
+            "
           >
             {{ summaryMap.buyerContactInfo?.value }}
           </span>
           <span class="abstract-line-value-actions color-main">
             <span
+              v-if="
+                summaryMap.buyerContactInfo?.tel &&
+                !summaryMap.buyerContactInfo?.isFreeView
+              "
               class="abstract-line-value-action call-phone clickable"
-              v-if="summaryMap.buyerContactInfo?.tel && !summaryMap.buyerContactInfo?.isFreeView"
               @click="doCallPhone(summaryMap.buyerContactInfo?.tel)"
             >
-              <span class="j-icon icon-phone-blue"></span>
+              <span class="j-icon icon-phone-blue" />
             </span>
             <span
-              class="abstract-line-value-action more-tel clickable"
               v-if="summaryMap.buyer?.link && summaryMap.buyerContactInfo?.tel"
+              class="abstract-line-value-action more-tel clickable"
               @click="goToBuyerPortrait(summaryMap.buyer, 'tel')"
             >
               <span class="a-l-v-a-text">更多联系人</span>
@@ -168,7 +181,7 @@
           </span>
         </div>
       </div>
-      <div class="abstract-line" v-if="summaryMap.agency?.value">
+      <div v-if="summaryMap.agency?.value" class="abstract-line">
         <div class="abstract-line-label">招标代理机构</div>
         <div class="abstract-line-value">
           <span class="abstract-line-value-text ellipsis-2">
@@ -176,26 +189,34 @@
           </span>
         </div>
       </div>
-      <div class="abstract-line" v-if="summaryMap.agencyContactInfo?.value">
+      <div v-if="summaryMap.agencyContactInfo?.value" class="abstract-line">
         <div class="abstract-line-label">代理联系人 / 联系电话</div>
         <div class="abstract-line-value">
           <span
             class="abstract-line-value-text ellipsis-2"
-            @click="beforeDoCallPhone(summaryMap.agencyContactInfo?.tel, summaryMap.agencyContactInfo?.isFreeView)"
             :class="{
               'highlight-text': summaryMap.agencyContactInfo?.isFreeView,
               'free-view': summaryMap.agencyContactInfo?.isFreeView
             }"
+            @click="
+              beforeDoCallPhone(
+                summaryMap.agencyContactInfo?.tel,
+                summaryMap.agencyContactInfo?.isFreeView
+              )
+            "
           >
             {{ summaryMap.agencyContactInfo?.value }}
           </span>
           <span class="abstract-line-value-actions color-main">
             <span
+              v-if="
+                summaryMap.agencyContactInfo?.tel &&
+                !summaryMap.agencyContactInfo?.isFreeView
+              "
               class="abstract-line-value-action call-phone clickable"
-              v-if="summaryMap.agencyContactInfo?.tel && !summaryMap.agencyContactInfo?.isFreeView"
               @click="doCallPhone(summaryMap.agencyContactInfo?.tel)"
             >
-              <span class="j-icon icon-phone-blue"></span>
+              <span class="j-icon icon-phone-blue" />
             </span>
             <!-- 代理联系人不展示更多联系人 -->
             <!-- <span
@@ -208,8 +229,8 @@
           </span>
         </div>
       </div>
-      <div class="abstract-line-container" v-if="IsSunPublishContent">
-        <div class="abstract-line" v-if="summaryMap.signEndTime?.value">
+      <div v-if="IsSunPublishContent" class="abstract-line-container">
+        <div v-if="summaryMap.signEndTime?.value" class="abstract-line">
           <div class="abstract-line-label">报名截止日期</div>
           <div class="abstract-line-value">
             <span class="abstract-line-value-text">
@@ -217,7 +238,7 @@
             </span>
           </div>
         </div>
-        <div class="abstract-line" v-if="summaryMap.projectArea?.value">
+        <div v-if="summaryMap.projectArea?.value" class="abstract-line">
           <div class="abstract-line-label">项目地区</div>
           <div class="abstract-line-value">
             <span class="abstract-line-value-text">
@@ -226,8 +247,8 @@
           </div>
         </div>
       </div>
-      <div class="abstract-line-container" v-else>
-        <div class="abstract-line" v-if="summaryMap.signEndTime?.value">
+      <div v-else class="abstract-line-container">
+        <div v-if="summaryMap.signEndTime?.value" class="abstract-line">
           <div class="abstract-line-label">报名截止日期</div>
           <div class="abstract-line-value">
             <span class="abstract-line-value-text">
@@ -235,7 +256,7 @@
             </span>
           </div>
         </div>
-        <div class="abstract-line" v-if="summaryMap.bidEndTime?.value">
+        <div v-if="summaryMap.bidEndTime?.value" class="abstract-line">
           <div class="abstract-line-label">投标截止日期</div>
           <div class="abstract-line-value">
             <span class="abstract-line-value-text">
@@ -250,7 +271,10 @@
             {{ winner.isCandidate ? '中标候选人' : '中标单位' }}
           </div>
 
-          <div class="abstract-line-value" v-if="IsCustomTopNet">
+          <div
+            v-if="IsCustomTopNet || yyszbContent"
+            class="abstract-line-value"
+          >
             <span class="ellipsis-2">
               {{ winner.name }}
             </span>
@@ -269,30 +293,35 @@
             </span>
           </div>
         </div>
-        <div class="abstract-line" v-if="winner.personTel?.value">
+        <div v-if="winner.personTel?.value" class="abstract-line">
           <div class="abstract-line-label">中标联系人 / 联系电话</div>
           <div class="abstract-line-value">
             <span
               class="abstract-line-value-text ellipsis-2"
-              @click="beforeDoCallPhone(winner?.personTel?.tel, winner?.personTel?.isFreeView)"
               :class="{
                 'highlight-text': winner?.personTel?.isFreeView,
                 'free-view': winner?.personTel?.isFreeView
               }"
+              @click="
+                beforeDoCallPhone(
+                  winner?.personTel?.tel,
+                  winner?.personTel?.isFreeView
+                )
+              "
             >
               {{ winner?.personTel?.value }}
             </span>
             <span class="abstract-line-value-actions color-main">
               <span
-                class="abstract-line-value-action call-phone clickable"
                 v-if="winner?.personTel?.tel"
+                class="abstract-line-value-action call-phone clickable"
                 @click="doCallPhone(winner?.personTel?.tel)"
               >
-                <span class="j-icon icon-phone-blue"></span>
+                <span class="j-icon icon-phone-blue" />
               </span>
               <span
-                class="abstract-line-value-action more-tel clickable"
                 v-if="winner.id && winner?.personTel?.tel"
+                class="abstract-line-value-action more-tel clickable"
                 @click="goToEntPortrait(winner, 'tel')"
               >
                 <span class="a-l-v-a-text">更多联系人</span>
@@ -302,7 +331,7 @@
           </div>
         </div>
       </section>
-      <div class="abstract-line" v-if="summaryMap.bidAmount?.value">
+      <div v-if="summaryMap.bidAmount?.value" class="abstract-line">
         <div class="abstract-line-label">中标金额(元)</div>
         <div class="abstract-line-value">
           <span class="abstract-line-value-text">
@@ -310,7 +339,7 @@
           </span>
         </div>
       </div>
-      <div class="abstract-line" v-if="summaryMap.jfArea?.value">
+      <div v-if="summaryMap.jfArea?.value" class="abstract-line">
         <div class="abstract-line-label">交付地点</div>
         <div class="abstract-line-value">
           <span class="abstract-line-value-text">
@@ -320,7 +349,10 @@
       </div>
     </template>
     <ContentSummaryPurchaseList />
-    <div class="abstract-bottom-desc" :class="{ transparent: IsSunPublishContent }">
+    <div
+      class="abstract-bottom-desc"
+      :class="{ transparent: IsSunPublishContent }"
+    >
       <span>*以上摘要信息由剑鱼标讯智能提取,仅供参考。如有误差,请</span>
       <span class="highlight-text underline" @click="concatKf">联系客服</span>
       <span>进行处理。</span>
@@ -328,20 +360,21 @@
     <van-action-sheet
       v-model="sheet.telSelect"
       :actions="telSheetActions"
-      @select="telSheetSelect"
       cancel-text="取消"
       close-on-click-action
+      @select="telSheetSelect"
       @cancel="onSheetCancel"
     />
   </section>
 </template>
+
 <script>
-import { Icon, ActionSheet } from 'vant'
+import { ActionSheet, Icon } from 'vant'
 import { mapState } from 'vuex'
+import ContentSummaryPurchaseList from './ContentSummaryPurchaseList'
 import { LINKS } from '@/data'
 import { openAppOrWxPage } from '@/utils/'
 import { callPhone } from '@/utils/callFn'
-import ContentSummaryPurchaseList from './ContentSummaryPurchaseList'
 
 export default {
   name: 'ContentAbstract',
@@ -364,8 +397,7 @@ export default {
   data() {
     return {
       sheet: {
-        telSelect: false,
-
+        telSelect: false
       },
       telSheetActions: [
         // { name: '选项一', value: '1111' },
@@ -382,12 +414,15 @@ export default {
     summaryList() {
       return this.summary.list
     },
-    IsCustomTopNet () {
+    IsCustomTopNet() {
       return this.customSkip
     },
     IsSunPublishContent() {
       return this.content.IsSunPublishContent || false
     },
+    yyszbContent() {
+      return this.content.yyszbContent
+    },
     summaryMap() {
       const map = {}
       this.summaryList.forEach((s) => {
@@ -422,7 +457,7 @@ export default {
       openAppOrWxPage(LINKS.大会员超级订阅采购单位画像页面, {
         query: {
           entName: item.value,
-          anchor: anchor
+          anchor
         }
       })
     },
@@ -436,7 +471,7 @@ export default {
       openAppOrWxPage(LINKS.企业画像页面, {
         query: {
           eId: winner.id,
-          anchor: anchor
+          anchor
         }
       })
     },
@@ -447,16 +482,18 @@ export default {
     doCallPhone(tel) {
       if (!tel) return
       const replacer = /[,,、/]/
-      tel = tel + ''
+      tel = `${tel}`
       // 1. 检查是否能够分割
       const telArr = tel.split(replacer)
       if (Array.isArray(telArr) && telArr.length > 1) {
-        this.telSheetActions = telArr.filter((t) => !!t).map((t) => {
-          return {
-            name: t,
-            value: t
-          }
-        })
+        this.telSheetActions = telArr
+          .filter((t) => !!t)
+          .map((t) => {
+            return {
+              name: t,
+              value: t
+            }
+          })
         this.showTelSheet()
       } else {
         this.callPhone(tel)
@@ -547,7 +584,7 @@ export default {
   font-size: 12px;
   line-height: 20px;
   &.transparent {
-    background-color: #F5F6F7;
+    background-color: #f5f6f7;
   }
   .underline {
     white-space: nowrap;

+ 7 - 3
apps/mobile/src/views/article/components/OriginLink.vue

@@ -67,7 +67,7 @@ export default {
         show: false,
         see: false
       },
-      url: ''
+      o_url: ''
     }
   },
   computed: {
@@ -75,6 +75,9 @@ export default {
       content: (state) => state.article.mainModel.content
     }),
     ...mapGetters('user', ['isFree']),
+    url() {
+      return this.content.originalUrl || this.o_url
+    },
     toBCustom() {
       return this.IsCustomTopNet || this.yyszbContent
     },
@@ -86,6 +89,7 @@ export default {
     }
   },
   created() {
+    window.t = this
     this.eventBusListening()
   },
   methods: {
@@ -124,7 +128,7 @@ export default {
           loading.clear()
           if (code === 0 && data) {
             if (data.url) {
-              this.url = data.url
+              this.o_url = data.url
               this.openUrlAuth()
             } else if (data.status === 1) {
               this.leaveInfo('article_original_one', {
@@ -207,7 +211,7 @@ export default {
         } = await this.getText(true)
         if (code === 0 && data) {
           if (data.url) {
-            this.url = data.url
+            this.o_url = data.url
             this.openUrlAuth()
           } else {
             if (msg) {

+ 1 - 9
apps/mobile/src/views/search/result/bidding-custom/index.vue

@@ -142,9 +142,6 @@
               :time-fmt="getTimeFmt"
               :detail-list="item.detailList"
               :title="item.title"
-              :detail="
-                filters.selectType.includes('detail') ? item.detail : null
-              "
               :filetext_search="item.filetext_search"
               :fs_keys="item.fs_word"
               :time="item.dateTime"
@@ -154,11 +151,7 @@
               @click="goToDetail(item)"
             >
               <template #buyerText="{ item }">
-                <span
-                  class="buyer-item"
-                  @click.stop="toToBuyerProfile(item.text)"
-                  >{{ item.text }}</span
-                >
+                <span class="buyer-item">{{ item.text }}</span>
               </template>
               <template #winnerText="{ item }">
                 <span
@@ -166,7 +159,6 @@
                   :key="index"
                   class="winner-item j-splitter"
                   data-j-splitter="、"
-                  @click.stop="toToEntProfile(winner.id)"
                   >{{ winner.text }}</span
                 >
               </template>

+ 2 - 0
data/data-models/modules/article/transform/content.js

@@ -58,6 +58,8 @@ class CommonContentModel extends BaseModel {
     result.attachments = detailInfo.attachments || []
     // 原文链接是否显示
     result.originalShow = detailInfo.originalShow || false
+    result.originalUrl = detailInfo.originalHref || ''
+
     // 是否显示供应商报名
     result.recommendedService = baseInfo?.recommendedService === 1