Browse Source

feat: 回滚订阅页面代码

zhangyuhan 1 năm trước cách đây
mục cha
commit
1c76c062b2
1 tập tin đã thay đổi với 78 bổ sung168 xóa
  1. 78 168
      apps/bigmember_pc/src/views/subscribe/SubPush.vue

+ 78 - 168
apps/bigmember_pc/src/views/subscribe/SubPush.vue

@@ -66,7 +66,7 @@
             ></span>
           </div>
         </TimeSelector>
-        <!-- <AreaSelector
+        <AreaSelector
           v-if="autoVt === 'f'"
           @onChange="changeArea"
           :beforeTabClick="beforeSelected"
@@ -151,8 +151,8 @@
           >
             信息类型:<span class="el-icon-jy-vip" v-if="showVipTag"></span>
           </div>
-        </InfoTypeSelector> -->
-        <!-- <PopSelector
+        </InfoTypeSelector>
+        <PopSelector
           @onChange="changeKeys"
           ref="keySelector"
           :beforeTabClick="beforeSelected"
@@ -165,8 +165,8 @@
           >
             关键词:<span class="el-icon-jy-vip" v-if="showVipTag"></span>
           </div>
-        </PopSelector> -->
-        <!-- <selectorCard cardType="line">
+        </PopSelector>
+        <selectorCard cardType="line">
           <div
             slot="header"
             class="s-header filter-label"
@@ -182,8 +182,8 @@
             :beforeChange="beforeSelected"
             @onChange="onFileStateChange"
           />
-        </selectorCard> -->
-        <!-- <selectorCard class="more-selector" cardType="line">
+        </selectorCard>
+        <selectorCard class="more-selector" cardType="line">
           <div
             slot="header"
             class="s-header filter-label"
@@ -198,26 +198,13 @@
             :beforeChange="beforeSelected"
             @getSelectStatus="getSelectStatus"
             @addUserPerson="addUserPerson"
-            @onKeywordChange="onKeywordChange"
             :person="showPerson"
-            :key-list="keyList"
             :show-vip-tag="showVipTag"
             :vt="vt"
             :info-source="infoSource"
             :view-status-list="viewStatusList"
           ></selectGroup>
-        </selectorCard> -->
-        <!--  更多筛选  -->
-        <search-schema-filter
-          v-model="filters"
-          :schema="moduleList"
-          :show-label="false"
-          :show-row-label="true"
-          style-type="row"
-          @change="doChangeFilter"
-        >
-          <span slot="row-label-text">更多筛选:</span>
-        </search-schema-filter>
+        </selectorCard>
       </div>
       <!-- 超前项目推荐&&市场分析报告 -->
       <div id="jyChartCom">
@@ -479,8 +466,6 @@
 
 <script>
 import { Button, Dialog, Drawer } from 'element-ui'
-import SearchSchemaFilter from '@/views/search/components/search-schema-filter.vue'
-import { subscribeMoreSchemaModule } from '@/views/subscribe/constant/search-filters'
 import CustomDialog from '@/components/dialog/Dialog.vue'
 import CollapseTransition from 'element-ui/lib/transitions/collapse-transition'
 import DrawerCard from '@/components/drawer/Drawer.vue'
@@ -511,9 +496,8 @@ import {
   dateFormatter,
   openSelfLink,
   replaceKeyword,
-  formatPrice,
+  formatPrice
 } from '@/utils/'
-import { InfoTypeTransform } from '@/utils/format/info-type-transform'
 import { mapState, mapGetters, mapActions } from 'vuex'
 import { difference } from 'lodash'
 import { tryCallHooks } from '@jianyu/easy-inject-qiankun'
