master
gongfuxiang 2023-10-13 15:15:17 +08:00
commit b08950c360
24 changed files with 464 additions and 588 deletions

View File

@ -67,11 +67,11 @@
// tabbar
tabbar_pages: ['/pages/index/index', '/pages/goods-category/goods-category', '/pages/cart/cart', '/pages/user/user'],
//
request_url: 'https://new.shopxo.vip/',
//request_url: 'http://shopxo.com/',
request_url: 'https://new.shopxo.vip/',
// request_url: 'http://shopxo.com/',
// publicpublichttps://d1.shopxo.vip/public/
static_url: 'https://new.shopxo.vip/',
//static_url: 'http://shopxo.com/',
static_url: 'https://new.shopxo.vip/',
// static_url: 'http://shopxo.com/',
// default
system_type: 'default',
//

View File

@ -94,6 +94,7 @@ uni-page-head[uni-page-head-type=default]~uni-page-wrapper {
}
/* #endif */
/**
*
*/

View File

@ -0,0 +1,98 @@
<template>
<view>
<view class="pa-w" :class="(propFixed ? 'pf z-i left-0 top-0 right-0' : '') + ' ' + propClass" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 0) + 'px;background-color:rgba(255,255,255,' + opacity + ');' + propStyle">
<!-- 返回 -->
<!-- #ifdef MP-WEIXIN || MP-QQ || MP-KUAISHOU || H5 || APP -->
<view v-if="is_realstore_top_nav_back == 1" class="nav-back padding-horizontal-main round va-m flex-row align-c" :class="(opacity > 0.3 ? 'cr-black ' : 'cr-white ') + (status_bar_height > 0 ? 'padding-bottom-main' : 'padding-vertical-main')">
<view v-if="propName" class="text-size tc pa left-0 right-0 padding-top-xs" :style="propNameOpacity ? (opacity ? 'color:rgba(51,51,51,' + opacity + ')' : '') : ''">{{ propName }}</view>
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event" class="pr top-xs z-i" :color="propColor"></iconfont>
<slot name="right"></slot>
</view>
<!-- #endif -->
<slot name="content"></slot>
</view>
</view>
</template>
<script>
const app = getApp();
export default {
name: 'back',
props: {
// class
propClass: {
type: String,
default: '',
},
// style
propStyle: {
type: String,
default: '',
},
//
propFixed: {
type: Boolean,
default: true,
},
//
propColor: {
type: String,
default: '',
},
//
propName: {
type: String,
default: '',
},
//
propNameOpacity: {
type: Boolean,
default: false,
},
},
data() {
return {
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,
//
opacity: 0,
};
},
mounted() {
var self = this;
uni.$on('onPageScroll', function (e) {
var top = e.scrollTop > 47 ? 1 : e.scrollTop / 47;
self.setData({
opacity: top,
});
});
},
methods: {
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>
<style scoped>
.more {
width: 30rpx;
padding: 15rpx 20rpx;
position: absolute;
top: 0;
bottom: 0;
right: 0;
z-index: 101;
white-space: normal;
word-break: break-all;
}
</style>

View File

@ -159,13 +159,7 @@
search_event() {
//
if (this.propIsIconOnEvent) {
this.$emit('onsearch', this.input_value);
} else {
console.log('this.input_value', this.input_value);
//
uni.navigateTo({
url: this.propUrl + '?' + this.propFormName + '=' + this.input_value,
});
this.$emit('onicon', {});
}
},
},

View File

@ -15,6 +15,6 @@ Vue.component("iconfont", iconfont);
App.mpType = 'app';
const app = new Vue({
...App
...App
});
app.$mount();

View File

@ -281,7 +281,7 @@
{
"path": "pages/user-answers-detail/user-answers-detail",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
@ -301,7 +301,7 @@
"pages": [{
"path": "index/index",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"navigationBarTitleText": "限时秒杀"
@ -313,7 +313,7 @@
"pages": [{
"path": "index/index",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
@ -341,7 +341,7 @@
"pages": [{
"path": "index/index",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
@ -358,7 +358,7 @@
{
"path": "user/user",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
@ -421,7 +421,7 @@
"pages": [{
"path": "user/user",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
@ -540,7 +540,7 @@
"pages": [{
"path": "user/user",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
@ -550,7 +550,7 @@
{
"path": "recharge/recharge",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": false,
@ -699,7 +699,7 @@
{
"path": "index-detail/index-detail",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
@ -734,7 +734,7 @@
"pages": [{
"path": "index/index",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,
@ -984,7 +984,7 @@
"pages": [{
"path": "index/index",
"style": {
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || H5 || APP
// #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU || APP
"navigationStyle": "custom",
// #endif
"enablePullDownRefresh": true,

View File

@ -23,7 +23,7 @@
<view :class="'category-content bs-bb pr ' + (category_show_level == 0 ? 'goods-model' : '')" :style="'height:calc(100vh - ' + search_height + 'px);'">
<block v-if="category_show_level == 1">
<!-- 一级模式 -->
<scroll-view scroll-y class="ht-auto" show-scrollbar="false">
<scroll-view scroll-y class="ht-auto" :show-scrollbar="false">
<view class="model-one padding-sm oh flex-row flex-warp">
<block v-for="(item, index) in category_list" :key="index">
<view class="content-item cp" :data-value="item.id" @tap="category_event">
@ -44,7 +44,7 @@
<block v-if="category_show_level == 0">
<!-- 一级导航 -->
<view class="top-nav wh-auto pa scroll-view-horizontal bottom-0">
<scroll-view :scroll-x="true" show-scrollbar="false" :scroll-with-animation="true" :scroll-into-view="'one-nav-item-' + nav_active_index" class="top-nav-scroll">
<scroll-view :scroll-x="true" :show-scrollbar="false" :scroll-with-animation="true" :scroll-into-view="'one-nav-item-' + nav_active_index" class="top-nav-scroll">
<block v-for="(item, index) in category_list" :key="index">
<view class="item tc cp dis-inline-block text-size-xss" :id="'one-nav-item-' + index" :data-index="index" :data-itemtwoindex="-1" :data-itemthreeindex="-1" @tap="nav_event">
<view :class="'icon-content circle br auto ' + (nav_active_index == index ? 'border-color-main' : '')">
@ -73,7 +73,7 @@
</view>
<!-- 二级导航 -->
<view v-if="category_one_subset_count > 0" class="left-nav bg-white ht-auto">
<scroll-view :scroll-y="true" show-scrollbar="false" class="ht-auto">
<scroll-view :scroll-y="true" :show-scrollbar="false" class="ht-auto">
<view :class="common_site_type != 1 ? 'left-content-actual ht-auto' : ''">
<view class="left-content-actual-list ht-auto">
<view :class="'text-size-sm item tc cr-base cp oh ' + (nav_active_item_two_index == -1 ? 'nav-active cr-main nav-left-border' : '')" :data-index="nav_active_index" :data-itemtwoindex="-1" :data-itemthreeindex="-1" @tap="nav_event">
@ -92,11 +92,11 @@
</view>
<!-- 商品列表 -->
<view :class="'goods-right-content pa bs-bb ' + (category_one_subset_count > 0 ? '' : 'category-one-subset-content')">
<scroll-view :scroll-y="true" show-scrollbar="false" class="ht-auto goods-list" :scroll-top="scroll_top" @scroll="scroll_event" @scrolltolower="scroll_lower" lower-threshold="60">
<scroll-view :scroll-y="true" :show-scrollbar="false" class="ht-auto goods-list" :scroll-top="scroll_top" @scroll="scroll_event" @scrolltolower="scroll_lower" lower-threshold="60">
<view class="padding-top-main padding-left-sm" :class="(common_site_type != 1 ? 'right-content-actual' : '') + ' pr'">
<!-- 三级导航 -->
<view v-if="(data_three_content || null) != null && (data_three_content.items || null) != null && data_three_content.items.length > 0" class="word-list scroll-view-horizontal">
<scroll-view :scroll-x="true" show-scrollbar="false" :scroll-with-animation="true" :scroll-into-view="'three-nav-item-' + nav_active_item_three_index">
<scroll-view :scroll-x="true" :show-scrollbar="false" :scroll-with-animation="true" :scroll-into-view="'three-nav-item-' + nav_active_item_three_index">
<view
:class="'word-icon dis-inline-block text-size-xs round padding-top-xs padding-bottom-xs padding-left padding-right ' + (nav_active_item_three_index == -1 ? 'bg-main-light br-main-light cr-main' : 'br-grey cr-grey')"
:data-index="nav_active_index"
@ -185,7 +185,7 @@
<block v-else>
<!-- 一级导航 -->
<view class="left-nav bg-white ht-auto">
<scroll-view :scroll-y="true" class="ht-auto" show-scrollbar="false">
<scroll-view :scroll-y="true" class="ht-auto" :show-scrollbar="false">
<view :class="common_site_type != 1 ? 'left-content-actual ht-auto' : ''">
<view class="left-content-actual-list ht-auto padding-0">
<block v-for="(item, index) in category_list" :key="index">
@ -198,7 +198,7 @@
</scroll-view>
</view>
<view class="right-container pa">
<scroll-view :scroll-y="true" class="ht-auto bg-white" show-scrollbar="false">
<scroll-view :scroll-y="true" class="ht-auto bg-white" :show-scrollbar="false">
<!-- 一级内容基础容 -->
<view v-if="(data_content || null) != null" class="oh">
<view class="padding-top-main padding-horizontal-main">
@ -294,7 +294,7 @@
<text class="cr-red va-m text-size-xs">清空</text>
</view>
</view>
<scroll-view :scroll-y="true" class="cart-list goods-list" show-scrollbar="false">
<scroll-view :scroll-y="true" class="cart-list goods-list" :show-scrollbar="false">
<view v-for="(goods, index) in cart.data" :key="index" class="item padding-main oh spacing-mb">
<navigator :url="goods.goods_url" hover-class="none">
<image :src="goods.images" mode="widthFix" class="goods-img radius fl br"></image>

View File

@ -4,9 +4,9 @@
}
.scroll-box {
height: calc(100vh - 166rpx - var(--status-bar-height) + 20rpx);
height: calc(100vh - 194rpx - var(--status-bar-height) - 5px);
/* #ifdef H5 */
height: calc(100vh - 166rpx);
height: calc(100vh - 170rpx);
/* #endif */
}

View File

@ -1,50 +1,47 @@
<template>
<view>
<view class="bg-white padding-horizontal-main padding-top-main" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;'">
<view class="flex-row align-c spacing-mb">
<!-- 返回 -->
<!-- #ifdef MP-WEIXIN || MP-QQ || MP-KUAISHOU || H5 || APP -->
<view v-if="is_realstore_top_nav_back == 1" class="nav-back margin-right-main round va-m">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
</view>
<!-- #endif -->
<view :class="status_bar_height > 0 ? 'top-search-width' : 'flex-1 flex-width'">
<component-nav-back :prop-fixed="false" prop-class="bg-white" prop-color="#333">
<template slot="right" :class="status_bar_height > 0 ? 'top-search-width' : ''">
<view class="margin-left-main" :class="status_bar_height > 0 ? '' : 'flex-1 flex-width'">
<component-search @onsearch="search_button_event" propIsOnEvent :propIsRequired="false" propIconColor="#ccc" propPlaceholderClass="cr-grey-c" propBgColor="#f6f6f6"></component-search>
</view>
</view>
<view v-if="nav_list.length > 0" class="answers-type flex-row jc-sa align-c">
<view v-for="(item, index) in nav_list" :key="index" class="flex-1 padding-vertical-sm tc" :class="nav_index === index ? 'cr-main fw-b nav-active-line' : 'cr-base'" :data-index="index" :data-type="item.type" @tap="nav_change_event">{{ item.name }}</view>
</view>
</view>
<scroll-view :scroll-y="true" class="scroll-box page-bottom-fixed" @scrolltolower="scroll_lower" lower-threshold="60">
<view v-if="data_list.length > 0" class="padding-horizontal-main padding-top-main">
<block v-for="(item, index) in data_list" :key="index">
<navigator :url="'/pages/plugins/answers/detail/detail?id=' + item.id" hover-class="none" class="padding-main border-radius-main bg-white oh spacing-mb flex-row">
<view v-if="nav_index === 1">
<view class="answers-hot border-radius-sm tc margin-right-sm va-m pr top-md" :class="index < 3 ? 'cr-white text-size-xs hot-bg-' + index : 'text-size-md'">{{ index + 1 }}</view>
</view>
<view class="flex-1 flex-width">
<view class="title text-size fw-b">{{ item.title }}</view>
<view class="content cr-base margin-top-sm padding-top-xs multi-text">{{ item.content }}</view>
<view class="status flex-row align-c spacing-mt text-size-xs">
<view v-if="nav_index !== 1" class="answers-status cr-white border-radius-sm text-size-xss" :class="item.is_reply === '1' ? 'answers-bg-green' : 'answers-bg-yellow'">{{ item.is_reply === '1' ? '' : '' }}</view>
<view class="num cr-grey-9 flex-row self-c">
{{ item.add_time_date }}
<view class="fw-b padding-horizontal-xs">·</view>
{{ item.access_count || '0' }}浏览
</template>
<template slot="content">
<view v-if="nav_list.length > 0" class="answers-type flex-row jc-sa align-c">
<view v-for="(item, index) in nav_list" :key="index" class="flex-1 padding-vertical-sm tc" :class="nav_index === index ? 'cr-main fw-b nav-active-line' : 'cr-base'" :data-index="index" :data-type="item.type" @tap="nav_change_event">{{ item.name }}</view>
</view>
</template>
</component-nav-back>
<scroll-view :scroll-y="true" class="scroll-box" @scrolltolower="scroll_lower" lower-threshold="60">
<view class="page-bottom-fixed">
<view v-if="data_list.length > 0" class="padding-horizontal-main padding-top-main">
<block v-for="(item, index) in data_list" :key="index">
<navigator :url="'/pages/plugins/answers/detail/detail?id=' + item.id" hover-class="none" class="padding-main border-radius-main bg-white oh spacing-mb flex-row">
<view v-if="nav_index === 1">
<view class="answers-hot border-radius-sm tc margin-right-sm va-m pr top-md" :class="index < 3 ? 'cr-white text-size-xs hot-bg-' + index : 'text-size-md'">{{ index + 1 }}</view>
</view>
<view class="flex-1 flex-width">
<view class="title text-size fw-b">{{ item.title }}</view>
<view class="content cr-base margin-top-sm padding-top-xs multi-text">{{ item.content }}</view>
<view class="status flex-row align-c spacing-mt text-size-xs">
<view v-if="nav_index !== 1" class="answers-status cr-white border-radius-sm text-size-xss" :class="item.is_reply === '1' ? 'answers-bg-green' : 'answers-bg-yellow'">{{ item.is_reply === '1' ? '' : '' }}</view>
<view class="num cr-grey-9 flex-row self-c">
{{ item.add_time_date }}
<view class="fw-b padding-horizontal-xs">·</view>
{{ item.access_count || '0' }}浏览
</view>
</view>
</view>
</view>
</navigator>
</block>
</navigator>
</block>
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status"></component-no-data>
</view>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status"></component-no-data>
</view>
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
</scroll-view>
<view class="bottom-fixed answers-btn-content">
<view class="flex-row jc-sa align-c text-size fw-b bottom-line-exclude">
@ -66,6 +63,7 @@
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
import componentNoData from '@/components/no-data/no-data';
import componentBottomLine from '@/components/bottom-line/bottom-line';
import componentSearch from '@/components/search/search';
@ -74,8 +72,6 @@
data() {
return {
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_list: [],
data_total: 0,
data_page_total: 0,
@ -93,6 +89,7 @@
},
components: {
componentNavBack,
componentNoData,
componentBottomLine,
componentSearch,
@ -170,36 +167,28 @@
success: (res) => {
uni.stopPullDownRefresh();
if (res.data.code == 0) {
if (res.data.data.data.length > 0) {
if (this.data_page <= 1) {
var temp_data_list = res.data.data.data;
} else {
var temp_data_list = this.data_list || [];
var temp_data = res.data.data.data;
for (var i in temp_data) {
temp_data_list.push(temp_data[i]);
}
}
this.setData({
data_list: temp_data_list,
data_total: res.data.data.total,
data_page_total: res.data.data.page_total,
data_list_loding_status: 3,
data_page: this.data_page + 1,
data_is_loading: 0,
});
//
this.setData({
data_bottom_line_status: this.data_page > 1 && this.data_page > this.data_page_total,
});
if (this.data_page <= 1) {
var temp_data_list = res.data.data.data;
} else {
this.setData({
data_list_loding_status: 0,
data_is_loading: 0,
});
var temp_data_list = this.data_list || [];
var temp_data = res.data.data.data;
for (var i in temp_data) {
temp_data_list.push(temp_data[i]);
}
}
this.setData({
data_list: temp_data_list,
data_total: res.data.data.total,
data_page_total: res.data.data.page_total,
data_list_loding_status: temp_data_list.length > 0 ? 3 : 0,
data_page: this.data_page + 1,
data_is_loading: 0,
});
//
this.setData({
data_bottom_line_status: this.data_page > 1 && this.data_page > this.data_page_total,
});
} else {
this.setData({
data_list_loding_status: 0,
@ -211,6 +200,7 @@
}
},
fail: () => {
console.log(';123');
uni.stopPullDownRefresh();
this.setData({
data_list_loding_status: 2,
@ -248,17 +238,6 @@
});
},
//
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();
}
},
nav_change_event(e) {
//
var index = e.currentTarget.dataset.index || 0;

View File

@ -1,38 +1,32 @@
<template>
<view class="pr" v-if="(data_base || null) != null">
<view class="pf z-i left-0 top-0 right-0 pa-w" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;background-color:rgba(255,255,255,' + opacity + ')'">
<!-- 返回 -->
<!-- #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-vertical-sm round va-m" :class="opacity > 0.3 ? 'cr-black' : 'cr-white'">
<view class="text-size flex-1 tc pa left-0 right-0 padding-top-xs" :style="'color:rgba(51,51,51,' + opacity + ')'">{{ data_base.application_name || '领券中心' }}</view>
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event" class="pr z-i"></iconfont>
<view>
<component-nav-back :prop-name="data_base.application_name || ''"></component-nav-back>
<view class="pr" v-if="(data_base || null) != null">
<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>
<!-- #endif -->
</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">
<view class="coupon-content bg-white pr page-bottom-fixed">
<!-- 优惠劵列表 -->
<view v-if="data_list.length > 0" class="flex-col">
<block v-for="(item, index) in data_list" :key="index">
<component-coupon-card :prop-data="item" :prop-status-type="item.status_type" :prop-status-operable-name="item.status_operable_name" :prop-index="index" propIsProgress @call-back="coupon_receive_event"></component-coupon-card>
</block>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status" :propMsg="data_list_loding_msg"></component-no-data>
</view>
<view class="plugins-coupon-container">
<view class="coupon-content bg-white pr page-bottom-fixed">
<!-- 优惠劵列表 -->
<view v-if="data_list.length > 0" class="flex-col">
<block v-for="(item, index) in data_list" :key="index">
<component-coupon-card :prop-data="item" :prop-status-type="item.status_type" :prop-status-operable-name="item.status_operable_name" :prop-index="index" propIsProgress @call-back="coupon_receive_event"></component-coupon-card>
</block>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status" :propMsg="data_list_loding_msg"></component-no-data>
</view>
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
</view>
</view>
</view>
<view class="popup-bottom bottom-fixed bg-white">
<view class="bottom-line-exclude">
<view class="popup-btn tc">
<navigator url="/pages/plugins/coupon/user/user" hover-class="none">我的优惠券</navigator>
<view class="popup-bottom bottom-fixed bg-white">
<view class="bottom-line-exclude">
<view class="popup-btn tc">
<navigator url="/pages/plugins/coupon/user/user" hover-class="none">我的优惠券</navigator>
</view>
</view>
</view>
</view>
@ -40,6 +34,7 @@
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
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';
@ -48,11 +43,6 @@
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,
//
opacity: 0,
data_bottom_line_status: false,
data_list_loding_status: 1,
data_list_loding_msg: '',
@ -67,6 +57,7 @@
};
},
components: {
componentNavBack,
componentNoData,
componentBottomLine,
componentCouponCard,
@ -236,24 +227,9 @@
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();
}
},
//
onPageScroll(e) {
var top = e.scrollTop > 47 ? 1 : e.scrollTop / 47;
this.setData({
opacity: top,
});
onPageScroll(res) {
uni.$emit('onPageScroll', res);
},
},
};

View File

@ -1,13 +1,6 @@
<template>
<view class="pr">
<view class="pf z-i left-0 top-0 right-0 pa-w" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;background-color:rgba(255,255,255,' + opacity + ')'">
<!-- 返回 -->
<!-- #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-vertical-sm round va-m" :class="opacity > 0.3 ? 'cr-black' : 'cr-white'">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
</view>
<!-- #endif -->
</view>
<component-nav-back></component-nav-back>
<view v-if="(data_base || null) != null" class="weixin-nav-padding-top">
<view class="padding-top-xxxl">
<!-- 头部背景 -->
@ -205,6 +198,7 @@
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
import componentNoData from '../../../../components/no-data/no-data';
import componentPopup from '../../../../components/popup/popup';
var currency_symbol = app.globalData.currency_symbol();
@ -212,11 +206,6 @@
export default {
data() {
return {
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,
//
opacity: 0,
distribution_static_url: distribution_static_url,
data_bottom_line_status: false,
data_list_loding_status: 1,
@ -246,6 +235,7 @@
},
components: {
componentNavBack,
componentNoData,
componentPopup,
},
@ -480,24 +470,9 @@
});
},
//
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();
}
},
//
onPageScroll(e) {
var top = e.scrollTop > 47 ? 1 : e.scrollTop / 47;
this.setData({
opacity: top,
});
onPageScroll(res) {
uni.$emit('onPageScroll', res);
},
},
};

View File

@ -29,6 +29,13 @@
/**
*
*/
.head-top {
padding-top: calc(94rpx + var(--status-bar-height) + 5px);
/* #ifdef H5 */
padding-top: 94rpx;
/* #endif */
}
.data-list .item {
width: calc(100% / 3);
margin-bottom: 20rpx;

View File

@ -1,63 +1,58 @@
<template>
<view class="bg-white">
<view v-if="(data_base || null) != null" class="oh wh-auto">
<image :src="membership_level_vip + 'bg.png'" mode="widthFix" class="vip-bg"></image>
<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" 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">
<block v-for="(item, index) in introduce_data" :key="index">
<view class="item tc bg-white">
<image class="dis-block auto" :src="item.images_url" mode="scaleToFill"></image>
<view class="single-text text-size margin-top-main">{{ item.name }}</view>
<view class="multi-text cr-grey-c text-size-xs margin-top-xs">{{ item.desc }}</view>
<view>
<component-nav-back></component-nav-back>
<view v-if="(data_base || null) != null" class="bg-white">
<view class="pr wh-auto oh">
<image :src="membership_level_vip + 'bg.png'" mode="widthFix" class="vip-bg"></image>
<view class="banner oh pa top-0 pa-w wh-auto head-top">
<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" 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">
<block v-for="(item, index) in introduce_data" :key="index">
<view class="item tc bg-white">
<image class="dis-block auto" :src="item.images_url" mode="scaleToFill"></image>
<view class="single-text text-size margin-top-main">{{ item.name }}</view>
<view class="multi-text cr-grey-c text-size-xs margin-top-xs">{{ item.desc }}</view>
</view>
</block>
</view>
<!-- 富文本 -->
<view v-if="(data_base.banner_bottom_content || null) != null" class="padding-main spacing-mt">
<view class="border-radius-main bg-white oh">
<mp-html :content="data_base.banner_bottom_content" />
</view>
</block>
</view>
<!-- 富文本 -->
<view v-if="(data_base.banner_bottom_content || null) != null" class="padding-main spacing-mt">
<view class="border-radius-main bg-white oh">
<mp-html :content="data_base.banner_bottom_content" />
</view>
</view>
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status" :propMsg="data_list_loding_msg"></component-no-data>
</view>
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
</view>
</template>
<script>
const app = getApp();
import componentNoData from '../../../../components/no-data/no-data';
import componentBottomLine from '../../../../components/bottom-line/bottom-line';
import componentNavBack from '@/components/nav-back/nav-back';
import componentNoData from '@/components/no-data/no-data';
import componentBottomLine from '@/components/bottom-line/bottom-line';
let membership_level_vip = app.globalData.get_static_url('membershiplevelvip', true);
export default {
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: '',
@ -70,6 +65,7 @@
};
},
components: {
componentNavBack,
componentNoData,
componentBottomLine,
},
@ -87,6 +83,7 @@
//
this.get_data_list();
},
//
get_data_list() {
uni.showLoading({
@ -157,15 +154,10 @@
},
});
},
top_nav_left_back_event() {
var pages = getCurrentPages();
if (pages.length <= 1) {
uni.switchTab({
url: app.globalData.data.tabbar_pages[0],
});
} else {
uni.navigateBack();
}
//
onPageScroll(res) {
uni.$emit('onPageScroll', res);
},
},
};

View File

@ -1,13 +1,6 @@
<template>
<view>
<view class="pf z-i left-0 top-0 right-0 pa-w" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;background-color:rgba(255,255,255,' + opacity + ')'">
<!-- 返回 -->
<!-- #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-vertical-sm round va-m cr-black">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
</view>
<!-- #endif -->
</view>
<component-nav-back prop-color="#333"></component-nav-back>
<view v-if="(data_base || null) != null" class="weixin-nav-padding-top">
<view class="padding-top-xxxl">
<!-- 头部背景 -->
@ -181,6 +174,7 @@
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
import componentNoData from '../../../../components/no-data/no-data';
var membershiplevelvip_static_url = app.globalData.get_static_url('membershiplevelvip', true) + 'app/';
@ -188,11 +182,6 @@
data() {
return {
membershiplevelvip_static_url: membershiplevelvip_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,
//
opacity: 0,
data_bottom_line_status: false,
data_list_loding_status: 1,
data_list_loding_msg: '',
@ -208,6 +197,7 @@
},
components: {
componentNavBack,
componentNoData,
},
props: {},
@ -373,24 +363,9 @@
});
},
//
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();
}
},
//
onPageScroll(e) {
var top = e.scrollTop > 47 ? 1 : e.scrollTop / 47;
this.setData({
opacity: top,
});
onPageScroll(res) {
uni.$emit('onPageScroll', res);
},
},
};

View File

@ -1,14 +1,6 @@
<template>
<view>
<view class="pf z-i left-0 top-0 right-0 pa-w" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;background-color:rgba(255,255,255,' + opacity + ')'">
<!-- 返回 -->
<!-- #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-vertical-sm round va-m flex-row" :class="opacity > 0.3 ? 'cr-black' : 'cr-white'">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
<text class="text-size flex-1 tc">积分</text>
</view>
<!-- #endif -->
</view>
<component-nav-back prop-name=""></component-nav-back>
<view v-if="(data_base || null) != null" class="weixin-nav-padding-top">
<view class="padding-top-xxxl">
<!-- 广告图片 -->
@ -120,6 +112,7 @@
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
import componentNoData from '../../../../components/no-data/no-data';
import componentBottomLine from '../../../../components/bottom-line/bottom-line';
import componentGoodsList from '../../../../components/goods-list/goods-list';
@ -130,11 +123,6 @@
data() {
return {
points_static_url: points_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,
//
opacity: 0,
data_bottom_line_status: false,
data_list_loding_status: 1,
data_list_loding_msg: '',
@ -165,6 +153,7 @@
};
},
components: {
componentNavBack,
componentNoData,
componentBottomLine,
componentGoodsList,
@ -376,24 +365,9 @@
});
},
//
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();
}
},
//
onPageScroll(e) {
var top = e.scrollTop > 47 ? 1 : e.scrollTop / 47;
this.setData({
opacity: top,
});
onPageScroll(res) {
uni.$emit('onPageScroll', res);
},
},
};

View File

@ -108,16 +108,16 @@
*
*/
.content {
height: calc(100vh - 334rpx);
/* #ifdef H5 || APP */
/* height: calc(100vh - 505rpx); */
height: calc(100vh - 384rpx);
height: calc(100vh - 382rpx - var(--status-bar-height) - 5px);
/* #ifdef H5 */
height: calc(100vh - 358rpx);
/* #endif */
/* #ifdef MP-ALIPAY || MP-TOUTIAO */
height: calc(100vh - 294rpx);
/* #endif */
/* #ifdef MP-WEIXIN || MP-BAIDU || MP-QQ || MP-KUAISHOU */
height: calc(100vh - 454rpx);
}
.content.content-tablecode {
height: calc(100vh - 426rpx - var(--status-bar-height) - 5px);
/* #ifdef H5 */
height: calc(100vh - 402rpx);
/* #endif */
}

View File

@ -1,43 +1,39 @@
<template>
<view>
<!-- 头部 -->
<view class="header pr z-i">
<component-nav-back :prop-fixed="false" prop-color="#333">
<template slot="right" :class="status_bar_height > 0 ? 'top-search-width' : 'flex-1 flex-width'">
<view :class="'va-m padding-left-main ' + (is_realstore_top_nav_back == 1 ? 'nav-search' : 'wh-auto')">
<!-- #ifndef H5 -->
<component-search
@onsearch="search_button_event"
@onicon="search_icon_event"
:propIsIconOnEvent="is_realstore_top_search_scan == 1"
:propIsOnEvent="true"
:propIsRequired="false"
:propIcon="is_realstore_top_search_scan == 1 ? 'icon-mendian-sousuosm' : 'icon-qiandao-dqxz'"
propPlaceholderClass="cr-grey-c"
propBgColor="#fff"
propIconColor="#333"
propPlaceholder="商品搜索"
></component-search>
<!-- #endif -->
<!-- #ifdef H5 -->
<component-search @onsearch="search_button_event" :propIsRequired="false" propIconColor="#333" propPlaceholderClass="cr-grey-c" propPlaceholder="商品搜索" propBgColor="#fff"></component-search>
<!-- #endif -->
</view>
</template>
<template slot="content">
<!-- 桌码 -->
<view v-if="(tablecode || null) != null" class="tablecode dis-inline-block margin-left-main round cr-red"> {{ tablecode.name }}({{ tablecode.code }}) </view>
</template>
</component-nav-back>
</view>
<view v-if="(info || null) != null" class="pr">
<view class="pr">
<!-- 头部背景 -->
<image :src="info.banner" mode="widthFix" class="wh-auto pa left-0 right-0" />
<!-- 头部 -->
<view class="header pr z-i">
<!-- 顶部 -->
<view v-if="is_single_page == 0" class="header-top padding-horizontal-main flex-row align-c" :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 dis-inline-block round tc va-m">
<iconfont name="icon-tongyong-fanhui" size="40rpx" color="#333" @tap="top_nav_left_back_event"></iconfont>
</view>
<!-- #endif -->
<!-- 搜索 -->
<view :class="'va-m padding-left-main ' + (is_realstore_top_nav_back == 1 ? 'nav-search' : 'wh-auto')">
<!-- #ifndef H5 -->
<component-search
@onsearch="search_button_event"
@onicon="search_icon_event"
:propIsIconOnEvent="is_realstore_top_search_scan == 1"
:propIsOnEvent="true"
:propIsRequired="false"
:propIcon="is_realstore_top_search_scan == 1 ? 'icon-mendian-sousuosm' : 'icon-qiandao-dqxz'"
propPlaceholderClass="cr-grey-c"
propBgColor="#fff"
propIconColor="#333"
propPlaceholder="商品搜索"
></component-search>
<!-- #endif -->
<!-- #ifdef H5 -->
<component-search @onsearch="search_button_event" :propIsRequired="false" propIconColor="#333" propPlaceholderClass="cr-grey-c" propPlaceholder="商品搜索" propBgColor="#fff"></component-search>
<!-- #endif -->
</view>
</view>
<!-- 桌码 -->
<view v-if="(tablecode || null) != null" class="tablecode dis-inline-block margin-left-main round cr-red"> {{ tablecode.name }}({{ tablecode.code }}) </view>
</view>
<!-- 头部基础内容 -->
<view class="header-content padding-horizontal-main">
<view class="padding-main border-radius-main bg-white pr box-shadow z-i-deep">
@ -121,7 +117,7 @@
</view>
<!-- 内容 -->
<view class="content oh bg-white pr flex-row jc-sb">
<view class="content oh bg-white pr flex-row jc-sb" :class="(tablecode || null) === null ? '' : 'content-tablecode'">
<!-- 左侧 -->
<scroll-view :scroll-y="true" class="left-content ht-auto bg-base">
<view class="left-content-actual text-size-xs">
@ -300,6 +296,7 @@
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
import base64 from '../../../../common/js/lib/base64.js';
import componentGoodsBuy from '../../../../components/goods-buy/goods-buy';
import componentNoData from '../../../../components/no-data/no-data';
@ -368,6 +365,7 @@
},
components: {
componentNavBack,
componentGoodsBuy,
componentNoData,
componentSearch,
@ -1283,18 +1281,6 @@
this.get_data_list();
},
//
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();
}
},
//
user_location_init() {
var result = uni.getStorageSync(app.globalData.data.cache_userlocation_key) || null;

View File

@ -32,9 +32,9 @@
</view>
<!-- 图标 -->
<view v-if="icon_list.length > 0" class="padding-horizontal-main">
<view v-if="icon_list.length > 0" class="padding-horizontal-main spacing-mb">
<view class="bg-white border-radius-main">
<component-icon-nav :propData="icon_list" class="spacing-mb"></component-icon-nav>
<component-icon-nav :propData="icon_list"></component-icon-nav>
</view>
</view>

View File

@ -5,6 +5,10 @@
width: 142rpx;
}
.seckill-right-title {
padding-right: 40rpx;
}
.nav_seckill .item {
width: 176rpx;
padding: 26rpx 0;
@ -56,8 +60,8 @@
*
*/
.scroll-y {
height: calc(100vh - 198rpx - var(--window-top) - 5px);
height: calc(100vh - 258rpx - var(--status-bar-height) - 5px);
/* #ifdef H5 */
height: calc(100vh - 198rpx - 10px);
height: calc(100vh - 234rpx);
/* #endif */
}

View File

@ -1,16 +1,12 @@
<template>
<view>
<view v-if="(data_base || null) != null">
<view :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;' + seckill_bg">
<!-- 返回 -->
<!-- #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 flex-row">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
<view class="flex-1 tc">
<image :src="seckill_title_url" mode="widthFix" class="title pr top-sm"></image>
</view>
<component-nav-back :prop-fixed="false" :prop-style="seckill_bg">
<template slot="right" class="flex-1 flex-width seckill-right-title">
<view class="flex-1 seckill-right-title tc">
<image :src="seckill_title_url" mode="widthFix" class="title pr top-md"></image>
</view>
<!-- #endif -->
</template>
<template v-if="periods_list.length > 0" slot="content">
<!-- 秒杀时段 -->
<scroll-view :scroll-x="true" :scroll-with-animation="true" :scroll-into-view="'one-nav-item-' + nav_active_index" class="top-nav-scroll wh-auto">
<view class="nav_seckill flex-row flex-nowrap cr-white tc">
@ -20,46 +16,46 @@
</view>
</view>
</scroll-view>
</view>
<scroll-view :scroll-top="scroll_top" scroll-y="true" class="scroll-y" @scroll="scroll_event">
<view class="padding-horizontal-main padding-top-main">
<!-- 基础信息倒计时 -->
<view class="oh spacing-mb flex-row jc-sb align-c">
<view>
<text :class="'va-m text-size-xs fw-b cr-blak ' + (is_valid == 1 ? 'cr-base' : 'cr-red')">{{ time_first_text }}</text>
<view v-if="is_valid == 1" class="dis-inline-block va-m margin-left-sm">
<component-countdown :propHour="time.hours" :propMinute="time.minutes" :propSecond="time.seconds" :prop-time-background-color="seckill_status === 1 ? '#E22C08' : '#333333'"></component-countdown>
</view>
</view>
<view v-if="(data_base.content_notice || null) != null && data_base.content_notice.length > 0" class="text-size-xs cr-blak" @tap="quick_open_event">
活动规则
<iconfont name="icon-miaosha-hdgz" size="26rpx" class="margin-left-xs pr top-xs" color="#999"></iconfont>
</template>
</component-nav-back>
<scroll-view v-if="periods_list.length > 0" :scroll-top="scroll_top" scroll-y="true" class="scroll-y" @scroll="scroll_event">
<view class="padding-horizontal-main padding-top-main">
<!-- 基础信息倒计时 -->
<view class="oh spacing-mb flex-row jc-sb align-c">
<view>
<text :class="'va-m text-size-xs fw-b cr-blak ' + (is_valid == 1 ? 'cr-base' : 'cr-red')">{{ time_first_text }}</text>
<view v-if="is_valid == 1" class="dis-inline-block va-m margin-left-sm">
<component-countdown :propHour="time.hours" :propMinute="time.minutes" :propSecond="time.seconds" :prop-time-background-color="seckill_status === 1 ? '#E22C08' : '#333333'"></component-countdown>
</view>
</view>
<!-- 商品 -->
<view v-if="goods.length > 0">
<component-goods-list :propData="{ style_type: 1, goods_list: goods }" :propCurrencySymbol="currency_symbol" :prop-grid-btn-config="grid_btn_config" :prop-is-open-grid-btn-set="isOpenGridBtnSet" propPriceField="seckill_min_price"></component-goods-list>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data propStatus="0" propMsg="没有相关商品"></component-no-data>
<view v-if="(data_base.content_notice || null) != null && data_base.content_notice.length > 0" class="text-size-xs cr-blak" @tap="quick_open_event">
活动规则
<iconfont name="icon-miaosha-hdgz" size="26rpx" class="margin-left-xs pr top-xs" color="#999"></iconfont>
</view>
</view>
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
<!-- 弹窗 -->
<component-popup v-if="(data_base.content_notice || null) != null && data_base.content_notice.length > 0" :propShow="popup_status" :propIsBar="propIsBar" propPosition="bottom" @onclose="quick_close_event">
<view class="rule">
<view class="title cr-black text-size-md fw-b margin-bottom-main tc">活动规则</view>
<scroll-view :scroll-y="true" class="item">
<view v-for="(item, index) in data_base.content_notice" :key="index" class="cr-grey text-size-md">{{ item }}</view>
</scroll-view>
<button type="default" class="bg-main cr-white round text-size-md pa bottom-0 left-0 right-0" @tap="quick_close_event"></button>
</view>
</component-popup>
</scroll-view>
</view>
<!-- 商品 -->
<view v-if="goods.length > 0">
<component-goods-list :propData="{ style_type: 1, goods_list: goods }" :propCurrencySymbol="currency_symbol" :prop-grid-btn-config="grid_btn_config" :prop-is-open-grid-btn-set="isOpenGridBtnSet" propPriceField="seckill_min_price"></component-goods-list>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data propStatus="0" propMsg="没有相关商品"></component-no-data>
</view>
</view>
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
<!-- 弹窗 -->
<component-popup v-if="(data_base.content_notice || null) != null && data_base.content_notice.length > 0" :propShow="popup_status" :propIsBar="propIsBar" propPosition="bottom" @onclose="quick_close_event">
<view class="rule">
<view class="title cr-black text-size-md fw-b margin-bottom-main tc">活动规则</view>
<scroll-view :scroll-y="true" class="item">
<view v-for="(item, index) in data_base.content_notice" :key="index" class="cr-grey text-size-md">{{ item }}</view>
</scroll-view>
<button type="default" class="bg-main cr-white round text-size-md pa bottom-0 left-0 right-0" @tap="quick_close_event"></button>
</view>
</component-popup>
</scroll-view>
<view v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status" :propMsg="data_list_loding_msg"></component-no-data>
@ -68,6 +64,7 @@
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
import componentCountdown from '../../../../components/countdown/countdown';
import componentNoData from '../../../../components/no-data/no-data';
import componentBottomLine from '../../../../components/bottom-line/bottom-line';
@ -80,7 +77,7 @@
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,
seckill_bg: 'background: url(' + seckill_static_url + 'app/header-bg.png) top/100% no-repeat;',
seckill_bg: 'background: url(' + seckill_static_url + 'app/header-bg.png) top/100% no-repeat;background-size:100% 100%;',
seckill_title_url: seckill_static_url + 'seckill-title.png',
scroll_top: 0,
scroll_top_old: 0,
@ -116,6 +113,7 @@
};
},
components: {
componentNavBack,
componentCountdown,
componentNoData,
componentBottomLine,
@ -262,17 +260,6 @@
popup_status: false,
});
},
//
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();
}
},
//
reset_scroll() {

View File

@ -1,13 +1,6 @@
<template>
<view class="signin-container">
<view class="pf z-i left-0 top-0 right-0 pa-w" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;background-color:rgba(255,255,255,' + opacity + ')'">
<!-- 返回 -->
<!-- #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-vertical-sm round va-m" :class="opacity > 0.3 ? 'cr-black' : 'cr-white'">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
</view>
<!-- #endif -->
</view>
<component-nav-back></component-nav-back>
<view v-if="(data || null) != null" class="pr signin-bg oh">
<image :src="signin_static_url + 'signin-bg.png'" mode="widthFix" class="wh-auto"></image>
<view class="signin-opration-group pa right-0 flex-col cr-white">
@ -136,6 +129,7 @@
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
import componentNoData from '../../../../components/no-data/no-data';
import componentSharePopup from '../../../../components/share-popup/share-popup';
var signin_static_url = app.globalData.get_static_url('signin', true) + 'app/';
@ -143,11 +137,6 @@
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,
//
opacity: 0,
//
home_page_url: app.globalData.data.tabbar_pages[0],
data_bottom_line_status: false,
@ -180,6 +169,7 @@
};
},
components: {
componentNavBack,
componentNoData,
componentSharePopup,
},
@ -444,24 +434,9 @@
}
},
//
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();
}
},
//
onPageScroll(e) {
var top = e.scrollTop > 47 ? 1 : e.scrollTop / 47;
this.setData({
opacity: top,
});
onPageScroll(res) {
uni.$emit('onPageScroll', res);
},
},
};

