|
@@ -5,7 +5,7 @@
|
|
|
:close-on-click-outside="false"
|
|
|
>
|
|
|
<van-dropdown-item
|
|
|
- ref="scopeDropdown"
|
|
|
+ ref="labelDropdown"
|
|
|
:title-class="dropdownMenuHighlight('label')"
|
|
|
title="个人标签"
|
|
|
get-container="body"
|
|
@@ -21,48 +21,41 @@
|
|
|
</DropdownLayout>
|
|
|
</van-dropdown-item>
|
|
|
<van-dropdown-item
|
|
|
- ref="industryDropdown"
|
|
|
- :title-class="dropdownMenuHighlight('industry')"
|
|
|
+ ref="selectTimeDropdown"
|
|
|
+ :title-class="dropdownMenuHighlight('selectTime')"
|
|
|
title="收藏日期"
|
|
|
get-container="body"
|
|
|
- @open="doOpen('industry')"
|
|
|
- @opened="openedDropDown('industry')"
|
|
|
+ @open="doOpen('selectTime')"
|
|
|
+ @opened="openedDropDown('selectTime')"
|
|
|
>
|
|
|
<DropdownLayout
|
|
|
- @cancel="onReset('industry')"
|
|
|
- @confirm="onConfirm('industry')"
|
|
|
+ @cancel="onReset('selectTime')"
|
|
|
+ @confirm="onConfirm('selectTime')"
|
|
|
>
|
|
|
- <!-- <IndustrySidebar
|
|
|
- ref="industrySelector"
|
|
|
- v-model="cacheMoreFilters.industry"
|
|
|
- /> -->
|
|
|
+ <DateTimeList
|
|
|
+ ref="selectTimeSelector"
|
|
|
+ @checkboxClick="checkboxGroupClick"
|
|
|
+ :options="getTimeOptions"
|
|
|
+ ></DateTimeList>
|
|
|
</DropdownLayout>
|
|
|
</van-dropdown-item>
|
|
|
<van-dropdown-item
|
|
|
- ref="areaDropdown"
|
|
|
- :title-class="dropdownMenuHighlight('area')"
|
|
|
+ ref="publishTimeDropdown"
|
|
|
+ :title-class="dropdownMenuHighlight('publishTime')"
|
|
|
title="发布日期"
|
|
|
get-container="body"
|
|
|
- @open="doOpen('area')"
|
|
|
- @opened="openedDropDown('area')"
|
|
|
+ @open="doOpen('publishTime')"
|
|
|
+ @opened="openedDropDown('publishTime')"
|
|
|
>
|
|
|
- <DropdownLayout @cancel="onReset('area')" @confirm="onConfirm('area')">
|
|
|
- <!-- <AreaCitySidebar
|
|
|
- class="area-city-sidebar"
|
|
|
- :tagTextOnlySelectedCount="true"
|
|
|
- :disabledCitySelect="noLoginOrFree"
|
|
|
- :useProvinceCitySplit="true"
|
|
|
- v-model="cacheMoreFilters.area"
|
|
|
- @onDisabledCityClick="onNoPower"
|
|
|
- v-if="useAreaCity"
|
|
|
- ref="areaSelector"
|
|
|
- ></AreaCitySidebar> -->
|
|
|
- <!-- 未登录下。确定时候,手动获取数据转换为对象。设置时候,手动将对象转为数组并手动恢复数据 -->
|
|
|
- <!-- <AreaSelectorContent
|
|
|
- class="area-selector"
|
|
|
- v-else
|
|
|
- ref="areaSelector"
|
|
|
- ></AreaSelectorContent> -->
|
|
|
+ <DropdownLayout
|
|
|
+ @cancel="onReset('publishTime')"
|
|
|
+ @confirm="onConfirm('publishTime')"
|
|
|
+ >
|
|
|
+ <DateTimeList
|
|
|
+ ref="publishTimeSelector"
|
|
|
+ @checkboxClick="checkboxGroupClick"
|
|
|
+ :options="getPulishTimeOptions"
|
|
|
+ ></DateTimeList>
|
|
|
</DropdownLayout>
|
|
|
</van-dropdown-item>
|
|
|
<van-dropdown-item
|
|
@@ -104,15 +97,6 @@
|
|
|
></MoneyInputGroup>
|
|
|
</template>
|
|
|
</JCell>
|
|
|
- <JCell class="more-filter-item" title="时间">
|
|
|
- <template #label>
|
|
|
- <DateTimeList
|
|
|
- ref="dateTimeGroup"
|
|
|
- @checkboxClick="checkboxGroupClick"
|
|
|
- :options="getTimeOptions"
|
|
|
- />
|
|
|
- </template>
|
|
|
- </JCell>
|
|
|
<van-cell
|
|
|
class="more-filter-item one-line-filter-item"
|
|
|
:isLink="true"
|
|
@@ -352,19 +336,18 @@ import DropdownLayout from '@/components/common/DropdownLayout'
|
|
|
// 地区三级选择器
|
|
|
import AreaCitySidebar from '@/components/selector/area-three-sidebar/index'
|
|
|
import AreaSelectorContent from '@/components/selector/area'
|
|
|
+import DateTimeList from '@/components/selector/date-time-list/index'
|
|
|
import TagSelector from '@/components/selector/tag-sidebar/index.vue';
|
|
|
import IndustrySidebar from '@/components/selector/industry-sidebar/index'
|
|
|
import InfoTypeSidebar from '@/components/selector/info-type-sidebar/index'
|
|
|
import InfoTypeOneClassify from '@/components/selector/info-type-one-classify/index'
|
|
|
import BuyerClassSidebar from '@/components/selector/buyer-class-sidebar/index'
|
|
|
import MoneyInputGroup from '@/components/selector/money-input-group'
|
|
|
-import DateTimeList from '@/components/selector/date-time-list'
|
|
|
import KeywordsInputGroup from '@/components/selector/keyword-input-group/index'
|
|
|
import { deepCompare } from '@/utils'
|
|
|
import {
|
|
|
- biddingSearchScope,
|
|
|
biddingSearchConcat,
|
|
|
- biddingSearchFileExists,
|
|
|
+ collectionSearchTime,
|
|
|
biddingSearchTime
|
|
|
} from '@/data'
|
|
|
|
|
@@ -502,9 +485,9 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
conf: {
|
|
|
- dropdownTypeList: ['label', 'industry', 'area', 'more'],
|
|
|
- label: biddingSearchScope,
|
|
|
- dateTime: biddingSearchTime,
|
|
|
+ dropdownTypeList: ['label', 'selectTime', 'publishTime', 'more'],
|
|
|
+ label: this.tagList,
|
|
|
+ dateTime: collectionSearchTime,
|
|
|
checkboxGroup: {
|
|
|
icon: false,
|
|
|
multiple: false
|
|
@@ -557,33 +540,45 @@ export default {
|
|
|
return true
|
|
|
}
|
|
|
},
|
|
|
- getScopeOptions() {
|
|
|
+ getLabelOptions() {
|
|
|
const { label: list } = this.conf
|
|
|
list.forEach((item) => {
|
|
|
- // 老用户专享
|
|
|
- const oldUserExclusive =
|
|
|
- this.bidColPower.isOld && item.label.includes('中标企业')
|
|
|
if (item.needPower) {
|
|
|
- if (this.noLoginOrFree && !oldUserExclusive) {
|
|
|
+ this.$set(item, 'disabled', false)
|
|
|
+ this.$set(item, 'tag', '')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ return list
|
|
|
+ },
|
|
|
+ getTimeOptions() {
|
|
|
+ const list = this.conf.dateTime
|
|
|
+ if (this.noLoginOrFree) {
|
|
|
+ list.forEach((item) => {
|
|
|
+ if (item.needPower) {
|
|
|
this.$set(item, 'disabled', true)
|
|
|
this.$set(item, 'tag', '开通')
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ list.forEach((item) => {
|
|
|
+ if (item.needPower) {
|
|
|
this.$set(item, 'disabled', false)
|
|
|
this.$set(item, 'tag', '')
|
|
|
- if (oldUserExclusive) {
|
|
|
- this.$set(item, 'labelTag', '老用户免费专享')
|
|
|
- }
|
|
|
}
|
|
|
- }
|
|
|
- })
|
|
|
+ })
|
|
|
+ }
|
|
|
if (this.isLogin) {
|
|
|
return list
|
|
|
} else {
|
|
|
return list.filter((s) => !s.disabled)
|
|
|
}
|
|
|
},
|
|
|
- getTimeOptions() {
|
|
|
- const list = this.conf.dateTime
|
|
|
+ getPulishTimeOptions() {
|
|
|
+ let list = [{
|
|
|
+ label: '全部',
|
|
|
+ key: ''
|
|
|
+ }]
|
|
|
+ list = list.concat(biddingSearchTime)
|
|
|
if (this.noLoginOrFree) {
|
|
|
list.forEach((item) => {
|
|
|
if (item.needPower) {
|
|
@@ -692,17 +687,17 @@ export default {
|
|
|
needHighlight = !same
|
|
|
break
|
|
|
}
|
|
|
- case 'industry': {
|
|
|
- const { industry } = this.filters
|
|
|
- const { industry: industryDefault } = this.defaultFilterState
|
|
|
- const same = deepCompare(industry, industryDefault)
|
|
|
+ case 'selectTime': {
|
|
|
+ const { selectTime } = this.filters
|
|
|
+ const { selectTime: selectTimeDefault } = this.defaultFilterState
|
|
|
+ const same = deepCompare(selectTime, selectTimeDefault)
|
|
|
needHighlight = !same
|
|
|
break
|
|
|
}
|
|
|
- case 'area': {
|
|
|
- const { area } = this.filters
|
|
|
- const { area: areaDefault } = this.defaultFilterState
|
|
|
- const same = deepCompare(area, areaDefault)
|
|
|
+ case 'publishTime': {
|
|
|
+ const { publishTime } = this.filters
|
|
|
+ const { publishTime: publishTimeDefault } = this.defaultFilterState
|
|
|
+ const same = deepCompare(publishTime, publishTimeDefault)
|
|
|
needHighlight = !same
|
|
|
break
|
|
|
}
|
|
@@ -769,6 +764,7 @@ export default {
|
|
|
case 'label': {
|
|
|
const { tagSelector } = this.$refs
|
|
|
const { label } = this.filters
|
|
|
+ console.log(label, 'label')
|
|
|
tagSelector?.setState(label)
|
|
|
break
|
|
|
}
|
|
@@ -854,24 +850,16 @@ export default {
|
|
|
}
|
|
|
break
|
|
|
}
|
|
|
- case 'industry': {
|
|
|
- const { industry } = this.defaultFilterState
|
|
|
- if (industry) {
|
|
|
- filters.industry = industry
|
|
|
- this.cacheMoreFilters.industry = industry
|
|
|
- }
|
|
|
+ case 'selectTime': {
|
|
|
+ const { selectTimeSelector } = this.$refs
|
|
|
+ const str = selectTimeSelector?.setState() || {}
|
|
|
+ filters.selectTime = str
|
|
|
break
|
|
|
}
|
|
|
- case 'area': {
|
|
|
- const { area } = this.defaultFilterState
|
|
|
- if (area) {
|
|
|
- this.cacheMoreFilters.area = area
|
|
|
- filters.area = area
|
|
|
- if (!this.useAreaCity) {
|
|
|
- const { areaSelector } = this.$refs
|
|
|
- areaSelector?.setState(Object.keys(area))
|
|
|
- }
|
|
|
- }
|
|
|
+ case 'publishTime': {
|
|
|
+ const { publishTimeSelector } = this.$refs
|
|
|
+ const str = publishTimeSelector?.setState() || {}
|
|
|
+ filters.publishTime = str
|
|
|
break
|
|
|
}
|
|
|
case 'more': {
|
|
@@ -969,26 +957,21 @@ export default {
|
|
|
filters.label = state
|
|
|
break
|
|
|
}
|
|
|
- case 'industry': {
|
|
|
- const { industry } = this.cacheMoreFilters
|
|
|
- filters.industry = industry
|
|
|
+ case 'selectTime': {
|
|
|
+ const { selectTimeSelector } = this.$refs
|
|
|
+ const str = selectTimeSelector?.getState() || {}
|
|
|
+ filters.selectTime = str
|
|
|
break
|
|
|
}
|
|
|
- case 'area': {
|
|
|
- if (!this.useAreaCity) {
|
|
|
- const { areaSelector } = this.$refs
|
|
|
- const arr = areaSelector?.getState() || []
|
|
|
- // 得到的数组转为对象
|
|
|
- const m = {}
|
|
|
- arr.forEach((i) => (m[i] = []))
|
|
|
- this.cacheMoreFilters.area = m
|
|
|
- }
|
|
|
- const { area } = this.cacheMoreFilters
|
|
|
- filters.area = area
|
|
|
+ case 'publishTime': {
|
|
|
+ const { publishTimeSelector } = this.$refs
|
|
|
+ const str = publishTimeSelector?.getState() || {}
|
|
|
+ console.log(str, 'str')
|
|
|
+ filters.publishTime = str
|
|
|
break
|
|
|
}
|
|
|
case 'more': {
|
|
|
- const { priceSelector, dateTimeGroup } = this.$refs
|
|
|
+ const { priceSelector } = this.$refs
|
|
|
const {
|
|
|
moreKeywordsMode,
|
|
|
priceCheckbox,
|
|
@@ -1014,10 +997,6 @@ export default {
|
|
|
}
|
|
|
filters.priceCheckbox = priceCheckbox
|
|
|
|
|
|
- // 时间
|
|
|
- const dateTime = dateTimeGroup.getState()
|
|
|
- filters.dateTime = dateTime || {}
|
|
|
-
|
|
|
// 信息类型
|
|
|
filters.infoType = infoType
|
|
|
// 采购单位类型
|
|
@@ -1036,6 +1015,7 @@ export default {
|
|
|
},
|
|
|
confirmModelChange(type) {
|
|
|
const filters = this.confirmSelectors(type)
|
|
|
+ console.log(filters, 'filters')
|
|
|
this.onChange(filters)
|
|
|
},
|
|
|
onConfirm(type) {
|
|
@@ -1134,6 +1114,9 @@ export default {
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
::v-deep {
|
|
|
+ .date-time-selector-content {
|
|
|
+ padding: 0 16px;
|
|
|
+ }
|
|
|
.highlight {
|
|
|
color: $main;
|
|
|
}
|