Merge branch 'master' of http://git.luyuan.tk/luyuan/deming into xbx
@ -81,6 +81,14 @@ export default {
|
|||||||
getGoodsClassRecommend() {
|
getGoodsClassRecommend() {
|
||||||
return vm.$u.post('Goods/getGoodsClassRecommend');
|
return vm.$u.post('Goods/getGoodsClassRecommend');
|
||||||
},
|
},
|
||||||
|
// goodsListByClassId
|
||||||
|
goodsListByClassId({ gc_id, page, order }) {
|
||||||
|
return vm.$u.post('goods/goodsListByClassId', {
|
||||||
|
gc_id: gc_id,
|
||||||
|
page: page,
|
||||||
|
order: order,
|
||||||
|
});
|
||||||
|
},
|
||||||
// 商品推荐
|
// 商品推荐
|
||||||
getGoodsRecommend({page, gc_id}){
|
getGoodsRecommend({page, gc_id}){
|
||||||
return vm.$u.post('Goods/getGoodsRecommend', {
|
return vm.$u.post('Goods/getGoodsRecommend', {
|
||||||
|
@ -3,8 +3,8 @@
|
|||||||
<image class="head" :src="info.member_avatar"></image>
|
<image class="head" :src="info.member_avatar"></image>
|
||||||
<text class="name">{{ info.member_nickname }}</text>
|
<text class="name">{{ info.member_nickname }}</text>
|
||||||
<text class="zhuangtai">状态: {{ info.live_status == 1 ? '正在直播' : '未开播' }}</text>
|
<text class="zhuangtai">状态: {{ info.live_status == 1 ? '正在直播' : '未开播' }}</text>
|
||||||
<view class="guanzhu" @tap="changeType(info.member_id)" v-if="info.is_attention == 1">关注</view>
|
<view class="guanzhu action" @tap="changeType(info.member_id)" v-if="info.is_attention == 1">已关注</view>
|
||||||
<view class="guanzhu action" @tap="changeType(info.member_id)" v-else >未关注</view>
|
<view class="guanzhu" @tap="changeType(info.member_id)" v-else >未关注</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -80,6 +80,7 @@ export default {
|
|||||||
}
|
}
|
||||||
.action{
|
.action{
|
||||||
background: #f3f3f3;
|
background: #f3f3f3;
|
||||||
|
color: #FF780F;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -50,10 +50,10 @@
|
|||||||
.title{
|
.title{
|
||||||
margin:0 auto;
|
margin:0 auto;
|
||||||
margin-top: 20rpx;
|
margin-top: 20rpx;
|
||||||
font-size: 22rpx;
|
font-size: 28rpx;
|
||||||
color: #333;
|
color: #333;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
line-height: 30rpx;
|
line-height: 48rpx;
|
||||||
width: 300rpx;
|
width: 300rpx;
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
text-overflow:ellipsis;
|
text-overflow:ellipsis;
|
||||||
@ -113,6 +113,7 @@
|
|||||||
box-shadow: 0rpx 0rpx 6rpx 0rpx rgba(35,24,21,0.12);
|
box-shadow: 0rpx 0rpx 6rpx 0rpx rgba(35,24,21,0.12);
|
||||||
.bubble {
|
.bubble {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
border-radius: 20rpx;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
&::after {
|
&::after {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@ -130,8 +131,7 @@
|
|||||||
> view {
|
> view {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 52rpx;
|
padding: 20rpx 30rpx;
|
||||||
padding: 10rpx 20rpx;
|
|
||||||
&:not(:last-child) {
|
&:not(:last-child) {
|
||||||
border-bottom: 2rpx #ECECEC solid;
|
border-bottom: 2rpx #ECECEC solid;
|
||||||
}
|
}
|
||||||
@ -142,17 +142,17 @@
|
|||||||
}
|
}
|
||||||
> image {
|
> image {
|
||||||
&:first-child {
|
&:first-child {
|
||||||
@include image-class($width: 21rpx, $height: 22rpx, $right: 12rpx);
|
@include image-class($width: 30rpx, $height: 30rpx, $right: 12rpx);
|
||||||
}
|
}
|
||||||
&:nth-child(2) {
|
&:nth-child(2) {
|
||||||
@include image-class($width: 22rpx, $height: 22rpx, $right: 12rpx);
|
@include image-class($width: 30rpx, $height: 30rpx, $right: 12rpx);
|
||||||
}
|
}
|
||||||
&:last-child {
|
&:last-child {
|
||||||
@include image-class($width: 24rpx, $height: 20rpx, $right: 9rpx);
|
@include image-class($width: 30rpx, $height: 30rpx, $right: 9rpx);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
> text {
|
> text {
|
||||||
font-size: 20rpx;
|
font-size: 24rpx;
|
||||||
color: rgba(51,51,51,1);
|
color: rgba(51,51,51,1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -205,6 +205,7 @@ export default {
|
|||||||
}).then(res => {
|
}).then(res => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
|
this.$u.toast(res.message);
|
||||||
this.$emit("getArticlelist");
|
this.$emit("getArticlelist");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -213,8 +214,9 @@ export default {
|
|||||||
this.$u.api.articleCollect({
|
this.$u.api.articleCollect({
|
||||||
article_id: this.item.article_id,
|
article_id: this.item.article_id,
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
console.log(res)
|
console.log(res);
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
|
this.$u.toast(res.message);
|
||||||
this.$emit("getArticlelist");
|
this.$emit("getArticlelist");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -226,6 +228,7 @@ export default {
|
|||||||
}).then(res => {
|
}).then(res => {
|
||||||
// console.log(res)
|
// console.log(res)
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
|
this.$u.toast(res.message);
|
||||||
this.$emit("getArticlelist");
|
this.$emit("getArticlelist");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<view class="text_view">{{item.content}}</view>
|
<view class="text_view">{{item.content}}</view>
|
||||||
<view class="notice_list">
|
<view class="notice_list">
|
||||||
<text>查看详情</text>
|
<text>查看详情</text>
|
||||||
<view> > </view>
|
<u-icon name="arrow-right" color="#666"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -15,7 +15,6 @@
|
|||||||
</template>
|
</template>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.notice {
|
.notice {
|
||||||
background: #ECECEC;
|
|
||||||
.notice_view{
|
.notice_view{
|
||||||
width: 690rpx;
|
width: 690rpx;
|
||||||
height: 489rpx;
|
height: 489rpx;
|
||||||
|
@ -68,7 +68,8 @@
|
|||||||
this.$refs.uCode.start();
|
this.$refs.uCode.start();
|
||||||
}, 2000);
|
}, 2000);
|
||||||
} else {
|
} else {
|
||||||
this.$u.toast('倒计时结束后再发送');
|
// this.$u.toast('倒计时结束后再发送');
|
||||||
|
console.log("倒计时结束后再发送");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,12 +25,13 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="order-btn" v-if="[1, 2, 3, 4, 8].indexOf(order.view_type) >= 0">
|
<view class="order-btn" v-if="[1, 2, 3, 4, 8].indexOf(order.view_type) >= 0">
|
||||||
<view class="cancel" v-if="order.view_type == 3 || order.view_type == 2" @click="applyRefund">申请退款</view>
|
<!-- @click="toOtherPage('RefundOrder')" -->
|
||||||
|
<view class="cancel" v-if="order.view_type == 3 || order.view_type == 2">申请退款</view>
|
||||||
<view class="cancel" v-if="order.view_type == 3" @click="toOtherPage('Logistics')">查看物流</view>
|
<view class="cancel" v-if="order.view_type == 3" @click="toOtherPage('Logistics')">查看物流</view>
|
||||||
<view class="logistics" v-if="order.view_type == 3" @click="confirmReceive">确认收货</view>
|
<view class="logistics" v-if="order.view_type == 3" @click="confirmReceive">确认收货</view>
|
||||||
<view class="comment" v-if="order.view_type == 4" @click="toOtherPage('Comment')">立即评价</view>
|
<view class="comment" v-if="order.view_type == 4" @click="toOtherPage('Comment')">立即评价</view>
|
||||||
<view class="cancel" v-if="order.view_type == 1" @click="cancelOrder">取消支付</view>
|
<view class="cancel" v-if="order.view_type == 1" @click="cancelOrder">取消支付</view>
|
||||||
<view class="payment" v-if="order.view_type == 1" @click="payNow(order.pay_sn, order.order_amount)">立即支付</view>
|
<view class="payment" v-if="order.view_type == 1" @click="payNow(order.pay_sn, order.order_amount,order.order_id)">立即支付</view>
|
||||||
<view class="service" v-if="order.view_type == 8">联系官方客服</view>
|
<view class="service" v-if="order.view_type == 8">联系官方客服</view>
|
||||||
<view class="submit" v-if="order.view_type == 8">提交官方审核</view>
|
<view class="submit" v-if="order.view_type == 8">提交官方审核</view>
|
||||||
</view>
|
</view>
|
||||||
@ -66,6 +67,18 @@ export default {
|
|||||||
case 4:
|
case 4:
|
||||||
state = '待评价';
|
state = '待评价';
|
||||||
break;
|
break;
|
||||||
|
case 5:
|
||||||
|
state = '交易成功';
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
state = '待退款';
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
state = '已退款';
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
state = '拼团中';
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -81,19 +94,6 @@ export default {
|
|||||||
this.$u.toast(res.message);
|
this.$u.toast(res.message);
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
applyRefund() {
|
|
||||||
let params = {
|
|
||||||
order_id: this.order.order_id,
|
|
||||||
// goods_id: goods_id,
|
|
||||||
// refund_amount: refund_amount,
|
|
||||||
}
|
|
||||||
this.$u.api.refundOrder(params).then(res => {
|
|
||||||
this.$u.toast(res.message);
|
|
||||||
if(res.errCode == 0) {
|
|
||||||
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
confirmReceive() {
|
confirmReceive() {
|
||||||
this.$u.api.confirmReceive({
|
this.$u.api.confirmReceive({
|
||||||
order_id: this.order.order_id,
|
order_id: this.order.order_id,
|
||||||
@ -109,10 +109,11 @@ export default {
|
|||||||
oid: this.order.order_id,
|
oid: this.order.order_id,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
payNow(pay_sn, order_amount) {
|
payNow(pay_sn, order_amount, id) {
|
||||||
this.$u.route('/pageC/cart/cashier', {
|
this.$u.route('/pageC/cart/cashier', {
|
||||||
pay_sn: pay_sn,
|
pay_sn: pay_sn,
|
||||||
price: order_amount,
|
price: order_amount,
|
||||||
|
order_id: id
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<view v-if="type" id="video_mp4">
|
<view v-if="type" id="video_mp4">
|
||||||
<view class="page-body">
|
<view class="page-body">
|
||||||
<view class="page-section">
|
<view class="page-section">
|
||||||
<video id="myVideo" :src=" 'https://' + vide0_url" :controls="controls" :autoplay="autoplayes" :loop="loop" @error="videoErrorCallback"
|
<video id="myVideo" enable-progress-gesture="false" :src=" 'https://' + vide0_url" autoplay controls="false" @error="videoErrorCallback" @timeupdate="timeupdate"
|
||||||
enable-danmu danmu-btn></video>
|
enable-danmu danmu-btn></video>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -17,11 +17,12 @@
|
|||||||
<view class="uni-padding-wrap">
|
<view class="uni-padding-wrap">
|
||||||
<view class="page-section swiper">
|
<view class="page-section swiper">
|
||||||
<view class="page-section-spacing">
|
<view class="page-section-spacing">
|
||||||
<swiper class="swiper" :indicator-dots="true" :style="{height:heightOut+'px'}" :autoplay="false" :interval="3000" :duration="1000">
|
<swiper class="swiper" :indicator-dots="true" :style="{height:heightOut+'px'}" :autoplay="false" :interval="3000" :duration="1000" @animationfinish="">
|
||||||
<swiper-item v-for="(item,index) in list" :key="index">
|
<swiper-item v-for="(item,index) in list" :key="index">
|
||||||
<view class="swiper-item uni-bg-red">
|
<view class="swiper-item uni-bg-red">
|
||||||
<image :src=" 'https://' + item.launch_path"></image>
|
<image :src=" 'https://' + item.launch_path"></image>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="btn-init" v-if="parseInt(index) == 2" @click="goNext">立即体验</view>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</swiper>
|
</swiper>
|
||||||
</view>
|
</view>
|
||||||
@ -48,13 +49,12 @@
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
remaining: 11,
|
remaining: 7,
|
||||||
type: true,
|
type: true,
|
||||||
banner: false,
|
banner: false,
|
||||||
protocol: false,
|
protocol: false,
|
||||||
heightOut: '',
|
heightOut: '',
|
||||||
imgurl: [],
|
imgurl: [],
|
||||||
loop: 'true',
|
|
||||||
vide0_url: '',
|
vide0_url: '',
|
||||||
agreement: { // 用户协议内容
|
agreement: { // 用户协议内容
|
||||||
document_title: "",
|
document_title: "",
|
||||||
@ -67,28 +67,16 @@
|
|||||||
src: '',
|
src: '',
|
||||||
inputValue: '',
|
inputValue: '',
|
||||||
controls: false,
|
controls: false,
|
||||||
autoplayes: true,
|
|
||||||
list: [],
|
list: [],
|
||||||
danmuList: [{
|
|
||||||
text: '第 1s 出现的弹幕',
|
|
||||||
color: '#ff0000',
|
|
||||||
time: 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: '第 3s 出现的弹幕',
|
|
||||||
color: '#ff00ff',
|
|
||||||
time: 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
background: ['color1', 'color2', 'color3'],
|
background: ['color1', 'color2', 'color3'],
|
||||||
indicatorDots: true,
|
indicatorDots: true,
|
||||||
autoplay: true,
|
|
||||||
interval: 2000,
|
interval: 2000,
|
||||||
duration: 500
|
duration: 500,
|
||||||
|
swiper_index: "",
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
onReady: function(res) {
|
onReady: function(res) {
|
||||||
this.videoContext = uni.createVideoContext('myVideo')
|
this.videoContext = uni.createVideoContext('myVideo');
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
apiwelcome() {
|
apiwelcome() {
|
||||||
@ -110,7 +98,6 @@
|
|||||||
let vide0_url = res.data.start_page[0].launch_path
|
let vide0_url = res.data.start_page[0].launch_path
|
||||||
this.list = data_image;
|
this.list = data_image;
|
||||||
this.vide0_url = vide0_url;
|
this.vide0_url = vide0_url;
|
||||||
console.log(this.list)
|
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 3秒倒计时
|
// 3秒倒计时
|
||||||
@ -120,7 +107,7 @@
|
|||||||
if (this.remaining <= 0) {
|
if (this.remaining <= 0) {
|
||||||
clearInterval(this.timer);
|
clearInterval(this.timer);
|
||||||
console.log("完了")
|
console.log("完了")
|
||||||
this.type = !this.type
|
this.type = !this.type;
|
||||||
this.banner = !this.banner;
|
this.banner = !this.banner;
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
@ -146,13 +133,18 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
// 立即体验
|
||||||
|
goNext() {
|
||||||
|
this.protocol = true;
|
||||||
|
this.banner = false;
|
||||||
|
},
|
||||||
// 我同意
|
// 我同意
|
||||||
to_agree() {
|
to_agree() {
|
||||||
uni.setStorage({
|
uni.setStorage({
|
||||||
key: 'launchFlag',
|
key: 'launchFlag',
|
||||||
data: true,
|
data: true,
|
||||||
success: function() {
|
success: function() {
|
||||||
console.log('error时存储launchFlag');
|
console.log('点击存储launchFlag');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
@ -161,7 +153,8 @@
|
|||||||
},
|
},
|
||||||
// 视频引入
|
// 视频引入
|
||||||
bindInputBlur: function(e) {
|
bindInputBlur: function(e) {
|
||||||
this.inputValue = e.target.value
|
this.inputValue = e.target.value;
|
||||||
|
console.log(e.target.value);
|
||||||
},
|
},
|
||||||
bindButtonTap: function() {
|
bindButtonTap: function() {
|
||||||
var that = this
|
var that = this
|
||||||
@ -183,6 +176,9 @@
|
|||||||
videoErrorCallback: function(e) {
|
videoErrorCallback: function(e) {
|
||||||
console.log('视频错误信息:',e);
|
console.log('视频错误信息:',e);
|
||||||
},
|
},
|
||||||
|
timeupdate(e) {
|
||||||
|
console.log(e);
|
||||||
|
},
|
||||||
getRandomColor: function() {
|
getRandomColor: function() {
|
||||||
const rgb = []
|
const rgb = []
|
||||||
for (let i = 0; i < 3; ++i) {
|
for (let i = 0; i < 3; ++i) {
|
||||||
@ -192,18 +188,6 @@
|
|||||||
}
|
}
|
||||||
return '#' + rgb.join('')
|
return '#' + rgb.join('')
|
||||||
},
|
},
|
||||||
changeIndicatorDots(e) {
|
|
||||||
this.indicatorDots = !this.indicatorDots
|
|
||||||
},
|
|
||||||
changeAutoplay(e) {
|
|
||||||
this.autoplay = !this.autoplay
|
|
||||||
},
|
|
||||||
intervalChange(e) {
|
|
||||||
this.interval = e.target.value
|
|
||||||
},
|
|
||||||
durationChange(e) {
|
|
||||||
this.duration = e.target.value
|
|
||||||
},
|
|
||||||
refreshToken_function(){
|
refreshToken_function(){
|
||||||
this.$u.api.refreshToken({}).then((res) => {
|
this.$u.api.refreshToken({}).then((res) => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
@ -215,10 +199,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.refreshToken_function()
|
this.refreshToken_function();
|
||||||
// 3秒倒计时调用
|
// 3秒倒计时调用
|
||||||
this.remaining_time()
|
this.remaining_time();
|
||||||
this.apiwelcome()
|
this.apiwelcome();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -227,8 +211,21 @@
|
|||||||
.uni-padding-wrap{
|
.uni-padding-wrap{
|
||||||
// height: 400rpx;
|
// height: 400rpx;
|
||||||
}
|
}
|
||||||
|
.btn-init {
|
||||||
|
z-index: 1000;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 100rpx;
|
||||||
|
right: 30%;
|
||||||
|
width: 300rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
text-align: center;
|
||||||
|
color: #fff;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
background-color: #007AFF;
|
||||||
|
}
|
||||||
.welcome_jumpes {
|
.welcome_jumpes {
|
||||||
z-index: 10;
|
z-index: 100;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 80rpx;
|
top: 80rpx;
|
||||||
right: 60rpx;
|
right: 60rpx;
|
||||||
@ -243,17 +240,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#myVideo {
|
#myVideo {
|
||||||
position: absolute;
|
width: 100%;
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
top: 0;
|
|
||||||
margin: auto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uni-video {
|
uni-video {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: auto;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.uni-video-container {
|
.uni-video-container {
|
||||||
|
@ -97,7 +97,11 @@ export default {
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 0 30rpx;
|
padding: 0 30rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
&:not(:nth-child(3n)) {
|
||||||
|
> view {
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -4,7 +4,7 @@
|
|||||||
<view>
|
<view>
|
||||||
<u-tabs-swiper ref="uTabs" :list="classifyList" name="gc_name" :is-scroll="true" active-color="#FF780F" :current="current" font-size="24" :show-bar="false" @change="tabsChange" height="60" ></u-tabs-swiper>
|
<u-tabs-swiper ref="uTabs" :list="classifyList" name="gc_name" :is-scroll="true" active-color="#FF780F" :current="current" font-size="24" :show-bar="false" @change="tabsChange" height="60" ></u-tabs-swiper>
|
||||||
</view>
|
</view>
|
||||||
<swiper :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish" :style="{height: swiperHeight}">
|
<swiper class="swiper-box" :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish" :style="{height: swiperHeight}">
|
||||||
<swiper-item class="swiper-item" v-for="(_, index) in classifyList" :key="index">
|
<swiper-item class="swiper-item" v-for="(_, index) in classifyList" :key="index">
|
||||||
<view class="goods-item">
|
<view class="goods-item">
|
||||||
<item v-for="item in goodsList" :key="item.goods_id" :info="item"></item>
|
<item v-for="item in goodsList" :key="item.goods_id" :info="item"></item>
|
||||||
@ -93,7 +93,9 @@ export default {
|
|||||||
},
|
},
|
||||||
setSwiperHeight() {
|
setSwiperHeight() {
|
||||||
// height: 230px, margin-bottom: 13
|
// height: 230px, margin-bottom: 13
|
||||||
this.swiperHeight = Math.ceil(this.goodsList.length / 2) * (230 + 13) + 'px';
|
// const height = Math.ceil(this.goodsList.length / 2) * (510 + 26);
|
||||||
|
// this.swiperHeight = height == 0 ? '230rpx' : height + 'rpx';
|
||||||
|
this.swiperHeight = Math.ceil(this.goodsList.length / 2) * (270 + 13) + 'px';
|
||||||
},
|
},
|
||||||
// tabs通知swiper切换
|
// tabs通知swiper切换
|
||||||
tabsChange(index) {
|
tabsChange(index) {
|
||||||
@ -128,11 +130,20 @@ export default {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
.swiper-box {
|
||||||
|
height: 100%;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
.swiper-item {
|
||||||
|
height: 100%;
|
||||||
.goods-item {
|
.goods-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
margin-top: 20rpx;
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -1,9 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="item" @click="toDetailsPage">
|
<view class="item" @click="toDetailsPage">
|
||||||
<image :src="info.goods_image" class="img"></image>
|
<image :src="info.goods_image" mode="aspectFill" class="img"></image>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
<text class="title u-line-1">{{ info.goods_name }}</text>
|
<text class="title u-line-2">{{ info.goods_name }}</text>
|
||||||
<text class="jianjie u-line-2">{{ info.goods_advword }}</text>
|
<text class="jianjie u-line-1">{{ info.goods_advword }}</text>
|
||||||
<text class="price">¥{{ info.goods_price }}</text>
|
<text class="price">¥{{ info.goods_price }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -44,13 +44,13 @@ export default {
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.item{
|
.item{
|
||||||
width: 330rpx;
|
width: 330rpx;
|
||||||
height: 460rpx;
|
height: 510rpx;
|
||||||
margin-bottom: 26rpx;
|
margin-bottom: 26rpx;
|
||||||
background-color: #f8f8f8;
|
background-color: #f8f8f8;
|
||||||
border-radius: 10rpx 10rpx 0rpx 0rpx;
|
border-radius: 10rpx 10rpx 0rpx 0rpx;
|
||||||
.img{
|
.img{
|
||||||
width: 330rpx;
|
width: 330rpx;
|
||||||
height: 272rpx;
|
height: 300rpx;
|
||||||
background: rgba(245,245,245,1);
|
background: rgba(245,245,245,1);
|
||||||
border-radius: 10rpx 10rpx 0rpx 0rpx;
|
border-radius: 10rpx 10rpx 0rpx 0rpx;
|
||||||
margin-bottom: 24rpx;
|
margin-bottom: 24rpx;
|
||||||
@ -62,6 +62,7 @@ export default {
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: space-around;
|
justify-content: space-around;
|
||||||
.title{
|
.title{
|
||||||
|
line-height: 40rpx;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
color: #333;
|
color: #333;
|
||||||
margin-bottom: 13rpx;
|
margin-bottom: 13rpx;
|
||||||
@ -70,6 +71,7 @@ export default {
|
|||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
color: #666;
|
color: #666;
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
|
line-height: 38rpx;
|
||||||
}
|
}
|
||||||
.price{
|
.price{
|
||||||
color: #FF3131;
|
color: #FF3131;
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
<text>¥{{ info.goods_price }}</text>
|
<text>¥{{ info.goods_price }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<image class="img" :src="info.pintuan_image"></image>
|
<image class="img" :src="info.pintuan_image" @click="toDetailsPage"></image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="shop-item">
|
<view class="shop-item" @click="toClassifyPage">
|
||||||
<image :src="info.goodscn_pic"></image>
|
<image :src="info.goodscn_pic"></image>
|
||||||
<text class="u-line-1">{{ info.gc_name }}</text>
|
<text class="">{{ info.gc_name }}</text>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -9,24 +9,34 @@ export default {
|
|||||||
name:"shopItem",
|
name:"shopItem",
|
||||||
props: {
|
props: {
|
||||||
info: Object,
|
info: Object,
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
toClassifyPage() {
|
||||||
|
this.$u.route('pageC/classify/goods', {
|
||||||
|
cid: this.info.gc_id,
|
||||||
|
cname: this.info.gc_name,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.shop-item{
|
.shop-item{
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
width: 20%;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
>image{
|
>image{
|
||||||
width: 80rpx;
|
width: 80rpx;
|
||||||
height: 80rpx;
|
height: 80rpx;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
}
|
}
|
||||||
>text{
|
>text{
|
||||||
width: 80rpx;
|
width: 100rpx;
|
||||||
|
margin-top: 14rpx;
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
color: #333;
|
color: #333;
|
||||||
margin-top: 14rpx;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -78,7 +78,7 @@ export default {
|
|||||||
num = this.couponList.length
|
num = this.couponList.length
|
||||||
? this.couponList.length > 4 ? 4 : this.couponList.length
|
? this.couponList.length > 4 ? 4 : this.couponList.length
|
||||||
: 1
|
: 1
|
||||||
this.swiperHeight = (97 + 10) * num + 'px';
|
this.swiperHeight = (200 + 20) * num + 'rpx';
|
||||||
},
|
},
|
||||||
toCouponPage() {
|
toCouponPage() {
|
||||||
this.$u.route({
|
this.$u.route({
|
||||||
@ -116,6 +116,7 @@ export default {
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
background-color: #ffffff;
|
background-color: #ffffff;
|
||||||
.coupon-item {
|
.coupon-item {
|
||||||
|
height: 200rpx;
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name" : "deming",
|
"name" : "德铭阳光",
|
||||||
"appid" : "__UNI__EBFF00A",
|
"appid" : "__UNI__EBFF00A",
|
||||||
"description" : "",
|
"description" : "",
|
||||||
"versionName" : "1.0.0",
|
"versionName" : "1.0.0",
|
||||||
@ -97,6 +97,50 @@
|
|||||||
"UniversalLinks" : "https://demo.dcloud.net.cn/ulink/"
|
"UniversalLinks" : "https://demo.dcloud.net.cn/ulink/"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"splashscreen" : {
|
||||||
|
"androidStyle" : "default",
|
||||||
|
"android" : {
|
||||||
|
"hdpi" : "static/app/start/480x762.png",
|
||||||
|
"xhdpi" : "static/app/start/720x1242.png",
|
||||||
|
"xxhdpi" : "static/app/start/1080x1882.png"
|
||||||
|
},
|
||||||
|
"iosStyle" : "storyboard",
|
||||||
|
"ios" : {
|
||||||
|
"storyboard" : "static/CustomStoryboard.zip"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"icons" : {
|
||||||
|
"android" : {
|
||||||
|
"hdpi" : "static/app/icon/72x72.png",
|
||||||
|
"xhdpi" : "static/app/icon/96x96.png",
|
||||||
|
"xxhdpi" : "static/app/icon/144x144.png",
|
||||||
|
"xxxhdpi" : "static/app/icon/192x192.png"
|
||||||
|
},
|
||||||
|
"ios" : {
|
||||||
|
"appstore" : "unpackage/res/icons/1024x1024.png",
|
||||||
|
"iphone" : {
|
||||||
|
"app@2x" : "unpackage/res/icons/120x120.png",
|
||||||
|
"app@3x" : "unpackage/res/icons/180x180.png",
|
||||||
|
"spotlight@2x" : "unpackage/res/icons/80x80.png",
|
||||||
|
"spotlight@3x" : "unpackage/res/icons/120x120.png",
|
||||||
|
"settings@2x" : "unpackage/res/icons/58x58.png",
|
||||||
|
"settings@3x" : "unpackage/res/icons/87x87.png",
|
||||||
|
"notification@2x" : "unpackage/res/icons/40x40.png",
|
||||||
|
"notification@3x" : "unpackage/res/icons/60x60.png"
|
||||||
|
},
|
||||||
|
"ipad" : {
|
||||||
|
"app" : "unpackage/res/icons/76x76.png",
|
||||||
|
"app@2x" : "unpackage/res/icons/152x152.png",
|
||||||
|
"notification" : "unpackage/res/icons/20x20.png",
|
||||||
|
"notification@2x" : "unpackage/res/icons/40x40.png",
|
||||||
|
"proapp@2x" : "unpackage/res/icons/167x167.png",
|
||||||
|
"settings" : "unpackage/res/icons/29x29.png",
|
||||||
|
"settings@2x" : "unpackage/res/icons/58x58.png",
|
||||||
|
"spotlight" : "unpackage/res/icons/40x40.png",
|
||||||
|
"spotlight@2x" : "unpackage/res/icons/80x80.png"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -180,7 +180,6 @@
|
|||||||
})
|
})
|
||||||
return false
|
return false
|
||||||
} else {
|
} else {
|
||||||
console.log(123)
|
|
||||||
me.loginIn(res.data.token); //存储一个字符传值
|
me.loginIn(res.data.token); //存储一个字符传值
|
||||||
// 缓存用户的信息
|
// 缓存用户的信息
|
||||||
uni.setStorageSync('user_info',res.data);
|
uni.setStorageSync('user_info',res.data);
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
<view class="title">手机注册</view>
|
<view class="title">手机注册</view>
|
||||||
<view class="labales phones">
|
<view class="labales phones">
|
||||||
<!-- <text></text> -->
|
<!-- <text></text> -->
|
||||||
<input type="tel" placeholder="请输入您的手机号" v-model="member_mobile" />
|
<input type="tel" placeholder="请输入您的手机号" maxlength="11" v-model="member_mobile" />
|
||||||
</view>
|
</view>
|
||||||
<view class="labales">
|
<view class="labales">
|
||||||
<!-- <text></text> -->
|
<!-- <text></text> -->
|
||||||
<input type="tel" placeholder="请输入验证码" v-model="sms_code" />
|
<input type="tel" placeholder="请输入验证码" maxlength="6" v-model="sms_code" />
|
||||||
<!-- <text class="identifying" @click="apiwelcome()">获取验证码</text> -->
|
<!-- <text class="identifying" @click="apiwelcome()">获取验证码</text> -->
|
||||||
<!-- 验证码接口的引入 -->
|
<!-- 验证码接口的引入 -->
|
||||||
<identifying @tochange="tochange" :smslog_type="smslog_type" :member_mobile="member_mobile" ></identifying>
|
<identifying @tochange="tochange" :smslog_type="smslog_type" :member_mobile="member_mobile" ></identifying>
|
||||||
@ -24,17 +24,18 @@
|
|||||||
<text class="pact_text" v-for="(item,index) in pact_text" :key="index" @click="pact_click(index)"> {{item.text}} </text>
|
<text class="pact_text" v-for="(item,index) in pact_text" :key="index" @click="pact_click(index)"> {{item.text}} </text>
|
||||||
<u-checkbox-group @change="checkboxGroupChange" size="27">
|
<u-checkbox-group @change="checkboxGroupChange" size="27">
|
||||||
<u-checkbox @change="checkboxChange" v-model="item.checked" v-for="(item, index) in list" :key="index" :name="item.name"
|
<u-checkbox @change="checkboxChange" v-model="item.checked" v-for="(item, index) in list" :key="index" :name="item.name"
|
||||||
shape="circle" size="14" active-color="#19BE6B" ></u-checkbox>
|
shape="circle" size="30" active-color="#19BE6B" ></u-checkbox>
|
||||||
</u-checkbox-group>
|
</u-checkbox-group>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<!-- 注册 -->
|
<!-- 注册 -->
|
||||||
<view class="more_Login">
|
<view class="more_Login">
|
||||||
<text></text>
|
<text></text>
|
||||||
<text class="other" @click="mask_u">其他方式登录</text>
|
<!-- <text class="other" @click="mask_u">其他方式登录</text> -->
|
||||||
</view>
|
</view>
|
||||||
<!-- denglu QQ weixin -->
|
<!-- denglu QQ weixin -->
|
||||||
<view class="u-btn" @click="loginIn">{{login}}</view>
|
<view class="u-btn" @click="loginIns">{{login}}</view>
|
||||||
|
<view class="go-login" @click="goLogin">已有账号,立即登录</view>
|
||||||
<u-mask :show="show" @click="show = false">
|
<u-mask :show="show" @click="show = false">
|
||||||
<view class="warp">
|
<view class="warp">
|
||||||
<view class="rect" @tap.stop>
|
<view class="rect" @tap.stop>
|
||||||
@ -56,7 +57,10 @@
|
|||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import identifying from '@/components/logininput/identifying'
|
import identifying from '@/components/logininput/identifying';
|
||||||
|
import {
|
||||||
|
mapMutations
|
||||||
|
} from 'vuex';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -67,6 +71,7 @@
|
|||||||
value: '',
|
value: '',
|
||||||
login: '注册',
|
login: '注册',
|
||||||
show: false,
|
show: false,
|
||||||
|
is_check: null,
|
||||||
member_mobile: '', //手机号
|
member_mobile: '', //手机号
|
||||||
smslog_type : '1',//状态
|
smslog_type : '1',//状态
|
||||||
sms_code : '', //验证码
|
sms_code : '', //验证码
|
||||||
@ -89,6 +94,7 @@
|
|||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
...mapMutations(['loginIn']),
|
||||||
// 协议跳转
|
// 协议跳转
|
||||||
pact_click(index){
|
pact_click(index){
|
||||||
console.log(index)
|
console.log(index)
|
||||||
@ -97,25 +103,33 @@
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 用户注册
|
// 用户注册
|
||||||
loginIn(){
|
loginIns(){
|
||||||
|
let me = this;
|
||||||
let type_phone = this.$u.test.mobile( this.member_mobile)
|
let type_phone = this.$u.test.mobile( this.member_mobile)
|
||||||
if( this.member_mobile == ''){
|
if( this.member_mobile == ''){
|
||||||
this.$refs.uToast.show({
|
this.$refs.uToast.show({
|
||||||
title: '手机号不能为空',
|
title: '手机号不能为空!',
|
||||||
type: 'error'
|
type: 'error'
|
||||||
})
|
})
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (type_phone == false) {
|
if (type_phone == false) {
|
||||||
this.$refs.uToast.show({
|
this.$refs.uToast.show({
|
||||||
title: '手机号格式不正确',
|
title: '手机号格式不正确!',
|
||||||
type: 'error'
|
type: 'error'
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if( this.sms_code == ''){
|
if( this.sms_code == ''){
|
||||||
this.$refs.uToast.show({
|
this.$refs.uToast.show({
|
||||||
title: '验证码不能为空',
|
title: '验证码不能为空!',
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (this.is_check) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: '请同意协议!',
|
||||||
type: 'error'
|
type: 'error'
|
||||||
})
|
})
|
||||||
return false;
|
return false;
|
||||||
@ -129,18 +143,16 @@
|
|||||||
|
|
||||||
// console.log(res)
|
// console.log(res)
|
||||||
if(res.errCode == 0){
|
if(res.errCode == 0){
|
||||||
|
//存储一个字符传值
|
||||||
|
me.loginIn(res.data.token);
|
||||||
// 缓存用户的信息
|
// 缓存用户的信息
|
||||||
uni.setStorage({
|
uni.setStorageSync('user_info',res.data);
|
||||||
key: 'token',
|
|
||||||
data: res.data.token,
|
|
||||||
success: function () {
|
|
||||||
console.log('success');
|
|
||||||
// 跳转选择页面
|
// 跳转选择页面
|
||||||
|
if (uni.getStorageSync("token")) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url : '/pageA/topick/topick'
|
url: '/pageA/topick/topick'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
});
|
|
||||||
// 注册返回参数
|
// 注册返回参数
|
||||||
// this.$refs.uToast.show({
|
// this.$refs.uToast.show({
|
||||||
// title: res.message,
|
// title: res.message,
|
||||||
@ -165,20 +177,25 @@
|
|||||||
},
|
},
|
||||||
// 选中某个复选框时,由checkbox时触发
|
// 选中某个复选框时,由checkbox时触发
|
||||||
checkboxChange(e) {
|
checkboxChange(e) {
|
||||||
//console.log(e);
|
// console.log(e,1);
|
||||||
|
this.is_check = e.value;
|
||||||
|
console.log(this.is_check);
|
||||||
},
|
},
|
||||||
// 选中任一checkbox时,由checkbox-group触发
|
// 选中任一checkbox时,由checkbox-group触发
|
||||||
checkboxGroupChange(e) {
|
checkboxGroupChange(e) {
|
||||||
// console.log(e);
|
// console.log(e,2);
|
||||||
},
|
},
|
||||||
mask_u() {
|
mask_u() {
|
||||||
this.show = !this.show
|
this.show = !this.show
|
||||||
},
|
},
|
||||||
|
goLogin() {
|
||||||
|
this.$u.route("/pageA/login/login");
|
||||||
|
},
|
||||||
// 注册接口
|
// 注册接口
|
||||||
tochange() {
|
tochange() {
|
||||||
// console.log("调用父组件的方法")
|
// console.log("调用父组件的方法")
|
||||||
// console.log('2222',this._data.member_mobile)
|
// console.log('2222',this._data.member_mobile)
|
||||||
let member_mobile = this._data.member_mobile
|
let member_mobile = this._data.member_mobile;
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -314,6 +331,12 @@
|
|||||||
border-color: rgba(255, 120, 15, 1) !important;
|
border-color: rgba(255, 120, 15, 1) !important;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
.go-login {
|
||||||
|
margin-top: 26rpx;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
.warp {
|
.warp {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
@ -6,11 +6,11 @@
|
|||||||
</view>
|
</view>
|
||||||
<swiper class="swiper" circular autoplay @change="changeSwiper">
|
<swiper class="swiper" circular autoplay @change="changeSwiper">
|
||||||
<swiper-item v-for="(simg,sindex) in list.photo" :key="sindex">
|
<swiper-item v-for="(simg,sindex) in list.photo" :key="sindex">
|
||||||
<image :src="simg.url" mode="aspectFill" @tap="viewImage" :data-url="simg.url"></image>
|
<image :src="simg.url" mode="widthFix" @tap="viewImage" :data-url="simg.url"></image>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</swiper>
|
</swiper>
|
||||||
<view class="bottom">
|
<view class="bottom">
|
||||||
<view class="item">
|
<view class="item" :style="{ width: photo_len * 20 + 100 + 'rpx' }">
|
||||||
<text>图片</text>
|
<text>图片</text>
|
||||||
<view v-for="(item,index) in list.photo" :key="index" :style="{'background-color':index == swiper_id ? '#fff' : '#ede8e8'}"></view>
|
<view v-for="(item,index) in list.photo" :key="index" :style="{'background-color':index == swiper_id ? '#fff' : '#ede8e8'}"></view>
|
||||||
</view>
|
</view>
|
||||||
@ -32,7 +32,7 @@
|
|||||||
<scroll-view class="scroll-box" scroll-y="true" >
|
<scroll-view class="scroll-box" scroll-y="true" >
|
||||||
<block v-for="(item,index) in commentList" :key="index" v-if="commentList.length">
|
<block v-for="(item,index) in commentList" :key="index" v-if="commentList.length">
|
||||||
<view class="box">
|
<view class="box">
|
||||||
<image :src="item.member_avatar" mode=""></image>
|
<image :src="item.member_avatar" mode="aspectFill"></image>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
<text>{{ item.member_nickname }}</text>
|
<text>{{ item.member_nickname }}</text>
|
||||||
<text class="time">{{ item.create_time }}</text>
|
<text class="time">{{ item.create_time }}</text>
|
||||||
@ -46,7 +46,7 @@
|
|||||||
<view>
|
<view>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
<view class="more-reply" v-if="item.reply_count">展开更多回复<u-icon name="arrow-down"></u-icon></view>
|
<!-- <view class="more-reply" v-if="item.reply_count">展开更多回复<u-icon name="arrow-down"></u-icon></view> -->
|
||||||
</view>
|
</view>
|
||||||
</block>
|
</block>
|
||||||
<view class="no-data" v-else>111</view>
|
<view class="no-data" v-else>111</view>
|
||||||
@ -59,7 +59,7 @@
|
|||||||
<!-- 评论box -->
|
<!-- 评论box -->
|
||||||
<u-popup v-model="is_edit" mode="bottom" border-radius="10" height="100rpx">
|
<u-popup v-model="is_edit" mode="bottom" border-radius="10" height="100rpx">
|
||||||
<view class="edit-box">
|
<view class="edit-box">
|
||||||
<input type="text" :placeholder="edit_text_other" :focus="is_focus" @focus="focus" v-model="send_value">
|
<input type="text" :placeholder="edit_text_other" :focus="is_focus" @focus="focus" v-model="send_value" autofocus>
|
||||||
<text @click="sendComment">发送</text>
|
<text @click="sendComment">发送</text>
|
||||||
</view>
|
</view>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
@ -83,7 +83,7 @@
|
|||||||
<!-- 单个 -->
|
<!-- 单个 -->
|
||||||
<view class="good-one" v-else v-show="cart_type">
|
<view class="good-one" v-else v-show="cart_type">
|
||||||
<view class="box" v-for="(item,index) in list.goods" :key="index" @click="gotoInfo(item.goods_id)">
|
<view class="box" v-for="(item,index) in list.goods" :key="index" @click="gotoInfo(item.goods_id)">
|
||||||
<image :src="item.goods_image" mode=""></image>
|
<image :src="item.goods_image" mode="aspectFill"></image>
|
||||||
<view>
|
<view>
|
||||||
<view class="title u-line-1">{{ item.goods_advword }}</view>
|
<view class="title u-line-1">{{ item.goods_advword }}</view>
|
||||||
<view class="content u-line-2">{{ item.goods_name }}</view>
|
<view class="content u-line-2">{{ item.goods_name }}</view>
|
||||||
@ -98,7 +98,7 @@
|
|||||||
.photo{
|
.photo{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background-color: #ececec;
|
background-color: #000000;
|
||||||
.back{
|
.back{
|
||||||
padding-top: 28rpx;
|
padding-top: 28rpx;
|
||||||
padding-right: 31rpx;
|
padding-right: 31rpx;
|
||||||
@ -106,27 +106,25 @@
|
|||||||
}
|
}
|
||||||
.swiper{
|
.swiper{
|
||||||
width: 750rpx;
|
width: 750rpx;
|
||||||
height: 702rpx;
|
height: 700rpx;
|
||||||
margin-top: 102rpx;
|
margin-top: 140rpx;
|
||||||
image{
|
image{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.bottom{
|
.bottom{
|
||||||
width: 100%;
|
margin-top: 180rpx;
|
||||||
margin-top: 150rpx;
|
|
||||||
padding: 20rpx 30rpx;
|
padding: 20rpx 30rpx;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
.item{
|
.item{
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
width: 50%;
|
|
||||||
padding: 8rpx 16rpx;
|
padding: 8rpx 16rpx;
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
border-radius: 10rpx;
|
border-radius: 10rpx;
|
||||||
background-color: #999;
|
background:rgba(153,153,153,.5);
|
||||||
>view{
|
>view{
|
||||||
width: 12rpx;
|
width: 12rpx;
|
||||||
height: 12rpx;
|
height: 12rpx;
|
||||||
@ -141,15 +139,13 @@
|
|||||||
|
|
||||||
}
|
}
|
||||||
.title{
|
.title{
|
||||||
font-size: 26rpx;
|
font-size: 28rpx;
|
||||||
color: #333;
|
color: #333;
|
||||||
|
line-height: 46rpx;
|
||||||
}
|
}
|
||||||
.info{
|
.info{
|
||||||
margin: 20rpx 0;
|
margin: 20rpx 0;
|
||||||
display: -webkit-box;
|
line-height: 1.2;
|
||||||
-webkit-box-orient: vertical;
|
|
||||||
-webkit-line-clamp: 2;
|
|
||||||
overflow: hidden;
|
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
}
|
}
|
||||||
.box {
|
.box {
|
||||||
@ -353,6 +349,7 @@
|
|||||||
.content {
|
.content {
|
||||||
height: 60rpx;
|
height: 60rpx;
|
||||||
margin: 10rpx 0;
|
margin: 10rpx 0;
|
||||||
|
line-height: 30rpx;
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
}
|
}
|
||||||
.price {
|
.price {
|
||||||
@ -383,6 +380,7 @@ export default {
|
|||||||
send_value: "", // 输入的值
|
send_value: "", // 输入的值
|
||||||
cartList: [],
|
cartList: [],
|
||||||
cart_len: 0,
|
cart_len: 0,
|
||||||
|
photo_len: 0,
|
||||||
edit_text: "有爱评论,说点好听的 ~",
|
edit_text: "有爱评论,说点好听的 ~",
|
||||||
edit_text_other: "有爱评论,说点好听的 ~",
|
edit_text_other: "有爱评论,说点好听的 ~",
|
||||||
commentList: [], // 评论
|
commentList: [], // 评论
|
||||||
@ -412,6 +410,7 @@ export default {
|
|||||||
this.$u.api.articleInfo({article_id}).then((res)=>{
|
this.$u.api.articleInfo({article_id}).then((res)=>{
|
||||||
this.list = res.data.info;
|
this.list = res.data.info;
|
||||||
this.cart_len = res.data.info.goods.length;
|
this.cart_len = res.data.info.goods.length;
|
||||||
|
this.photo_len = res.data.info.photo.length;
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 改变swiper
|
// 改变swiper
|
||||||
|
@ -241,7 +241,7 @@ export default {
|
|||||||
let img = [];
|
let img = [];
|
||||||
list.forEach(item => {
|
list.forEach(item => {
|
||||||
let temp = {
|
let temp = {
|
||||||
image: item
|
image: item[1]
|
||||||
}
|
}
|
||||||
img.push(temp);
|
img.push(temp);
|
||||||
})
|
})
|
||||||
@ -311,7 +311,7 @@ export default {
|
|||||||
if (res.errCode == 0) {
|
if (res.errCode == 0) {
|
||||||
this.evaluate = res.data.goods_evaluate_info;
|
this.evaluate = res.data.goods_evaluate_info;
|
||||||
this.goodsInfo = res.data.goods;
|
this.goodsInfo = res.data.goods;
|
||||||
this.setSwiperList(res.data.goods_image[0]);
|
this.setSwiperList(res.data.goods_image);
|
||||||
this.glist = res.data.spec_list;
|
this.glist = res.data.spec_list;
|
||||||
// console.log(this.goodsInfo.mobile_body);
|
// console.log(this.goodsInfo.mobile_body);
|
||||||
}
|
}
|
||||||
@ -325,7 +325,7 @@ export default {
|
|||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
this.evaluate = res.data.data.goods_evaluate_info;
|
this.evaluate = res.data.data.goods_evaluate_info;
|
||||||
this.goodsInfo = res.data.data.goods;
|
this.goodsInfo = res.data.data.goods;
|
||||||
this.setSwiperList(res.data.data.goods_image[0]);
|
this.setSwiperList(res.data.data.goods_image);
|
||||||
this.glist = res.data.data.spec_list;
|
this.glist = res.data.data.spec_list;
|
||||||
this.user_suc = res.data.data.user_suc;
|
this.user_suc = res.data.data.user_suc;
|
||||||
this.groupUser =res.data.data.user;
|
this.groupUser =res.data.data.user;
|
||||||
@ -341,7 +341,7 @@ export default {
|
|||||||
this.groupbuyInfo = res.data.groupbuyInfo;
|
this.groupbuyInfo = res.data.groupbuyInfo;
|
||||||
this.evaluate = res.data.goodsInfo.goods_evaluate_info;
|
this.evaluate = res.data.goodsInfo.goods_evaluate_info;
|
||||||
this.goodsInfo = res.data.goodsInfo.goods;
|
this.goodsInfo = res.data.goodsInfo.goods;
|
||||||
this.setSwiperList(res.data.goodsInfo.goods_image[0]);
|
this.setSwiperList(res.data.goodsInfo.goods_image);
|
||||||
this.setSpikeTime(res.data.groupbuyInfo.groupbuy_endtime);
|
this.setSpikeTime(res.data.groupbuyInfo.groupbuy_endtime);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="out">
|
<view class="out">
|
||||||
<u-tabs-swiper v-if="type == 'dianpu'" @change="tabsChange" :show-bar="false" :bold="false" :font-size="32" active-color="#FF780F" ref="uTabs" :list="list" :is-scroll="false" style="border-bottom: 1px solid #ececec;flex-shrink:0" height="88"></u-tabs-swiper>
|
<u-tabs-swiper v-if="type == 'dianpu'" @change="tabsChange" :show-bar="false" :bold="false" :font-size="32"
|
||||||
<swiper v-if="type == 'dianpu'" class="swiper" :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish">
|
active-color="#FF780F" ref="uTabs" :list="list" :is-scroll="false" style="border-bottom: 1px solid #ececec;flex-shrink:0"
|
||||||
|
height="88"></u-tabs-swiper>
|
||||||
|
<swiper v-if="type == 'dianpu'" class="swiper" :current="swiperCurrent" @transition="transition"
|
||||||
|
@animationfinish="animationfinish">
|
||||||
<swiper-item>
|
<swiper-item>
|
||||||
<scroll-view :scroll-y="true" style="height:100%">
|
<scroll-view :scroll-y="true" style="height:100%">
|
||||||
<view style="padding-top:30rpx">
|
<view style="padding-top:30rpx">
|
||||||
@ -29,36 +32,24 @@
|
|||||||
</view>
|
</view>
|
||||||
<view data-type="hp" @click="sx(2)">好评</view>
|
<view data-type="hp" @click="sx(2)">好评</view>
|
||||||
</view>
|
</view>
|
||||||
<swiper class="swiper" :current="swiperCurrent" @change="huadong">
|
<view class="swiper" :current="swiperCurrent" @change="huadong">
|
||||||
<swiper-item>
|
|
||||||
<scroll-view :scroll-y="true" style="height:100%">
|
<scroll-view :scroll-y="true" style="height:100%">
|
||||||
<view style="padding-top:30rpx">
|
<view style="padding-top:30rpx">
|
||||||
<shop v-for="(i,j) in shoplist[0]" :key="j" :name="i.goods_name" :id="i.goods_id" :commonid="i.goods_commonid" :image="i.goods_image"></shop>
|
<shop v-for="(i,j) in shoplist" :key="j" :name="i.goods_name" :id="i.goods_id" :commonid="i.goods_commonid"
|
||||||
|
:image="i.goods_image"></shop>
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
</scroll-view>
|
||||||
</swiper-item>
|
|
||||||
<swiper-item>
|
|
||||||
<scroll-view :scroll-y="true" style="height:100%">
|
|
||||||
<view class="list">
|
|
||||||
<!-- <darenItem style="margin-top:20rpx;margin-right:23rpx;box-shadow:0rpx 3rpx 7rpx 0rpx rgba(153, 153, 153, 0.35);" v-for="item in 50"></darenItem> -->
|
|
||||||
</view>
|
</view>
|
||||||
</scroll-view>
|
|
||||||
</swiper-item>
|
|
||||||
<swiper-item>
|
|
||||||
<scroll-view :scroll-y="true" style="height:100%">
|
|
||||||
D
|
|
||||||
</scroll-view>
|
|
||||||
</swiper-item>
|
|
||||||
</swiper>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.out{
|
.out {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
.sosuo{
|
|
||||||
|
.sosuo {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 88rpx;
|
height: 88rpx;
|
||||||
border-bottom: 1rpx solid #ececec;
|
border-bottom: 1rpx solid #ececec;
|
||||||
@ -67,25 +58,29 @@
|
|||||||
padding: 0 30rpx;
|
padding: 0 30rpx;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
|
||||||
>image{
|
>image {
|
||||||
width: 18rpx;
|
width: 18rpx;
|
||||||
height: 32rpx;
|
height: 32rpx;
|
||||||
margin-right: 24rpx;
|
margin-right: 24rpx;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
.swiper{
|
|
||||||
|
.swiper {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
.list{
|
|
||||||
|
.list {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding-left: 30rpx;
|
padding-left: 30rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.select{
|
|
||||||
|
.select {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 89rpx;
|
height: 89rpx;
|
||||||
border-bottom: 1rpx solid #ececec;
|
border-bottom: 1rpx solid #ececec;
|
||||||
@ -94,68 +89,73 @@
|
|||||||
padding: 0 40rpx;
|
padding: 0 40rpx;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
>view{
|
|
||||||
|
>view {
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
color: #333;
|
color: #333;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-weight:400;
|
font-weight: 400;
|
||||||
.jiage{
|
|
||||||
|
.jiage {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
.top{
|
|
||||||
|
.top {
|
||||||
width: 12rpx;
|
width: 12rpx;
|
||||||
border-bottom: 12rpx solid #707070;
|
border-bottom: 12rpx solid #707070;
|
||||||
border-left: 11rpx solid #fff ;
|
border-left: 11rpx solid #fff;
|
||||||
border-right: 11rpx solid #fff ;
|
border-right: 11rpx solid #fff;
|
||||||
margin-bottom: 2rpx;
|
margin-bottom: 2rpx;
|
||||||
}
|
}
|
||||||
.bottom{
|
|
||||||
|
.bottom {
|
||||||
width: 12rpx;
|
width: 12rpx;
|
||||||
border-top: 12rpx solid #707070;
|
border-top: 12rpx solid #707070;
|
||||||
border-left: 11rpx solid #fff ;
|
border-left: 11rpx solid #fff;
|
||||||
border-right: 11rpx solid #fff ;
|
border-right: 11rpx solid #fff;
|
||||||
}
|
}
|
||||||
.topxz{
|
|
||||||
|
.topxz {
|
||||||
border-bottom: 12rpx solid #FF780F;
|
border-bottom: 12rpx solid #FF780F;
|
||||||
}
|
}
|
||||||
.bottomxz{
|
|
||||||
|
.bottomxz {
|
||||||
border-top: 12rpx solid #FF780F;
|
border-top: 12rpx solid #FF780F;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.xz{
|
|
||||||
color:#FF780F;
|
.xz {
|
||||||
|
color: #FF780F;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<script>
|
||||||
import shop from "../components/search/shop"
|
import shop from "../components/search/shop"
|
||||||
import darenItem from "@/components/index/daren-item/index"
|
import darenItem from "@/components/index/daren-item/index"
|
||||||
export default {
|
export default {
|
||||||
name:"out",
|
name: "out",
|
||||||
components:{
|
components: {
|
||||||
shop,
|
shop,
|
||||||
darenItem
|
darenItem
|
||||||
},
|
},
|
||||||
data(){
|
data() {
|
||||||
return {
|
return {
|
||||||
list:[
|
list: [{
|
||||||
{
|
name: "店铺"
|
||||||
name:"店铺"
|
}, {
|
||||||
},{
|
name: "达人"
|
||||||
name:"达人"
|
}],
|
||||||
}
|
|
||||||
],
|
|
||||||
current: 0,
|
current: 0,
|
||||||
swiperCurrent: 0,
|
swiperCurrent: 0,
|
||||||
keyword:"",
|
keyword: "",
|
||||||
type:"",
|
type: "",
|
||||||
shoplist:[]
|
shoplist: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onLoad(o){
|
onLoad(o) {
|
||||||
this.type = o.type
|
this.type = o.type
|
||||||
this.keyword = o.value
|
this.keyword = o.value
|
||||||
this.search()
|
this.search()
|
||||||
@ -174,18 +174,20 @@ export default {
|
|||||||
this.swiperCurrent = current;
|
this.swiperCurrent = current;
|
||||||
this.current = current;
|
this.current = current;
|
||||||
},
|
},
|
||||||
sx(type){
|
sx(type) {
|
||||||
console.log(type)
|
console.log(type)
|
||||||
|
|
||||||
},
|
},
|
||||||
huadong(e){
|
huadong(e) {
|
||||||
console.log(e.detail.current)
|
console.log(e.detail.current)
|
||||||
},
|
},
|
||||||
search(){
|
search() {
|
||||||
this.$u.api.ShopSearch({keyword:this.keyword}).then((res)=>{
|
this.$u.api.ShopSearch({
|
||||||
this.shoplist[0] = res.data.data
|
keyword: this.keyword
|
||||||
|
}).then((res) => {
|
||||||
|
this.shoplist = res.data.data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
@ -16,7 +16,7 @@
|
|||||||
<view v-for="(item, index) in orderInfo.store_cart_list" :key="index">
|
<view v-for="(item, index) in orderInfo.store_cart_list" :key="index">
|
||||||
<view class="goods-info">
|
<view class="goods-info">
|
||||||
<view class="store">
|
<view class="store">
|
||||||
<image class="avatar" :src="item[0].store_avatar"></image>
|
<image class="avatar" :src="orderInfo.store_list[index].store_avatar"></image>
|
||||||
<view>{{ item[0].store_name }}</view>
|
<view>{{ item[0].store_name }}</view>
|
||||||
<image src="../static/image/1.png" class="right"></image>
|
<image src="../static/image/1.png" class="right"></image>
|
||||||
</view>
|
</view>
|
||||||
@ -424,8 +424,8 @@ export default {
|
|||||||
width: 60rpx;
|
width: 60rpx;
|
||||||
height: 60rpx;
|
height: 60rpx;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
border: 1rpx solid #000;
|
|
||||||
margin-right: 15rpx;
|
margin-right: 15rpx;
|
||||||
|
background-color: aquamarine;
|
||||||
}
|
}
|
||||||
> view {
|
> view {
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
|
193
pageC/classify/goods.vue
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
<template>
|
||||||
|
<view class="classify-goods">
|
||||||
|
<view class="tab-container">
|
||||||
|
<view class="salenum" :class="{ 'current' : current == 0 }" @click="switchCurrent(0)">销量</view>
|
||||||
|
<view class="price" :class="{ 'current' : current == 1 }" @click="switchCurrent(1)">
|
||||||
|
<view class="text">价格</view>
|
||||||
|
<view class="icon">
|
||||||
|
<u-icon name="arrow-up-fill" :color="(current == 1 && priceOrderAsc) ? '#FF780F' : '#333333'" size="22"></u-icon>
|
||||||
|
<u-icon name="arrow-down-fill" :color="(current == 1 && !priceOrderAsc) ? '#FF780F' : '#333333'" size="22"></u-icon>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="evaluation" :class="{ 'current' : current == 2 }" @click="switchCurrent(2)">好评</view>
|
||||||
|
</view>
|
||||||
|
<scroll-view scroll-y class="goods-container" :style="{ height: scrollHeight }" @scrolltolower="loadMore">
|
||||||
|
<view v-for="goods in goodsList" :key="goods.goods_id" class="goods-item" @click="toDetailsPage(goods.goods_id)">
|
||||||
|
<image :src="goods.goods_image"></image>
|
||||||
|
<view class="right">
|
||||||
|
<view class="name u-line-1">{{ goods.goods_name }}</view>
|
||||||
|
<view class="briefing u-line-2">{{ goods.goods_advword }}</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>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
pageSize: 12,
|
||||||
|
cid: '',
|
||||||
|
page: 1,
|
||||||
|
current: 0,
|
||||||
|
priceOrderAsc: true, // 是否升序
|
||||||
|
goodsList: [],
|
||||||
|
scrollHeight: '',
|
||||||
|
loadStatus: 'loadmore',
|
||||||
|
timer: true, // 防止上拉加载短时间内多次调用
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
current(value) {
|
||||||
|
this.page = 1;
|
||||||
|
this.goodsListByClassId({ laod: 'reload' });
|
||||||
|
},
|
||||||
|
priceOrderAsc(value) {
|
||||||
|
this.page = 1;
|
||||||
|
this.goodsListByClassId({ laod: 'reload' });
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad(option) {
|
||||||
|
this.cid = option.cid;
|
||||||
|
this.goodsListByClassId({ load: 'reload' });
|
||||||
|
this.setViewHeight();
|
||||||
|
this.setTitle(option.cname);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
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 goodsListByClassId({ load = 'reload' } = {}) {
|
||||||
|
const sort = this.setOrderSort();
|
||||||
|
const res = await this.$u.api.goodsListByClassId({
|
||||||
|
gc_id: this.cid,
|
||||||
|
page: this.page,
|
||||||
|
order: sort,
|
||||||
|
})
|
||||||
|
this.timer = true;
|
||||||
|
if(res.errCode == 0) {
|
||||||
|
if(load == 'reload') this.goodsList = res.data.data;
|
||||||
|
else if(load == 'loadmore') this.goodsList.push(...res.data.data);
|
||||||
|
}
|
||||||
|
return res.data.data.length;
|
||||||
|
},
|
||||||
|
loadMore() {
|
||||||
|
if(this.goodsList.length < this.pageSize) return false;
|
||||||
|
if(!this.timer) return false;
|
||||||
|
this.loadStatus = "loading";
|
||||||
|
this.page++;
|
||||||
|
this.goodsListByClassId({ 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;
|
||||||
|
},
|
||||||
|
setViewHeight() {
|
||||||
|
const res = uni.getSystemInfoSync();
|
||||||
|
this.scrollHeight = res.windowHeight - (90 / 2) + 'px';
|
||||||
|
},
|
||||||
|
setTitle(title) {
|
||||||
|
uni.setNavigationBarTitle({
|
||||||
|
title: title
|
||||||
|
});
|
||||||
|
},
|
||||||
|
toDetailsPage(id) {
|
||||||
|
this.$u.route('/pageB/sdetails/index', {
|
||||||
|
id: id,
|
||||||
|
type: 1 // 商品详情 商品类型 1普通 2拼团 3秒杀 4优惠券
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.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: 170rpx;
|
||||||
|
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: 36rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -15,7 +15,7 @@
|
|||||||
<text>{{item.gc_name}}</text>
|
<text>{{item.gc_name}}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="item-container">
|
<view class="item-container">
|
||||||
<view class="thumb-box" v-for="(item1, index1) in item._child" :key="index1">
|
<view class="thumb-box" v-for="(item1, index1) in item._child" :key="index1" @click="toClassifyPage(item1.gc_id, item1.gc_name)">
|
||||||
<image class="item-menu-image" :src="item1.img" mode=""></image>
|
<image class="item-menu-image" :src="item1.img" mode=""></image>
|
||||||
<view class="item-menu-name">{{item1.gc_name}}</view>
|
<view class="item-menu-name">{{item1.gc_name}}</view>
|
||||||
</view>
|
</view>
|
||||||
@ -49,7 +49,18 @@
|
|||||||
onReady() {
|
onReady() {
|
||||||
this.getMenuItemTop()
|
this.getMenuItemTop()
|
||||||
},
|
},
|
||||||
|
onNavigationBarButtonTap(e) {
|
||||||
|
if(e.index == 0) this.$u.route('/pageB/search/index');
|
||||||
|
},
|
||||||
|
onNavigationBarSearchInputClicked() {
|
||||||
|
this.$u.route('/pageB/search/index');
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
toSearchPage() {
|
||||||
|
this.$u.route({
|
||||||
|
url: "pageB/search/index"
|
||||||
|
})
|
||||||
|
},
|
||||||
// 获取分类列表
|
// 获取分类列表
|
||||||
getClassifyList() {
|
getClassifyList() {
|
||||||
this.$u.api.getGoodsClassifyList().then(res => {
|
this.$u.api.getGoodsClassifyList().then(res => {
|
||||||
@ -161,6 +172,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 10)
|
}, 10)
|
||||||
|
},
|
||||||
|
toClassifyPage(id, name) {
|
||||||
|
this.$u.route('pageC/classify/goods', {
|
||||||
|
cid: id,
|
||||||
|
cname: name,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,6 +32,9 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
page {
|
||||||
|
background-color: #ECECEC;
|
||||||
|
}
|
||||||
.sousuo {
|
.sousuo {
|
||||||
height: 113rpx;
|
height: 113rpx;
|
||||||
border: 1px #f00 solid;
|
border: 1px #f00 solid;
|
||||||
|
@ -1,20 +1,23 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="collection">
|
<view class="collection">
|
||||||
<view class="item-box" v-for="(item, index) in articleList" :key="index">
|
<view class="container">
|
||||||
|
<view class="item-box" v-for="(item, index) in articleList" :key="index" @click="toDetailsPage(item.article_id)">
|
||||||
<view class="video-item" v-if="item">
|
<view class="video-item" v-if="item">
|
||||||
<image class="head" :src="item.article_pic" v-if="item.type == 1"></image>
|
<image class="head" :src="item.article_pic" v-if="item.type == 1"></image>
|
||||||
<view class="header_fist" v-else>
|
<view class="header_fist" v-else>
|
||||||
<view class="backes"></view>
|
<view class="backes"></view>
|
||||||
<image class="head" :src="item.article_pic" @click="toDetailsPage(item.article_id)"></image>
|
<image class="head" :src="item.article_pic"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="title">{{ item.article_title }}</view>
|
<view class="title u-line-1">{{ item.article_title }}</view>
|
||||||
<view class="jianjie">{{ item.article_content }}</view>
|
<view class="jianjie u-line-1">{{ item.article_content }}</view>
|
||||||
<view class="user">
|
<view class="user">
|
||||||
<view class="info">
|
<view class="info">
|
||||||
<image :src="item.member_avatar"></image>
|
<image :src="item.member_avatar"></image>
|
||||||
<text>{{ item.member_nickname }}</text>
|
<text>{{ item.member_nickname }}</text>
|
||||||
</view>
|
</view>
|
||||||
<u-icon name="trash" color="#333" size="36" @click="delArticle(item.article_id)"></u-icon>
|
<view @click.stop="delArticle(item.article_id)">
|
||||||
|
<u-icon name="trash" color="#333" size="36"></u-icon>
|
||||||
|
</view>
|
||||||
<!-- <image src="/static/image/common/4.png" @click.stop="showAction(item)"></image> -->
|
<!-- <image src="/static/image/common/4.png" @click.stop="showAction(item)"></image> -->
|
||||||
<!-- <view class="action" v-if="show == item.article_id">
|
<!-- <view class="action" v-if="show == item.article_id">
|
||||||
<view class="bubble">
|
<view class="bubble">
|
||||||
@ -29,6 +32,8 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<u-empty mode="list" v-if="!articleList.length" color="#000" img-width="200" font-size="30" margin-top="120"></u-empty>
|
||||||
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
@ -78,6 +83,7 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.collection {
|
.collection {
|
||||||
|
.container {
|
||||||
border-top: 1rpx solid #ECECEC;
|
border-top: 1rpx solid #ECECEC;
|
||||||
padding: 21rpx 30rpx 0;
|
padding: 21rpx 30rpx 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -106,14 +112,9 @@ export default {
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
line-height: 30rpx;
|
line-height: 30rpx;
|
||||||
width: 300rpx;
|
width: 300rpx;
|
||||||
overflow:hidden;
|
|
||||||
text-overflow:ellipsis;
|
|
||||||
display:-webkit-box;
|
|
||||||
-webkit-box-orient:vertical;
|
|
||||||
-webkit-line-clamp:2;
|
|
||||||
}
|
}
|
||||||
.jianjie{
|
.jianjie{
|
||||||
height: 60rpx;
|
// height: 60rpx;
|
||||||
margin:0 auto;
|
margin:0 auto;
|
||||||
margin-top: 20rpx;
|
margin-top: 20rpx;
|
||||||
font-size: 22rpx;
|
font-size: 22rpx;
|
||||||
@ -121,11 +122,6 @@ export default {
|
|||||||
line-height: 30rpx;
|
line-height: 30rpx;
|
||||||
width: 300rpx;
|
width: 300rpx;
|
||||||
margin-left: 18rpx;
|
margin-left: 18rpx;
|
||||||
overflow:hidden;
|
|
||||||
text-overflow:ellipsis;
|
|
||||||
display:-webkit-box;
|
|
||||||
-webkit-box-orient:vertical;
|
|
||||||
-webkit-line-clamp:2;
|
|
||||||
}
|
}
|
||||||
.user{
|
.user{
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -233,5 +229,6 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -19,7 +19,7 @@ import Coupon from "@/components/mine/coupon/index";
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pageSize: 1,
|
pageSize: 12,
|
||||||
swiperHeight: '',
|
swiperHeight: '',
|
||||||
couponCurrent: 0,
|
couponCurrent: 0,
|
||||||
swiperCouponCurrent: 0,
|
swiperCouponCurrent: 0,
|
||||||
|
@ -2,16 +2,14 @@
|
|||||||
<view class="concerns">
|
<view class="concerns">
|
||||||
<view class="concerns-container">
|
<view class="concerns-container">
|
||||||
<view v-for="(info, index) in list" :key="index">
|
<view v-for="(info, index) in list" :key="index">
|
||||||
<view class="daren-item" @click="toDetailsPage">
|
<view class="daren-item">
|
||||||
<image class="head" :src="info.friend_tomavatar"></image>
|
<image class="head" :src="info.friend_tomavatar"></image>
|
||||||
<text class="name">{{ info.friend_tomname }}</text>
|
<text class="name">{{ info.friend_tomname || '' }}</text>
|
||||||
<!-- <text class="zhuangtai">状态: {{ info.live_status == 1 ? '正在直播' : '未开播' }}</text> -->
|
<view class="guanzhu" @click="changeType(info.friend_tomid)" v-if="info.friend_followstate == 1">取消关注</view>
|
||||||
<view class="guanzhu" @click="changeType(info.friend_frommid)" v-if="info.friend_followstate == 1">关注</view>
|
|
||||||
<view class="guanzhu action" @click="changeType(info.friend_frommid)" v-else>未关注</view>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<u-empty mode="list" v-if="!list.length" color="#000" img-width="200" font-size="30" margin-top="300"></u-empty>
|
|
||||||
</view>
|
</view>
|
||||||
|
<u-empty mode="list" v-if="!list.length" color="#000" img-width="200" font-size="30" margin-top="120"></u-empty>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -23,17 +21,31 @@ export default {
|
|||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.attentionMemberList();
|
this.attentionMemberList();
|
||||||
|
},
|
||||||
|
// 下拉刷新
|
||||||
|
onPullDownRefresh() {
|
||||||
|
this.attentionMemberList();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
attentionMemberList() {
|
attentionMemberList() {
|
||||||
this.$u.api.attentionMemberList().then(res => {
|
this.$u.api.attentionMemberList().then(res => {
|
||||||
|
uni.stopPullDownRefresh();
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
this.list = res.data;
|
this.list = res.data;
|
||||||
} else {
|
} else {
|
||||||
this.list = [];
|
this.list = [];
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
},
|
||||||
|
changeType(id) {
|
||||||
|
console.log(id);
|
||||||
|
this.$u.api.attentionMember({
|
||||||
|
member_id: id
|
||||||
|
}).then(res => {
|
||||||
|
this.$u.toast(res.message);
|
||||||
|
this.attentionMemberList();
|
||||||
|
})
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
@ -43,7 +55,9 @@ export default {
|
|||||||
padding: 30rpx;
|
padding: 30rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
justify-content: space-between;
|
&:not(:nth-child(3n)) {
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
.daren-item{
|
.daren-item{
|
||||||
width: 215rpx;
|
width: 215rpx;
|
||||||
height: 282rpx;
|
height: 282rpx;
|
||||||
@ -74,7 +88,7 @@ export default {
|
|||||||
.guanzhu{
|
.guanzhu{
|
||||||
width: 130rpx;
|
width: 130rpx;
|
||||||
height: 50rpx;
|
height: 50rpx;
|
||||||
background-color: #FF780F;
|
background-color: #EDEDED;
|
||||||
font-size: 26rpx;
|
font-size: 26rpx;
|
||||||
line-height: 50rpx;
|
line-height: 50rpx;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
@ -5,74 +5,38 @@
|
|||||||
<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(rank[memberInfo.member_level - 1])}}</text>
|
<text>{{ memberInfo.member_exppoints }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="rank-value">lv{{ memberInfo.member_level + 1 }}</view>
|
<view class="rank-value">lv{{ memberInfo.member_level + 1 }}</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.member_exppoints | residualExp(rank[memberInfo.member_level - 1]) }}经验值</view>
|
<view class="distance">距离下一级还需要{{ memberInfo.next_grade_exppoints_diff }}经验值</view>
|
||||||
<!-- <view class="distance">距离下一级还需要{{ memberInfo.next_grade_exppoints_diff }}经验值</view> -->
|
|
||||||
</view>
|
</view>
|
||||||
<view class="body">
|
<view class="body">
|
||||||
<view class="title">
|
<view class="title">
|
||||||
<image src="/static/image/mine/34.png"></image>
|
<image src="/static/image/mine/34.png"></image>
|
||||||
<text>等级定义</text>
|
<text>等级定义</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">
|
||||||
<view class="rank-value">lv{{ rank.level }}</view>
|
<view class="rank-value">lv{{ rank.level }}</view>
|
||||||
<view class="rank-interval"><span>经验值:</span>{{ rank.max == '--' ? rank.min + '及以上' : rank.min + '~' + rank.max }}</view>
|
<view class="rank-interval"><span>经验值:</span>{{ rank.max == '--' ? rank.min + '及以上' : rank.min + '~' + rank.max }}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<!-- <view class="body">
|
|
||||||
<u-parse :html="memberInfo.grade_rule"></u-parse>
|
|
||||||
</view> -->
|
</view> -->
|
||||||
|
<view class="rich">
|
||||||
|
<rich-text :nodes="nodes"></rich-text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import common from '@/static/js/common.js';
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
rank: [
|
|
||||||
{
|
|
||||||
level: 1,
|
|
||||||
min: 50,
|
|
||||||
max: 99,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
level: 2,
|
|
||||||
min: 100,
|
|
||||||
max: 199,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
level: 3,
|
|
||||||
min: 200,
|
|
||||||
max: 399,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
level: 4,
|
|
||||||
min: 400,
|
|
||||||
max: 999,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
level: 5,
|
|
||||||
min: 1000,
|
|
||||||
max: 1999,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
level: 6,
|
|
||||||
min: 2000,
|
|
||||||
max: 4999,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
level: 7,
|
|
||||||
min: 5000,
|
|
||||||
max: '--',
|
|
||||||
}
|
|
||||||
],
|
|
||||||
percent: 0,
|
percent: 0,
|
||||||
memberInfo: {},
|
memberInfo: {},
|
||||||
|
nodes: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
filters: {
|
filters: {
|
||||||
@ -82,11 +46,6 @@ export default {
|
|||||||
if(rank) result = value + '/' + rank.max;
|
if(rank) result = value + '/' + rank.max;
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
residualExp(value, rank) {
|
|
||||||
let result = 0;
|
|
||||||
if(rank) result = rank.max - value;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.getMemberPointsStat();
|
this.getMemberPointsStat();
|
||||||
@ -96,7 +55,7 @@ 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.percent = (this.memberInfo.member_exppoints / this.rank[this.memberInfo.member_level - 1].max) * 100;
|
this.nodes = common.unescapeHTML(res.data.points_rule);
|
||||||
// console.log(this.percent);
|
// console.log(this.percent);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -159,6 +118,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.body {
|
.body {
|
||||||
|
margin-top: 60rpx;
|
||||||
.title {
|
.title {
|
||||||
height: 88rpx;
|
height: 88rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -167,39 +127,43 @@ export default {
|
|||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
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;
|
||||||
> image {
|
> image {
|
||||||
width: 29rpx;
|
width: 29rpx;
|
||||||
height: 36rpx;
|
height: 36rpx;
|
||||||
margin-right: 20rpx;
|
margin-right: 20rpx;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.rank-list {
|
.rich {
|
||||||
padding: 30rpx;
|
padding: 0 60rpx;
|
||||||
.list-item {
|
|
||||||
margin-bottom: 40rpx;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
.rank-value {
|
|
||||||
color: #FFF;
|
|
||||||
height: 30rpx;
|
|
||||||
line-height: 30rpx;
|
|
||||||
box-sizing: content-box;
|
|
||||||
background:rgba(255,213,101,1);
|
|
||||||
border-radius: 6rpx;
|
|
||||||
padding: 0 10rpx;
|
|
||||||
margin-right: 15rpx;
|
|
||||||
}
|
|
||||||
.rank-interval {
|
|
||||||
font-size: 28rpx;
|
|
||||||
color: #999999;
|
|
||||||
> span {
|
|
||||||
margin-right: 10rpx;
|
|
||||||
color: rgba(51,51,51,1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
// .rank-list {
|
||||||
|
// padding: 30rpx;
|
||||||
|
// .list-item {
|
||||||
|
// margin-bottom: 40rpx;
|
||||||
|
// display: flex;
|
||||||
|
// align-items: center;
|
||||||
|
// .rank-value {
|
||||||
|
// color: #FFF;
|
||||||
|
// height: 30rpx;
|
||||||
|
// line-height: 30rpx;
|
||||||
|
// box-sizing: content-box;
|
||||||
|
// background:rgba(255,213,101,1);
|
||||||
|
// border-radius: 6rpx;
|
||||||
|
// padding: 0 10rpx;
|
||||||
|
// margin-right: 15rpx;
|
||||||
|
// }
|
||||||
|
// .rank-interval {
|
||||||
|
// font-size: 28rpx;
|
||||||
|
// color: #999999;
|
||||||
|
// > span {
|
||||||
|
// margin-right: 10rpx;
|
||||||
|
// color: rgba(51,51,51,1);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -1,11 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="details" v-if="orderInfo.extend_store">
|
<view class="details" v-if="orderInfo.extend_store">
|
||||||
<view class="status" v-if="state">
|
<view class="status" v-if="orderstate">
|
||||||
<view class="text">
|
<view class="text">
|
||||||
<view class="status-text">{{ s_object[state].text }}</view>
|
<view class="status-text">{{ s_object[orderstate].text }}</view>
|
||||||
<view class="time" v-if="orderInfo.view_type == 1">距离结束:{{ countdown }}</view>
|
<view class="time" v-if="orderInfo.view_type == 1 || orderInfo.view_type == 9">距离结束:{{ countdown }}</view>
|
||||||
</view>
|
</view>
|
||||||
<image :src="s_object[state].image"></image>
|
<image :src="s_object[orderstate].image"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="info">
|
<view class="info">
|
||||||
<view class="info-address">
|
<view class="info-address">
|
||||||
@ -67,15 +67,16 @@
|
|||||||
<view>创建时间:{{ orderInfo.add_time | date}}</view>
|
<view>创建时间:{{ orderInfo.add_time | date}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="btn" v-if="['1', '2', '4', '6'].indexOf(state) >= 0">
|
<view class="btn" v-if="['1', '2', '4', '6'].indexOf(orderstate) >= 0">
|
||||||
<view class="cancel" v-if="state == '4' || state == '1'" @click="applyRefund">申请退款</view>
|
<!-- @click="toOtherPage('RefundOrder')" -->
|
||||||
<view class="cancel" v-if="state == '1'" @click="toOtherPage('Logistics')">查看物流</view>
|
<view class="cancel" v-if="orderstate == '4' || orderstate == '1'">申请退款</view>
|
||||||
<view class="logistics" v-if="state == '1'" @click="confirmReceive">确认收货</view>
|
<view class="cancel" v-if="orderstate == '1'" @click="toOtherPage('Logistics')">查看物流</view>
|
||||||
<view class="comment" v-if="state == '2'" @click="toOtherPage('Comment')">立即评价</view>
|
<view class="logistics" v-if="orderstate == '1'" @click="confirmReceive">确认收货</view>
|
||||||
<view class="cancel" v-if="state == '6'" @click="cancelOrder">取消支付</view>
|
<view class="comment" v-if="orderstate == '2'" @click="toOtherPage('Comment')">立即评价</view>
|
||||||
<view class="payment" v-if="state == '6'" @click="payNow">立即支付</view>
|
<view class="cancel" v-if="orderstate == '6'" @click="cancelOrder">取消支付</view>
|
||||||
<view class="service" v-if="state == '7'">联系官方客服</view>
|
<view class="payment" v-if="orderstate == '6'" @click="payNow">立即支付</view>
|
||||||
<view class="submit" v-if="state == '7'">提交官方审核</view>
|
<view class="service" v-if="orderstate == '7'">联系官方客服</view>
|
||||||
|
<view class="submit" v-if="orderstate == '7'">提交官方审核</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@ -83,7 +84,7 @@
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
state: '', // 1: 待收货 2: 待评价 3: 交易成功 4: 已取消 5: 已退款 6: 待支付 7: 待退款 8: 已退款
|
orderstate: '', // 1: 待收货 2: 待评价 3: 交易成功 4: 已取消 5: 已退款 6: 待支付 7: 待退款 8: 已退款
|
||||||
s_object: {
|
s_object: {
|
||||||
'1': {
|
'1': {
|
||||||
text: '待收货',
|
text: '待收货',
|
||||||
@ -113,6 +114,10 @@ export default {
|
|||||||
text: '待退款',
|
text: '待退款',
|
||||||
image: '../static/mine/34.png',
|
image: '../static/mine/34.png',
|
||||||
},
|
},
|
||||||
|
'8': {
|
||||||
|
text: '拼团中',
|
||||||
|
image: '../static/mine/37.png',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
orderInfo: {},
|
orderInfo: {},
|
||||||
oid: '',
|
oid: '',
|
||||||
@ -155,10 +160,13 @@ export default {
|
|||||||
case 7:
|
case 7:
|
||||||
state = '5';
|
state = '5';
|
||||||
break;
|
break;
|
||||||
|
case 9:
|
||||||
|
state = '8';
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this.state = state;
|
this.orderstate = state;
|
||||||
},
|
},
|
||||||
setSpikeTime(time) {
|
setSpikeTime(time) {
|
||||||
// console.log(time);
|
// console.log(time);
|
||||||
@ -167,7 +175,7 @@ export default {
|
|||||||
// console.log(spikeTime);
|
// console.log(spikeTime);
|
||||||
if(spikeTime <= 0) {
|
if(spikeTime <= 0) {
|
||||||
this.isSpike = true;
|
this.isSpike = true;
|
||||||
this.spikeTime = '00:00:00'
|
this.countdown = '00:00:00'
|
||||||
clearInterval(this.timer);
|
clearInterval(this.timer);
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
@ -196,9 +204,10 @@ export default {
|
|||||||
}).then(res => {
|
}).then(res => {
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
this.orderInfo = res.data;
|
this.orderInfo = res.data;
|
||||||
this.setSpikeTime(res.data.end_time);
|
|
||||||
this.viewState(this.orderInfo.view_type);
|
this.viewState(this.orderInfo.view_type);
|
||||||
this.setTitle(this.orderInfo.view_type);
|
this.setTitle(this.orderInfo.view_type);
|
||||||
|
if(res.data.view_type == 1) this.setSpikeTime(res.data.end_time);
|
||||||
|
else if(res.data.view_type == 9) this.setSpikeTime(res.data.pintuangroup_endtime);
|
||||||
}
|
}
|
||||||
uni.stopPullDownRefresh(); // 结束刷新
|
uni.stopPullDownRefresh(); // 结束刷新
|
||||||
})
|
})
|
||||||
@ -243,6 +252,7 @@ export default {
|
|||||||
this.$u.route('/pageC/cart/cashier', {
|
this.$u.route('/pageC/cart/cashier', {
|
||||||
pay_sn: this.orderInfo.pay_sn,
|
pay_sn: this.orderInfo.pay_sn,
|
||||||
price: this.orderInfo.order_amount,
|
price: this.orderInfo.order_amount,
|
||||||
|
order_id: this.orderInfo.order_id,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
toOtherPage(url) {
|
toOtherPage(url) {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="order">
|
<view class="order">
|
||||||
<view>
|
<view>
|
||||||
<u-tabs-swiper ref="tabs" :list="list" :is-scroll="false" active-color="#FF780F" :current="current" font-size="26" @change="tabsChange" height="88" :gutter="30"></u-tabs-swiper>
|
<u-tabs-swiper ref="tabs" :list="list" active-color="#FF780F" :current="current" font-size="26" @change="tabsChange" height="88" :gutter="30"></u-tabs-swiper>
|
||||||
</view>
|
</view>
|
||||||
<swiper :current="swiperCurrent" @animationfinish="animationfinish" :style="{ height: swiperHeight }">
|
<swiper :current="swiperCurrent" @animationfinish="animationfinish" :style="{ height: swiperHeight }">
|
||||||
<swiper-item class="swiper-item" v-for="(item, index) in list" :key="index">
|
<swiper-item class="swiper-item" v-for="(item, index) in list" :key="index">
|
||||||
@ -35,13 +35,15 @@ export default {
|
|||||||
name: '待收货'
|
name: '待收货'
|
||||||
}, {
|
}, {
|
||||||
name: '试穿试送'
|
name: '试穿试送'
|
||||||
|
},{
|
||||||
|
name: '拼团中'
|
||||||
}, {
|
}, {
|
||||||
name: '售后'
|
name: '售后'
|
||||||
}, {
|
}, {
|
||||||
name: '待评价'
|
name: '待评价'
|
||||||
}],
|
}],
|
||||||
orderList: [],
|
orderList: [],
|
||||||
loadStatus: ['loadmore','loadmore','loadmore','loadmore','loadmore','loadmore','loadmore'],
|
loadStatus: ['loadmore','loadmore','loadmore','loadmore','loadmore','loadmore','loadmore','loadmore'],
|
||||||
page: 0,
|
page: 0,
|
||||||
current: Number,
|
current: Number,
|
||||||
swiperCurrent: 0,
|
swiperCurrent: 0,
|
||||||
@ -94,9 +96,12 @@ export default {
|
|||||||
type = -1; // 试穿试送
|
type = -1; // 试穿试送
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
type = 8; // 售后
|
type = 9; // 拼团中
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
|
type = 8; // 售后
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
type = 4; // 待评价
|
type = 4; // 待评价
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
142
pageE/order/RefundOrder.vue
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
<template>
|
||||||
|
<view class="refund">
|
||||||
|
<view class="radios-container">
|
||||||
|
<u-radio-group v-model="value" @change="radioChange">
|
||||||
|
<label class="radio-view" v-for="(item, index) in goodsList" :key="index">
|
||||||
|
<view class="radio">
|
||||||
|
<u-radio color="#F0AD4E" :name="item.goods_id" active-color="#FF780F" icon-size="34" shape="circle"></u-radio>
|
||||||
|
</view>
|
||||||
|
<view class="store_info">
|
||||||
|
<view class="info_img">
|
||||||
|
<image :src="item.goods_image" mode="">
|
||||||
|
</view>
|
||||||
|
<view class="info_txt">
|
||||||
|
<view class="content u-line-2">
|
||||||
|
{{ item.goods_name }}
|
||||||
|
</view>
|
||||||
|
<view class="much">
|
||||||
|
<text>¥{{ item.goods_pay_price }}</text>
|
||||||
|
<text>x{{ item.goods_num }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</label>
|
||||||
|
</u-radio-group>
|
||||||
|
</view>
|
||||||
|
<view class="refund-details">
|
||||||
|
<view class="goods-number">
|
||||||
|
<view>选择数量</view>
|
||||||
|
<view></view>
|
||||||
|
</view>
|
||||||
|
<view class="refund-price">
|
||||||
|
<view>
|
||||||
|
<view>退款金额</view>
|
||||||
|
<view>¥99.00</view>
|
||||||
|
</view>
|
||||||
|
<view>若退款成功,将退还给您¥99.00</view>
|
||||||
|
</view>
|
||||||
|
<view class="refund-text">
|
||||||
|
<view>申请说明</view>
|
||||||
|
<u-input v-model="refundText" type="textarea" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="submit-btn">提交申请</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
goodsList: [],
|
||||||
|
value: '',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onLoad(option) {
|
||||||
|
this.getOrderInfo(option.oid);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
radioChange(e){
|
||||||
|
console.log(e)
|
||||||
|
},
|
||||||
|
getOrderInfo(id) {
|
||||||
|
this.$u.api.getOrderInfo({
|
||||||
|
order_id: id,
|
||||||
|
}).then(res => {
|
||||||
|
if(res.errCode == 0) {
|
||||||
|
// this.orderInfo = res.data;
|
||||||
|
this.goodsList = res.data.extend_order_goods;
|
||||||
|
console.log(this.goodsList);
|
||||||
|
}
|
||||||
|
// uni.stopPullDownRefresh(); // 结束刷新
|
||||||
|
})
|
||||||
|
},
|
||||||
|
applyRefund() {
|
||||||
|
let params = {
|
||||||
|
order_id: this.order.order_id,
|
||||||
|
// goods_id: goods_id,
|
||||||
|
// refund_amount: refund_amount,
|
||||||
|
}
|
||||||
|
this.$u.api.refundOrder(params).then(res => {
|
||||||
|
this.$u.toast(res.message);
|
||||||
|
if(res.errCode == 0) {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.refund {
|
||||||
|
min-height: calc(100vh - var(--window-top));
|
||||||
|
background-color: #EDEDED;
|
||||||
|
.radios-container {
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
.radio-view {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
padding: 26rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 1rpx;
|
||||||
|
.radio {
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
.store_info {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
width: 100%;
|
||||||
|
.info_img{
|
||||||
|
>image{
|
||||||
|
width: 180rpx;
|
||||||
|
height: 160rpx;
|
||||||
|
background-color: aqua;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.info_txt{
|
||||||
|
padding-left: 30rpx;
|
||||||
|
padding-right: 30rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
width: 100%;
|
||||||
|
.content{
|
||||||
|
height: 74rpx;
|
||||||
|
line-height: 37rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color:rgba(51,51,51,1);
|
||||||
|
}
|
||||||
|
.much{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.refund-details {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
.goods-number {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
Before Width: | Height: | Size: 155 KiB |
BIN
pageE/static/mine/37.png
Normal file
After Width: | Height: | Size: 15 KiB |
@ -1,9 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="manicure">
|
<view class="manicure">
|
||||||
<view>
|
<view>
|
||||||
<u-tabs-swiper ref="tabs" :list="list" :is-scroll="false" active-color="#FF780F" :current="current" font-size="32" :show-bar="false" @change="tabsChange" height="88" ></u-tabs-swiper>
|
<u-tabs-swiper ref="tabs" :list="list" :is-scroll="false" active-color="#FF780F" :current="current" font-size="32" :show-bar="false" @change="tabsChange" height="88"></u-tabs-swiper>
|
||||||
</view>
|
</view>
|
||||||
<swiper :current="swiperCurrent" @animationfinish="animationfinish">
|
<swiper :current="swiperCurrent" @animationfinish="animationfinish" :style="{ height: swiperHeight }">
|
||||||
<swiper-item class="swiper-item">
|
<swiper-item class="swiper-item">
|
||||||
<scroll-view scroll-y class="order-list" @scrolltolower="reachBottom">
|
<scroll-view scroll-y class="order-list" @scrolltolower="reachBottom">
|
||||||
<u-empty text="暂无订单" mode="order" color="#000000" v-if="!orderList.length"></u-empty>
|
<u-empty text="暂无订单" mode="order" color="#000000" v-if="!orderList.length"></u-empty>
|
||||||
@ -14,7 +14,7 @@
|
|||||||
<view class="order-status">{{ item.status }}</view>
|
<view class="order-status">{{ item.status }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="order-name">美甲人姓名:{{ item.manicure_name }}</view>
|
<view class="order-name">美甲人姓名:{{ item.manicure_name }}</view>
|
||||||
<view class="order-date">时间:{{ item.manicure_time | dateFormat }}</view>
|
<view class="order-date">时间:{{ item.manicure_time | date }}</view>
|
||||||
</view>
|
</view>
|
||||||
<u-loadmore :status="loadStatus" bgColor="#ECECEC" margin-bottom="20" v-if="orderList.length>=pageSize"></u-loadmore>
|
<u-loadmore :status="loadStatus" bgColor="#ECECEC" margin-bottom="20" v-if="orderList.length>=pageSize"></u-loadmore>
|
||||||
</view>
|
</view>
|
||||||
@ -44,26 +44,20 @@ export default {
|
|||||||
orderList: [],
|
orderList: [],
|
||||||
loadStatus: 'loadmore',
|
loadStatus: 'loadmore',
|
||||||
timer: true,
|
timer: true,
|
||||||
|
swiperHeight: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
onPullDownRefresh() {
|
onPullDownRefresh() {
|
||||||
this.getManicureList({ load: 'reload' });
|
this.getManicureList({ load: 'reload' });
|
||||||
},
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.setViewHeight();
|
||||||
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
this.current = 0;
|
this.current = 0;
|
||||||
this.swiperCurrent = 0;
|
this.swiperCurrent = 0;
|
||||||
this.getManicureList({ load: 'reload' });
|
this.getManicureList({ load: 'reload' });
|
||||||
},
|
},
|
||||||
filters: {
|
|
||||||
dateFormat(value) {
|
|
||||||
let date = new Date(value * 1000);
|
|
||||||
let year, month, day;
|
|
||||||
year = date.getFullYear();
|
|
||||||
month = date.getMonth() + 1;
|
|
||||||
day = date.getDate();
|
|
||||||
return year + "-" + month + "-" + day;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
methods: {
|
||||||
async getManicureList({ load }) {
|
async getManicureList({ load }) {
|
||||||
const res = await this.$u.api.getManicureList({
|
const res = await this.$u.api.getManicureList({
|
||||||
@ -94,6 +88,10 @@ export default {
|
|||||||
this.page--;
|
this.page--;
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
setViewHeight() {
|
||||||
|
const res = uni.getSystemInfoSync();
|
||||||
|
this.swiperHeight = res.windowHeight - (88 / 2) + 'px';
|
||||||
|
},
|
||||||
tabsChange(index) {
|
tabsChange(index) {
|
||||||
this.swiperCurrent = index;
|
this.swiperCurrent = index;
|
||||||
// this.toApplyPage(index);
|
// this.toApplyPage(index);
|
||||||
|
@ -65,14 +65,11 @@ export default {
|
|||||||
time: new Date(this.time)
|
time: new Date(this.time)
|
||||||
}).then((res)=>{
|
}).then((res)=>{
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
uni.redirectTo({
|
this.$refs.uToast.show({
|
||||||
url: '/pageE/tool/Manicure'
|
title: res.message,
|
||||||
});
|
type: 'success',
|
||||||
// this.$refs.uToast.show({
|
back: true,
|
||||||
// title: res.message,
|
})
|
||||||
// type: 'success',
|
|
||||||
// url: '/pageE/tool/Manicure'
|
|
||||||
// })
|
|
||||||
} else {
|
} else {
|
||||||
this.showToast(res.message, 'error');
|
this.showToast(res.message, 'error');
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,16 @@
|
|||||||
<view class="title">
|
<view class="title">
|
||||||
<u-tabs-swiper ref="tabs" :list="list" :is-scroll="false" active-color="#FF780F" :current="current" font-size="32" :show-bar="false" @change="tabsChange" height="88"></u-tabs-swiper>
|
<u-tabs-swiper ref="tabs" :list="list" :is-scroll="false" active-color="#FF780F" :current="current" font-size="32" :show-bar="false" @change="tabsChange" height="88"></u-tabs-swiper>
|
||||||
<u-icon name="arrow-down-fill" :color="current == 0 ? '#FF780F' : '#333333'" size="17" class="order-icon" :style="{ left: list[0].name == '平台历史订单' ? '236rpx' : '252rpx' }"></u-icon>
|
<u-icon name="arrow-down-fill" :color="current == 0 ? '#FF780F' : '#333333'" size="17" class="order-icon" :style="{ left: list[0].name == '平台历史订单' ? '236rpx' : '252rpx' }"></u-icon>
|
||||||
|
<view class="popup" v-if="showPopup" @click="onTap">
|
||||||
|
<view class="popup_cont" @click="replaces(1)">
|
||||||
|
实体店历史订单
|
||||||
</view>
|
</view>
|
||||||
<swiper :current="swiperCurrent" @animationfinish="animationfinish">
|
<view class="popup_cont" @click="replaces(2)">
|
||||||
|
平台历史订单
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<swiper :current="swiperCurrent" @animationfinish="animationfinish" :style="{ height: swiperHeight }">
|
||||||
<swiper-item class="swiper-item">
|
<swiper-item class="swiper-item">
|
||||||
<scroll-view scroll-y class="order-list" @scrolltolower="loadmore">
|
<scroll-view scroll-y class="order-list" @scrolltolower="loadmore">
|
||||||
<view v-for="(item, index) in orderList" :key="index" class="order-item">
|
<view v-for="(item, index) in orderList" :key="index" class="order-item">
|
||||||
@ -13,10 +21,10 @@
|
|||||||
<view class="order-status">{{ item.order_status | viewStatus }}</view>
|
<view class="order-status">{{ item.order_status | viewStatus }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="order-info">
|
<view class="order-info">
|
||||||
<image src="../static/mine/23.png"></image>
|
<image :src="item.goods_image"></image>
|
||||||
<view v-if="item.deliver_goods_type == 2 && item.order_status == 20">
|
<view v-if="item.deliver_goods_type == 2 && item.order_status == 20">
|
||||||
<view>骑手名字:{{ item.takeawayer_name || '' }}</view>
|
<view>骑手名字:{{ item.takeawayer_name || '' }}</view>
|
||||||
<view>联系方式:{{ item.member_phone || '' }}</view>
|
<view>联系方式:{{ item.takeawayer_mobile || '' }}</view>
|
||||||
<view>所属公司:{{ item.company || '' }}</view>
|
<view>所属公司:{{ item.company || '' }}</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="item.order_status == 0">
|
<view v-if="item.order_status == 0">
|
||||||
@ -56,14 +64,6 @@
|
|||||||
</scroll-view>
|
</scroll-view>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</swiper>
|
</swiper>
|
||||||
<view class="popup" v-if="showPopup" @click="onTap">
|
|
||||||
<view class="popup_cont" @click="replaces(1)">
|
|
||||||
实体店历史订单
|
|
||||||
</view>
|
|
||||||
<view class="popup_cont" @click="replaces(2)">
|
|
||||||
平台历史订单
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
@ -86,6 +86,7 @@ export default {
|
|||||||
orderList: [],
|
orderList: [],
|
||||||
timer: true,
|
timer: true,
|
||||||
commentList: [],
|
commentList: [],
|
||||||
|
swiperHeight: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@ -133,6 +134,9 @@ export default {
|
|||||||
this.sendLaundryOrderList();
|
this.sendLaundryOrderList();
|
||||||
this.sendCommentList();
|
this.sendCommentList();
|
||||||
},
|
},
|
||||||
|
onLoad() {
|
||||||
|
this.setViewHeight();
|
||||||
|
},
|
||||||
methods: {
|
methods: {
|
||||||
async sendLaundryOrderList({ load = 'reload' } = {}) {
|
async sendLaundryOrderList({ load = 'reload' } = {}) {
|
||||||
let type = this.list[0].name == '平台历史订单' ? 1 : 2;
|
let type = this.list[0].name == '平台历史订单' ? 1 : 2;
|
||||||
@ -186,6 +190,10 @@ export default {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
setViewHeight() {
|
||||||
|
const res = uni.getSystemInfoSync();
|
||||||
|
this.swiperHeight = res.windowHeight - (88 / 2) + 'px';
|
||||||
|
},
|
||||||
toComment(id) {
|
toComment(id) {
|
||||||
this.$u.route('/pageE/tool/washComment', {
|
this.$u.route('/pageE/tool/washComment', {
|
||||||
id: id
|
id: id
|
||||||
@ -235,6 +243,34 @@ export default {
|
|||||||
transform: translate(0, -50%);
|
transform: translate(0, -50%);
|
||||||
z-index: 9;
|
z-index: 9;
|
||||||
}
|
}
|
||||||
|
.popup{
|
||||||
|
width: 100%;
|
||||||
|
height: calc(calc(100vh - 88rpx) - var(--window-top));
|
||||||
|
position: absolute;
|
||||||
|
top: 88rpx;
|
||||||
|
left: 0;
|
||||||
|
z-index: 9;
|
||||||
|
background-color: rgba(0, 0, 0, 0.4);
|
||||||
|
transform: scale(1);
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: top;
|
||||||
|
align-items: center;
|
||||||
|
transition-duration: 0.3s;
|
||||||
|
.popup_cont{
|
||||||
|
border-top: 1px solid RGBA(239, 236, 240, 1);
|
||||||
|
background-color: #fff;
|
||||||
|
width: 100%;
|
||||||
|
height: 80rpx;
|
||||||
|
line-height: 80rpx;
|
||||||
|
font-size:28rpx;
|
||||||
|
font-family:PingFang SC;
|
||||||
|
font-weight:400;
|
||||||
|
color:rgba(102,102,102,1);
|
||||||
|
padding-left: 41rpx;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.swiper-item {
|
.swiper-item {
|
||||||
padding-top: 20rpx;
|
padding-top: 20rpx;
|
||||||
@ -309,35 +345,5 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.popup{
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
position: fixed;
|
|
||||||
bottom: 0;
|
|
||||||
top: 88px;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
z-index: 2;
|
|
||||||
background-color: rgba(0, 0, 0, 0.4);
|
|
||||||
transform: scale(1);
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
justify-content: top;
|
|
||||||
align-items: center;
|
|
||||||
transition-duration: 0.3s;
|
|
||||||
.popup_cont{
|
|
||||||
border-top: 1px solid RGBA(239, 236, 240, 1);
|
|
||||||
background-color: #fff;
|
|
||||||
width: 100%;
|
|
||||||
height: 80rpx;
|
|
||||||
line-height: 80rpx;
|
|
||||||
font-size:28rpx;
|
|
||||||
font-family:PingFang SC;
|
|
||||||
font-weight:400;
|
|
||||||
color:rgba(102,102,102,1);
|
|
||||||
padding-left: 41rpx;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
@ -3,7 +3,7 @@
|
|||||||
<view>
|
<view>
|
||||||
<u-tabs-swiper ref="tabs" :list="list" :is-scroll="false" active-color="#FF780F" :current="current" font-size="32" :show-bar="false" @change="tabsChange" height="88"></u-tabs-swiper>
|
<u-tabs-swiper ref="tabs" :list="list" :is-scroll="false" active-color="#FF780F" :current="current" font-size="32" :show-bar="false" @change="tabsChange" height="88"></u-tabs-swiper>
|
||||||
</view>
|
</view>
|
||||||
<swiper :current="swiperCurrent" @animationfinish="animationfinish" :style="{ height: swiperHeight }">
|
<swiper :current="swiperCurrent" @animationfinish="animationfinish" :style="{ minHeight: swiperHeight }">
|
||||||
<swiper-item class="swiper-item">
|
<swiper-item class="swiper-item">
|
||||||
<scroll-view scroll-y="true" style="height: 100%;">
|
<scroll-view scroll-y="true" style="height: 100%;">
|
||||||
<view class="order-info">
|
<view class="order-info">
|
||||||
@ -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"></u-radio>
|
<u-radio color="#F0AD4E" :name="items.order_id + ' ' + item.goods_id" active-color="#FF780F" icon-size="34" shape="circle"></u-radio>
|
||||||
</view>
|
</view>
|
||||||
<view class="store_info">
|
<view class="store_info">
|
||||||
<view class="info_img">
|
<view class="info_img">
|
||||||
@ -375,8 +375,13 @@ export default {
|
|||||||
this.$u.api.sendLaundrySave(params).then(res => {
|
this.$u.api.sendLaundrySave(params).then(res => {
|
||||||
this.$u.toast(res.message);
|
this.$u.toast(res.message);
|
||||||
if(res.errCode == 0) {
|
if(res.errCode == 0) {
|
||||||
|
this.$refs.uToast.show({
|
||||||
|
title: res.message,
|
||||||
|
type: 'success',
|
||||||
|
back: true,
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
|
this.$u.toast(res.message);
|
||||||
this.debounce = true;
|
this.debounce = true;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
28
pages.json
@ -250,7 +250,18 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "classify/goods",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "分类商品列表",
|
||||||
|
"app-plus": {
|
||||||
|
"titleNView": {
|
||||||
|
"titleColor": "#333333",
|
||||||
|
"backgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "cart/index",
|
"path": "cart/index",
|
||||||
@ -559,7 +570,7 @@
|
|||||||
"buttons": [
|
"buttons": [
|
||||||
{
|
{
|
||||||
"type":"none",
|
"type":"none",
|
||||||
"text":"写意见",
|
"text":"投诉",
|
||||||
"float":"right",
|
"float":"right",
|
||||||
"fontSize":"14"
|
"fontSize":"14"
|
||||||
}
|
}
|
||||||
@ -921,6 +932,19 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "order/RefundOrder",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "申请退款",
|
||||||
|
"app-plus": {
|
||||||
|
"titleSize": "36px",
|
||||||
|
"titleNView": {
|
||||||
|
"titleColor": "#333333",
|
||||||
|
"backgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
<scroll-view style="width:100%;height:100%" scroll-y="true">
|
<scroll-view style="width:100%;height:100%" scroll-y="true">
|
||||||
<view class="box">
|
<view class="box">
|
||||||
<!-- <indexad style="width:690rpx"></indexad> -->
|
<!-- <indexad style="width:690rpx"></indexad> -->
|
||||||
<u-swiper mode="dot" :list="indexImageSwiper" name="adv_code"></u-swiper>
|
<u-swiper mode="dot" :list="indexImageSwiper" name="adv_code" @click="clickFImage"></u-swiper>
|
||||||
<view class="list">
|
<view class="list">
|
||||||
<view>
|
<view>
|
||||||
<videoItem v-for="item in articleList.filter((_, index) => !(index&1))" :key="item.article_id" :item="item"
|
<videoItem v-for="item in articleList.filter((_, index) => !(index&1))" :key="item.article_id" :item="item"
|
||||||
@ -223,6 +223,7 @@
|
|||||||
this.tabLiveList();
|
this.tabLiveList();
|
||||||
},
|
},
|
||||||
onPullDownRefresh() {
|
onPullDownRefresh() {
|
||||||
|
this.getArticlelist();
|
||||||
// this.getManicureList({ load: 'reload' });
|
// this.getManicureList({ load: 'reload' });
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@ -269,6 +270,7 @@
|
|||||||
page: this.page,
|
page: this.page,
|
||||||
is_video_img: 0, // 查询视频1 图文2 都查0
|
is_video_img: 0, // 查询视频1 图文2 都查0
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
|
uni.stopPullDownRefresh();
|
||||||
console.log('37647744ghj', res)
|
console.log('37647744ghj', res)
|
||||||
if (res.errCode == 0) {
|
if (res.errCode == 0) {
|
||||||
this.articleList = res.data.list;
|
this.articleList = res.data.list;
|
||||||
@ -309,6 +311,7 @@
|
|||||||
type,
|
type,
|
||||||
id
|
id
|
||||||
}) {
|
}) {
|
||||||
|
console.log(type,id);
|
||||||
if (type == 0) return false;
|
if (type == 0) return false;
|
||||||
// type 1 商品详情页, 2 店铺详情页
|
// type 1 商品详情页, 2 店铺详情页
|
||||||
const url = type == 1 ? 'pageB/sdetails/index' : 'pageC/merchant/index';
|
const url = type == 1 ? 'pageB/sdetails/index' : 'pageC/merchant/index';
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<view class="content">
|
<view class="content">
|
||||||
<!-- 正文内容 -->
|
<!-- 正文内容 -->
|
||||||
</view>
|
</view>
|
||||||
<view class="sousuo"></view>
|
<!-- <view class="sousuo"></view> -->
|
||||||
<view class="backes">
|
<view class="backes">
|
||||||
<titles :information="information_dles"></titles>
|
<titles :information="information_dles"></titles>
|
||||||
</view>
|
</view>
|
||||||
@ -42,7 +42,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 0,
|
id: 0,
|
||||||
url: '../../static/pageD/info(6).png',
|
url: '../../static/pageD/info(13).png',
|
||||||
text: '活动消息'
|
text: '活动消息'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -19,14 +19,14 @@
|
|||||||
<view class="member-service" @click="toOtherPage('/mine/MemberServe')">会员服务</view>
|
<view class="member-service" @click="toOtherPage('/mine/MemberServe')">会员服务</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="bottom">
|
<view class="bottom">
|
||||||
<view @click="toOtherPage('/mine/GoodsCollection')">
|
<!-- <view @click="toOtherPage('/mine/GoodsCollection')">
|
||||||
<view>{{ userInfo.member_fav_goods_num || 0 }}</view>
|
<view>{{ userInfo.member_fav_goods_num || 0 }}</view>
|
||||||
<view>商品收藏</view>
|
<view>商品收藏</view>
|
||||||
</view>
|
</view>
|
||||||
<view @click="toOtherPage('/mine/StoreCollection')">
|
<view @click="toOtherPage('/mine/StoreCollection')">
|
||||||
<view>{{ userInfo.member_fav_store_num || 0 }}</view>
|
<view>{{ userInfo.member_fav_store_num || 0 }}</view>
|
||||||
<view>店铺收藏</view>
|
<view>店铺收藏</view>
|
||||||
</view>
|
</view> -->
|
||||||
<view @click="toOtherPage('/mine/ImageTextCollection')">
|
<view @click="toOtherPage('/mine/ImageTextCollection')">
|
||||||
<view>{{ userInfo.member_fav_article_num || 0 }}</view>
|
<view>{{ userInfo.member_fav_article_num || 0 }}</view>
|
||||||
<view>图文收藏</view>
|
<view>图文收藏</view>
|
||||||
@ -68,10 +68,14 @@
|
|||||||
<view>试穿试送</view>
|
<view>试穿试送</view>
|
||||||
</view>
|
</view>
|
||||||
<view @click="toOtherPage('/order/Index?current=5')">
|
<view @click="toOtherPage('/order/Index?current=5')">
|
||||||
|
<image src="/static/image/mine/37.png"></image>
|
||||||
|
<view>拼团中</view>
|
||||||
|
</view>
|
||||||
|
<view @click="toOtherPage('/order/Index?current=6')">
|
||||||
<image src="/static/image/mine/9.png"></image>
|
<image src="/static/image/mine/9.png"></image>
|
||||||
<view>售后</view>
|
<view>售后</view>
|
||||||
</view>
|
</view>
|
||||||
<view @click="toOtherPage('/order/Index?current=6')">
|
<view @click="toOtherPage('/order/Index?current=7')">
|
||||||
<image src="/static/image/mine/3.png"></image>
|
<image src="/static/image/mine/3.png"></image>
|
||||||
<view>待评价</view>
|
<view>待评价</view>
|
||||||
</view>
|
</view>
|
||||||
@ -244,8 +248,10 @@ export default {
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
padding: 0 30rpx;
|
padding: 0 30rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-around;
|
||||||
|
// justify-content: flex-start;
|
||||||
> view {
|
> view {
|
||||||
|
margin-right: 80rpx;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
color:rgba(51,51,51,1);
|
color:rgba(51,51,51,1);
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<image src="/static/image/shop/2.png"></image>
|
<image src="/static/image/shop/2.png"></image>
|
||||||
</view>
|
</view>
|
||||||
<view @click="sousuo">
|
<view @click="sousuo">
|
||||||
<u-search placeholder="" v-model="keyword" :show-action="false" bg-color="#fff" border-color="#999999" :disabled="true"></u-search>
|
<u-search placeholder="输入您喜欢的宝贝" v-model="keyword" :show-action="false" bg-color="#fff" border-color="#999999" :disabled="true"></u-search>
|
||||||
</view>
|
</view>
|
||||||
<image src="/static/image/shop/3.png" class="mnue" @click="toClassifyPage"></image>
|
<image src="/static/image/shop/3.png" class="mnue" @click="toClassifyPage"></image>
|
||||||
</view>
|
</view>
|
||||||
@ -35,7 +35,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="fenlei">
|
<view class="fenlei">
|
||||||
<shopitem v-for="item in goodsClassify" :key="item.gc_id" :info="item" class="item"></shopitem>
|
<shopitem v-for="item in goodsClassify" :key="item.gc_id" :info="item"></shopitem>
|
||||||
</view>
|
</view>
|
||||||
<!-- 秒杀 -->
|
<!-- 秒杀 -->
|
||||||
<recommend v-if="JSON.stringify(recommendedSpike) != '{}'" :recommendData="recommendedSpike" type="spike"></recommend>
|
<recommend v-if="JSON.stringify(recommendedSpike) != '{}'" :recommendData="recommendedSpike" type="spike"></recommend>
|
||||||
@ -234,6 +234,7 @@
|
|||||||
height: 88rpx;
|
height: 88rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
.local {
|
.local {
|
||||||
width: 31rpx;
|
width: 31rpx;
|
||||||
@ -299,19 +300,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.fenlei {
|
.fenlei {
|
||||||
padding: 30rpx;
|
|
||||||
background-color: #ffffff;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
padding: 30rpx;
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
|
background-color: #ffffff;
|
||||||
>view {
|
|
||||||
margin-bottom: 30rpx;
|
|
||||||
|
|
||||||
&:not(:nth-child(5n)) {
|
|
||||||
margin-right: 70rpx;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.activity-view {
|
.activity-view {
|
||||||
|
BIN
static/CustomStoryboard.zip
Normal file
BIN
static/app/icon/144x144.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
static/app/icon/192x192.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
static/app/icon/72x72.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
static/app/icon/96x96.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
static/app/start/1080x1882.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
static/app/start/480x762.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
static/app/start/720x1242.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
static/image/mine/37.png
Normal file
After Width: | Height: | Size: 2.5 KiB |