فهرست منبع

Merge branch 'dev/v1.0.62_zsy' of jianyu/web into feature/v1.0.62

zhangsiya 11 ماه پیش
والد
کامیت
f8643edf6b

+ 7 - 1
apps/mobile/src/components/home/list.vue

@@ -185,6 +185,12 @@ export default {
     [Divider.name]: Divider,
     bidStatusNode
   },
+  props: {
+    showSetTip: {
+      type: Boolean,
+      default: false
+    }
+  },
   data() {
     return {
       info: {
@@ -224,7 +230,7 @@ export default {
       return 'yyyy-MM-dd'
     },
     showToSettingTip() {
-      return this.showTip === 2
+      return this.showTip === 2 && this.showSetTip
     },
     ...mapGetters('user', ['isLogin', 'isFree'])
   },

+ 35 - 24
apps/mobile/src/components/message/message-card.vue

@@ -1,8 +1,14 @@
 <template>
   <div class="message-bg" v-if="list.length">
     <div class="message-main clickable">
-      <div class="message-unread" v-if="msgData.unread > 0">
-        {{ setUnRead }}条未读
+      <div class="card-title">
+        <span>最新消息</span>
+        <span class="message-unread" v-if="msgData.unread > 0">
+          {{ setUnRead }}
+        </span>
+        <div class="icon-box" @click="goMore">
+          <AppIcon name="youbian" size="14" color="#c0c4cc"/>
+        </div>
       </div>
       <div
         class="message-card"
@@ -31,9 +37,6 @@
           </div>
         </div>
       </div>
-      <div class="icon-box" @click="goMore">
-        <AppIcon name="youbian" />
-      </div>
     </div>
   </div>
 </template>
@@ -65,7 +68,7 @@ export default {
         rollingTiming: 10
       },
       offsetHeight: 0,
-      groupHeight: 26,
+      groupHeight: 20,
       msgListParams: {
         offset: 1,
         isColumn: true,
@@ -113,7 +116,7 @@ export default {
       return decimalValue ? decimalValue[0] : ''
     },
     startScrolling() {
-      const offsetY = 24
+      const offsetY = 20
       const offsetYvw = px2viewport(offsetY)
       const offsetYPx = vw2px(offsetYvw)
       let listItem
@@ -248,23 +251,31 @@ export default {
   display: flex;
   flex-direction: column;
   justify-content: center;
-  padding: 15px 0 9px;
+  padding: 6px 0 10px;
   height: 100%;
   background-color: #fff;
   border-radius: 12px;
   overflow: hidden;
   box-shadow: 0px 2px 8px rgba(54, 147, 179, 0.05);
+  .card-title{
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    position: relative;
+    margin-bottom: 4px;
+    font-size: 12px;
+    line-height: 18px;
+    color: #171826;
+    padding: 0 12px;
+  }
   .message-unread {
-    position: absolute;
-    left: 0;
-    top: 0;
-    padding: 0 10px;
-    width: fit-content;
-    line-height: 15px;
+    line-height: 14px;
+    padding: 1px 4px 0 4px;
+    border-radius: 10px;
     background: #fb483d;
     color: #fff;
-    border-radius: 40px 0 40px 0;
-    font-size: 11px;
+    font-size: 10px;
+    margin-right: 16px;
   }
 }
 .message-card {
@@ -273,8 +284,8 @@ export default {
   align-items: flex-start;
   justify-content: space-between;
   background-color: #ffffff;
-  padding: 0 16px;
-  height: 48px;
+  padding: 0 12px;
+  height: 40px;
   overflow: hidden;
   &.have-one {
     align-items: center;
@@ -287,8 +298,8 @@ export default {
     display: flex;
     flex-direction: row;
     align-items: center;
-    height: 24px;
-    line-height: 24px;
+    height: 20px;
+    line-height: 18px;
     &.visited {
       .dot {
         background-color: #c0c4cc;
@@ -306,20 +317,20 @@ export default {
       flex-shrink: 0;
       font-weight: 700;
       font-size: 12px;
-      line-height: 24px;
+      line-height: 18px;
       color: #171826;
       margin-right: 12px;
     }
     .title {
       font-size: 11px;
-      line-height: 24px;
+      line-height: 18px;
       color: #171826;
       margin-right: 12px;
     }
     .time {
       flex-shrink: 0;
       font-size: 11px;
-      line-height: 24px;
+      line-height: 18px;
       color: #9b9ca3;
     }
   }
@@ -330,7 +341,7 @@ export default {
 }
 .icon-box {
   position: absolute;
-  top: 50%;
+  top: 53%;
   right: 12px;
   transform: translateY(-50%);
   z-index: 2;

+ 15 - 6
apps/mobile/src/components/subscribe/SubscribeMoreFilters.vue

@@ -4,7 +4,7 @@
       <JCell class="more-filter-item" title="金额">
         <template #title v-if="disabledFilters">
           <span class="mr-6">金额</span>
-          <van-tag plain round type="danger" @click="onNoPower">开通</van-tag>
+          <span class="v-vip-icon" @click="onNoPower"></span>
         </template>
         <template #label>
           <MoneyGroupCustomInput
@@ -25,7 +25,7 @@
       >
         <template #title v-if="disabledFilters">
           <span class="mr-6">采购单位类型</span>
-          <van-tag plain round type="danger">开通</van-tag>
+          <span class="v-vip-icon"></span>
         </template>
       </van-cell>
       <van-cell
@@ -39,7 +39,7 @@
       >
         <template #title v-if="disabledFilters">
           <span class="mr-6">关键词</span>
-          <van-tag plain round type="danger">开通</van-tag>
+          <span class="v-vip-icon"></span>
         </template>
       </van-cell>
       <van-cell
@@ -53,13 +53,13 @@
       >
         <template #title v-if="disabledFilters">
           <span class="mr-6">公告类型</span>
-          <van-tag plain round type="danger">开通</van-tag>
+          <span class="v-vip-icon"></span>
         </template>
       </van-cell>
       <JCell class="more-filter-item" title="附件">
         <template #title v-if="disabledFilters">
           <span class="mr-6">附件</span>
-          <van-tag plain round type="danger" @click="onNoPower">开通</van-tag>
+          <span class="v-vip-icon" @click="onNoPower"></span>
         </template>
         <template #label>
           <CheckboxGroup
@@ -73,7 +73,7 @@
       <JCell class="more-filter-item" title="查看状态">
         <template #title v-if="disabledFilters">
           <span class="mr-6">查看状态</span>
-          <van-tag plain round type="danger" @click="onNoPower">开通</van-tag>
+          <span class="v-vip-icon" @click="onNoPower"></span>
         </template>
         <template #label>
           <CheckboxGroup
@@ -621,4 +621,13 @@ export default {
     border-bottom: 1px solid $border_color_3;
   }
 }
+.v-vip-icon{
+  display: inline-block;
+  width: 14px;
+  height: 14px;
+  margin-left: 2px;
+  background: url(@/assets/image/icon/vip/v_icon.png) no-repeat center;
+  background-size: contain;
+  margin-bottom: 2px;
+}
 </style>

+ 6 - 0
apps/mobile/src/ui/drop-filter/index.vue

@@ -28,6 +28,10 @@
               }"
             >
               <span>{{ option.menu.title }}</span>
+              <slot
+                v-if="option.menu.slot"
+                :name="option.menu.slot"
+                :option="option"></slot>
               <div v-if="option.menu.tag" class="jy-tag">
                 {{ option.menu.tag }}
               </div>
@@ -405,6 +409,8 @@ export default {
       }
     }
     &-title {
+      display: flex;
+      align-items: center;
       font-weight: 500;
       font-size: 14px;
       &.selected {

+ 1 - 1
apps/mobile/src/views/search/middle/bidding/index.vue

@@ -111,7 +111,7 @@ export default {
         {
           id: '2',
           label: '超前项目',
-          // badge: '推荐'
+          badge: '推荐'
         },
         {
           id: '4',

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

@@ -523,7 +523,7 @@ export default {
             id: '2',
             title: '超前项目',
             name: 'advanced',
-            // recommendTipText: '推荐'
+            recommendTipText: '推荐'
           },
           {
             id: '3',

+ 9 - 2
apps/mobile/src/views/tabbar/Home.vue

@@ -46,7 +46,7 @@
       <!-- 消息 -->
       <message-card></message-card>
       <!-- 最新标讯 -->
-      <home-list ref="list" @bottomSetTip="bottomSetTip"></home-list>
+      <home-list ref="list" @bottomSetTip="bottomSetTip" :show-set-tip="showSetTip"></home-list>
     </div>
     <!-- 侧边广告位 -->
     <ad-side :config="AD.side" :scroll-status="sideStatus" :bottom-position="hasBottomSetTip ? '22%' :'18%'"></ad-side>
@@ -191,7 +191,8 @@ export default {
       showNextFullPop: false,
       showBottomPop: false
     },
-    hasBottomSetTip: false
+    hasBottomSetTip: false,
+    showSetTip: false
   }),
   computed: {
     ...mapGetters('user', ['isLogin']),
@@ -432,6 +433,12 @@ export default {
     onScroll(e) {
       const scrollTop = e.target.scrollTop
       this.sideStatus = scrollTop < 60
+      // P599需求,滚动到最新咨询展示
+      if(this.$refs.list) {
+        const listRect = this.$refs.list.$el.getBoundingClientRect() || {}
+        const listTop = listRect.top
+        this.showSetTip = listTop <= scrollTop
+      }
     },
     clickHotTag(item) {
       this.toSearchAutoSearch(item.label)

+ 15 - 4
apps/mobile/src/views/tabbar/Subscribe.vue

@@ -71,6 +71,9 @@
         @confirm="onFilterConfirm"
         @cancel="onFilterCancel"
       >
+        <template #vipIcon>
+          <span class="v-vip-icon"></span>
+        </template>
         <template v-slot:more>
           <SubscribeMoreFilters
             :disabledFilters="disabledFilters"
@@ -764,7 +767,7 @@ export default {
           },
           menu: {
             title: '地区',
-            tag: '开通',
+            slot: 'vipIcon',
             hooks: {
               click: this.dropdownMenuItemClick
             }
@@ -788,7 +791,7 @@ export default {
           },
           menu: {
             title: '行业',
-            tag: '开通',
+            slot: 'vipIcon',
             hooks: {
               click: this.dropdownMenuItemClick
             }
@@ -1414,7 +1417,7 @@ export default {
       // area dropdownItem禁用
       this.dropFilterOptions[1].props.disabled = p
       // dropdownItem禁用标签
-      this.dropFilterOptions[1].menu.tag = p ? '开通' : ''
+      // this.dropFilterOptions[1].menu.tag = p ? '开通' : ''
       this.dropFilterOptions[1].menu.hooks.click = p
         ? this.dropdownMenuItemClick
         : this.noop
@@ -1424,7 +1427,7 @@ export default {
       // industry dropdownItem禁用
       this.dropFilterOptions[2].props.disabled = p
       // dropdownItem禁用标签
-      this.dropFilterOptions[2].menu.tag = p ? '开通' : ''
+      // this.dropFilterOptions[2].menu.tag = p ? '开通' : ''
       this.dropFilterOptions[2].menu.hooks.click = p
         ? this.dropdownMenuItemClick
         : this.noop
@@ -3136,4 +3139,12 @@ export default {
 .mt-24 {
   margin-top: 24px;
 }
+.v-vip-icon{
+  display: inline-block;
+  width: 14px;
+  height: 14px;
+  margin-left: 2px;
+  background: url(@/assets/image/icon/vip/v_icon.png) no-repeat center;
+  background-size: contain;
+}
 </style>