upct
This commit is contained in:
commit
2e95172a75
@ -294,8 +294,8 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 搜索发现列表
|
// 搜索发现列表
|
||||||
searchwordlist() {
|
searchwordlist({type}) {
|
||||||
return vm.$u.post('ShopSearch/searchwordlist')
|
return vm.$u.post('ShopSearch/searchWordList',{type})
|
||||||
},
|
},
|
||||||
// 提交试穿订单
|
// 提交试穿订单
|
||||||
saveGoodsTry({ member_name, member_mobile, area_info, address_detail, goods_id, num, store_id, appointment_time }) {
|
saveGoodsTry({ member_name, member_mobile, area_info, address_detail, goods_id, num, store_id, appointment_time }) {
|
||||||
@ -332,6 +332,13 @@ export default {
|
|||||||
fav_id: fid,
|
fav_id: fid,
|
||||||
type: type
|
type: type
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
//店铺列表
|
||||||
|
storeList({ page, name_search }) {
|
||||||
|
return vm.$u.post('shop/storeList',{
|
||||||
|
page,
|
||||||
|
name_search: name_search
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<text>输入达人名称</text>
|
<text>输入达人名称</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="list">
|
<view class="list">
|
||||||
<darenItem style="margin-top:20rpx;margin-right:23rpx" v-for="item in recommendList" :key="item.id" :info="item" v-on:pChangeType="changeType" ></darenItem>
|
<darenItem style="margin-top:20rpx;" v-for="item in recommendList" :key="item.id" :info="item" v-on:pChangeType="changeType"></darenItem>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@ -76,7 +76,7 @@ export default {
|
|||||||
},
|
},
|
||||||
searchValue() {
|
searchValue() {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: '/pageB/search/index'
|
url: '/pageB/search/index?type=1'
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -98,7 +98,7 @@
|
|||||||
<image class="close" src="/static/image/common/17.png" @click="showGroupUser=false"></image>
|
<image class="close" src="/static/image/common/17.png" @click="showGroupUser=false"></image>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
<u-popup v-model="showInvolvementUser" mode="center">
|
<u-popup v-model="showInvolvementUser" mode="center" z-index="10078">
|
||||||
<view class="involvement-container" v-if="involvemenGroupInfo.length">
|
<view class="involvement-container" v-if="involvemenGroupInfo.length">
|
||||||
<view class="title u-line-1">参与{{ involvemenGroupInfo[0].member_nickname }}的拼团</view>
|
<view class="title u-line-1">参与{{ involvemenGroupInfo[0].member_nickname }}的拼团</view>
|
||||||
<view class="involvement-view">
|
<view class="involvement-view">
|
||||||
@ -443,15 +443,25 @@ export default {
|
|||||||
* @params {Number} ifcart 结算方式 1:购物车 0:直接结算(立即购买/拼团/秒杀)
|
* @params {Number} ifcart 结算方式 1:购物车 0:直接结算(立即购买/拼团/秒杀)
|
||||||
**/
|
**/
|
||||||
settlementOrder({type, num = this.goodsNumber, ifcart = 0} = {}) {
|
settlementOrder({type, num = this.goodsNumber, ifcart = 0} = {}) {
|
||||||
if(!this.showSpec) {
|
if(type != 'involvement') {
|
||||||
this.showSpec = true;
|
if(!this.showSpec) {
|
||||||
return false;
|
this.showSpec = true;
|
||||||
}
|
return false;
|
||||||
if(!this.quanxuan) {
|
}
|
||||||
this.$refs.uToast.show({
|
if(!this.showSpec) {
|
||||||
title: '请选择规格'
|
this.showSpec = true;
|
||||||
})
|
return false;
|
||||||
return false;
|
}
|
||||||
|
// 如果没有规格设规格已全选
|
||||||
|
if(this.goodsInfo.spec_value == null) {
|
||||||
|
this.quanxuan = true;
|
||||||
|
}
|
||||||
|
if(!this.quanxuan) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: '请选择规格'
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(!this.debounce) return;
|
if(!this.debounce) return;
|
||||||
this.debounce = false;
|
this.debounce = false;
|
||||||
@ -516,6 +526,8 @@ export default {
|
|||||||
},
|
},
|
||||||
xuanze(id){
|
xuanze(id){
|
||||||
// console.log(id)
|
// console.log(id)
|
||||||
|
// 选择完规格后设商品type = 1
|
||||||
|
this.type = 1;
|
||||||
this.getGoodsDetails(this.glist[id])
|
this.getGoodsDetails(this.glist[id])
|
||||||
this.id = this.glist[id];
|
this.id = this.glist[id];
|
||||||
},
|
},
|
||||||
|
@ -13,11 +13,14 @@ export default {
|
|||||||
name:"search",
|
name:"search",
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
|
type: '', // 1 商家达人社区 2 商品
|
||||||
keyword: "",
|
keyword: "",
|
||||||
searchwordlist: [],
|
searchwordlist: [],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
// type: 2 商品 1: 其他
|
||||||
|
onLoad(option) {
|
||||||
|
this.type = option.type;
|
||||||
this.getWordList();
|
this.getWordList();
|
||||||
},
|
},
|
||||||
// 点击搜索按钮
|
// 点击搜索按钮
|
||||||
@ -34,8 +37,10 @@ export default {
|
|||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
getWordList() {
|
getWordList() {
|
||||||
this.$u.api.searchwordlist().then(res => {
|
this.$u.api.searchwordlist({type:this.type}).then(res => {
|
||||||
this.searchwordlist = res.data;
|
console.log(res)
|
||||||
|
this.searchwordlist = res.data;
|
||||||
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
search(value){
|
search(value){
|
||||||
@ -44,14 +49,22 @@ export default {
|
|||||||
this.$u.toast('搜索内容不可为空');
|
this.$u.toast('搜索内容不可为空');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
this.$u.route({
|
let params = {
|
||||||
url: "/pageB/search/out",
|
value: value,
|
||||||
params: {
|
type: this.type,
|
||||||
value: value,
|
}
|
||||||
type: "shop",
|
if(this.type == 2) {
|
||||||
order: 'goods_salenum'
|
this.$u.route({
|
||||||
}
|
url: "/pageB/search/out",
|
||||||
})
|
params: params,
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
this.$u.route({
|
||||||
|
url: "/pageB/search/searchGoods",
|
||||||
|
params: params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,59 +1,296 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="out">
|
<view class="classify-goods">
|
||||||
<u-tabs :list="list" :current="current" @change="tabsChange" active-color="#FF780F" :show-bar="false" height="88" font-size="32" inactive-color="#333333"></u-tabs>
|
<view class="tab-container">
|
||||||
<swiper :current="swiperCurrent" @animationfinish="animationfinish">
|
<view class="salenum" :class="{ 'current' : current == 0 }" @click="switchCurrent(0)">店铺</view>
|
||||||
<!-- 店铺 -->
|
<view class="price" :class="{ 'current' : current == 1 }" @click="switchCurrent(1)">
|
||||||
<swiper-item class="swiper-item" v-for="(item, index) in dataList[current]" :key="index">
|
达人
|
||||||
<scroll-view scroll-y style="height: 800rpx;width: 100%;" @scrolltolower="onreachBottom">
|
</view>
|
||||||
<view class="store"></view>
|
<view class="evaluation" :class="{ 'current' : current == 2 }" @click="switchCurrent(2)">社区</view>
|
||||||
</scroll-view>
|
</view>
|
||||||
</swiper-item>
|
<scroll-view scroll-y class="goods-container" :style="{ height: scrollHeight }" @scrolltolower="loadMore" v-show="current == 0">
|
||||||
<!-- 达人 -->
|
<view v-for="goods in goodsList" :key="goods.store_id" class="goods-item" @click="toDetailsPage(goods.store_id)">
|
||||||
<swiper-item class="swiper-item" v-for="(item, index) in dataList[current]" :key="index">
|
<image :src="goods.store_avatar"></image>
|
||||||
<scroll-view scroll-y style="height: 800rpx;width: 100%;" @scrolltolower="onreachBottom">
|
<view class="right">
|
||||||
<view class="anchor"></view>
|
<view class="name u-line-1">{{ goods.store_name }}</view>
|
||||||
</scroll-view>
|
<view class="briefing u-line-2">{{ goods.store_description }}</view>
|
||||||
</swiper-item>
|
</view>
|
||||||
<!-- 社区 -->
|
</view>
|
||||||
<swiper-item class="swiper-item" v-for="(item, index) in dataList[current]" :key="index">
|
<u-loadmore :status="loadStatus" bgColor="#FFFFFF" margin-top="20" margin-bottom="20" v-if="goodsList.length >= pageSize"></u-loadmore>
|
||||||
<scroll-view scroll-y style="height: 800rpx;width: 100%;" @scrolltolower="onreachBottom">
|
<u-empty mode="list" v-if="!goodsList.length"></u-empty>
|
||||||
<view class="community"></view>
|
</scroll-view>
|
||||||
</scroll-view>
|
<scroll-view style="width:100%;" :style="{ height: scrollHeight }" scroll-y="true" @scrolltolower="loadMore" v-if=" current == 2 ">
|
||||||
</swiper-item>
|
<view class="box" style="padding: 0 30rpx;">
|
||||||
</swiper>
|
<view style="display:flex">
|
||||||
</view>
|
<view>
|
||||||
|
<videoItem v-for="(item,id) in goodsList.filter((_, index) => !(index&1))" :key="id" :item="item"
|
||||||
|
@getArticlelist="getArticlelist"></videoItem>
|
||||||
|
</view>
|
||||||
|
<view style="margin-left:20rpx">
|
||||||
|
<videoItem v-for="(item,id) in goodsList.filter((_, index) => index&1)" :key="id" :item="item"
|
||||||
|
@getArticlelist="getArticlelist"></videoItem>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<u-loadmore :status="loadStatus" bgColor="#FFFFFF" margin-top="20" margin-bottom="20" v-if="goodsList.length >= pageSize"></u-loadmore>
|
||||||
|
<u-empty mode="list" v-if="!goodsList.length"></u-empty>
|
||||||
|
</scroll-view>
|
||||||
|
<scroll-view style="width:100%;padding: 20rpx 30rpx;margin-right:23rpx;" :style="{ height: scrollHeight }" scroll-y="true" @scrolltolower="loadMore" v-if=" current == 1 ">
|
||||||
|
<view class="list" >
|
||||||
|
<darenItem style="margin-top:20rpx;margin-right:23rpx;box-shadow:0px 3rpx 7rpx 0px rgba(153, 153, 153, 0.35);" v-for="item in goodsList" :key="item.id" :info="item" v-on:pChangeType="changeType"></darenItem>
|
||||||
|
</view>
|
||||||
|
<u-loadmore :status="loadStatus" bgColor="#FFFFFF" margin-top="20" margin-bottom="20" v-if="goodsList.length >= pageSize"></u-loadmore>
|
||||||
|
<u-empty mode="list" v-if="!goodsList.length"></u-empty>
|
||||||
|
</scroll-view>
|
||||||
|
|
||||||
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import videoItem from "@/components/index/video-item/index"
|
||||||
|
import darenItem from "@/components/index/daren-item/index"
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
list: [{
|
pageSize: 12,
|
||||||
name: "店铺"
|
cid: '',
|
||||||
}, {
|
page: 1,
|
||||||
name: "达人"
|
|
||||||
}, {
|
|
||||||
name: "社区"
|
|
||||||
}],
|
|
||||||
current: 0,
|
current: 0,
|
||||||
swiperCurrent: 0,
|
priceOrderAsc: true, // 是否升序
|
||||||
dataList: [[1],[2],[3]],
|
goodsList: [],
|
||||||
|
scrollHeight: '',
|
||||||
|
loadStatus: 'loadmore',
|
||||||
|
timer: true, // 防止上拉加载短时间内多次调用,
|
||||||
|
value:""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
components:{
|
||||||
|
videoItem,
|
||||||
|
darenItem
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
current(value) {
|
||||||
|
this.page = 1;
|
||||||
|
this.ShopSearch({ laod: 'reload' });
|
||||||
|
},
|
||||||
|
priceOrderAsc(value) {
|
||||||
|
this.page = 1;
|
||||||
|
this.ShopSearch({ laod: 'reload' });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(option) {
|
onLoad(option) {
|
||||||
|
this.value = option.value;
|
||||||
|
this.setViewHeight();
|
||||||
|
this.ShopSearch()
|
||||||
|
this.setNavSearchInput();
|
||||||
|
},
|
||||||
|
onNavigationBarSearchInputConfirmed(value) {
|
||||||
|
this.value = value.text
|
||||||
|
console.log(this.value)
|
||||||
|
this.ShopSearch()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
tabsChange(index) {
|
// 动态设置导航栏搜索框内容
|
||||||
this.current = Number(index);
|
setNavSearchInput(keyword) {
|
||||||
this.swiperCurrent = this.current;
|
// #ifdef APP-PLUS
|
||||||
|
let webView = this.$mp.page.$getAppWebview();
|
||||||
|
webView.setTitleNViewSearchInputText(keyword);
|
||||||
|
// #endif
|
||||||
|
// #ifdef H5
|
||||||
|
let inputSearch=document.querySelector('.uni-input-input[type=search]');
|
||||||
|
var evt = new InputEvent('input', {
|
||||||
|
inputType: 'insertText',
|
||||||
|
data: keyword,
|
||||||
|
dataTransfer: null,
|
||||||
|
isComposing: false
|
||||||
|
});
|
||||||
|
if(inputSearch){
|
||||||
|
inputSearch.value = keyword;
|
||||||
|
inputSearch.dispatchEvent(evt);
|
||||||
|
}
|
||||||
|
// #endif
|
||||||
},
|
},
|
||||||
animationfinish(e) {
|
changeType(member_id){
|
||||||
const current = Number(e.detail.current);
|
console.log(member_id);
|
||||||
|
this.$emit("pChangeType")
|
||||||
|
this.$u.api.attentionMember({
|
||||||
|
member_id: member_id
|
||||||
|
}).then((res)=>{
|
||||||
|
console.log(res)
|
||||||
|
for(let i in this.goodsList){
|
||||||
|
|
||||||
|
if(this.goodsList[i].member_id == member_id){
|
||||||
|
this.goodsList[i].is_attention = res.message == "已取消关注!" ? 0 : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
setOrderSort() {
|
||||||
|
let sort = '';
|
||||||
|
if(this.current == 0) {
|
||||||
|
sort = 'goods_salenum';
|
||||||
|
} else if (this.current == 1) {
|
||||||
|
if(this.priceOrderAsc) sort = 'goods_price_asc';
|
||||||
|
else sort = 'goods_price_desc';
|
||||||
|
} else if (this.current == 2) {
|
||||||
|
sort = 'evaluation_count';
|
||||||
|
}
|
||||||
|
return sort;
|
||||||
|
},
|
||||||
|
// 排序方式 goods_salenum:销量 evaluation_count:评价 goods_price_asc:价格从低到高 goods_price_desc:价格从高到低
|
||||||
|
async ShopSearch({ load = 'reload' } = {}) {
|
||||||
|
// const res = await this.$u.api.ShopSearch({
|
||||||
|
// keyword: this.value,
|
||||||
|
// page: this.page,
|
||||||
|
// order: sort,
|
||||||
|
// })
|
||||||
|
console.log(this.value)
|
||||||
|
let res = {}
|
||||||
|
if(this.current == 0) {
|
||||||
|
res = await this.$u.api.storeList({
|
||||||
|
name_search: this.value,
|
||||||
|
page: this.page
|
||||||
|
})
|
||||||
|
this.timer = true;
|
||||||
|
if(res.errCode == 0) {
|
||||||
|
if(load == 'reload') this.goodsList = res.data.list.data;
|
||||||
|
else if(load == 'loadmore') this.goodsList.push(...res.data.list.data);
|
||||||
|
}
|
||||||
|
console.log(this.goodsList)
|
||||||
|
return res.data.list.data.length;
|
||||||
|
} else if (this.current == 1) {
|
||||||
|
|
||||||
|
res = await this.$u.api.getExpertList({
|
||||||
|
like_nickname: this.value,
|
||||||
|
page: this.page
|
||||||
|
})
|
||||||
|
this.timer = true;
|
||||||
|
if(res.errCode == 0) {
|
||||||
|
if(load == 'reload') this.goodsList = res.data.list;
|
||||||
|
else if(load == 'loadmore') this.goodsList.push(...res.data.list);
|
||||||
|
}
|
||||||
|
console.log(this.goodsList)
|
||||||
|
return res.data.list.length;
|
||||||
|
} else if (this.current == 2) {
|
||||||
|
res = await this.$u.api.getArticlelist({
|
||||||
|
value: this.value,
|
||||||
|
page: this.page
|
||||||
|
})
|
||||||
|
this.timer = true;
|
||||||
|
if(res.errCode == 0) {
|
||||||
|
if(load == 'reload') this.goodsList = res.data.list;
|
||||||
|
else if(load == 'loadmore') this.goodsList.push(...res.data.list);
|
||||||
|
}
|
||||||
|
console.log(this.goodsList)
|
||||||
|
return res.data.list.length;
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
loadMore() {
|
||||||
|
if(this.goodsList.length < this.pageSize) return false;
|
||||||
|
if(!this.timer) return false;
|
||||||
|
this.loadStatus = "loading";
|
||||||
|
this.page++;
|
||||||
|
this.ShopSearch({ load: 'loadmore' }).then(length => {
|
||||||
|
if(length == 0) {
|
||||||
|
this.page--;
|
||||||
|
this.loadStatus = 'nomore';
|
||||||
|
} else {
|
||||||
|
this.loadStatus = 'loading';
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
this.loadStatus = "nomore";
|
||||||
|
this.page--;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
switchCurrent(current) {
|
||||||
|
// if(current == 1 && this.current == 1) this.priceOrderAsc = !this.priceOrderAsc;
|
||||||
this.current = current;
|
this.current = current;
|
||||||
this.swiperCurrent = current;
|
this.goodsList = []
|
||||||
|
this.ShopSearch()
|
||||||
},
|
},
|
||||||
|
setViewHeight() {
|
||||||
|
const res = uni.getSystemInfoSync();
|
||||||
|
this.scrollHeight = res.windowHeight - res.windowWidth / 750 * 90 + 'px';
|
||||||
|
},
|
||||||
|
toDetailsPage(id) {
|
||||||
|
this.$u.route('/pageC/merchant/index', {
|
||||||
|
id: id
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.list{
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
width: calc(100% + 23rpx);
|
||||||
|
margin-right: -23rpx;
|
||||||
|
}
|
||||||
|
.classify-goods {
|
||||||
|
.tab-container {
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 30rpx 40rpx;
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
> view {
|
||||||
|
height: 30rpx;
|
||||||
|
line-height: 30rpx;
|
||||||
|
flex: 1;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: rgba(51,51,51,1);
|
||||||
|
}
|
||||||
|
.salenum {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.price {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
.text {
|
||||||
|
margin-right: 5rpx;
|
||||||
|
}
|
||||||
|
.icon {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.evaluation {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.current {
|
||||||
|
color: rgba(255,120,15,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.goods-container {
|
||||||
|
.goods-item {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 690rpx;
|
||||||
|
display: flex;
|
||||||
|
background-color: #F5F5F5;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
align-items: center;
|
||||||
|
> image {
|
||||||
|
width: 220rpx;
|
||||||
|
height: 200rpx;
|
||||||
|
flex-shrink: 0;
|
||||||
|
margin-right: 30rpx;
|
||||||
|
}
|
||||||
|
.right {
|
||||||
|
width: 418rpx;
|
||||||
|
.name {
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: rgba(51,51,51,1);
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.briefing {
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: rgba(102,102,102,1);
|
||||||
|
line-height: 42rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
|
||||||
</style>
|
</style>
|
@ -36,26 +36,50 @@ export default {
|
|||||||
goodsList: [],
|
goodsList: [],
|
||||||
scrollHeight: '',
|
scrollHeight: '',
|
||||||
loadStatus: 'loadmore',
|
loadStatus: 'loadmore',
|
||||||
timer: true, // 防止上拉加载短时间内多次调用
|
timer: true, // 防止上拉加载短时间内多次调用,
|
||||||
|
value:""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
current(value) {
|
current(value) {
|
||||||
this.page = 1;
|
this.page = 1;
|
||||||
this.goodsListByClassId({ laod: 'reload' });
|
this.ShopSearch({ laod: 'reload' });
|
||||||
},
|
},
|
||||||
priceOrderAsc(value) {
|
priceOrderAsc(value) {
|
||||||
this.page = 1;
|
this.page = 1;
|
||||||
this.goodsListByClassId({ laod: 'reload' });
|
this.ShopSearch({ laod: 'reload' });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(option) {
|
onLoad(option) {
|
||||||
this.cid = option.cid;
|
this.value = option.value
|
||||||
this.goodsListByClassId({ load: 'reload' });
|
|
||||||
this.setViewHeight();
|
this.setViewHeight();
|
||||||
this.setTitle(option.cname);
|
this.ShopSearch()
|
||||||
|
},
|
||||||
|
onNavigationBarSearchInputConfirmed(value) {
|
||||||
|
this.value = value.text
|
||||||
|
this.ShopSearch()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
setNavSearchInput(keyword) {
|
||||||
|
console.log(keyword);
|
||||||
|
// #ifdef APP-PLUS
|
||||||
|
let webView = this.$mp.page.$getAppWebview();
|
||||||
|
webView.setTitleNViewSearchInputText(keyword);
|
||||||
|
// #endif
|
||||||
|
// #ifdef H5
|
||||||
|
let inputSearch=document.querySelector('.uni-input-input[type=search]');
|
||||||
|
const evt = new InputEvent('input', {
|
||||||
|
inputType: 'insertText',
|
||||||
|
data: keyword,
|
||||||
|
dataTransfer: null,
|
||||||
|
isComposing: false
|
||||||
|
});
|
||||||
|
if(inputSearch){
|
||||||
|
inputSearch.value = keyword;
|
||||||
|
inputSearch.dispatchEvent(evt);
|
||||||
|
}
|
||||||
|
// #endif
|
||||||
|
},
|
||||||
setOrderSort() {
|
setOrderSort() {
|
||||||
let sort = '';
|
let sort = '';
|
||||||
if(this.current == 0) {
|
if(this.current == 0) {
|
||||||
@ -69,10 +93,12 @@ export default {
|
|||||||
return sort;
|
return sort;
|
||||||
},
|
},
|
||||||
// 排序方式 goods_salenum:销量 evaluation_count:评价 goods_price_asc:价格从低到高 goods_price_desc:价格从高到低
|
// 排序方式 goods_salenum:销量 evaluation_count:评价 goods_price_asc:价格从低到高 goods_price_desc:价格从高到低
|
||||||
async goodsListByClassId({ load = 'reload' } = {}) {
|
async ShopSearch({ load = 'reload' } = {}) {
|
||||||
|
console.log(this.value);
|
||||||
|
this.setNavSearchInput(this.value);
|
||||||
const sort = this.setOrderSort();
|
const sort = this.setOrderSort();
|
||||||
const res = await this.$u.api.goodsListByClassId({
|
const res = await this.$u.api.ShopSearch({
|
||||||
gc_id: this.cid,
|
keyword: this.value,
|
||||||
page: this.page,
|
page: this.page,
|
||||||
order: sort,
|
order: sort,
|
||||||
})
|
})
|
||||||
@ -88,7 +114,7 @@ export default {
|
|||||||
if(!this.timer) return false;
|
if(!this.timer) return false;
|
||||||
this.loadStatus = "loading";
|
this.loadStatus = "loading";
|
||||||
this.page++;
|
this.page++;
|
||||||
this.goodsListByClassId({ load: 'loadmore' }).then(length => {
|
this.ShopSearch({ load: 'loadmore' }).then(length => {
|
||||||
if(length == 0) {
|
if(length == 0) {
|
||||||
this.page--;
|
this.page--;
|
||||||
this.loadStatus = 'nomore';
|
this.loadStatus = 'nomore';
|
||||||
@ -101,22 +127,17 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
switchCurrent(current) {
|
switchCurrent(current) {
|
||||||
|
this.ShopSearch()
|
||||||
if(current == 1 && this.current == 1) this.priceOrderAsc = !this.priceOrderAsc;
|
if(current == 1 && this.current == 1) this.priceOrderAsc = !this.priceOrderAsc;
|
||||||
this.current = current;
|
this.current = current;
|
||||||
},
|
},
|
||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
this.scrollHeight = res.windowHeight - (90 / 2) + 'px';
|
this.scrollHeight = res.windowHeight - res.windowWidth / 750 * 90 + 'px';
|
||||||
},
|
|
||||||
setTitle(title) {
|
|
||||||
uni.setNavigationBarTitle({
|
|
||||||
title: title
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
toDetailsPage(id) {
|
toDetailsPage(id) {
|
||||||
this.$u.route('/pageB/sdetails/index', {
|
this.$u.route('/pageB/sdetails/index', {
|
||||||
id: id,
|
id: id
|
||||||
type: 1 // 商品详情 商品类型 1普通 2拼团 3秒杀 4优惠券
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ export default {
|
|||||||
},
|
},
|
||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
this.scrollHeight = res.windowHeight - (90 / 2) + 'px';
|
this.scrollHeight = res.windowHeight - (res.windowWidth / 750) * 90 + 'px';
|
||||||
},
|
},
|
||||||
setTitle(title) {
|
setTitle(title) {
|
||||||
uni.setNavigationBarTitle({
|
uni.setNavigationBarTitle({
|
||||||
|
@ -50,15 +50,18 @@
|
|||||||
this.getMenuItemTop()
|
this.getMenuItemTop()
|
||||||
},
|
},
|
||||||
onNavigationBarButtonTap(e) {
|
onNavigationBarButtonTap(e) {
|
||||||
if(e.index == 0) this.$u.route('/pageB/search/index');
|
if(e.index == 0) this.$u.route('/pageB/search/index',{ type: 2 });
|
||||||
},
|
},
|
||||||
onNavigationBarSearchInputClicked() {
|
onNavigationBarSearchInputClicked() {
|
||||||
this.$u.route('/pageB/search/index');
|
this.$u.route('/pageB/search/index', { type: 2 });
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
toSearchPage() {
|
toSearchPage() {
|
||||||
this.$u.route({
|
this.$u.route({
|
||||||
url: "pageB/search/index"
|
url: "pageB/search/index",
|
||||||
|
prarms: {
|
||||||
|
type: 2
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 获取分类列表
|
// 获取分类列表
|
||||||
|
@ -1,16 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="imageTop">
|
<view class="imageTop">
|
||||||
<image :src="url" mode="aspectFit"></image>
|
<image :src="url" mode="widthFix"></image>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.imageTop{
|
.imageTop{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 500rpx;
|
height: 500rpx;
|
||||||
margin-bottom: 20rpx;
|
overflow: hidden;
|
||||||
>image{
|
>image{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -21,6 +22,6 @@ export default {
|
|||||||
return {
|
return {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props:['url']
|
props:['url'],
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
@ -1,17 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="listItem">
|
<view class="listItem">
|
||||||
<video v-if="type == '2'" :src="url" :show-fullscreen-btn="true"></video>
|
<video v-if="type == '2'" :src="url" :show-fullscreen-btn="true"></video>
|
||||||
<image v-else :src="url" mode="aspectFit"></image>
|
<image v-else :src="url" mode="aspectFill"></image>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.listItem{
|
.listItem{
|
||||||
width: 365rpx;
|
width: 365rpx;
|
||||||
height: 500rpx;
|
height: 500rpx;
|
||||||
margin-bottom: 20rpx;
|
overflow: hidden;
|
||||||
>image,video{
|
>image,video{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -104,7 +104,7 @@ export default {
|
|||||||
},
|
},
|
||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
this.swiperHeight = res.windowHeight - (88 / 2) + 'px';
|
this.swiperHeight = res.windowHeight - (res.windowWidth / 750) * 88 + 'px';
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -125,7 +125,7 @@ export default {
|
|||||||
},
|
},
|
||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
this.scrollHeight = res.windowHeight - 90 / 2 + 'px';
|
this.scrollHeight = res.windowHeight - (res.windowWidth / 750) * 90 + 'px';
|
||||||
// console.log(this.scrollHeight);
|
// console.log(this.scrollHeight);
|
||||||
},
|
},
|
||||||
toDetailsPage(id) {
|
toDetailsPage(id) {
|
||||||
|
@ -115,7 +115,7 @@ export default {
|
|||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
const otherHeight = 347 + 140 + 20 + 98;
|
const otherHeight = 347 + 140 + 20 + 98;
|
||||||
this.scrollHeight = res.windowHeight - otherHeight / 2 + 'px';
|
this.scrollHeight = res.windowHeight - (res.windowWidth / 750) * otherHeight + 'px';
|
||||||
// console.log(this.scrollHeight);
|
// console.log(this.scrollHeight);
|
||||||
},
|
},
|
||||||
toDetailsPage(id) {
|
toDetailsPage(id) {
|
||||||
|
@ -38,12 +38,12 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="main">
|
<view class="main">
|
||||||
<scroll-view class="video-image" scroll-y v-if="cur==0 && indextop.length" :style="{ height: scrollHeiht }">
|
<scroll-view class="video-image" scroll-y v-if="cur==0 && indextop.length" :style="{ height: scrollHeiht }">
|
||||||
<view v-for="item in indextop" :key="item.id">
|
<view v-for="item in indextop" :key="item.id" class="container-top">
|
||||||
<videoTop :url="item.article_pic" v-if="item.type == 2"></videoTop>
|
<videoTop :url="item.article_pic" v-if="item.type == 2" @click.native="toDetailsPage(item.article_id)"></videoTop>
|
||||||
<imageTop v-else :url="item.article_pic"></imageTop>
|
<imageTop v-else :url="item.article_pic" @click.native="toDetailsPage(item.article_id)"></imageTop>
|
||||||
</view>
|
</view>
|
||||||
<view style="display: flex;flex-wrap: wrap;" v-if="indexlist.length">
|
<view v-if="indexlist.length" class="container-bottom">
|
||||||
<listitem :style="{'margin-left': index%2 == 1 ? '20rpx':'0'}" v-for="(item,index) in indexlist" :key="item.id" :type="item.type" :url="item.article_pic"></listitem>
|
<listitem v-for="item in indexlist" :key="item.id" :type="item.type" :url="item.article_pic" class="bottom-item" @click.native="toDetailsPage(item.article_id)"></listitem>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
<view class="item" v-if="cur==1">
|
<view class="item" v-if="cur==1">
|
||||||
@ -109,6 +109,12 @@ export default {
|
|||||||
// if(e.index == 0) this.show = true;
|
// if(e.index == 0) this.show = true;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
toDetailsPage(id) {
|
||||||
|
// console.log(11);
|
||||||
|
this.$u.route('pageB/photo/index', {
|
||||||
|
id: id
|
||||||
|
});
|
||||||
|
},
|
||||||
switchCurrent(current) {
|
switchCurrent(current) {
|
||||||
this.cur = current;
|
this.cur = current;
|
||||||
if(current == 0) {
|
if(current == 0) {
|
||||||
@ -123,15 +129,15 @@ export default {
|
|||||||
uni.stopPullDownRefresh();
|
uni.stopPullDownRefresh();
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
getStoreImgVideoList() {
|
// getStoreImgVideoList() {
|
||||||
this.$u.api.getStoreImgVideoList({ id: this.sid }).then((res)=>{
|
// this.$u.api.getStoreImgVideoList({ id: this.sid }).then((res)=>{
|
||||||
if(res.data.length) {
|
// if(res.data.length) {
|
||||||
this.indextop = [res.data[0], res.data[1]];
|
// this.indextop = [res.data[0], res.data[1]];
|
||||||
this.indexlist = res.data.slice(2,);
|
// this.indexlist = res.data.slice(2,);
|
||||||
}
|
// }
|
||||||
uni.stopPullDownRefresh();
|
// uni.stopPullDownRefresh();
|
||||||
})
|
// })
|
||||||
},
|
// },
|
||||||
attentionMember() {
|
attentionMember() {
|
||||||
this.$u.api.attentionMember({ member_id: this.info.member_id }).then(res => {
|
this.$u.api.attentionMember({ member_id: this.info.member_id }).then(res => {
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
@ -149,13 +155,15 @@ export default {
|
|||||||
uni.stopPullDownRefresh();
|
uni.stopPullDownRefresh();
|
||||||
if (res.errCode == 0) {
|
if (res.errCode == 0) {
|
||||||
// this.articleList = res.data.list;
|
// this.articleList = res.data.list;
|
||||||
if(res.data.list.length > 0) {
|
if(JSON.stringify(res.data) != '[]') {
|
||||||
this.indextop = [res.data.list[0]]
|
if(res.data.list.length > 0) {
|
||||||
this.indextop = [res.data.list[0], res.data.list[1]];
|
this.indextop = [res.data.list[0]]
|
||||||
}
|
// this.indextop = [res.data.list[0], res.data.list[1]];
|
||||||
if(res.data.list.length > 1) {
|
}
|
||||||
this.indextop.push(res.data.list[1]);
|
if(res.data.list.length > 1) {
|
||||||
this.indexlist.push(...res.data.list.slice(2,));
|
this.indextop.push(res.data.list[1]);
|
||||||
|
this.indexlist.push(...res.data.list.slice(2,));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -288,9 +296,23 @@ export default {
|
|||||||
.video-image {
|
.video-image {
|
||||||
padding-bottom: 98rpx;
|
padding-bottom: 98rpx;
|
||||||
}
|
}
|
||||||
> view {
|
.container-top {
|
||||||
margin-top: 20rpx;
|
> view {
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
.container-bottom {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-between;
|
||||||
|
.bottom-item {
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// > view {
|
||||||
|
// margin-top: 20rpx;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
.tabbar {
|
.tabbar {
|
||||||
border-top: 1rpx #DBDADA solid;
|
border-top: 1rpx #DBDADA solid;
|
||||||
|
@ -98,8 +98,37 @@ export default {
|
|||||||
},
|
},
|
||||||
onNavigationBarButtonTap(e) {
|
onNavigationBarButtonTap(e) {
|
||||||
if( e.index == 0 ) uni.navigateBack();
|
if( e.index == 0 ) uni.navigateBack();
|
||||||
|
if( e.index == 1 ) this.customers();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
customers(){
|
||||||
|
function Friend(uuid, name, avatar,time = "", text = "",date = "") {
|
||||||
|
this.uuid = uuid;
|
||||||
|
this.name = name;
|
||||||
|
this.avatar = avatar;
|
||||||
|
this.online = false;
|
||||||
|
this.unReadMessage = 0;
|
||||||
|
this.text = text;
|
||||||
|
this.time = time;
|
||||||
|
this.date = date
|
||||||
|
}
|
||||||
|
// console.log(123)
|
||||||
|
this.$u.api.getAtwillUserInfo({
|
||||||
|
id: 1 // 平台店铺 id
|
||||||
|
}).then((res)=>{
|
||||||
|
// console.log(res)
|
||||||
|
let user = new Friend(res.data.member_id,res.data.member_nickname,res.data.member_avatar)
|
||||||
|
this.$u.route({
|
||||||
|
url:"/pageD/privateChat/privateChat",
|
||||||
|
params:{
|
||||||
|
id:JSON.stringify(user)
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
}).catch((err)=>{
|
||||||
|
console.log(err)
|
||||||
|
})
|
||||||
|
},
|
||||||
changeAvatar() {
|
changeAvatar() {
|
||||||
const url = this.$u.http.config.baseUrl + '/Upload/uploadfile';
|
const url = this.$u.http.config.baseUrl + '/Upload/uploadfile';
|
||||||
uni.chooseImage({
|
uni.chooseImage({
|
||||||
|
@ -40,7 +40,7 @@ export default {
|
|||||||
setIntegralHeight() {
|
setIntegralHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
// console.log(res.windowHeight);
|
// console.log(res.windowHeight);
|
||||||
this.integralHeight = res.windowHeight - 251 / 2 + 'px';
|
this.integralHeight = res.windowHeight - (res.windowWidth / 750) * 251 + 'px';
|
||||||
},
|
},
|
||||||
getMemberPointsStat() {
|
getMemberPointsStat() {
|
||||||
this.$u.api.getMemberPointsStat().then((res)=>{
|
this.$u.api.getMemberPointsStat().then((res)=>{
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<scroll-view scroll-y class="medal-article">
|
<scroll-view scroll-y class="medal-article">
|
||||||
<view class="medal-title">
|
<view class="medal-title">
|
||||||
<image src="../static/mine/29.png"></image>
|
<image src="../static/mine/29.png"></image>
|
||||||
<view>了解勋章</view>
|
<view>{{ title }}</view>
|
||||||
<image src="../static/mine/30.png"></image>
|
<image src="../static/mine/30.png"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="medal-content">
|
<view class="medal-content">
|
||||||
@ -18,6 +18,7 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
nodes: '',
|
nodes: '',
|
||||||
|
title: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -27,7 +28,8 @@ export default {
|
|||||||
getMemberPointsStat() {
|
getMemberPointsStat() {
|
||||||
this.$u.api.getMemberPointsStat().then((res)=>{
|
this.$u.api.getMemberPointsStat().then((res)=>{
|
||||||
if (res.errCode == 0) {
|
if (res.errCode == 0) {
|
||||||
const nodes = res.data.grade_rule;
|
this.title = res.data.grade_rule.document_title;
|
||||||
|
const nodes = res.data.grade_rule.document_content;
|
||||||
this.nodes = common.unescapeHTML(nodes);
|
this.nodes = common.unescapeHTML(nodes);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -101,9 +101,9 @@ export default {
|
|||||||
},
|
},
|
||||||
getMemberPointsStat() {
|
getMemberPointsStat() {
|
||||||
this.$u.api.getMemberPointsStat().then((res)=>{
|
this.$u.api.getMemberPointsStat().then((res)=>{
|
||||||
if (res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
this.memberInfo = res.data;
|
this.memberInfo = res.data;
|
||||||
this.nodes = common.unescapeHTML(this.memberInfo.points_rule);
|
this.nodes = common.unescapeHTML(this.memberInfo.points_rule.document_content);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -117,9 +117,9 @@ export default {
|
|||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
// console.log(res.windowHeight);
|
// console.log(res.windowHeight);
|
||||||
this.richHeight = res.windowHeight - (88 + 250) / 2 + 'px';
|
this.richHeight = res.windowHeight - (88 + 250) * (res.windowWidth / 750) + 'px';
|
||||||
// console.log(this.richHeight);
|
// console.log(this.richHeight);
|
||||||
this.swiperHeight = res.windowHeight - 88 / 2 + 'px';
|
this.swiperHeight = res.windowHeight - (res.windowWidth / 750) * 88 + 'px';
|
||||||
},
|
},
|
||||||
viewProgress() {
|
viewProgress() {
|
||||||
this.$u.route({
|
this.$u.route({
|
||||||
|
@ -7,11 +7,11 @@
|
|||||||
<swiper :current="swiperCouponCurrent" @animationfinish="couponAnimationFinish" :style="{ height: swiperHeight }">
|
<swiper :current="swiperCouponCurrent" @animationfinish="couponAnimationFinish" :style="{ height: swiperHeight }">
|
||||||
<swiper-item class="swiper-coupon-item" v-for="(_, i) in couponGroupList" :key="i">
|
<swiper-item class="swiper-coupon-item" v-for="(_, i) in couponGroupList" :key="i">
|
||||||
<scroll-view scroll-y style="height: 100%;" @scrolltolower="onreachBottom" class="coupon-scroll">
|
<scroll-view scroll-y style="height: 100%;" @scrolltolower="onreachBottom" class="coupon-scroll">
|
||||||
<view v-for="(coupon, index) in couponList" :key="index" class="coupon-item">
|
<view v-for="(coupon, index) in couponList[i]" :key="index" class="coupon-item">
|
||||||
<Coupon :couponInfo="coupon" :status='0' :type="0" @exchange="exchangeCoupon($event)"></Coupon>
|
<Coupon :couponInfo="coupon" :status='0' :type="0" @exchange="exchangeCoupon($event)"></Coupon>
|
||||||
</view>
|
</view>
|
||||||
<u-loadmore :status="loadStatus" bgColor="#FFF" margin-top="20" margin-bottom="20" v-if="couponList.length>=pageSize" @loadmore="onreachBottom"></u-loadmore>
|
<u-empty text="暂无优惠券" mode="coupon" color="#000" v-if="!couponList[i] || !couponList[i].length"></u-empty>
|
||||||
<u-empty text="暂无优惠券" mode="coupon" color="#000" v-if="!couponList.length"></u-empty>
|
<u-loadmore :status="loadStatus" bgColor="#FFF" margin-bottom="60" v-if="!couponList[i] || couponList[i].length>=pageSize" @loadmore="onreachBottom"></u-loadmore>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</swiper>
|
</swiper>
|
||||||
@ -49,7 +49,7 @@ export default {
|
|||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
couponCurrent(index) {
|
couponCurrent(index) {
|
||||||
this.couponList = [];
|
// this.couponList = [];
|
||||||
const id = this.couponGroupList[index].gc_id;
|
const id = this.couponGroupList[index].gc_id;
|
||||||
this.getCouponList({ gc_id: id, load: 'reload' });
|
this.getCouponList({ gc_id: id, load: 'reload' });
|
||||||
},
|
},
|
||||||
@ -89,9 +89,10 @@ export default {
|
|||||||
})
|
})
|
||||||
this.timer = true;
|
this.timer = true;
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
if(load == 'reload') this.couponList = res.data;
|
if(load == 'reload') this.couponList[this.couponCurrent] = res.data;
|
||||||
else if(load == 'loadmore') this.couponList.push(...res.data);
|
else if(load == 'loadmore') this.couponList[this.couponCurrent].push(...res.data);
|
||||||
}
|
}
|
||||||
|
this.$forceUpdate();
|
||||||
return res.data.length;
|
return res.data.length;
|
||||||
},
|
},
|
||||||
exchangeCoupon(id) {
|
exchangeCoupon(id) {
|
||||||
@ -109,7 +110,7 @@ export default {
|
|||||||
},
|
},
|
||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
this.swiperHeight = res.windowHeight - ((88 + 10 + 88) / 2) + 'px';
|
this.swiperHeight = res.windowHeight - ((88 + 10 + 88) * (res.windowWidth / 750)) + 'px';
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@ -5,17 +5,17 @@
|
|||||||
<view class="rank-value">lv{{ memberInfo.member_level }}</view>
|
<view class="rank-value">lv{{ memberInfo.member_level }}</view>
|
||||||
<view class="line-box">
|
<view class="line-box">
|
||||||
<u-line-progress :percent="percent" :show-percent="false" inactive-color="#FFFFFF" active-color="#F1A36B" height="30" :striped="true" :striped-active="true"></u-line-progress>
|
<u-line-progress :percent="percent" :show-percent="false" inactive-color="#FFFFFF" active-color="#F1A36B" height="30" :striped="true" :striped-active="true"></u-line-progress>
|
||||||
<text>{{ memberInfo.member_exppoints | percentExp(memberInfo.next_grade_exppoints_diff) }}</text>
|
<text>{{ memberInfo.member_exppoints + '/' + memberInfo.next_member_level_exppoints }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="rank-value">lv{{ memberInfo.member_level + 1 }}</view>
|
<view class="rank-value">lv{{ memberInfo.next_member_level }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="exp-value">经验值<span>{{ memberInfo.member_exppoints }}</span></view>
|
<view class="exp-value">经验值<span>{{ memberInfo.member_exppoints }}</span></view>
|
||||||
<view class="distance">距离下一级还需要{{ memberInfo.next_grade_exppoints_diff }}经验值</view>
|
<view class="distance">距离下一级还需要 {{ memberInfo.next_member_level_exppoints_diff }} 经验值</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="body">
|
<view class="body">
|
||||||
<view class="title">
|
<view class="title" v-if="memberInfo.level_rule">
|
||||||
<image src="/static/image/mine/34.png"></image>
|
<image src="/static/image/mine/34.png"></image>
|
||||||
<text>等级定义</text>
|
<text>{{ memberInfo.level_rule.document_title }}</text>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="rank-list">
|
<!-- <view class="rank-list">
|
||||||
<view v-for="(rank, index) in rank" :key="index" class="list-item">
|
<view v-for="(rank, index) in rank" :key="index" class="list-item">
|
||||||
@ -57,11 +57,9 @@ export default {
|
|||||||
this.$u.api.getMemberPointsStat().then((res)=>{
|
this.$u.api.getMemberPointsStat().then((res)=>{
|
||||||
if (res.errCode == 0) {
|
if (res.errCode == 0) {
|
||||||
this.memberInfo = res.data;
|
this.memberInfo = res.data;
|
||||||
this.nodes = common.unescapeHTML(res.data.points_rule);
|
this.nodes = common.unescapeHTML(res.data.level_rule.document_content);
|
||||||
// console.log(this.percent);
|
// console.log(this.percent);
|
||||||
this.percent = typeof(res.data.next_grade_exppoints_diff) == 'Number'
|
this.percent = (res.data.member_exppoints / res.data.next_member_level_exppoints) * 100;
|
||||||
? res.data.member_exppoints / (res.data.next_grade_exppoints_diff + res.data.member_exppoints)
|
|
||||||
: 100;
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@ -123,7 +121,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.body {
|
.body {
|
||||||
margin-top: 60rpx;
|
margin-top: 20rpx;
|
||||||
.title {
|
.title {
|
||||||
height: 88rpx;
|
height: 88rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -133,7 +131,7 @@ export default {
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: rgba(51,51,51,1);
|
color: rgba(51,51,51,1);
|
||||||
// border-bottom: #ECECEC 1rpx solid;
|
// border-bottom: #ECECEC 1rpx solid;
|
||||||
margin-bottom: 30rpx;
|
margin-bottom: 20rpx;
|
||||||
> image {
|
> image {
|
||||||
width: 29rpx;
|
width: 29rpx;
|
||||||
height: 36rpx;
|
height: 36rpx;
|
||||||
|
@ -90,7 +90,7 @@ export default {
|
|||||||
},
|
},
|
||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
this.swiperHeight = res.windowHeight - (88 / 2) + 'px';
|
this.swiperHeight = res.windowHeight - (88 * (res.windowWidth / 750)) + 'px';
|
||||||
},
|
},
|
||||||
tabsChange(index) {
|
tabsChange(index) {
|
||||||
this.swiperCurrent = index;
|
this.swiperCurrent = index;
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<scroll-view scroll-y class="scroll-coupon">
|
<scroll-view scroll-y class="scroll-coupon">
|
||||||
<view v-if="couponList[index]">
|
<view v-if="couponList[index]">
|
||||||
<view class="coupon-item" v-for="(coupon, c_index) in couponList[index]" :key="c_index">
|
<view class="coupon-item" v-for="(coupon, c_index) in couponList[index]" :key="c_index">
|
||||||
<Coupon :couponInfo="coupon" :status='index' :type="1" @use="useCoupon($event)" :goodsClass="goodsClass"></Coupon>
|
<Coupon :couponInfo="coupon" :status='index' @use="useCoupon($event)" :goodsClass="goodsClass"></Coupon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-empty text="暂无优惠券" mode="coupon" v-if="!couponList[index] || !couponList[index].length"></u-empty>
|
<u-empty text="暂无优惠券" mode="coupon" v-if="!couponList[index] || !couponList[index].length"></u-empty>
|
||||||
@ -68,12 +68,22 @@ export default {
|
|||||||
this.$forceUpdate();
|
this.$forceUpdate();
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
useCoupon(id) {
|
useCoupon(coupon) {
|
||||||
console.log(id);
|
// console.log(coupon);
|
||||||
|
if(coupon.type == 1) {
|
||||||
|
this.$u.route({
|
||||||
|
type: 'switchTab',
|
||||||
|
url: 'pages/shop/index',
|
||||||
|
})
|
||||||
|
} else if(coupon.type == 2) {
|
||||||
|
this.$u.route('pageC/merchant/index', {
|
||||||
|
id: coupon.voucher_store_id,
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
this.swiperHeight = res.windowHeight - (88 / 2 + 11 / 2) + 'px';
|
this.swiperHeight = res.windowHeight - (100 * (res.windowWidth / 750)) + 'px';
|
||||||
},
|
},
|
||||||
tabsChange(index) {
|
tabsChange(index) {
|
||||||
this.swiperCurrent = index;
|
this.swiperCurrent = index;
|
||||||
|
@ -4,12 +4,12 @@
|
|||||||
<view class="item-box">
|
<view class="item-box">
|
||||||
<!-- 需求:只显示最近五十条数据 后台未作限制 -->
|
<!-- 需求:只显示最近五十条数据 后台未作限制 -->
|
||||||
<view v-for="(item, index) in historyList.slice(0, 50)" :key="index" class="history-item">
|
<view v-for="(item, index) in historyList.slice(0, 50)" :key="index" class="history-item">
|
||||||
<view class="item-title">
|
<view class="item-title" @click="viewStoreDetails(item.store_id)">
|
||||||
<image :src="item.store_avatar"></image>
|
<image :src="item.store_avatar"></image>
|
||||||
<view>{{ item.store_name }}</view>
|
<view class="u-line-2">{{ item.store_name }}</view>
|
||||||
</view>
|
</view>
|
||||||
<image :src="item.goods_image" class="item-image"></image>
|
<image :src="item.goods_image" class="item-image" @click="viewGoodsDetails(item.goods_id)"></image>
|
||||||
<view class="item-info">
|
<view class="item-info" @click="viewGoodsDetails(item.goods_id)">
|
||||||
<view class="info-name u-line-1">{{ item.goods_name }}</view>
|
<view class="info-name u-line-1">{{ item.goods_name }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -34,6 +34,22 @@ export default {
|
|||||||
this.getBrowseList();
|
this.getBrowseList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
viewStoreDetails(sid) {
|
||||||
|
this.$u.route({
|
||||||
|
url: 'pageC/merchant/index',
|
||||||
|
params: {
|
||||||
|
id: sid,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
viewGoodsDetails(id) {
|
||||||
|
this.$u.route({
|
||||||
|
url: 'pageB/sdetails/index',
|
||||||
|
params: {
|
||||||
|
id: id,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
async getBrowseList () {
|
async getBrowseList () {
|
||||||
const res = await this.$u.api.getBrowseList({ page: this.page });
|
const res = await this.$u.api.getBrowseList({ page: this.page });
|
||||||
this.timer = false;
|
this.timer = false;
|
||||||
|
@ -44,7 +44,7 @@
|
|||||||
<view class="btn" v-if="item.order_status == 20" @click="sendLaundryOrderConfirm(item.laundry_id)">
|
<view class="btn" v-if="item.order_status == 20" @click="sendLaundryOrderConfirm(item.laundry_id)">
|
||||||
确认完成
|
确认完成
|
||||||
</view>
|
</view>
|
||||||
<view class="btn" v-if="item.order_status == 50" @click="toComment(item.laundry_id)">
|
<view class="btn" v-if="item.order_status == 50 && !item.comment" @click="toComment(item.laundry_id)">
|
||||||
去评价
|
去评价
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -192,7 +192,7 @@ export default {
|
|||||||
},
|
},
|
||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
this.swiperHeight = res.windowHeight - (88 / 2) + 'px';
|
this.swiperHeight = res.windowHeight - (88 * (res.windowWidth / 750)) + 'px';
|
||||||
},
|
},
|
||||||
toComment(id) {
|
toComment(id) {
|
||||||
this.$u.route('/pageE/tool/washComment', {
|
this.$u.route('/pageE/tool/washComment', {
|
||||||
|
@ -175,7 +175,7 @@
|
|||||||
<view class="checkd">
|
<view class="checkd">
|
||||||
<label class="radio-view" v-for="(item, index) in items.extend_order_goods" :key="index">
|
<label class="radio-view" v-for="(item, index) in items.extend_order_goods" :key="index">
|
||||||
<view class="radio">
|
<view class="radio">
|
||||||
<u-radio color="#F0AD4E" :name="items.order_id + ' ' + item.goods_id" active-color="#FF780F" icon-size="34" shape="circle"></u-radio>
|
<u-radio color="#F0AD4E" :name="items.order_id + ' ' + item.goods_id" active-color="#FF780F" icon-size="24" shape="circle"></u-radio>
|
||||||
</view>
|
</view>
|
||||||
<view class="store_info">
|
<view class="store_info">
|
||||||
<view class="info_img">
|
<view class="info_img">
|
||||||
@ -267,7 +267,7 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.typeList = [];
|
this.typeList = [];
|
||||||
}
|
}
|
||||||
console.log(this.typeList);
|
// console.log(this.typeList);
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
confirmType(e) {
|
confirmType(e) {
|
||||||
@ -388,7 +388,7 @@ export default {
|
|||||||
},
|
},
|
||||||
radioChange(e){
|
radioChange(e){
|
||||||
const ids = e.split(" ");
|
const ids = e.split(" ");
|
||||||
console.log(ids)
|
// console.log(ids)
|
||||||
let checkedGoods = {};
|
let checkedGoods = {};
|
||||||
this.orderList.forEach(order => {
|
this.orderList.forEach(order => {
|
||||||
if(order.order_id == ids[0]) {
|
if(order.order_id == ids[0]) {
|
||||||
@ -438,9 +438,7 @@ export default {
|
|||||||
},
|
},
|
||||||
setViewHeight() {
|
setViewHeight() {
|
||||||
const res = uni.getSystemInfoSync();
|
const res = uni.getSystemInfoSync();
|
||||||
// this.swiperHeight = res.windowHeight - (88 / 2) + 'px';
|
this.swiperHeight = res.windowHeight - (res.windowWidth / 750) * 88 + 'px';
|
||||||
// this.swiperHeight = res.windowHeight + 500 + 'px';
|
|
||||||
this.swiperHeight = res.windowHeight - (res.windowWidth / 750) * 88 + 'px';
|
|
||||||
},
|
},
|
||||||
confirm(e){
|
confirm(e){
|
||||||
this.showPopup = false;
|
this.showPopup = false;
|
||||||
|
@ -442,7 +442,9 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
goSearch() {
|
goSearch() {
|
||||||
this.$u.route("/pageB/search/index");
|
this.$u.route("/pageB/search/index", {
|
||||||
|
type: 2,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<u-avatar @click="toOtherPage('/mine/MineInfo')" :src="userInfo.member_avatar + '?' + new Date().getTime()" :size="110"></u-avatar>
|
<u-avatar @click="toOtherPage('/mine/MineInfo')" :src="userInfo.member_avatar + '?' + new Date().getTime()" :size="110"></u-avatar>
|
||||||
<view class="user-info">
|
<view class="user-info">
|
||||||
<view class="info-left">
|
<view class="info-left">
|
||||||
<view class="user-nickname">{{ userInfo.member_nickname }}</view>
|
<view class="user-nickname u-line-1">{{ userInfo.member_nickname }}</view>
|
||||||
<view class="user-medal" @click="toOtherPage('/mine/MedalIntroduction')">
|
<view class="user-medal" @click="toOtherPage('/mine/MedalIntroduction')">
|
||||||
<image src="/static/image/mine/13.png"></image>
|
<image src="/static/image/mine/13.png"></image>
|
||||||
<view class="rank-title">{{ userInfo.member_grade_name }}</view>
|
<view class="rank-title">{{ userInfo.member_grade_name }}</view>
|
||||||
@ -192,13 +192,14 @@ export default {
|
|||||||
.info-left {
|
.info-left {
|
||||||
margin-right: 15rpx;
|
margin-right: 15rpx;
|
||||||
.user-nickname {
|
.user-nickname {
|
||||||
|
width: 100rpx;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
color: rgba(51,51,51,1);
|
color: rgba(51,51,51,1);
|
||||||
margin-bottom: 19rpx;
|
margin-bottom: 19rpx;
|
||||||
}
|
}
|
||||||
.user-medal {
|
.user-medal {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 110rpx;
|
// width: 110rpx;
|
||||||
// height: 25rpx;
|
// height: 25rpx;
|
||||||
background: linear-gradient(269deg,rgba(175,175,175,1) 0%,rgba(224,224,224,1) 100%);
|
background: linear-gradient(269deg,rgba(175,175,175,1) 0%,rgba(224,224,224,1) 100%);
|
||||||
border-radius: 13rpx;
|
border-radius: 13rpx;
|
||||||
|
@ -112,7 +112,10 @@
|
|||||||
sousuo() {
|
sousuo() {
|
||||||
// console.log(123)
|
// console.log(123)
|
||||||
this.$u.route({
|
this.$u.route({
|
||||||
url: "pageB/search/index"
|
url: "pageB/search/index",
|
||||||
|
params: {
|
||||||
|
type: 1,
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 获取定位
|
// 获取定位
|
||||||
|
Loading…
x
Reference in New Issue
Block a user