You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

173 lines
3.6 KiB

<template>
<view class="content">
<search_bar @toPage="toList"></search_bar>
<view class="paixu">
<view class="select">
<picker mode="selector" :value="sort_type" :range="sort_list" range-key="text" @change="paixu">
<view>{{sort_text}}</view>
</picker>
</view>
</view>
<view class="paixuzw"></view>
<view class="list_item" v-for="(item,index) in list.obj" :key="index">
<good :search_id="search_id" :data="item" :pid="pid"></good>
</view>
<uni-load-more :status="list.moreStatus" color="#FE5353"></uni-load-more>
</view>
</template>
<script>
import good from './good_com/good.vue'
import search_bar from './good_com/search_bar.vue'
import {
checkAuthority
} from './utils/util.js'
const pddApi = uniCloud.importObject('pdd-serve')
export default {
components: {
good,
search_bar
},
onLoad(options) {
this.key_word = options.key_word;
this.pid = options.p_id
uni.setNavigationBarTitle({
title: options.key_word
})
this.search_key();
},
data() {
return {
list: {
obj: [],
page: 1,
pageSize: 20,
moreStatus: 'more'
},
pid: '',
search_id: '',
list_id: '',
sort_text: '排序',
sort_type: 0,
sort_list: [{
id: 0,
text: "综合排序"
}, {
id: 3,
text: "价格由低到高"
}, {
id: 9,
text: "券后价由低到高"
}, {
id: 10,
text: "券后价由高到低"
}, {
id: 6,
text: "销量由高到低"
}, {
id: 8,
text: "优惠券金额由高到低"
}]
};
},
onReachBottom() {
if (this.list.moreStatus != 'noMore') {
this.list.page++
this.loadData()
}
},
methods: {
paixu(e) {
this.list.obj = []
this.list.page = 1
this.list.moreStatus = 'more'
this.sort_type = this.sort_list[e.detail.value].id
this.sort_text = this.sort_list[e.detail.value].text
this.loadData()
},
search_key() {
checkAuthority(this.pid).then(res => {
if (res.mobile_url) {
uni.setStorageSync('webUrl', res.mobile_url)
// #ifndef MP
uni.navigateTo({
url: '/uni_modules/aliea-goods/pages/webview/webview'
})
// #endif
// #ifdef MP
uni.navigateToMiniProgram({
appId: data.we_app_info.app_id,
path: data.we_app_info.page_path
})
// #endif
} else {
this.loadData()
}
})
},
loadData() {
this.list.moreStatus = 'loading'
pddApi.goodsSearch(this.key_word, this.list_id, '', this.pid, this.list.page, this.list.pageSize, this
.sort_type)
.then((
res) => {
let list = res.data.goods_search_response.goods_list
this.search_id = res.data.goods_search_response.search_id
this.list_id = res.data.goods_search_response.list_id
if (list.length == 0) {
this.list.moreStatus = 'noMore'
}
this.list.obj = this.list.obj.concat(list);
})
},
toList(e) {
let url = '/uni_modules/aliea-goods/pages/goods/goodList?key_word=' + e.keyword
if (this.pid) {
url += '&p_id=' + this.pid
}
uni.redirectTo({
url: url
})
}
}
}
</script>
<style lang="scss">
.content {
width: 100%;
background-color: antiquewhite;
.paixu {
position: fixed;
width: 100%;
background-color: rgb(250 235 208);
border-bottom: #dfdfdf 5rpx solid;
z-index: 100;
.select {
display: inline-block;
width: 100%;
line-height: 70rpx;
color: #f80000;
padding-left: 20rpx;
}
}
.paixuzw {
width: 100%;
height: 70rpx;
}
.list_item {
width: 335rpx;
display: inline-block;
margin: 20rpx 15rpx;
}
}
</style>