master
sws 2023-10-08 10:00:56 +08:00
parent 02e7181363
commit d57ca12b1a
17 changed files with 429 additions and 322 deletions

View File

@ -123,7 +123,7 @@
.plugins-binding-data-list .item .buy-submit {
padding: 0 20rpx;
height: 46rpx;
line-height: 46rpx;
line-height: 44rpx;
}
.plugins-binding-data-list .item .binding-goods-list {
background: #f8f8f8;

View File

@ -119,7 +119,7 @@
},
data() {
return {
coupon_static_url: coupon_static_url,
coupon_static_url: coupon_static_url + 'app/',
//
currency_symbol: app.globalData.data.currency_symbol,
//

View File

@ -1,157 +1,155 @@
<template>
<view v-if="propData.length > 0" class="spacing-mb" :class="(propLeft ? 'swiper-left ':'') + (propRight ? 'swiper-right ':'')">
<uni-swiper-dot class="uni-swiper-dot-box" :mode="propMode" :dots-styles="dotsStyles" @clickItem="click_item" :info="propData" :current="current">
<swiper class="banner oh" :class="' banner-'+(propSize || 'default') + ' ' + propRadius" :autoplay="propData.length > 0" :duration="duration" :circular="circular" @change="swiper_change"
:current="swiperDotIndex">
<swiper-item v-for="(item, i) in propData" :key="i">
<image :src="item.images_url" mode="widthFix" :data-value="item.event_value || item.url" :data-type="item.event_type == undefined ? 1 : item.event_type" @tap="banner_event">
</image>
</swiper-item>
</swiper>
</uni-swiper-dot>
</view>
<view v-if="propData.length > 0" class="spacing-mb" :class="(propLeft ? 'swiper-left ' : '') + (propRight ? 'swiper-right ' : '')">
<uni-swiper-dot class="uni-swiper-dot-box" :mode="propMode" :dots-styles="dotsStyles" @clickItem="click_item" :info="propData" :current="current">
<swiper class="banner oh" :class="' banner-' + (propSize || 'default') + ' ' + propRadius" :autoplay="propData.length > 0" :duration="duration" :circular="circular" @change="swiper_change" :current="swiperDotIndex">
<swiper-item v-for="(item, i) in propData" :key="i">
<image :src="item.images_url" mode="widthFix" :data-value="item.event_value || item.url" :data-type="item.event_type == undefined ? 1 : item.event_type" @tap="banner_event"> </image>
</swiper-item>
</swiper>
</uni-swiper-dot>
</view>
</template>
<script>
const app = getApp();
export default {
data() {
return {
circular: true,
duration: 500,
styleIndex: -1,
current: 0,
swiperDotIndex: 0,
dotsStyles: {},
};
},
const app = getApp();
export default {
data() {
return {
circular: true,
duration: 500,
styleIndex: -1,
current: 0,
swiperDotIndex: 0,
dotsStyles: {},
};
},
components: {},
props: {
propData: {
type: Array,
default: []
},
propSize: {
type: String,
default: 'default'
},
propRadius: {
type: String,
default: 'border-radius-main'
},
// class
propLeft: {
type: Boolean,
default: false
},
// class
propRight: {
type: Boolean,
default: false
},
// default/dot/round/nav/indexes
propMode: {
type: String,
default: 'dot'
},
//
propBackgroundColor: {
type: String,
default: '#fff'
},
// mode = navmode = indexes
propWidth: {
type: Number,
default: 6
},
// swiper
propBottom: {
type: Number,
default: 10
},
//
propBorder: {
type: String,
default: '0'
},
// mode = nav mode = indexes
propColor: {
type: String,
default: '#fff'
},
// mode = nav
propSelectedBackgroundColor: {
type: String,
default: '' + app.globalData.hex_rgba(app.globalData.get_theme_color(), 0.5)
},
// mode = nav
propSelectedBorder: {
type: String,
default: '0'
},
},
beforeMount() {
this.dotsStyles = {
backgroundColor: this.propBackgroundColor,
width: this.propWidth,
bottom: this.propBottom,
border: this.propBorder,
color: this.propColor,
selectedBackgroundColor: this.propSelectedBackgroundColor,
selectedBorder: this.propSelectedBorder
}
},
methods: {
swiper_change(e) {
// index
this.current = e.detail.current
// index
// this.currentIndex = tmpCurrent == this.propData.length - 1 ? 0 : tmpCurrent + 1;
this.$emit('changeBanner', this.propData[this.current].bg_color)
},
click_item(e) {
this.swiperDotIndex = e
},
banner_event(e) {
app.globalData.operation_event(e);
}
}
};
components: {},
props: {
propData: {
type: Array,
default: [],
},
propSize: {
type: String,
default: 'default',
},
propRadius: {
type: String,
default: 'border-radius-main',
},
// class
propLeft: {
type: Boolean,
default: false,
},
// class
propRight: {
type: Boolean,
default: false,
},
// default/dot/round/nav/indexes
propMode: {
type: String,
default: 'dot',
},
//
propBackgroundColor: {
type: String,
default: '#fff',
},
// mode = navmode = indexes
propWidth: {
type: Number,
default: 6,
},
// swiper
propBottom: {
type: Number,
default: 10,
},
//
propBorder: {
type: String,
default: '0',
},
// mode = nav mode = indexes
propColor: {
type: String,
default: '#fff',
},
// mode = nav
propSelectedBackgroundColor: {
type: String,
default: '' + app.globalData.hex_rgba(app.globalData.get_theme_color(), 0.5),
},
// mode = nav
propSelectedBorder: {
type: String,
default: '0',
},
},
beforeMount() {
this.dotsStyles = {
backgroundColor: this.propBackgroundColor,
width: this.propWidth,
bottom: this.propBottom,
border: this.propBorder,
color: this.propColor,
selectedBackgroundColor: this.propSelectedBackgroundColor,
selectedBorder: this.propSelectedBorder,
};
},
methods: {
swiper_change(e) {
// index
this.current = e.detail.current;
// index
// this.currentIndex = tmpCurrent == this.propData.length - 1 ? 0 : tmpCurrent + 1;
this.$emit('changeBanner', this.propData[this.current].bg_color);
},
click_item(e) {
this.swiperDotIndex = e;
},
banner_event(e) {
app.globalData.operation_event(e);
},
},
};
</script>
<style>
.banner {
transform: translateY(0);
}
.banner {
transform: translateY(0);
}
.banner image {
min-width: 100%;
}
.banner image {
min-width: 100%;
}
.banner-mini,
.banner-mini image {
height: 200rpx !important;
}
.banner-mini,
.banner-mini image {
height: 200rpx !important;
}
.banner-default,
.banner-default image {
height: 280rpx !important;
}
.banner-default,
.banner-default image {
height: 280rpx !important;
}
.banner-max,
.banner-max image {
height: 420rpx !important;
}
.banner-max,
.banner-max image {
height: 420rpx !important;
}
/**
/**
* 指示点 左右定位
*/
.swiper-left /deep/ .uni-swiper__dots-box {
justify-content: start;
padding-left: 24rpx;
}
.swiper-left /deep/ .uni-swiper__dots-box {
justify-content: start;
padding-left: 24rpx;
}
.swiper-right /deep/ .uni-swiper__dots-box {
justify-content: end;
padding-right: 24rpx;
}
</style>
.swiper-right /deep/ .uni-swiper__dots-box {
justify-content: end;
padding-right: 24rpx;
}
</style>

View File

@ -311,6 +311,9 @@
"pages": [{
"path": "index/index",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
"navigationBarTitleText": "领券中心"
}
@ -336,6 +339,9 @@
"pages": [{
"path": "index/index",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
"navigationBarTitleText": "会员VIP"
}
@ -688,6 +694,9 @@
{
"path": "index-detail/index-detail",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
"navigationBarTitleText": "签到"
}

View File

@ -2,35 +2,35 @@
*
*/
.home-top-nav-content {
background-repeat: no-repeat;
background-size: 100% auto;
min-height: calc(var(--status-bar-height) + 130rpx);
/* #ifdef H5 */
min-height: calc(var(--status-bar-height) + 160rpx);
/* #endif */
padding-top: calc(var(--status-bar-height) + 8px);
background-repeat: no-repeat;
background-size: 100% auto;
min-height: calc(var(--status-bar-height) + 130rpx);
/* #ifdef H5 */
min-height: calc(var(--status-bar-height) + 160rpx);
/* #endif */
padding-top: calc(var(--status-bar-height) + 5px);
}
.home-top-nav-logo {
text-align: left;
padding: 2px 250rpx 10rpx 20rpx;
height: 37px;
/* #ifdef H5 || MP-TOUTIAO || APP */
padding-top: 0;
/* #endif */
text-align: left;
padding: 2px 250rpx 10rpx 20rpx;
height: 37px;
/* #ifdef H5 || MP-TOUTIAO || APP */
padding-top: 0;
/* #endif */
}
.home-top-nav-logo-image {
width: 240rpx;
height: 100% !important;
width: 240rpx;
height: 100% !important;
}
.home-top-nav-logo-title {
font-weight: bold;
font-size: 42rpx;
/* #ifdef H5 || MP-TOUTIAO || APP */
font-size: 24px;
/* #endif */
font-weight: bold;
font-size: 42rpx;
/* #ifdef H5 || MP-TOUTIAO || APP */
font-size: 24px;
/* #endif */
}
/**
@ -38,22 +38,22 @@
*/
/* #ifdef H5 || MP-TOUTIAO || APP */
.nav-top-right-icon {
top: -34px;
right: 28rpx;
z-index: 12;
line-height: 28px;
/* #ifdef MP-TOUTIAO */
top: 2px;
/* #endif */
top: -34px;
right: 28rpx;
z-index: 12;
line-height: 28px;
/* #ifdef MP-TOUTIAO */
top: 2px;
/* #endif */
}
.nav-top-right-icon .item:not(:last-child) {
margin-right: 20rpx;
margin-right: 20rpx;
}
.nav-top-right-icon .badge-icon {
top: -10px;
right: 2px;
top: -10px;
right: 2px;
}
/* #endif */
@ -62,30 +62,30 @@
*
*/
.search-fixed-seat {
padding-top: 70rpx;
/* #ifdef MP-TOUTIAO */
padding-top: 60rpx;
/* #endif */
padding-top: 70rpx;
/* #ifdef MP-TOUTIAO */
padding-top: 60rpx;
/* #endif */
}
.search-content-fixed {
position: fixed !important;
top: 0;
z-index: 11;
padding-bottom: 20rpx;
width: 100%;
background-repeat: no-repeat;
background-size: 100% auto;
padding-top: 25px;
/* #ifdef H5 || APP */
padding-top: 15rpx !important;
padding-bottom: 15rpx !important;
/* #endif */
position: fixed !important;
top: 0;
z-index: 11;
padding-bottom: 20rpx;
width: 100%;
background-repeat: no-repeat;
background-size: 100% auto;
padding-top: 25px;
/* #ifdef H5 || APP */
padding-top: 15rpx !important;
padding-bottom: 15rpx !important;
/* #endif */
}
/* #ifdef H5 || MP-TOUTIAO || APP */
.search-content-fixed .nav-top-right-icon {
top: 9px !important;
top: 9px !important;
}
/* #endif */
@ -94,23 +94,23 @@
*
*/
.banner-content {
margin-top: 26rpx;
margin-top: 26rpx;
}
/**
*
*/
.article-list .new-icon {
width: 130rpx !important;
height: 42rpx !important;
width: 130rpx !important;
height: 42rpx !important;
}
.article-list .right-content {
width: calc(100% - 150rpx);
width: calc(100% - 150rpx);
}
.article-list .right-content swiper {
height: 40rpx;
height: 40rpx;
}
/*
@ -118,55 +118,55 @@
*/
.plugins-seckill-data {
background-size: 100% auto;
background-repeat: no-repeat;
background-position: top;
background-color: #fff;
background-size: 100% auto;
background-repeat: no-repeat;
background-position: top;
background-color: #fff;
}
.plugins-seckill-data .icon {
max-width: 140rpx;
max-height: 34rpx;
max-width: 140rpx;
max-height: 34rpx;
}
.plugins-seckill-data .goods-list .swiper {
height: 310rpx !important;
height: 310rpx !important;
}
.plugins-seckill-data .goods-list .item .goods-img {
width: 100%;
height: 210rpx;
width: 100%;
height: 210rpx;
}
.plugins-seckill-data .goods-list .goods-base .icon {
right: 20rpx;
bottom: 13rpx;
right: 20rpx;
bottom: 13rpx;
}
/**
* -
*/
.plugins-salerecords swiper {
height: 506rpx;
height: 506rpx;
}
.plugins-salerecords image {
width: 40rpx !important;
height: 40rpx !important;
border-radius: 50%;
width: 40rpx !important;
height: 40rpx !important;
border-radius: 50%;
}
.plugins-salerecords .item-content {
width: 24%;
width: 24%;
}
.plugins-salerecords .item-content:nth-child(1) {
width: 36%;
width: 36%;
}
.plugins-salerecords .item-content:nth-child(2) {
width: 40%;
width: 40%;
}
/**
@ -175,45 +175,45 @@
.plugins-seckill-data .plugins-label-bottom-left,
.plugins-seckill-data .plugins-label-bottom-center,
.plugins-seckill-data .plugins-label-bottom-right {
bottom: calc(100% - 240rpx);
bottom: calc(100% - 240rpx);
}
/**
* 广-
*/
.plugins-homemiddleadv .item {
width: calc(50% - 10rpx);
width: calc(50% - 10rpx);
}
.plugins-homemiddleadv .item:nth-of-type(2n + 1) {
float: left;
float: left;
}
.plugins-homemiddleadv .item:nth-of-type(2n) {
float: right;
float: right;
}
/**
* 广 -
*/
.plugins-popupscreen {
position: fixed;
left: 0;
top: 0;
z-index: 20;
background-color: rgb(0 0 0 / 0.7);
position: fixed;
left: 0;
top: 0;
z-index: 20;
background-color: rgb(0 0 0 / 0.7);
}
.plugins-popupscreen .close {
right: 10%;
top: 0;
z-index: 1;
right: 10%;
top: 0;
z-index: 1;
}
.plugins-popupscreen .content {
margin-top: calc(50vh - 200rpx) !important;
margin-top: calc(50vh - 200rpx) !important;
}
.plugins-popupscreen .content image {
width: 600rpx;
width: 600rpx;
}

View File

@ -336,7 +336,7 @@
application_logo: app.globalData.data.application_logo,
is_logo_use_text: app.globalData.data.is_logo_use_text || 0,
// +
top_content_style: 'padding-top:' + (bar_height + 8) + 'px;background:linear-gradient(180deg, ' + theme_color + ' 0%, #f5f5f5 80%)',
top_content_style: 'padding-top:' + (bar_height + 5) + 'px;background:linear-gradient(180deg, ' + theme_color + ' 0%, #f5f5f5 80%)',
top_content_title_style: 'background-image: url("' + static_url + 'nav-top.png");' + 'padding-top:' + (bar_height + 5) + 'px;background-color:' + theme_color,
search_style: '',
search_is_fixed: 0,
@ -485,9 +485,9 @@
//
if (data.banner_list && data.banner_list.length > 0) {
if (data.banner_list[0].bg_color) {
this.slider_bg = 'background: linear-gradient(180deg, ' + data.banner_list[0].bg_color + ' 0%, #f5f5f5 80%);padding-top:' + (bar_height + 8) + 'px;';
this.slider_bg = 'background: linear-gradient(180deg, ' + data.banner_list[0].bg_color + ' 0%, #f5f5f5 80%);padding-top:' + (bar_height + 5) + 'px;';
} else {
this.slider_bg = 'background: linear-gradient(180deg, ' + this.theme_color + ' 0%, #f5f5f5 80%);padding-top:' + (bar_height + 8) + 'px;';
this.slider_bg = 'background: linear-gradient(180deg, ' + this.theme_color + ' 0%, #f5f5f5 80%);padding-top:' + (bar_height + 5) + 'px;';
}
}
@ -614,9 +614,9 @@
//
changeBanner(color) {
if (color) {
this.slider_bg = 'background: linear-gradient(180deg,' + color + ' 0%, #f5f5f5 80%);padding-top:' + (bar_height + 8) + 'px;';
this.slider_bg = 'background: linear-gradient(180deg,' + color + ' 0%, #f5f5f5 80%);padding-top:' + (bar_height + 5) + 'px;';
} else {
this.slider_bg = 'background: linear-gradient(180deg, ' + this.theme_color + ' 0%, #f5f5f5 80%);padding-top:' + (bar_height + 8) + 'px;';
this.slider_bg = 'background: linear-gradient(180deg, ' + this.theme_color + ' 0%, #f5f5f5 80%);padding-top:' + (bar_height + 5) + 'px;';
}
},
},

View File

@ -55,13 +55,12 @@
}
.nav-button .right-button {
width: 250rpx;
width: 240rpx;
}
.nav-button .left-price .estimate-discount-price {
top: 6rpx;
left: 20rpx;
width: calc(100% - 270rpx);
.nav-button .right-button button {
height: 80rpx;
line-height: 78rpx;
}
.nav-button .left-price .discount-icon {
@ -73,6 +72,10 @@
padding: 0 16rpx;
}
.sales-price .price {
font-size: 40rpx;
}
@keyframes gradient {
0% {
background-position: 0% 50%;

View File

@ -59,16 +59,28 @@
<!-- 导航 -->
<view class="nav-button bottom-fixed padding-main pr bg-white">
<view class="bottom-line-exclude oh">
<view class="left-price fl">
<view v-if="data.estimate_discount_price != 0" class="pa single-text estimate-discount-price">
<text class="discount-icon cr-white text-size-xs">节省</text>
<text class="cr-green">{{ currency_symbol }}{{ data.estimate_discount_price }}</text>
<view class="bottom-line-exclude oh flex-row jc-sb align-c">
<view class="left-price">
<view class="sales-price single-text">
<text class="text-size-xs">
{{ currency_symbol }}
</text>
<text class="price">
{{ data.estimate_price }}
</text>
</view>
<view v-if="data.estimate_discount_price != 0" class="single-text estimate-discount-price margin-top-sm">
<text class="discount-icon cr-white text-size-xs">节省</text>
<text class="cr-green text-size-md">
<text class="text-size-xss">
{{ currency_symbol }}
</text>
{{ data.estimate_discount_price }}
</text>
</view>
<view :class="'sales-price single-text margin-top-' + (data.estimate_discount_price == 0 ? 'sm' : 'xl')">{{ currency_symbol }}{{ data.estimate_price }}</view>
</view>
<view class="right-button fr tr">
<button type="default" size="mini" class="bg-main br-main cr-white round dis-block text-size-sm" @tap="buy_event"></button>
<view class="right-button">
<button type="default" size="mini" class="bg-main br-main cr-white round text-size fw-b wh-auto" @tap="buy_event"></button>
</view>
</view>
</view>

View File

@ -2,31 +2,44 @@
*
*/
.plugins-coupon-container {
padding-top: 270rpx;
height: calc(100vh - 456rpx);
padding-top: 408rpx;
height: calc(100vh - 500rpx - var(--status-bar-height) - 5px);
/* #ifdef H5 */
padding-top: 408rpx;
height: calc(100vh - 560rpx);
/* #endif */
}
.coupon-content {
padding-bottom: 186rpx;
border-top: 42rpx solid #fff;
border-radius: 32rpx 32rpx 0 0;
height: calc(100% - 42rpx);
padding-bottom: 148rpx;
border-top: 42rpx solid #fff;
border-radius: 32rpx 32rpx 0 0;
min-height: calc(100% - 42rpx);
}
.coupon-content .item {
padding: 0 24rpx 24rpx 24rpx;
padding: 0 24rpx 24rpx 24rpx;
}
.popup-bottom {
box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, 0.08);
z-index: 2;
box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, 0.08);
z-index: 2;
}
.popup-btn {
border: 2rpx solid #FF6E01;
color: #FF6E01;
border-radius: 22px;
font-size: 32rpx;
padding: 20rpx 0;
margin: 30rpx 90rpx 68rpx 90rpx;
border: 2rpx solid #FF6E01;
color: #FF6E01;
border-radius: 22px;
font-size: 32rpx;
padding: 20rpx 0;
margin: 30rpx 90rpx 30rpx 90rpx;
}
@media screen and (min-width: 960px) {
.plugins-coupon-container {
/* #ifdef H5 */
padding-top: 450px;
height: calc(100vh - 525px);
/* #endif */
}
}

View File

@ -1,10 +1,17 @@
<template>
<view class="pr">
<view v-if="(data_base || null) != null && (data_base.banner_images || null) != null" class="pa top-0 bg-img wh-auto">
<image class="wh-auto dis-block border-radius-main" :src="data_base.banner_images" mode="widthFix" :data-value="data_base.url || ''" @tap="url_event"></image>
<view class="pa z-i left-0 top-0 right-0" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;'">
<!-- 返回 -->
<!-- #ifdef MP-WEIXIN || MP-QQ || MP-KUAISHOU || H5 || APP -->
<view v-if="is_realstore_top_nav_back == 1" class="nav-back padding-horizontal-main padding-top-sm round va-m cr-white">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
</view>
</view>
<view class="pa top-0 bg-img wh-auto">
<image v-if="(data_base || null) != null" class="wh-auto dis-block" :src="data_base.app_banner_images || coupon_static_url + 'coupon-bg.png'" mode="widthFix" :data-value="data_base.url || ''" @tap="url_event"></image>
</view>
<view class="plugins-coupon-container">
<scroll-view scroll-y class="coupon-content bg-white pr">
<view class="coupon-content bg-white pr">
<!-- 优惠劵列表 -->
<view v-if="data_list.length > 0" class="flex-col">
<block v-for="(item, index) in data_list" :key="index">
@ -18,9 +25,9 @@
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
</scroll-view>
</view>
</view>
<view class="popup-bottom pf bottom-0 left-0 right-0 bg-white">
<view class="popup-bottom bottom-fixed bg-white">
<view class="popup-btn tc">
<navigator url="/pages/plugins/coupon/user/user" hover-class="none">我的优惠券</navigator>
</view>
@ -32,10 +39,15 @@
import componentNoData from '../../../../components/no-data/no-data';
import componentBottomLine from '../../../../components/bottom-line/bottom-line';
import componentCouponCard from '@/components/coupon-card/coupon-card.vue';
var coupon_static_url = app.globalData.get_static_url('coupon', true);
export default {
data() {
return {
coupon_static_url: coupon_static_url + 'app/',
status_bar_height: parseInt(app.globalData.get_system_info('statusBarHeight', 0)),
//
is_realstore_top_nav_back: app.globalData.data.is_realstore_top_nav_back || 0,
data_bottom_line_status: false,
data_list_loding_status: 1,
data_list_loding_msg: '',
@ -230,6 +242,18 @@
url_event(e) {
app.globalData.url_event(e);
},
//
top_nav_left_back_event(e) {
var pages = getCurrentPages();
if (pages.length <= 1) {
uni.switchTab({
url: app.globalData.data.tabbar_pages[0],
});
} else {
uni.navigateBack();
}
},
},
};
</script>

View File

@ -2,16 +2,24 @@
<view class="bg-white">
<view v-if="(data_base || null) != null">
<image :src="membership_level_vip + 'bg.png'" mode="widthFix" class="wh-auto"></image>
<view class="banner tc oh pa top-0 pa-w wh-auto">
<image :src="membership_level_vip + 'title.png'" mode="widthFix" class="title-img"></image>
<!-- 标题 -->
<view v-if="(data_base.banner_top_title || null) != null" class="banner-title single-text text-size-lg margin-top-xxxl"> {{ data_base.banner_top_title }}123 </view>
<!-- 购买按钮 -->
<navigator url="/pages/plugins/membershiplevelvip/buy/buy" hover-class="none" class="dis-inline">
<button class="banner-buy fw-b round margin-top-xxxl" type="default" size="mini" hover-class="none" :style="join_vip_btn">
{{ data_base.banner_middle_name || '加入会员' }}
</button>
</navigator>
<view class="banner oh pa top-0 pa-w wh-auto" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;'">
<!-- 返回 -->
<!-- #ifdef MP-WEIXIN || MP-QQ || MP-KUAISHOU || H5 || APP -->
<view v-if="is_realstore_top_nav_back == 1" class="nav-back padding-horizontal-main padding-top-sm round va-m cr-white">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
</view>
<!-- #endif -->
<view class="tc">
<image :src="membership_level_vip + 'title.png'" mode="widthFix" class="title-img"></image>
<!-- 标题 -->
<view v-if="(data_base.banner_top_title || null) != null" class="banner-title single-text text-size-lg margin-top-xxxl"> {{ data_base.banner_top_title }}123 </view>
<!-- 购买按钮 -->
<navigator url="/pages/plugins/membershiplevelvip/buy/buy" hover-class="none" class="dis-inline">
<button class="banner-buy fw-b round margin-top-xxxl" type="default" size="mini" hover-class="none" :style="join_vip_btn">
{{ data_base.banner_middle_name || '加入会员' }}
</button>
</navigator>
</view>
</view>
<!-- 介绍列表 -->
<view v-if="(introduce_data || null) != null && introduce_data.length > 0" class="data-list oh flex-row jc-sa align-c">
@ -47,6 +55,9 @@
data() {
return {
membership_level_vip: membership_level_vip + 'app/',
status_bar_height: parseInt(app.globalData.get_system_info('statusBarHeight', 0)),
//
is_realstore_top_nav_back: app.globalData.data.is_realstore_top_nav_back || 0,
data_bottom_line_status: false,
data_list_loding_status: 1,
data_list_loding_msg: '',
@ -146,6 +157,16 @@
},
});
},
top_nav_left_back_event() {
var pages = getCurrentPages();
if (pages.length <= 1) {
uni.switchTab({
url: app.globalData.data.tabbar_pages[0],
});
} else {
uni.navigateBack();
}
},
},
};
</script>

