Эх сурвалжийг харах

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

zhangsiya 1 жил өмнө
parent
commit
affdcf8c45

+ 6 - 2
apps/bigmember_pc/src/components/filter-items/BasePowerLayout.vue

@@ -3,7 +3,7 @@
     <div class="base-power-module default-module">
       <slot name="default"></slot>
     </div>
-    <div class="base-power-module vip-module">
+    <div class="base-power-module vip-module" v-if='vipShow'>
       <slot name="vip"></slot>
       <div v-if="vipMask" class="vip-mask pointer" @click="clickMask"></div>
     </div>
@@ -17,6 +17,10 @@ export default {
     vipMask: {
       type: Boolean,
       default: false
+    },
+    vipShow: {
+      type: Boolean,
+      default: false
     }
   },
   methods: {
@@ -38,7 +42,7 @@ $gold: #c98f37;
 .base-power-module {
   display: flex;
   align-items: center;
-  padding: 4px 12px 4px 6px;
+  padding: 0 12px 0 6px;
   border-radius: 4px;
 }
 .default-module {

+ 6 - 2
apps/bigmember_pc/src/components/filter-items/SelectorWithBasePower.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="selector-with-base-power">
-    <BasePowerLayout @clickMask="clickMask" :vipMask="vipMask">
+    <BasePowerLayout @clickMask="clickMask" :vipMask="vipMask" :vipShow='vipShow'>
       <component
         :is="component"
         :value="value"
@@ -42,6 +42,10 @@ export default {
       type: Boolean,
       default: false
     },
+    vipShow: {
+      type: Boolean,
+      default: false
+    },
     commonConf: {
       type: Object,
       default: () => {}
@@ -53,7 +57,7 @@ export default {
     vipConf: {
       type: Object,
       default: () => {}
-    }
+    },
   },
   model: {
     prop: 'value',

+ 71 - 21
apps/bigmember_pc/src/views/search/bidding/components/search-bid-filter.vue

@@ -12,9 +12,14 @@ import {
 import { getEntSearchPower } from '@/api/modules'
 
 const {
+  isLogin,
+  isInApp,
+  isInWeb,
+  guideGoWorkSpace,
   filterState,
   doQuery,
-  showFilter
+  showFilter,
+  goLogin
 } = SearchBidModel
 
 
@@ -31,13 +36,40 @@ const searchBidMoreVipSchema = ref([])
 
 const conf = computed(() => {
   return {
-    vipUser: isVip.value,
-    oldUser: isOld.value
+    vipUser: isVip.value && isInApp.value,
+    oldUser: isOld.value && isInApp.value,
+    showVip: isLogin.value && isInApp.value
   }
 })
 
+
+// 获取用户信息
+async function getUserPowerInfo () {
+  const { error_code: code, data } = await getEntSearchPower()
+  if (code === 0 && data) {
+    const { entniche, member, vip,  isOld: old } = data
+    isVip.value = entniche || member || vip > 0
+    isOld.value = old
+    disposeSchema()
+  }
+}
+if(isLogin.value) {
+  getUserPowerInfo()
+} else {
+  disposeSchema()
+}
+
+function disposeSchema () {
+  SearchBidBaseSchema.value =  createSearchBidBaseSchema(conf.value)
+  SearchBidMoreSchema.value =  createSearchBidMoreSchema()
+
+  searchBidMoreFreeSchema.value = SearchBidMoreSchema.value?.filter((s) => !s.vipMark)
+  searchBidMoreVipSchema.value = SearchBidMoreSchema.value?.filter((s) => s.vipMark)
+}
+
 const customMoreSchema = computed(() => {
   return {
+    vipShow: true,
     commonConf: {
       showLabel: false,
       styleType: 'row'
@@ -52,23 +84,6 @@ const customMoreSchema = computed(() => {
     }
   }
 })
-// 获取用户信息
-async function getUserPowerInfo () {
-  const { error_code: code, data } = await getEntSearchPower()
-  if (code === 0 && data) {
-    const { entniche, member, vip,  isOld: old } = data
-    isVip.value = entniche || member || vip > 0
-    isOld.value = old
-
-    SearchBidBaseSchema.value =  createSearchBidBaseSchema(conf.value)
-    SearchBidMoreSchema.value =  createSearchBidMoreSchema()
-
-    searchBidMoreFreeSchema.value = SearchBidMoreSchema.value?.filter((s) => !s.vipMark)
-    searchBidMoreVipSchema.value = SearchBidMoreSchema.value?.filter((s) => s.vipMark)
-  }
-}
-
-getUserPowerInfo()
 
 function noPower() {
   $bus.$emit('search:filter:no-power')
@@ -77,11 +92,20 @@ function noPower() {
 function doChangeFilter() {
   doQuery()
 }
+
+
 </script>
 
 <template>
-  <el-collapse-transition >
+  <el-collapse-transition>
     <div class="search-bid-filter" v-show="showFilter">
+      <div class="guide-go-workspace" v-if="isInWeb">
+        最近五年数据查询以及更多筛选条件请
+        <span class="highlight-text">"</span>
+        <span class="cursor-button highlight-text" @click="guideGoWorkSpace">{{ isLogin ? '' : '登录后' }}进入工作台</span>
+        <span class="highlight-text">"</span>
+        检索
+      </div>
       <!--  标准筛选  -->
       <search-schema-filter
         v-model="filterState"
@@ -113,6 +137,7 @@ function doChangeFilter() {
             :vipConf="customMoreSchema.vipConf"
             v-model="filterState"
             vipMask
+            :vipShow="isInApp && isLogin"
             @clickMask="noPower"
             @change="doChangeFilter"
           ></SelectorWithBasePower>
@@ -135,6 +160,7 @@ function doChangeFilter() {
   }
 }
 .search-bid-filter {
+  position: relative;
   padding: 16px 32px;
   .wrap-line {
     ::v-deep {
@@ -143,5 +169,29 @@ function doChangeFilter() {
       }
     }
   }
+  .guide-go-workspace{
+    left: 345px;
+    position: absolute;
+    border-radius: 4px;
+    background: linear-gradient(270deg, rgba(42, 190, 209, 0.24) 1.5%, rgba(42, 190, 209, 0.12) 97.45%);
+    padding: 2px 8px;
+    color: #1D1D1D;
+    font-size: 16px;
+    font-style: normal;
+    font-weight: 400;
+    line-height: 22px;
+
+    .highlight-text{
+      color: #2ABED1;
+      font-weight: 700;
+      font-family: -apple-system, system-ui, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
+    }
+    .cursor-button{
+      text-decoration-line: underline;
+      background: transparent;
+      padding: 0;
+      cursor: pointer;
+    }
+  }
 }
 </style>

+ 3 - 0
apps/bigmember_pc/src/views/search/bidding/constant/search-filters.js

@@ -32,6 +32,7 @@ const moreFiltersNeedVipKeyList = [
 function createSearchBidBaseSchema(conf = {}) {
   const vipUser = conf.vipUser || false
   const oldUser = conf.oldUser || false
+  const showVip = conf.showVip || false
 
   // 发布时间
   const publishTimeExpandFree = {
@@ -39,6 +40,7 @@ function createSearchBidBaseSchema(conf = {}) {
     props: {
       component: SearchTimeScopeSelector,
       vipMask: true,
+      vipShow: showVip,
       freeConf: {
         options: ['lately7', 'lately30', 'sinceLastYear'],
       },
@@ -63,6 +65,7 @@ function createSearchBidBaseSchema(conf = {}) {
   const searchScopeExpandFree = {
     component: SelectorWithBasePower,
     props: {
+      vipShow: showVip,
       component: SearchScopeSelector,
       options: defaultScopeOptions,
       freeConf: {

+ 70 - 17
apps/bigmember_pc/src/views/search/bidding/model/base.js

@@ -52,6 +52,8 @@ export default function () {
 
   // 是否在工作台内
   const isInApp = ref(InContainer.inApp)
+  const isInWeb = ref(InContainer.inWeb)
+
   // 是否是渠道商
   const cooperateCode = ref(false)
   // 一切都好渠道商,是否是渠道商
@@ -453,6 +455,18 @@ export default function () {
     showFilter.value = !showFilter.value
   }
 
+  // 组合好的筛选条件
+  function packageFilter () {
+    const originParams = Object.assign(
+      {
+        searchGroup: activeTab.value,
+      },
+      filterState.value,
+      inputKeywordsState.value
+    )
+    return originParams
+  }
+
   /******开通超级订阅弹窗start**********/
 
   // 开通超级订阅弹窗配置
@@ -486,6 +500,44 @@ export default function () {
 
   /******开通超级订阅弹窗end**********/
 
+  function guideGoWorkSpace () {
+    if (!isLogin.value) {
+      goLogin()
+      return
+    }
+    goWorkSpace()
+  }
+  // 跳转到工作台
+  function goWorkSpace () {
+    const goHref_ = location.origin + '/jylab/supsearch/index.html'
+    // 组件筛选条件
+    const originParams = packageFilter()
+    sessionStorage.setItem('search:bidding:filter', JSON.stringify(originParams))
+    window.location.replace(location.origin + '/swordfish/page_big_pc/search/bidding?goback=true')
+
+    // window.location.replace(`/page_workDesktop/work-bench/page?link=${encodeURIComponent(goHref_ + 'goback=')}`)
+  }
+
+  // onMounted(() => {
+  //   if(useRoute().query.goback) {
+  //     goBackFilter()
+  //   }
+  // })
+  //
+  // // 回显
+  // function goBackFilter () {
+  //   const sFilter = sessionStorage.getItem('search:bidding:filter')
+  //   const backFilter = sFilter ? JSON.parse(sFilter) : null
+  //   if(backFilter) {
+  //     that.$nextTick(() => {
+  //       restoreFilter(backFilter, 'pageBack')
+  //       sessionStorage.removeItem('search:bidding:filter')
+  //     })
+  //   }
+  // }
+
+
+
   /** 保存、重置筛选条件部分 start ****/
 
   const disposeFilterActionModel = saveFilterActionsModel()
@@ -503,13 +555,7 @@ export default function () {
    * 保存筛选条件
    */
   async function onSaveFilter() {
-    const originParams = Object.assign(
-      {
-        searchGroup: activeTab.value,
-      },
-      filterState.value,
-      inputKeywordsState.value
-    )
+    const originParams = packageFilter()
     const config = { filter: originParams }
     await checkFilterPass(config)
   }
@@ -537,16 +583,21 @@ export default function () {
           })
         })
         .catch(() => {
-          restoreFilter(item)
+          restoreFilter(item, 'saveBack')
           historyFilterDialogVisible.value = false
         })
     } else {
-      restoreFilter(item)
+      restoreFilter(item, 'saveBack')
     }
   }
-  function restoreFilter (viewFilter) {
+  function restoreFilter (viewFilter, type) {
     onResetFilter()
-    const resultFilter = FilterHistoryAjaxModelRestore.formatAll(viewFilter)
+    let resultFilter = {}
+    if(type === 'saveBack') {
+      resultFilter = FilterHistoryAjaxModelRestore.formatAll(viewFilter)
+    } else {
+      resultFilter = viewFilter
+    }
     filterState.value = {
       publishTime: resultFilter.publishTime,
       selectType: resultFilter.selectType,
@@ -575,7 +626,9 @@ export default function () {
       selectMoreKey: resultFilter.additionalWords?.length > 0
     }
     doChangeTab({ key: resultFilter.searchGroup })
-    historyFilterDialogVisible.value = false
+    if(type === 'saveBack') {
+      historyFilterDialogVisible.value = false
+    }
     doQuery()
   }
 
@@ -656,11 +709,8 @@ export default function () {
       goLogin()
       return
     }
-    const originParams = Object.assign(
-      {},
-      filterState.value,
-      inputKeywordsState.value
-    )
+
+    const originParams = packageFilter()
     const params = {
       listState: listState,
       selectCheckboxCount: selectCheckboxCount.value,
@@ -833,10 +883,13 @@ export default function () {
   return {
     isLogin,
     isInApp,
+    isInWeb,
     inResourceBIIframe,
     inBIPropertyIframe,
     inInjectBI,
     isInBI,
+    goLogin,
+    guideGoWorkSpace,
     cooperateCode,
     list,
     searchModelOptions,

+ 1 - 1
apps/bigmember_pc/src/views/search/components/SearchHeader.vue

@@ -95,7 +95,7 @@ export default {
     },
     onSearch() {
       this.$emit('search')
-      this.setUrlQuery()
+      // this.setUrlQuery()
     },
     setUrlQuery: function () {
       const isSame = this.searchQuery.keywords === this.searchContent