Browse Source

feat:新增移动端商机情报详情页

zhangsiya 1 year ago
parent
commit
68f36773ae

+ 1 - 1
apps/bigmember_pc/src/views/business-opp/detail.vue

@@ -113,7 +113,7 @@ export default {
     },
     },
     // 完善信息
     // 完善信息
     completeInfo () {
     completeInfo () {
-     window.open('https://jybx2-webtest.jydev.jianyu360.com/swordfish/frontPage/user/sess/set_favorite?source=business', '_blank')
+     window.open('/swordfish/frontPage/user/sess/set_favorite?source=business', '_blank')
     },
     },
     // 联系客服
     // 联系客服
     openCustomer() {
     openCustomer() {

+ 12 - 0
apps/mobile/src/api/modules/bigmember.js

@@ -101,3 +101,15 @@ export function projectDetailApi (data) {
     data
     data
   })
   })
 }
 }
+
+// 检查是否关注了项目
+export function projectFollowCheck (data) {
+  data = qs.stringify(data)
+  return request({
+    url: '/bigmember/follow/project/check',
+    method: 'post',
+    data
+  })
+}
+
+

BIN
apps/mobile/src/assets/image/business/tip-bg.png


BIN
apps/mobile/src/assets/image/icon/icon-phone.png


BIN
apps/mobile/src/assets/image/icon/icon-right2.png


+ 12 - 0
apps/mobile/src/router/modules/business.js

@@ -0,0 +1,12 @@
+// 商机情报
+export default [
+  {
+    path: '/opportunity/:id',
+    name: 'business-opp-detail',
+    component: () => import('@/views/businessOpp/Detail.vue'),
+    meta: {
+      header: true,
+      title: '公告信息'
+    }
+  }
+]

+ 261 - 0
apps/mobile/src/views/businessOpp/Detail.vue