View File

@ -1,14 +1,6 @@
<template>
<view>
<view class="pf z-i left-0 top-0 right-0 pa-w" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;background-color:rgba(255,255,255,' + opacity + ')'">
<!-- 返回 -->
<!-- #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-vertical-sm round va-m flex-row" :class="opacity > 0.3 ? 'cr-black' : 'cr-white'">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
<text class="text-size flex-1 tc">充值</text>
</view>
<!-- #endif -->
</view>
<component-nav-back prop-name=""></component-nav-back>
<view v-if="data.length > 0" class="weixin-nav-padding-top">
<view class="padding-top-xxxl">
<!-- 头部背景 -->
@ -77,6 +69,7 @@
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
import componentNoData from '@/components/no-data/no-data';
import componentPayment from '@/components/payment/payment';
var wallet_static_url = app.globalData.get_static_url('wallet', true) + 'app/';
@ -85,11 +78,6 @@
data() {
return {
wallet_static_url: wallet_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,
//
opacity: 0,
currency_symbol: app.globalData.data.currency_symbol,
params: null,
data_list_loding_status: 1,
@ -116,6 +104,7 @@
},
components: {
componentNavBack,
componentPayment,
componentNoData,
},

View File

@ -1,103 +1,99 @@
<template>
<view>
<scroll-view :scroll-y="true" class="scroll-box" @scrolltolower="scroll_lower" lower-threshold="60" @scroll="scroll_event">
<view class="page-bottom-fixed">
<view class="pf z-i left-0 top-0 right-0 pa-w" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;background-color:rgba(255,255,255,' + opacity + ')'">
<!-- 返回 -->
<!-- #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-vertical-sm round va-m" :class="opacity > 0.3 ? 'cr-black' : 'cr-white'">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
</view>
<!-- #endif -->
</view>
<view v-if="(data_base || null) != null" class="weixin-nav-padding-top">
<view class="padding-top-xxxl">
<!-- 头部背景 -->
<image :src="wallet_static_url + 'title-bg.png'" mode="widthFix" class="pa top-0 bg-img wh-auto wallet-bg" />
<view class="pr padding-top-main">
<!-- 钱包信息 -->
<view class="padding-top-xxxl oh margin-top-main">
<view class="wallet-head padding-horizontal-xxxl">
<!-- 用户中心公告 -->
<view v-if="(data_base.user_center_notice || null) != null && data_base.user_center_notice.length > 0">
<uni-notice-bar class="padding-0" show-icon scrollable :text="data_base.user_center_notice.join('')" background-color="transparent" color="#fff" />
</view>
<view class="content oh cr-white pr filter-blur">
<view class="pa content-padding-1 oh filter-blur-child">
<image :src="wallet_static_url + 'wallet-bg.png'" mode="widthFix" class="wh-auto wallet-child-bg" />
<component-nav-back prop-name=""></component-nav-back>
<view v-if="(data_base || null) != null">
<scroll-view :scroll-y="true" class="scroll-box" @scrolltolower="scroll_lower" lower-threshold="60" @scroll="scroll_event">
<view class="page-bottom-fixed">
<view class="weixin-nav-padding-top">
<view class="padding-top-xxxl">
<!-- 头部背景 -->
<image :src="wallet_static_url + 'title-bg.png'" mode="widthFix" class="pa top-0 bg-img wh-auto wallet-bg" />
<view class="pr padding-top-main">
<!-- 钱包信息 -->
<view class="padding-top-xxxl oh margin-top-main">
<view class="wallet-head padding-horizontal-xxxl">
<!-- 用户中心公告 -->
<view v-if="(data_base.user_center_notice || null) != null && data_base.user_center_notice.length > 0">
<uni-notice-bar class="padding-0" show-icon scrollable :text="data_base.user_center_notice.join('')" background-color="transparent" color="#fff" />
</view>
<view class="pr z-i flex-row jc-c">
<view class="flex-1 flex-width">
<view>有效()</view>
<text class="fw-b effective">{{ is_price_show ? user_wallet.normal_money || '0.00' : '***' }}</text>
<view class="flex-row jc-sb align-c margin-top-main">
<view class="flex-1">
<view class="tetx-size-xs">冻结()</view>
<text class="freeze">{{ is_price_show ? user_wallet.frozen_money || '0.00' : '***' }}</text>
</view>
<view class="flex-1">
<view class="tetx-size-xs">赠送()</view>
<text class="give">{{ is_price_show ? user_wallet.give_money || '0.00' : '***' }}</text>
<view class="content oh cr-white pr filter-blur">
<view class="pa content-padding-1 oh filter-blur-child">
<image :src="wallet_static_url + 'wallet-bg.png'" mode="widthFix" class="wh-auto wallet-child-bg" />
</view>
<view class="pr z-i flex-row jc-c">
<view class="flex-1 flex-width">
<view>有效()</view>
<text class="fw-b effective">{{ is_price_show ? user_wallet.normal_money || '0.00' : '***' }}</text>
<view class="flex-row jc-sb align-c margin-top-main">
<view class="flex-1">
<view class="tetx-size-xs">冻结()</view>
<text class="freeze">{{ is_price_show ? user_wallet.frozen_money || '0.00' : '***' }}</text>
</view>
<view class="flex-1">
<view class="tetx-size-xs">赠送()</view>
<text class="give">{{ is_price_show ? user_wallet.give_money || '0.00' : '***' }}</text>
</view>
</view>
</view>
</view>
<view class="is-price-show">
<iconfont :name="is_price_show ? 'icon-wodeqianbao-eye' : 'icon-wodeqianbao-eyeclo2'" size="44rpx" @tap="price_change"></iconfont>
<view class="is-price-show">
<iconfont :name="is_price_show ? 'icon-wodeqianbao-eye' : 'icon-wodeqianbao-eyeclo2'" size="44rpx" @tap="price_change"></iconfont>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="padding-main padding-top-xxxl">
<!-- 导航 -->
<view v-if="nav_list.length > 0" class="nav oh margin-bottom-xl">
<view class="flex-row jc-sb align-c">
<block v-for="(item, index) in nav_list" :key="index">
<view class="text-size fw-b" :data-index="index" @tap="nav_change">
<view class="pr dis-inline-block">
{{ item.title }}
<view v-if="current === index" class="pa active" :style="'background: linear-gradient(90deg, ' + theme_color + ' 0%, rgba(255, 255, 255, 0.27) 100%)'"></view>
<view class="padding-main padding-top-xxxl">
<!-- 导航 -->
<view v-if="nav_list.length > 0" class="nav oh margin-bottom-xl">
<view class="flex-row jc-sb align-c">
<block v-for="(item, index) in nav_list" :key="index">
<view class="text-size fw-b" :data-index="index" @tap="nav_change">
<view class="pr dis-inline-block">
{{ item.title }}
<view v-if="current === index" class="pa active" :style="'background: linear-gradient(90deg, ' + theme_color + ' 0%, rgba(255, 255, 255, 0.27) 100%)'"></view>
</view>
</view>
</view>
</block>
</block>
</view>
</view>
</view>
<!-- 明细 -->
<view class="nav-detail margin-bottom-lg">
<view v-if="current === 0">
<component-wallet-log :prop-pull-down-refresh="propPullDownRefresh" :prop-scroll-lower="scroll_lower_bool"></component-wallet-log>
</view>
<view v-if="current === 1">
<component-user-recharge :prop-pull-down-refresh="propPullDownRefresh" :prop-scroll-lower="scroll_lower_bool" @pay-success="pay_success_event"></component-user-recharge>
</view>
<view v-if="current === 2">
<component-user-cash :prop-pull-down-refresh="propPullDownRefresh" :prop-scroll-lower="scroll_lower_bool"></component-user-cash>
<!-- 明细 -->
<view class="nav-detail margin-bottom-lg">
<view v-if="current === 0">
<component-wallet-log :prop-pull-down-refresh="propPullDownRefresh" :prop-scroll-lower="scroll_lower_bool"></component-wallet-log>
</view>
<view v-if="current === 1">
<component-user-recharge :prop-pull-down-refresh="propPullDownRefresh" :prop-scroll-lower="scroll_lower_bool" @pay-success="pay_success_event"></component-user-recharge>
</view>
<view v-if="current === 2">
<component-user-cash :prop-pull-down-refresh="propPullDownRefresh" :prop-scroll-lower="scroll_lower_bool"></component-user-cash>
</view>
</view>
</view>
</view>
</view>
<view class="bottom-fixed submit-container">
<view class="bottom-line-exclude flex-row jc-sb align-c">
<navigator v-if="(data_base || null) != null && (data_base.is_enable_recharge || 0) == 1" url="/pages/plugins/wallet/recharge/recharge" hover-class="none" class="sub-btn">
<button class="round cr-white bg-main br-main text-size wh-auto" type="default" hover-class="none">充值</button>
</navigator>
<navigator v-if="(data_base || null) != null && (data_base.is_enable_cash || 0) == 1" url="/pages/plugins/wallet/cash-auth/cash-auth" hover-class="none" class="sub-btn">
<button class="round cr-main bg-white br-main text-size wh-auto" type="default" hover-class="none">提现</button>
</navigator>
<view class="bottom-fixed submit-container">
<view class="bottom-line-exclude flex-row jc-sb align-c">
<navigator v-if="(data_base || null) != null && (data_base.is_enable_recharge || 0) == 1" url="/pages/plugins/wallet/recharge/recharge" hover-class="none" class="sub-btn">
<button class="round cr-white bg-main br-main text-size wh-auto" type="default" hover-class="none">充值</button>
</navigator>
<navigator v-if="(data_base || null) != null && (data_base.is_enable_cash || 0) == 1" url="/pages/plugins/wallet/cash-auth/cash-auth" hover-class="none" class="sub-btn">
<button class="round cr-main bg-white br-main text-size wh-auto" type="default" hover-class="none">提现</button>
</navigator>
</view>
</view>
</view>
</view>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status" :propMsg="data_list_loding_msg"></component-no-data>
</view>
</view>
</scroll-view>
</scroll-view>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status" :propMsg="data_list_loding_msg"></component-no-data>
</view>
</view>
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
import componentNoData from '@/components/no-data/no-data';
import componentBottomLine from '@/components/bottom-line/bottom-line';
import componentWalletLog from '@/components/wallet/wallet-log/wallet-log';
@ -109,11 +105,6 @@
data() {
return {
wallet_static_url: wallet_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,
//
opacity: 0,
theme_color: app.globalData.get_theme_color(),
data_list_loding_status: 1,
data_list_loding_msg: '',
@ -132,6 +123,7 @@
},
components: {
componentNavBack,
componentNoData,
componentBottomLine,
componentWalletLog,
@ -262,18 +254,6 @@
});
},
//
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();
}
},
//
pay_success_event() {
this.get_data();
@ -281,10 +261,7 @@
//
scroll_event(e) {
var top = e.detail.scrollTop > 47 ? 1 : e.detail.scrollTop / 47;
this.setData({
opacity: top,
});
uni.$emit('onPageScroll', e.detail);
},
},
};