@@ -547,8 +531,7 @@ export default {
     SelectGroup,
     [CollapseTransition.name]: CollapseTransition,
     SubscribeOverview,
-    AreaCityCountryCascader,
-    SearchSchemaFilter
+    AreaCityCountryCascader
   },
   data() {
     return {
@@ -564,8 +547,7 @@ export default {
         gray: true,
         table: true,
         collect: true,
-        push: true,
-        detail: true,
+        push: true
       },
       withFileList: [
         {
@@ -619,9 +601,9 @@ export default {
         area: '',
         selectTime: '',
         city: '',
-        buyerClass: {},
-        subtype: {},
-        industry: {},
+        buyerClass: '',
+        subtype: '',
+        industry: '',
         keyWords: '',
         fileExists: '',
         price: '',
@@ -660,9 +642,7 @@ export default {
       },
       // 员工订阅总览抽屉
       showOverviewDrawer: false,
-      isOpenedViewDetail: false,
-      keyList: [],
-      moduleList: []
+      isOpenedViewDetail: false
     }
   },
   computed: {
@@ -799,7 +779,6 @@ export default {
     this.getInitInfo()
     await this.getSubScribeKeyList({ vt: this.vt })
     await this.getNewSubScribeKeyList(this.vt)
-    this.moduleList = subscribeMoreSchemaModule
   },
   mounted() {
     this.initQuery()
@@ -810,32 +789,22 @@ export default {
       this.initKeyMap()
     }
   },
+  // 此方法移除,使用router-view上的:key="route.fullPath"代替
+  // async beforeRouteUpdate (to, from, next) {
+  //   // 页面路由发生变化需要重新执行
+  //   this.getParams()
+  //   this.getInitInfo()
+  //   await this.getSubScribeKeyList({ vt: this.vt })
+  //   this.$nextTick(() => {
+  //     this.initQuery()
+  //     this.initKeyMap()
+  //     // 重置所有筛选条件
+  //     this.resetAllSelector()
+  //     next()
+  //   })
+  // },
   methods: {
     ...mapActions('user', ['getEntInfo', 'getSubScribeKeyList']),
-    // 关键词数据
-    onKeywordChange(data) {
-      this.filters.keyWords = data.two_noall.join(',')
-      const resultObject = {}
-      data.oneAndtwo.forEach((item) => {
-        const [category, subItemsStr] = item.split('_')
-        if (!resultObject[category]) {
-          resultObject[category] = []
-        }
-
-        // 对于包含多个子项的字符串(如“钢结构 彩钢板 门窗”),进一步分割并添加到数组中
-        subItemsStr.split(' ').forEach((subItem) => {
-          if (subItem !== '') { // 忽略空字符串(可能因连续空格导致)
-            resultObject[category].push(subItem.trim())
-          }
-        })
-      })
-      this.filters.item = resultObject
-      this.$refs.pushList.doQuery(this.filters)
-    },
-    doChangeFilter(data) {
-      this.onAreaCityCountry(data)
-      this.doQuery()
-    },
     // 市场分析报告图表
     setChartData(newval) {
       const chartKeyArr = Object.keys(newval)
@@ -1088,44 +1057,11 @@ export default {
       }
     },
     initKeyMap() {
-      const tempKeys = []
-      tempKeys.push({
-        label: '全部',
-        value: '全部',
-        children: [
-          {
-            label: '全部',
-            value: '全部',
-            parent: '全部',
-            selected: false,
-            indeterminate: false,
-            disabled: true
-          }
-        ],
-        selected: false,
-        indeterminate: false,
-        disabled: false
-      })
-      let tempObj = {}
+      const tempKeys = {}
       if (this.vt === 'f') {
-        tempObj = {
-          label: '未分类',
-          value: '未分类',
-          children: [],
-          selected: false,
-          indeterminate: false,
-          disabled: false
-        }
+        let tempArr = []
+        // eslint-disable-next-line no-unused-expressions
         if (this.subscribeKeyList && this.subscribeKeyList.length > 0) {
-          let keyArr = []
-          keyArr.push({
-            label: '全部',
-            value: '全部',
-            parent: '未分类',
-            selected: false,
-            indeterminate: false,
-            disabled: false
-          })
           this.subscribeKeyList.forEach((s) => {
             if (s.key && s.key.length > 1) {
               if (Array.isArray(s.key)) {
@@ -1136,77 +1072,60 @@ export default {
             if (s?.appendkey && s?.key) {
               tempList = [s?.key + ' ' + s?.appendkey.join(' ')]
             }
-            let keyObj = {
-              label: tempList.join(' '),
-              value: tempList.join(' '),
-              parent: '未分类',
-              selected: false,
-              indeterminate: false,
-              disabled: false,
-              matchway: s?.matchway
+            const newList = []
+            if (s?.matchway === 1) {
+              // 模糊  不改变传入组件数据结构,拼接字符串作为标识
+              tempList.forEach((ele) => {
+                newList.push(ele + '_matchway_1')
+              })
+            } else {
+              tempList.forEach((ele) => {
+                newList.push(ele + '_matchway_0')
+              })
             }
-            keyArr.push(keyObj)
-            tempObj.children = keyArr
-            tempKeys.push(tempObj)
+            tempArr = tempArr.concat(newList)
           })
+          tempKeys['未分类'] = tempArr
         }
       } else {
         // eslint-disable-next-line no-unused-expressions
         console.log(this.subscribeKeyList)
         if (this.subscribeKeyList && this.subscribeKeyList.length > 0) {
           this.subscribeKeyList.forEach((v) => {
-            if (v.s_item) {
-              tempObj = {
-                label: v.s_item,
-                value: v.s_item,
-                children: [],
-                selected: false,
-                indeterminate: false,
-                disabled: false
-              }
-              if (v.a_key) {
-                let keyArr = []
-                keyArr.push({
-                  label: '全部',
-                  value: '全部',
-                  parent: v.s_item,
-                  selected: false,
-                  indeterminate: false,
-                  disabled: false
-                })
-                v.a_key.forEach((s) => {
-                  // 把不同关键词设置提交的格式差异数据统一,用空格作为分隔关键词放入数组 (已知大会员,企业订阅关键词格式为['aa bb cc'])
-                  if (s.key && s.key.length > 1 && this.vt === 'v') {
-                    // 超级订阅提交回显关键词处理
-                    if (Array.isArray(s.key)) {
-                      s.key = [s.key.join(' ')]
-                    }
-                  }
-                  let tempList = s?.key || []
-                  if (s?.appendkey && s?.key) {
-                    tempList = [s?.key + ' ' + s?.appendkey.join(' ')] // 有时会存在appendkey数组 同样处理为空格分隔的字符串放入数组
-                  }
-                  let keyObj = {
-                    label: tempList.join(' '),
-                    value: tempList.join(' '),
-                    parent: v.s_item,
-                    selected: false,
-                    indeterminate: false,
-                    disabled: false,
-                    notkey: s.notkey?.join(' '),
-                    matchway: s?.matchway
+            let tempArr = []
+            if (v.a_key) {
+              v.a_key.forEach((s) => {
+                // 把不同关键词设置提交的格式差异数据统一,用空格作为分隔关键词放入数组 (已知大会员,企业订阅关键词格式为['aa bb cc'])
+                if (s.key && s.key.length > 1 && this.vt === 'v') {
+                  // 超级订阅提交回显关键词处理
+                  if (Array.isArray(s.key)) {
+                    s.key = [s.key.join(' ')]
                   }
-                  keyArr.push(keyObj)
-                })
-                tempObj.children = keyArr
-              }
+                }
+                let tempList = s?.key || []
+                if (s?.appendkey && s?.key) {
+                  tempList = [s?.key + ' ' + s?.appendkey.join(' ')] // 有时会存在appendkey数组 同样处理为空格分隔的字符串放入数组
+                }
+                const newList = []
+                if (s.matchway === 1) {
+                  // 模糊  不改变传入组件数据结构,拼接字符串作为标识
+                  tempList.forEach((ele) => {
+                    newList.push(ele + '_matchway_1')
+                  })
+                } else {
+                  // 精准
+                  tempList.forEach((ele) => {
+                    newList.push(ele + '_matchway_0')
+                  })
+                }
+                tempArr = tempArr.concat(newList)
+              })
             }
-            tempKeys.push(tempObj)
+            tempKeys[v.s_item] = tempArr
           })
         }
       }
-      this.keyList = tempKeys
-      // this.$refs.keySelector.initDataMap(tempKeys)
+      this.$refs.keySelector.initDataMap(tempKeys)
     },
     initQuery() {
       this.$refs.timeSelector.setState({
@@ -1234,14 +1153,17 @@ export default {
     },
     changeIndustry(item) {
       this.filters.industry = this.formatIndustryMap(item).join(',')
+      this.doQuery()
     },
     changeBuyer(item) {
       this.filters.buyerClass = this.formatIndustryMap(item)
         .map((v) => v.split('_')[1])
         .join(',')
+      this.doQuery()
     },
     changeInfo(item) {
-      // this.filters.subtype = item.join(',')
+      this.filters.subtype = item.join(',')
+      this.doQuery()
     },
     onFileStateChange() {
       this.doQuery()
@@ -1256,14 +1178,8 @@ export default {
       this.doQuery()
     },
     doQuery() {
-      const filterBuyerClass = this.formatIndustryMap(this.filters.buyerClass).map((v) => v.split('_')[1]).join(',')
-      console.log(this.filters, 'filters')
-      const filterSubtype = InfoTypeTransform.mapToList(this.filters.subtype)
       const payload = {
         ...this.filters,
-        industry: this.formatIndustryMap(this.filters.industry).join(','),
-        buyerClass: filterBuyerClass,
-        subtype: filterSubtype.length > 0 ? filterSubtype.join(',') : '',
         vt: this.vt === 'f' ? '' : this.vt
       }
       this.$refs.pushList.doQuery(payload)
@@ -1629,12 +1545,6 @@ export default {
   background-color: #fff;
 
   ::v-deep {
-    .search-schema-filter-container {
-      padding: 0 32px;
-    }
-    .selector-card.s-line .selector-card-header{
-      min-width: 70px;
-    }
     .drawer-class {
       background: #f7f9fc;
     }
@@ -2066,7 +1976,7 @@ export default {
     justify-content: flex-end;
     font-size: 14px;
     white-space: nowrap;
-    min-width: 70px;
+    min-width: 98px;
     color: #686868;
   }