|
@@ -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;
|
|
|
}
|
|
|
|