View File

@ -1,13 +1,6 @@
<template>
<view>
<view class="pf z-i left-0 top-0 right-0 pa-w" :style="'padding-top:' + (status_bar_height > 0 ? status_bar_height + 5 : 10) + 'px;background-color:rgba(255,255,255,' + opacity + ')'">
<!-- 返回 -->
<!-- #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-vertical-sm round va-m" :class="opacity > 0.3 ? 'cr-black' : 'cr-white'">
<iconfont name="icon-tongyong-fanhui" size="40rpx" @tap="top_nav_left_back_event"></iconfont>
</view>
<!-- #endif -->
</view>
<component-nav-back></component-nav-back>
<view v-if="Object.keys(detail_data.length !== 0)" class="weixin-nav-padding-top">
<view class="padding-top-xxxl">
<view class="pa top-0 left-0 right-0 nav-top pa-w">
@ -56,17 +49,13 @@
</template>
<script>
const app = getApp();
import componentNavBack from '@/components/nav-back/nav-back';
import componentNoData from '@/components/no-data/no-data';
export default {
data() {
return {
answers_static_url: app.globalData.get_static_url('answers', true),
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,
//
opacity: 0,
detail_data: {},
data_list_loding_status: 1,
params: '',
@ -74,6 +63,7 @@
},
components: {
componentNavBack,
componentNoData,
},
props: {},
@ -172,11 +162,8 @@
},
//
onPageScroll(e) {
var top = e.scrollTop > 47 ? 1 : e.scrollTop / 47;
this.setData({
opacity: top,
});
onPageScroll(res) {
uni.$emit('onPageScroll', res);
},
},
};