View File

@ -273,7 +273,7 @@
<view class="botton-nav round pa oh flex-row jc-sb align-c">
<view class="flex-row align-c flex-1 flex-width">
<view class="cart pr cp top-sm" @tap="cart_event">
<iconfont name="icon-applet-shop-acquiesce" size="36rpx" color="#fff"></iconfont>
<iconfont name="icon-applet-shop-acquiesce" size="36rpx" color="#666"></iconfont>
<view v-if="(cart || null) != null && (cart.buy_number || 0) > 0" class="badge-icon pa">
<component-badge :propNumber="cart.buy_number"></component-badge>
</view>

View File

@ -5,12 +5,15 @@
width: calc(50% - 10rpx);
margin-bottom: 20rpx;
}
.data-list .item:nth-child(2n) {
float: right;
}
.data-list .item:nth-child(2n+1) {
float: left;
}
.data-list .item .logo {
width: 100%;
height: 160rpx !important;

View File

@ -4,9 +4,8 @@
<!-- 分类 -->
<scroll-view v-if="(shop_category || null) != null && shop_category.length > 0" class="nav-base scroll-view-horizontal bg-white oh" scroll-x="true">
<block v-for="(item, index) in shop_category" :key="index">
<view :class="'item cr-grey dis-inline-block padding-horizontal-main ' + (nav_active_value == item.id ? 'cr-main nav-active-line fw-b' : '')" @tap="nav_event"
:data-value="item.id">
{{item.name}}
<view :class="'item cr-grey dis-inline-block padding-horizontal-main ' + (nav_active_value == item.id ? 'cr-main nav-active-line fw-b' : '')" @tap="nav_event" :data-value="item.id">
{{ item.name }}
</view>
</block>
</scroll-view>
@ -21,11 +20,9 @@
<view class="tc">
<view class="single-text padding-horizontal-main padding-top-main">
<!-- 标题 -->
<text class="fw-b text-size-md va-m">{{item.name}}</text>
<text class="fw-b text-size-md va-m">{{ item.name }}</text>
<!-- 认证信息 -->
<view
v-if="(data_base.is_enable_auth || 0) == 1 && ((item.auth_type != -1 && (item.auth_type_msg || null) != null) || ((item.bond_status || 0) == 1 && (item.bond_status_msg || null) != null))"
class="auth-icon dis-inline-block margin-left-sm">
<view v-if="(data_base.is_enable_auth || 0) == 1 && ((item.auth_type != -1 && (item.auth_type_msg || null) != null) || ((item.bond_status || 0) == 1 && (item.bond_status_msg || null) != null))" class="auth-icon dis-inline-block margin-left-sm">
<!-- 实名认证 -->
<block v-if="item.auth_type != -1 && (item.auth_type_msg || null) != null">
<block v-if="item.auth_type == 0">
@ -42,11 +39,15 @@
</view>
</view>
<view class="cr-grey padding-main">
<text class="multi-text">{{item.describe}}</text>
<text class="multi-text">{{ item.describe }}</text>
</view>
<view class="oh br-t-dashed padding-main">
<view class="fl cr-grey-9 single-text">商品 <text class="cr-black fw-b padding-left-sm">{{item.goods_count}}</text></view>
<view class="fr cr-grey-9 single-text">销量 <text class="cr-black fw-b padding-left-sm">{{item.goods_sales_count}}</text></view>
<view class="fl cr-grey-9 single-text"
>商品 <text class="cr-black fw-b padding-left-sm">{{ item.goods_count }}</text></view
>
<view class="fr cr-grey-9 single-text"
>销量 <text class="cr-black fw-b padding-left-sm">{{ item.goods_sales_count }}</text></view
>
</view>
</view>
</navigator>
@ -66,8 +67,8 @@
</template>
<script>
const app = getApp();
import componentNoData from "../../../../components/no-data/no-data";
import componentBottomLine from "../../../../components/bottom-line/bottom-line";
import componentNoData from '../../../../components/no-data/no-data';
import componentBottomLine from '../../../../components/bottom-line/bottom-line';
export default {
data() {
return {
@ -84,17 +85,17 @@
shop_category: [],
nav_active_value: 0,
//
share_info: {}
share_info: {},
};
},
components: {
componentNoData,
componentBottomLine
componentBottomLine,
},
props: {},
onLoad(params) {
this.setData({
params: params
params: params,
});
//
this.get_data();
@ -102,7 +103,7 @@
//
onPullDownRefresh() {
this.setData({
data_page: 1
data_page: 1,
});
this.get_data_list(1);
},
@ -110,21 +111,21 @@
//
get_data() {
uni.showLoading({
title: '加载中...'
title: '加载中...',
});
uni.request({
url: app.globalData.get_request_url("index", "index", "shop"),
url: app.globalData.get_request_url('index', 'index', 'shop'),
method: 'POST',
data: {},
dataType: 'json',
success: res => {
success: (res) => {
uni.hideLoading();
uni.stopPullDownRefresh();
if (res.data.code == 0) {
var data = res.data.data;
this.setData({
data_base: data.base || null,
shop_category: data.shop_category || []
shop_category: data.shop_category || [],
});
if ((this.data_base || null) != null) {
//
@ -132,13 +133,13 @@
share_info: {
title: this.data_base.seo_title || this.data_base.application_name,
desc: this.data_base.seo_desc,
path: '/pages/plugins/shop/index/index'
}
path: '/pages/plugins/shop/index/index',
},
});
//
if ((this.data_base.application_name || null) != null) {
uni.setNavigationBarTitle({
title: this.data_base.application_name
title: this.data_base.application_name,
});
}
}
@ -147,7 +148,7 @@
} else {
this.setData({
data_list_loding_status: 0,
data_list_loding_msg: res.data.msg
data_list_loding_msg: res.data.msg,
});
app.globalData.showToast(res.data.msg);
}
@ -158,10 +159,10 @@
uni.hideLoading();
uni.stopPullDownRefresh();
this.setData({
data_list_loding_status: 2
data_list_loding_status: 2,
});
app.globalData.showToast('服务器请求出错');
}
},
});
},
//
@ -178,22 +179,22 @@
return false;
}
this.setData({
data_is_loading: 1
data_is_loading: 1,
});
// loding
uni.showLoading({
title: '加载中...'
title: '加载中...',
});
//
uni.request({
url: app.globalData.get_request_url("shoplist", "index", "shop"),
url: app.globalData.get_request_url('shoplist', 'index', 'shop'),
method: 'POST',
data: {
page: this.data_page,
category_id: this.nav_active_value || 0
category_id: this.nav_active_value || 0,
},
dataType: 'json',
success: res => {
success: (res) => {
uni.hideLoading();
uni.stopPullDownRefresh();
if (res.data.code == 0) {
@ -214,21 +215,21 @@
data_page_total: data.page_total,
data_list_loding_status: 3,
data_page: this.data_page + 1,
data_is_loading: 0
data_is_loading: 0,
});
//
this.setData({
data_bottom_line_status: (this.data_page > 1 && this.data_page > this.data_page_total)
data_bottom_line_status: this.data_page > 1 && this.data_page > this.data_page_total,
});
} else {
this.setData({
data_list_loding_status: 0,
data_is_loading: 0
data_is_loading: 0,
});
if (this.data_page <= 1) {
this.setData({
data_list: [],
data_bottom_line_status: false
data_bottom_line_status: false,
});
}
}
@ -236,7 +237,7 @@
this.setData({
data_list_loding_status: 0,
data_list_loding_msg: res.data.msg,
data_is_loading: 0
data_is_loading: 0,
});
app.globalData.showToast(res.data.msg);
}
@ -246,10 +247,10 @@
uni.stopPullDownRefresh();
this.setData({
data_list_loding_status: 2,
data_is_loading: 0
data_is_loading: 0,
});
app.globalData.showToast('服务器请求出错');
}
},
});
},
//
@ -260,13 +261,13 @@
nav_event(e) {
this.setData({
nav_active_value: e.currentTarget.dataset.value || 0,
data_page: 1
data_page: 1,
});
this.get_data_list(1);
}
}
},
},
};
</script>
<style>
@import './index.css';
</style>
</style>

