| | |
| | | <u-search placeholder="请输入商品名称搜索" height="36" searchIconColor="#999999" borderColor="#EEEEEE" |
| | | bgColor="#F9F9FB" :showAction="false" v-model="goodsName" @search="search" /> |
| | | </view> |
| | | <view class="history"> |
| | | <view class="history" v-if="historyList && historyList.length > 0"> |
| | | <view class="history-title">历史搜索</view> |
| | | <view class="history-list"> |
| | | <view class="history-list-item">支重轮</view> |
| | | <view class="history-list-item" v-for="(item, index) in historyList" :key="index" @click="seleContent(item.content)">{{item.content}}</view> |
| | | </view> |
| | | </view> |
| | | <template v-if="isSearch"> |
| | | <view class="list"> |
| | | <image class="list-notfund" v-if="goodsList.length === 0" src="/static/images/default_search@2x.png" mode="widthFix"></image> |
| | | <view class="commodity-item" v-for="(item, i) in goodsList" :key="i" v-else> |
| | | <view class="commodity-item" v-for="(item, i) in goodsList" :key="i" v-else @click="jumpDetails(item.id)"> |
| | | <view class="commodity-item-image"> |
| | | <image :src="item.imgurl" mode="widthFix"></image> |
| | | </view> |
| | |
| | | </view> |
| | | <view class="commodity-item-shou"> |
| | | <text>已售{{item.saleNum + item.realSaleNum}}</text> |
| | | <view class="commodity-item-shou-add">+</view> |
| | | <view class="commodity-item-shou-add" @click.stop="addCard(item)">+</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | <Login ref="login" /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapState } from 'vuex' |
| | | import Login from '@/components/login/login.vue' |
| | | export default { |
| | | components: { Login }, |
| | | computed: { |
| | | ...mapState(['userInfo']) |
| | | }, |
| | | data() { |
| | | return { |
| | | goodsName: '', |
| | | goodsList: [], |
| | | page: 1, |
| | | next: true, |
| | | isSearch: false |
| | | isSearch: false, |
| | | historyList: [], |
| | | categoryId: null, |
| | | applicableBrandId: null |
| | | }; |
| | | }, |
| | | onLoad(option) { |
| | | if (option.categoryId) { |
| | | this.categoryId = option.categoryId |
| | | this.isSearch = true |
| | | this.getGoodsList() |
| | | } |
| | | if (option.applicableBrandId) { |
| | | this.applicableBrandId = option.applicableBrandId |
| | | this.isSearch = true |
| | | this.getGoodsList() |
| | | } |
| | | this.gethistary() |
| | | }, |
| | | onReachBottom() { |
| | | this.getGoodsList() |
| | | }, |
| | | methods: { |
| | | addCard(e) { |
| | | if (!this.userInfo) { |
| | | this.$refs.login.open() |
| | | return |
| | | } |
| | | this.$u.api.addCart({ |
| | | goodsId: e.id, |
| | | goodsSkuId: e.goodsSkuResponseList[0].id, |
| | | num: 1 |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | uni.showToast({ title: '添加成功', icon: 'success' }) |
| | | } |
| | | }) |
| | | }, |
| | | jumpDetails(id) { |
| | | uni.navigateTo({ |
| | | url: '/pages/details/details?id=' + id |
| | | }) |
| | | }, |
| | | seleContent(val) { |
| | | this.goodsName = val |
| | | this.search() |
| | | }, |
| | | gethistary() { |
| | | if (!this.userInfo) return |
| | | this.$u.api.searchHistoryList({ |
| | | memberId: this.userInfo.id |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.historyList = res.data |
| | | } |
| | | }) |
| | | }, |
| | | search() { |
| | | if (!this.goodsName) return; |
| | | if (!this.isSearch) { |
| | | this.isSearch = true |
| | | } |
| | |
| | | model: { |
| | | type: 0, |
| | | sortInfo: 3, |
| | | goodsName: this.goodsName |
| | | goodsName: this.goodsName, |
| | | memberId: this.userInfo.id, |
| | | categoryId: this.categoryId, |
| | | applicableBrandId: this.applicableBrandId |
| | | } |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.gethistary() |
| | | res.data.records.forEach(item => { |
| | | item.minPrice = item.minPrice.toFixed(2).split('.') |
| | | }) |
| | |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | page { |
| | | background-color: #F9F9FB; |
| | | } |
| | | </style> |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | width: 100%; |
| | |
| | | margin-right: 24rpx; |
| | | margin-bottom: 24rpx; |
| | | &:last-child { |
| | | margin: 0 !important; |
| | | margin-right: 0 !important; |
| | | } |
| | | } |
| | | } |