@@ -0,0 +1,261 @@
+<template>
+<!--  商机情报详情页-->
+  <div class="j-container business-detail-page">
+    <div class="j-main">
+      <div class="business-header">
+        <div class="title">【商机情报】国家广播电视总局广播电视卫星直播管理中心异地灾备数据中心应用软件维护项目中标公告</div>
+        <div class="business-sub-row">
+          <div class="common-time">
+            {{ dateFromNow(new Date('2024-01-01').getTime()) }}
+          </div>
+          <div class="business_option">
+            <div class="potential-col">
+              提前介入,把握商机,戳我查看<em class="handle-em" @click="goPotentialPage">潜在项目预测</em><i class="icon_right"></i>
+            </div>
+          </div>
+        </div>
+      </div>
+      <section class="collect-info-tip">
+        【商机情报】想获得更精准商机情报?立即<em class="handle-em" @click="completeInfo">完善信息</em>。您也可以<em class="handle-em" @click="openCustomer">联系客服</em>进行相关咨询。
+      </section>
+      <div class="business-content">
+        <section class="poten-box">
+          <div class="box-title">
+            <span class="left-line"></span>
+            <span>预测项目</span>
+          </div>
+          <div class="box-con">
+            <div class="unit_row">
+              <span class="unit_label">采购单位</span>
+              <span class="list_pur_name">{{ info.buyer || '北京市工商行政管理局朝阳分局' }}</span>
+            </div>
+            <div class="unit_row">
+              <span class="unit_label"><span class="point"></span>预测线索</span>
+              <span class="poten_name">{{ info.title ||  '淮安市高级职业技术学校台式电脑采购项目招标公告'}}</span>
+            </div>
+            <div class="unit_row mt8">
+              <span class="unit_label"><span class="point"></span>预测采购内容</span>
+              <span class="poten_name">
+              <span>{{ info.purchasing || '该单位将采购钢筋、水泥、隔热板、大理石砖、玻璃、木材、钢筋、水泥、隔热板、大理石砖、玻璃' }}</span>
+            </span>
+            </div>
+            <div class="unit_row mt8">
+              <span class="unit_label">
+                <span class="point"></span>预测采购时间:
+                <span style="color: #1d1d1d;">{{info.yuceendtime || '2023-01-01' }}</span>
+              </span>
+            </div>
+          </div>
+        </section>
+        <section class="similar-box mt8">
+          <div class="box-title">
+            <span class="left-line"></span>
+            <span>同类项目</span>
+          </div>
+          <div class="box-con">
+            <div class="unit_row">
+              <span class="unit_label">同类项目:</span>
+              <span class="unit_name similar_project clickable" @click="goProjectDetail(info.p_id,info.p_orther)">
+                {{ info.p_orther || '关于泉州市第一医院内HIS系统改造项目'}}
+                <van-icon name="arrow" color="#C0C4CC"/>
+              </span>
+            </div>
+            <div class="unit_row mt8">
+              <span class="unit_label">联系人:</span>
+              <span class="unit_name">{{ info.p_person || '王女士'}}</span>
+            </div>
+            <div class="unit_row mt8">
+              <span class="unit_label">联系电话:</span>
+              <span class="unit_name phone">
+                {{ info.p_phone || '15111111111' }}
+                <i class="icon_phone" @click="telHandle(info.p_phone)"></i>
+              </span>
+            </div>
+          </div>
+        </section>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { dateFromNow, callPhone } from '@/utils'
+import { projectFollowCheck } from '@/api/modules/'
+import { Icon } from 'vant'
+import { mapGetters } from 'vuex'
+export default {
+  components: {
+    [Icon.name]: Icon
+  },
+  data () {
+    return {
+      info: {}
+    }
+  },
+  computed: {
+    ...mapGetters('user', [
+      'power',
+      'isMember',
+    ]),
+  },
+  methods: {
+    dateFromNow,
+    // 跳转潜在项目预测(无权限用户引导大会员留资,大会员引导跳转到潜在项目预测页面。)
+    goPotentialPage () {
+      if(this.isMember) {
+        window.location.href = '/jyapp/big/page/forecast_list'
+      } else {
+        this.$leaveInfo.toLeaveInfoPage({
+          source: 'member_freeuse'
+        })
+      }
+    },
+    completeInfo () {
+      location.href = '/jy_mobile/uersales/newuser?source=business'
+    },
+    // 查看项目详情
+    async goProjectDetail (id, pName) {
+      const params = {
+        sid: id
+      }
+      const  { error_code: code, data } = await projectFollowCheck(params)
+      if(code === 0) {
+        const obj = {
+          fid: data.fig ? data.fig : '',
+          sid: id
+        }
+        if(this.power && this.power.indexOf(14) > -1) {
+          sessionStorage.setItem('bigvip-fid', JSON.stringify(obj))
+          location.href = "/jyapp/big/page/pro_follow_detail"
+        } else {
+          location.href = `/jyapp/follow/photo/${id}__${pName}__`
+        }
+      }
+    },
+    // 电话
+    telHandle (phone) {
+      callPhone(phone)
+    },
+    // 联系客服
+    openCustomer () {
+      if (this.$envs.inWX) {
+        window.location.href = '/big/wx/page/customer'
+      } else {
+        window.location.href = '/jyapp/free/customer'
+      }
+    }
+
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+  .business-detail-page{
+    .business-header{
+      background: #fff;
+      padding: 24px 16px 16px;
+      margin-bottom: 8px;
+
+      .title{
+        font-size:20px;
+        line-height:30px;
+        color: #171826;
+        margin-bottom:12px;
+      }
+      .business-sub-row{
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+
+        .common-time{
+          font-size:12px;
+          color: #9B9CA3;
+        }
+        .potential-col {
+          padding: 4px 8px;
+          border-radius: 4px;
+          border: 0.5px solid #87DFEA;
+          background: #EAF8FA;
+          font-size:12px;
+        }
+        .icon_right {
+          display: inline-block;
+          width: 10px;
+          height: 10px;
+          background: url('@/assets/image/icon/icon-right2.png') no-repeat center;
+          background-size: contain;
+          margin-left: 4px;
+        }
+      }
+    }
+    .collect-info-tip {
+      font-size:13px;
+      color: #1D1D1D;
+      line-height:20px;
+      padding: 8px 47px 8px 16px;
+      background: #fff url('@/assets/image/business/tip-bg.png')  no-repeat center right;
+      background-size:contain;
+      margin-bottom:8px;
+    }
+    .business-content{
+      .poten-box, .similar-box{
+        background: #fff;
+      }
+      .box-title{
+        padding: 16px 0 6px 16px;
+        font-size:18px;
+        line-height: 20px;
+        color: #171826;
+        display: flex;
+        align-items: center;
+        .left-line{
+          display: inline-block;
+          background: #2ABED1;
+          width: 3px;
+          height:16px;
+          border-radius: 11px;
+          margin-right: 8px;
+        }
+      }
+      .box-con{
+        padding: 16px;
+        font-size:14px;
+        color: #171826;
+        line-height:20px;
+        .unit_row {
+          display: flex;
+          flex-direction: column;
+        }
+        .unit_label{
+          font-size: 12px;
+          line-height: 18px;
+          color: #9B9CA3;
+        }
+        .similar_project{
+          display: flex;
+          justify-content: space-between;
+          align-items: center;
+        }
+        .phone{
+          display: flex;
+          align-items: center;
+        }
+        .icon_phone{
+          display: inline-block;
+          width: 24px;
+          height: 24px;
+          background: url('@/assets/image/icon/icon-phone.png') no-repeat center;
+          background-size: contain;
+          margin-left: 12px;
+        }
+      }
+    }
+    .handle-em{
+      color:#2ABED1 !important;
+    }
+    .mt8{
+      margin-top:8px;
+    }
+  }
+
+</style>

+ 6 - 3
apps/mobile/src/views/uersales/newuser/index.vue

@@ -5,7 +5,7 @@
       <div class="title-box">
       <div class="title-box">
         <div class="title_top">
         <div class="title_top">
           <h5 class="page-title">选择您的业务标签</h5>
           <h5 class="page-title">选择您的业务标签</h5>
-          <div class="jumpto_btn" @click.stop="postNewUerData(false)">
+          <div v-if="!urlSource" class="jumpto_btn" @click.stop="postNewUerData(false)">
             跳过
             跳过
           </div>
           </div>
         </div>
         </div>
@@ -71,7 +71,8 @@
     </div>
     </div>
     <div class="j-button-group j-footer">
     <div class="j-button-group j-footer">
       <button tag="button" class="j-button-confirm" @click.stop="postNewUerData(true)">
       <button tag="button" class="j-button-confirm" @click.stop="postNewUerData(true)">
-        开启剑鱼之旅
+
+        {{!!urlSource ? '提交' : '开启剑鱼之旅'}}
       </button>
       </button>
     </div>
     </div>
     <Dialog :title="dparam.setTitle" :show-dialog="dparam.setDialog" @cancel="cancel" @confirm="confirm"
     <Dialog :title="dparam.setTitle" :show-dialog="dparam.setDialog" @cancel="cancel" @confirm="confirm"
@@ -166,7 +167,8 @@ export default {
       value: '去开启',
       value: '去开启',
       label: '根据设置的推送时间发送APP消息,APP提醒设置请前往APP操作'
       label: '根据设置的推送时间发送APP消息,APP提醒设置请前往APP操作'
     },
     },
-    timer: null
+    timer: null,
+    urlSource: '', // 路由来源
   }),
   }),
   computed: {
   computed: {
     showApp () {
     showApp () {
@@ -179,6 +181,7 @@ export default {
   created () {
   created () {
     callHideTab(0)
     callHideTab(0)
     this.getUserInfoApi()
     this.getUserInfoApi()
+    this.urlSource = this.$route.query?.source || ''
   },
   },
   mounted () {
   mounted () {
     callHideTab(0)
     callHideTab(0)