View File

@ -10,7 +10,7 @@
}
.signin-opration-group {
top: 60rpx;
top: 156rpx;
}
.share,

View File

@ -1,6 +1,13 @@
<template>
<view class="signin-container">
<view v-if="(data || null) != null" class="pr">
<view class="pa z-i left-0 top-0 right-0" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;'">
<!-- 返回 -->
<!-- #ifdef MP-WEIXIN || MP-QQ || MP-KUAISHOU || H5 || APP -->
<view v-if="is_realstore_top_nav_back == 1" class="nav-back padding-horizontal-main padding-top-sm round va-m cr-white">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
</view>
</view>
<image :src="signin_static_url + 'signin-bg.png'" mode="widthFix" class="signin-bg"></image>
<view class="signin-opration-group pa right-0 flex-col cr-white">
<view v-if="(data_base.is_share || 0) == 1" class="share oh flex-row">
@ -126,6 +133,9 @@
data() {
return {
signin_static_url: signin_static_url,
status_bar_height: parseInt(app.globalData.get_system_info('statusBarHeight', 0)),
//
is_realstore_top_nav_back: app.globalData.data.is_realstore_top_nav_back || 0,
//
home_page_url: app.globalData.data.tabbar_pages[0],
data_bottom_line_status: false,
@ -427,12 +437,25 @@
url_event(e) {
app.globalData.url_event(e);
},
//
share_event(e) {
if ((this.$refs.share || null) != null) {
this.$refs.share.init();
}
},
//
top_nav_left_back_event(e) {
var pages = getCurrentPages();
if (pages.length <= 1) {
uni.switchTab({
url: app.globalData.data.tabbar_pages[0],
});
} else {
uni.navigateBack();
}
},
},
};
</script>

View File

@ -1,5 +1,5 @@
<template>
<view :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;'">
<view class="pr" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;'">
<view class="pa top-0 left-0 right-0 nav-top">
<image mode="widthFix" :src="answers_static_url + 'nav-top.png'" class="wh-auto"></image>
</view>