小程序会员VIP开发
parent
c5227dfe23
commit
f9d8b5f910
|
|
@ -106,7 +106,7 @@ class Plugins extends Common
|
|||
return $ret;
|
||||
} else {
|
||||
$this->assign('msg', $ret['msg']);
|
||||
return $this->fetch('public/tips_error');
|
||||
return $this->fetch();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<div class="content">
|
||||
<div class="table-no">
|
||||
<div>
|
||||
<i class="am-icon-warning"></i>
|
||||
<span>{{if empty($msg)}}没有相关数据{{else /}}{{$msg}}{{/if}}</span>
|
||||
</div>
|
||||
<div class="am-margin-top-lg">
|
||||
<a href="{{:MyUrl('admin/pluginsadmin/index')}}" class="am-btn am-btn-link am-radius am-btn-sm">返回到应用管理 >></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end -->
|
||||
|
|
@ -14,6 +14,7 @@ use app\service\GoodsService;
|
|||
use app\service\BuyService;
|
||||
use app\service\PluginsService;
|
||||
use app\service\GoodsCommentsService;
|
||||
use app\service\ResourcesService;
|
||||
|
||||
/**
|
||||
* 商品
|
||||
|
|
@ -79,29 +80,7 @@ class Goods extends Common
|
|||
unset($ret['data'][0]['content_web']);
|
||||
} else {
|
||||
// 标签处理,兼容小程序rich-text
|
||||
$search = [
|
||||
'<img ',
|
||||
'<section',
|
||||
'/section>',
|
||||
'<p style="',
|
||||
'<p>',
|
||||
'<div>',
|
||||
'<table',
|
||||
'<tr',
|
||||
'<td',
|
||||
];
|
||||
$replace = [
|
||||
'<img style="max-width:100%;margin:0;padding:0;display:block;" ',
|
||||
'<div',
|
||||
'/div>',
|
||||
'<p style="margin:0;',
|
||||
'<p style="margin:0;">',
|
||||
'<div style="margin:0;">',
|
||||
'<table style="width:100%;margin:0px;border-collapse:collapse;border-color:#ddd;border-style:solid;border-width:0 1px 1px 0;"',
|
||||
'<tr style="border-top:1px solid #ddd;"',
|
||||
'<td style="margin:0;padding:5px;border-left:1px solid #ddd;"',
|
||||
];
|
||||
$ret['data'][0]['content_web'] = str_replace($search, $replace, $ret['data'][0]['content_web']);
|
||||
$ret['data'][0]['content_web'] = ResourcesService::ApMiniRichTextContentHandle($ret['data'][0]['content_web']);
|
||||
}
|
||||
|
||||
// 当前登录用户是否已收藏
|
||||
|
|
|
|||
|
|
@ -455,5 +455,42 @@ class ResourcesService
|
|||
}
|
||||
return $files;
|
||||
}
|
||||
|
||||
/**
|
||||
* 小程序富文本标签处理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-01-04
|
||||
* @desc description
|
||||
* @param [string] $content [需要处理的富文本内容]
|
||||
*/
|
||||
public static function ApMiniRichTextContentHandle($content)
|
||||
{
|
||||
// 标签处理,兼容小程序rich-text
|
||||
$search = [
|
||||
'<img ',
|
||||
'<section',
|
||||
'/section>',
|
||||
'<p style="',
|
||||
'<p>',
|
||||
'<div>',
|
||||
'<table',
|
||||
'<tr',
|
||||
'<td',
|
||||
];
|
||||
$replace = [
|
||||
'<img style="max-width:100%;margin:0;padding:0;display:block;" ',
|
||||
'<div',
|
||||
'/div>',
|
||||
'<p style="margin:0;',
|
||||
'<p style="margin:0;">',
|
||||
'<div style="margin:0;">',
|
||||
'<table style="width:100%;margin:0px;border-collapse:collapse;border-color:#ddd;border-style:solid;border-width:0 1px 1px 0;"',
|
||||
'<tr style="border-top:1px solid #ddd;"',
|
||||
'<td style="margin:0;padding:5px;border-left:1px solid #ddd;"',
|
||||
];
|
||||
return str_replace($search, $replace, $content);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
@ -32,5 +32,102 @@ return array (
|
|||
'log_write' =>
|
||||
array (
|
||||
),
|
||||
'plugins_css' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
1 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_navigation_header_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
1 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_goods_handle_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_base' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_buy_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
1 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_user_login_success_record' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_extends_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_view_admin_user_save' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_user_save_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_goods_save_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_panel_price_top' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_view_home_goods_inside_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_view_search_goods_inside_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_type' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
),
|
||||
'plugins_service_users_center_left_menu_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
1 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_header_navigation_top_right_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\membershiplevelvip\\Hook',
|
||||
1 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_js' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_panel_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_view_buy_goods_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_view_buy_form_inside' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_buy_order_insert_success' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_order_status_change_history_success_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_user_register_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
);
|
||||
?>
|
||||
|
|
@ -81,7 +81,6 @@
|
|||
<template is="online_service" data="{{tnt_inst_id: common_app_mini_alipay_tnt_inst_id || null, scene: common_app_mini_alipay_scene || null, openid: common_app_mini_alipay_openid || null}}"></template>
|
||||
</view>
|
||||
|
||||
<!-- 版权 -->
|
||||
<view a:if="{{load_status == 1}}">
|
||||
<import src="/pages/common/copyright.axml" />
|
||||
<template is="copyright"></template>
|
||||
|
|
|
|||
|
|
@ -76,6 +76,5 @@
|
|||
<template is="online_service" data="{{tnt_inst_id: common_app_mini_alipay_tnt_inst_id || null, scene: common_app_mini_alipay_scene || null, openid: common_app_mini_alipay_openid || null}}"></template>
|
||||
</view>
|
||||
|
||||
<!-- 版权 -->
|
||||
<import src="/pages/common/copyright.axml" />
|
||||
<template is="copyright"></template>
|
||||
|
|
|
|||
|
|
@ -81,7 +81,6 @@
|
|||
<template is="online_service"></template>
|
||||
</view>
|
||||
|
||||
<!-- 版权 -->
|
||||
<view s-if="load_status == 1">
|
||||
<import src="/pages/common/copyright.swan" />
|
||||
<template is="copyright"></template>
|
||||
|
|
|
|||
|
|
@ -79,6 +79,5 @@
|
|||
<template is="online_service"></template>
|
||||
</view>
|
||||
|
||||
<!-- 版权 -->
|
||||
<import src="/pages/common/copyright.swan" />
|
||||
<template is="copyright"></template>
|
||||
|
|
|
|||
|
|
@ -81,7 +81,6 @@
|
|||
<template is="online_service"></template>
|
||||
</view>
|
||||
|
||||
<!-- 版权 -->
|
||||
<view qq:if="{{load_status == 1}}">
|
||||
<import src="/pages/common/copyright.qml" />
|
||||
<template is="copyright"></template>
|
||||
|
|
|
|||
|
|
@ -78,7 +78,6 @@
|
|||
<import src="/pages/common/bottom_line.ttml" />
|
||||
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
|
||||
|
||||
<!-- 版权 -->
|
||||
<view tt:if="{{load_status == 1}}">
|
||||
<import src="/pages/common/copyright.ttml" />
|
||||
<template is="copyright"></template>
|
||||
|
|
|
|||
|
|
@ -75,6 +75,5 @@
|
|||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 版权 -->
|
||||
<import src="/pages/common/copyright.ttml" />
|
||||
<template is="copyright"></template>
|
||||
|
|
|
|||
|
|
@ -63,11 +63,13 @@ App({
|
|||
"coupon": "领劵中心",
|
||||
"user_coupon": "优惠劵",
|
||||
"extraction_address": "自提地址",
|
||||
"membervip": "会员VIP",
|
||||
"membervip_buy": "开通时长",
|
||||
},
|
||||
|
||||
// 请求地址
|
||||
request_url: "{{request_url}}",
|
||||
// request_url: 'http://shopxo.com/',
|
||||
request_url: 'http://shopxo.com/',
|
||||
// request_url: 'https://dev.shopxo.net/',
|
||||
|
||||
// 基础信息
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"pages": [
|
||||
"pages/user-membervip/user-membervip",
|
||||
"pages/index/index",
|
||||
"pages/goods-category/goods-category",
|
||||
"pages/cart/cart",
|
||||
|
|
@ -28,7 +29,9 @@
|
|||
"pages/user-orderaftersale-detail/user-orderaftersale-detail",
|
||||
"pages/coupon/coupon",
|
||||
"pages/user-coupon/user-coupon",
|
||||
"pages/extraction-address/extraction-address"
|
||||
"pages/extraction-address/extraction-address",
|
||||
"pages/membervip/membervip",
|
||||
"pages/membervip-buy/membervip-buy"
|
||||
],
|
||||
"window": {
|
||||
"navigationBarTitleText": "{{application_title}}",
|
||||
|
|
|
|||
|
|
@ -81,7 +81,6 @@
|
|||
<template is="online_service"></template>
|
||||
</view>
|
||||
|
||||
<!-- 版权 -->
|
||||
<view wx:if="{{load_status == 1}}">
|
||||
<import src="/pages/common/copyright.wxml" />
|
||||
<template is="copyright"></template>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,152 @@
|
|||
const app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 1,
|
||||
data_list_loding_msg: '',
|
||||
data_list: [],
|
||||
data_base: null,
|
||||
|
||||
selected_tabs_index: 0,
|
||||
selected_content_index: null,
|
||||
submit_disabled_status: false,
|
||||
},
|
||||
|
||||
onLoad(params) {
|
||||
this.init();
|
||||
},
|
||||
|
||||
onShow() {
|
||||
wx.setNavigationBarTitle({ title: app.data.common_pages_title.membervip_buy });
|
||||
},
|
||||
|
||||
init() {
|
||||
// 获取数据
|
||||
this.get_data_list();
|
||||
},
|
||||
|
||||
// 获取数据
|
||||
get_data_list() {
|
||||
var self = this;
|
||||
wx.showLoading({ title: "加载中..." });
|
||||
if (self.data.data_list.length <= 0) {
|
||||
self.setData({
|
||||
data_list_loding_status: 1
|
||||
});
|
||||
}
|
||||
|
||||
wx.request({
|
||||
url: app.get_request_url("index", "buy", "membershiplevelvip"),
|
||||
method: "POST",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
wx.hideLoading();
|
||||
wx.stopPullDownRefresh();
|
||||
if (res.data.code == 0) {
|
||||
var data = res.data.data;
|
||||
var status = ((data.data || []).length > 0);
|
||||
self.setData({
|
||||
data_base: data.base || null,
|
||||
data_list: data.data || [],
|
||||
data_list_loding_msg: '',
|
||||
data_list_loding_status: status ? 3 : 0,
|
||||
data_bottom_line_status: status,
|
||||
});
|
||||
} else {
|
||||
self.setData({
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 2,
|
||||
data_list_loding_msg: res.data.msg,
|
||||
});
|
||||
if (app.is_login_check(res.data, self, 'get_data_list')) {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
wx.hideLoading();
|
||||
wx.stopPullDownRefresh();
|
||||
self.setData({
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 2,
|
||||
data_list_loding_msg: '服务器请求出错',
|
||||
});
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onPullDownRefresh() {
|
||||
this.get_data_list();
|
||||
},
|
||||
|
||||
// tabs事件
|
||||
tabs_event(e) {
|
||||
this.setData({
|
||||
selected_tabs_index: e.currentTarget.dataset.index || 0,
|
||||
selected_content_index: null,
|
||||
});
|
||||
},
|
||||
|
||||
// 时长事件
|
||||
content_event(e) {
|
||||
this.setData({
|
||||
selected_content_index: e.currentTarget.dataset.index || 0,
|
||||
});
|
||||
},
|
||||
|
||||
// 确认支付事件
|
||||
submit_event(e) {
|
||||
if (this.data.selected_tabs_index < 0 || this.data.selected_content_index === null)
|
||||
{
|
||||
app.showToast('请选择开通时长');
|
||||
return false;
|
||||
}
|
||||
|
||||
// 请求参数
|
||||
var item = this.data.data_list[this.data.selected_tabs_index] || null;
|
||||
if(item == null)
|
||||
{
|
||||
app.showToast('开通时长有误');
|
||||
return false;
|
||||
}
|
||||
var rules = ((item['pay_period_rules'] || null) == null) ? null : item['pay_period_rules'][this.data.selected_content_index] || null;
|
||||
if (rules == null) {
|
||||
app.showToast('开通时长有误');
|
||||
return false;
|
||||
}
|
||||
|
||||
// 请求生成支付订单
|
||||
var self = this;
|
||||
wx.showLoading({ title: "处理中..." });
|
||||
wx.request({
|
||||
url: app.get_request_url("create", "buy", "membershiplevelvip"),
|
||||
method: "POST",
|
||||
data: { "opening": item['id'] + '-' + rules['number']},
|
||||
dataType: "json",
|
||||
header: { 'content-type': 'application/x-www-form-urlencoded' },
|
||||
success: res => {
|
||||
wx.hideLoading();
|
||||
self.setData({ submit_disabled_status: false });
|
||||
if (res.data.code == 0) {
|
||||
// 进入以后会员中心并发起支付
|
||||
wx.redirectTo({
|
||||
url: '/pages/user-membervip/user-membervip',
|
||||
});
|
||||
} else {
|
||||
if (app.is_login_check(res.data, self, 'submit_event')) {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
self.setData({ submit_disabled_status: false });
|
||||
wx.hideLoading();
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarBackgroundColor": "#1d1611",
|
||||
"backgroundColor": "#1d1611"
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
<view wx:if="{{(data_list || null) != null && data_list.length > 0}}" class="page">
|
||||
<!-- 导航 -->
|
||||
<scroll-view class="tabs bg-white tc oh" scroll-x="true">
|
||||
<block wx:for="{{data_list}}" wx:key="key">
|
||||
<view class="item {{selected_tabs_index === index ? 'active' : ''}}" bindtap="tabs_event" data-index="{{index}}">{{item.name}}</view>
|
||||
</block>
|
||||
</scroll-view>
|
||||
|
||||
<!-- 内容 -->
|
||||
<view class="content spacing-mt">
|
||||
<block wx:for="{{data_list}}" wx:key="key">
|
||||
<block wx:if="{{selected_tabs_index == index}}">
|
||||
<block wx:if="{{(item.pay_period_rules || null) != null}}">
|
||||
<block wx:for="{{item.pay_period_rules}}" wx:key="keys" wx:for-item="rules">
|
||||
<view class="item oh tc bg-white {{selected_content_index === index ? 'active' : ''}}" bindtap="content_event" data-index="{{index}}">
|
||||
<view class="fl number single-text">
|
||||
<text wx:if="{{(rules.number || null) == null}}" class="value">终身</text>
|
||||
<text wx:else class="value">{{rules.value}}</text>
|
||||
<text wx:if="{{(rules.unit || null) != null}}" class="unit">{{rules.unit}}</text>
|
||||
</view>
|
||||
<view class="fr price bg-white single-text">
|
||||
<text class="symbol">¥</text>
|
||||
<text class="value">{{rules.price}}</text>
|
||||
<text class="unit">元</text>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
|
||||
<import src="/pages/common/bottom_line.wxml" />
|
||||
<template is="bottom_line" data="{{status: true}}"></template>
|
||||
|
||||
<button class="submit-fixed submit-bottom" type="default" hover-class="none" bindtap="submit_event" disabled="{{submit_disabled_status}}">确认支付</button>
|
||||
</block>
|
||||
<block wx:else>
|
||||
<import src="/pages/common/nodata.wxml" />
|
||||
<template is="nodata" data="{{status: 0, msg: '购买时长未配置'}}"></template>
|
||||
</block>
|
||||
</block>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
<view wx:else>
|
||||
<import src="/pages/common/nodata.wxml" />
|
||||
<template is="nodata" data="{{status: 0, msg: '未配置会员等级'}}"></template>
|
||||
</view>
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
/**
|
||||
* common
|
||||
*/
|
||||
.page {
|
||||
padding-bottom: 100rpx;
|
||||
}
|
||||
/**
|
||||
* tabs
|
||||
*/
|
||||
.tabs {
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
white-space: nowrap;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.tabs .item {
|
||||
padding: 20rpx 30rpx;
|
||||
border-bottom: 3px solid #f0f0f0;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
}
|
||||
.tabs .active {
|
||||
border-bottom: 3px solid #1d1611;
|
||||
color: #1d1611;
|
||||
}
|
||||
|
||||
/**
|
||||
* content
|
||||
*/
|
||||
.content .item {
|
||||
cursor: pointer;
|
||||
border: 1px solid #D6D6D6;
|
||||
margin: 0 20rpx 30rpx 20rpx;
|
||||
}
|
||||
.content .item .number {
|
||||
background: #f2f2f2;
|
||||
width: calc(40% - 40rpx);
|
||||
}
|
||||
.content .item .price {
|
||||
width: calc(60% - 40rpx)
|
||||
}
|
||||
.content .item .number,
|
||||
.content .item .price {
|
||||
padding: 20rpx;
|
||||
}
|
||||
.content .item .number .value {
|
||||
color: #666;
|
||||
}
|
||||
.content .item .price .value,
|
||||
.content .item .price .symbol {
|
||||
color: #1d1611;
|
||||
}
|
||||
.content .item .value {
|
||||
font-size: 38rpx;
|
||||
}
|
||||
.content .item .unit {
|
||||
color: #888;
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
.content .active {
|
||||
border-color: #1d1611;
|
||||
box-shadow: 0px 0 0px 1px #1d1611
|
||||
}
|
||||
.content .submit-bottom {
|
||||
background: #f9d681 !important;
|
||||
color: #351d06 !important;
|
||||
}
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
const app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 1,
|
||||
data_list_loding_msg: '',
|
||||
data_list: [],
|
||||
data_base: null,
|
||||
},
|
||||
|
||||
onLoad(params) {
|
||||
this.init();
|
||||
},
|
||||
|
||||
onShow() {
|
||||
wx.setNavigationBarTitle({ title: app.data.common_pages_title.membervip });
|
||||
},
|
||||
|
||||
init() {
|
||||
// 获取数据
|
||||
this.get_data_list();
|
||||
},
|
||||
|
||||
// 获取数据
|
||||
get_data_list() {
|
||||
var self = this;
|
||||
wx.showLoading({ title: "加载中..." });
|
||||
if (self.data.data_list.length <= 0) {
|
||||
self.setData({
|
||||
data_list_loding_status: 1
|
||||
});
|
||||
}
|
||||
|
||||
wx.request({
|
||||
url: app.get_request_url("index", "index", "membershiplevelvip"),
|
||||
method: "POST",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
wx.hideLoading();
|
||||
wx.stopPullDownRefresh();
|
||||
if (res.data.code == 0) {
|
||||
var data = res.data.data;
|
||||
var status = ((data.data || []).length > 0);
|
||||
self.setData({
|
||||
data_base: data.base || null,
|
||||
data_list: data.data || [],
|
||||
data_list_loding_msg: '',
|
||||
data_list_loding_status: status ? 3 : 0,
|
||||
data_bottom_line_status: status,
|
||||
});
|
||||
|
||||
// 导航名称
|
||||
if ((data.base || null) != null && (data.base.application_name || null) != null) {
|
||||
wx.setNavigationBarTitle({ title: data.base.application_name });
|
||||
}
|
||||
} else {
|
||||
self.setData({
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 2,
|
||||
data_list_loding_msg: res.data.msg,
|
||||
});
|
||||
if (app.is_login_check(res.data, self, 'get_data_list')) {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
wx.hideLoading();
|
||||
wx.stopPullDownRefresh();
|
||||
self.setData({
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 2,
|
||||
data_list_loding_msg: '服务器请求出错',
|
||||
});
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onPullDownRefresh() {
|
||||
this.get_data_list();
|
||||
},
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarBackgroundColor": "#1d1611",
|
||||
"backgroundColor": "#1d1611"
|
||||
}
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
<view wx:if="{{(data_base || null) != null}}" class="banner tc" style="background-image: url({{data_base.banner_bg_images}});">
|
||||
<!-- banner -->
|
||||
<view wx:if="{{(data_base.banner_top_title || null) != null}}" class="single-text banner-title">
|
||||
{{data_base.banner_top_title}}
|
||||
</view>
|
||||
<view class="submit">
|
||||
<navigator url="/pages/membervip-buy/membervip-buy" hover-class="none">
|
||||
<button size="mini" type="default" hover-class="none" bindtap="buy_event">
|
||||
{{data_base.banner_middle_name || '开通会员'}}
|
||||
</button>
|
||||
</navigator>
|
||||
</view>
|
||||
|
||||
<!-- 数据列表 -->
|
||||
<view wx:if="{{(data_list || null) != null && data_list.length > 0}}" class="data-list">
|
||||
<view wx:for="{{data_list}}" wx:key="key" class="item fl">
|
||||
<view class="content">
|
||||
<view class="title single-text">{{item.name}}</view>
|
||||
<view class="desc multi-text">{{item.desc}}</view>
|
||||
<image src="{{item.images_url}}" mode="scaleToFill" class="dis-block" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view wx:if="{{(data_base.banner_bottom_content || null) != null}}" class="bg-white">
|
||||
<rich-text nodes="{{data_base.banner_bottom_content}}"></rich-text>
|
||||
</view>
|
||||
|
||||
<view wx:if="{{data_list_loding_status != 3}}">
|
||||
<import src="/pages/common/nodata.wxml" />
|
||||
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
|
||||
</view>
|
||||
|
||||
<import src="/pages/common/bottom_line.wxml" />
|
||||
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
/**
|
||||
* banner
|
||||
*/
|
||||
.banner {
|
||||
background-color: #1d1611;
|
||||
background-position: center center;
|
||||
background-repeat: no-repeat;
|
||||
position: relative;
|
||||
height: 1110rpx;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
.banner .banner-title {
|
||||
font-size: 60rpx;
|
||||
margin-top: 50rpx;
|
||||
color: #f9d681;
|
||||
height: 68rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
.banner .submit {
|
||||
margin-top: 60rpx;
|
||||
}
|
||||
.banner .submit button {
|
||||
border: 1rpx solid #f9d681;
|
||||
background-color: #f9d681;
|
||||
color: #351d06;
|
||||
width: 320rpx;
|
||||
height: 80rpx;
|
||||
line-height: 80rpx;
|
||||
font-size: 36rpx;
|
||||
border-radius: 50rpx;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/**
|
||||
* 等级介绍
|
||||
*/
|
||||
.data-list {
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
.data-list .item {
|
||||
padding: 15rpx;
|
||||
width: calc(50% - 30rpx);
|
||||
}
|
||||
.data-list .item .content {
|
||||
overflow: hidden;
|
||||
border-radius: 8rpx;
|
||||
background-color: #fff;
|
||||
padding: 30rpx 10rpx;
|
||||
}
|
||||
.data-list .item .content .title {
|
||||
height: 36rpx;
|
||||
line-height: 36rpx;
|
||||
font-size: 36rpx;
|
||||
color: #333;
|
||||
}
|
||||
.data-list .item .content .desc {
|
||||
height: 76rpx;
|
||||
line-height: 38rpx;
|
||||
font-size: 30rpx;
|
||||
color: #999;
|
||||
}
|
||||
.data-list .item .content .title,
|
||||
.data-list .item .content .desc {
|
||||
margin-bottom: 15rpx;
|
||||
}
|
||||
.data-list .item .content image {
|
||||
max-width: 160rpx;
|
||||
max-height: 160rpx;
|
||||
margin:0 auto;
|
||||
}
|
||||
|
|
@ -0,0 +1,128 @@
|
|||
const app = getApp();
|
||||
Page({
|
||||
data: {
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 1,
|
||||
data_list_loding_msg: '',
|
||||
data_base: null,
|
||||
user_vip: null,
|
||||
avatar: app.data.default_user_head_src,
|
||||
nickname: "用户名",
|
||||
|
||||
nav_list: [
|
||||
{
|
||||
icon: "/images/share-weixin-icon.png",
|
||||
cs: "br-t br-b br-r",
|
||||
title: "推广返利",
|
||||
},
|
||||
{
|
||||
icon: "/images/share-weixin-icon.png",
|
||||
cs: "br-t br-b",
|
||||
title: "收益明细",
|
||||
}
|
||||
],
|
||||
},
|
||||
|
||||
onLoad(params) {
|
||||
this.init();
|
||||
},
|
||||
|
||||
onShow() {
|
||||
wx.setNavigationBarTitle({ title: app.data.common_pages_title.membervip });
|
||||
},
|
||||
|
||||
init(e) {
|
||||
var user = app.get_user_info(this, "init"),
|
||||
self = this;
|
||||
if (user != false) {
|
||||
// 用户未绑定用户则转到登录页面
|
||||
if (app.user_is_need_login(user)) {
|
||||
wx.showModal({
|
||||
title: '温馨提示',
|
||||
content: '绑定手机号码',
|
||||
confirmText: '确认',
|
||||
cancelText: '暂不',
|
||||
success: (result) => {
|
||||
wx.stopPullDownRefresh();
|
||||
if (result.confirm) {
|
||||
wx.navigateTo({
|
||||
url: "/pages/login/login?event_callback=init"
|
||||
});
|
||||
}
|
||||
self.setData({
|
||||
avatar: user.avatar || app.data.default_user_head_src,
|
||||
nickname: user.user_name_view || '用户名',
|
||||
});
|
||||
},
|
||||
});
|
||||
} else {
|
||||
self.get_data();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// 获取数据
|
||||
get_data() {
|
||||
var self = this;
|
||||
wx.request({
|
||||
url: app.get_request_url("index", "vip", "membershiplevelvip"),
|
||||
method: "POST",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: res => {
|
||||
wx.hideLoading();
|
||||
wx.stopPullDownRefresh();
|
||||
if (res.data.code == 0) {
|
||||
var data = res.data.data;
|
||||
self.setData({
|
||||
data_base: data.base || null,
|
||||
user_vip: data.user_vip || null,
|
||||
data_list_loding_msg: '',
|
||||
data_list_loding_status: 0,
|
||||
data_bottom_line_status: false,
|
||||
});
|
||||
} else {
|
||||
self.setData({
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 2,
|
||||
data_list_loding_msg: res.data.msg,
|
||||
});
|
||||
if (app.is_login_check(res.data, self, 'get_data')) {
|
||||
app.showToast(res.data.msg);
|
||||
}
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
wx.hideLoading();
|
||||
wx.stopPullDownRefresh();
|
||||
self.setData({
|
||||
data_bottom_line_status: false,
|
||||
data_list_loding_status: 2,
|
||||
data_list_loding_msg: '服务器请求出错',
|
||||
});
|
||||
app.showToast("服务器请求出错");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 下拉刷新
|
||||
onPullDownRefresh() {
|
||||
this.get_data();
|
||||
},
|
||||
|
||||
// 头像查看
|
||||
preview_event() {
|
||||
if (app.data.default_user_head_src != this.data.avatar) {
|
||||
wx.previewImage({
|
||||
current: this.data.avatar,
|
||||
urls: [this.data.avatar]
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 头像加载错误
|
||||
user_avatar_error(e) {
|
||||
this.setData({ avatar: app.data.default_user_head_src });
|
||||
},
|
||||
|
||||
});
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarBackgroundColor": "#1d1611",
|
||||
"backgroundColor": "#1d1611"
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<!-- 头部 -->
|
||||
<view class="head-box oh">
|
||||
<view class="head-item tc fl">
|
||||
<image bindtap="preview_event" binderror="user_avatar_error" class="avatar" src="{{avatar}}" mode="widthFix" />
|
||||
<text class="item-name dis-block cr-888">{{nickname}}</text>
|
||||
</view>
|
||||
<view class="head-base fl">
|
||||
<view class="single-text level-name">VIP1</view>
|
||||
<view class="single-text">
|
||||
<block wx:if="{{user_vip.is_permanent == 1}}">
|
||||
<text class="title">有效期</text>
|
||||
<text class="value cr-fff">{{user_vip.permanent_value}}</text>
|
||||
<text class="unit">{{user_vip.permanent_unit}}</text>
|
||||
</block>
|
||||
<block wx:else>
|
||||
<block wx:if="{{user_vip.surplus_time_number == 0}}">
|
||||
<view class="cr-888">会员已过期或未开通</view>
|
||||
<navigator url="/pages/membervip-buy/membervip-buy" hover-class="none">
|
||||
<button wx:if="{{(data_base.is_user_buy || null) == 1}}" size="mini" type="default" hover-class="none" class="submit-buy">开通会员</button>
|
||||
</navigator>
|
||||
</block>
|
||||
<block wx:else>
|
||||
<text class="title">有效期</text>
|
||||
<text class="value cr-fff">{{user_vip.surplus_time_number}}</text>
|
||||
<text class="unit">{{user_vip.surplus_time_unit}}</text>
|
||||
|
||||
<block wx:if="{{(user_vip.is_supported_renew || null) == null || user_vip.is_supported_renew != 1}}">
|
||||
<block wx:if="{{(plugins_base.is_supported_renew_old_order || null) == 1}}">
|
||||
<button size="mini" type="default" hover-class="none" class="renew-buy">续费会员</button>
|
||||
</block>
|
||||
<block wx:else>
|
||||
<navigator url="/pages/membervip-buy/membervip-buy" hover-class="none">
|
||||
<button size="mini" type="default" hover-class="none" class="submit-buy">连续开通</button>
|
||||
</navigator>
|
||||
</block>
|
||||
</block>
|
||||
</block>
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 导航 -->
|
||||
<view class="nav">
|
||||
<block wx:for="{{nav_list}}" wx:key="key">
|
||||
<view class="item fl tc {{item.cs}}">
|
||||
<image src="{{item.icon}}" mode="scaleToFill" class="dis-block" />
|
||||
<view class="title">{{item.title}}</view>
|
||||
</view>
|
||||
</block>
|
||||
</view>
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
/*
|
||||
* 头部
|
||||
*/
|
||||
.head-box{
|
||||
padding-top: 20rpx;
|
||||
font-size: 24rpx;
|
||||
background-color: #1d1611;
|
||||
position: relative;
|
||||
}
|
||||
.head-item {
|
||||
padding-bottom: 30rpx;
|
||||
}
|
||||
.head-item .avatar {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
border-radius: 50%;
|
||||
border: 1px solid #3d3c3c;
|
||||
}
|
||||
.head-item .item-name{
|
||||
font-size: 30rpx;
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.head-item .item-icon {
|
||||
width: 30rpx;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
.head-item {
|
||||
margin-left: 30rpx;
|
||||
}
|
||||
.head-base {
|
||||
margin-left: 60rpx;
|
||||
width: calc(100% - 280rpx);
|
||||
}
|
||||
.head-base .value {
|
||||
font-weight: 500;
|
||||
font-size: 36rpx;
|
||||
}
|
||||
.head-base .title,
|
||||
.head-base .unit {
|
||||
color: #9e9e9e;
|
||||
}
|
||||
.head-base .value,
|
||||
.head-base .unit {
|
||||
margin-left: 10rpx;
|
||||
}
|
||||
.head-base .level-name {
|
||||
font-size: 42rpx;
|
||||
font-weight: 500;
|
||||
margin-bottom: 30rpx;
|
||||
color: #e4cb96;
|
||||
}
|
||||
.head-base .submit-buy {
|
||||
font-size: 26rpx;
|
||||
height: 55rpx;
|
||||
line-height: 55rpx;
|
||||
border: 1px solid #f9d681;
|
||||
background-color: #f9d681;
|
||||
color: #351d06;
|
||||
position: absolute;
|
||||
right: 30rpx;
|
||||
bottom: 35rpx;
|
||||
padding: 0 20rpx;
|
||||
}
|
||||
|
||||
/*
|
||||
* 导航
|
||||
*/
|
||||
.nav {
|
||||
|
||||
}
|
||||
.nav .item {
|
||||
padding: 20rpx;
|
||||
width: calc(50% - 30px);
|
||||
}
|
||||
.nav .item image {
|
||||
width: 100rpx;
|
||||
height: 100rpx;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.nav .item .title {
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"enablePullDownRefresh": true,
|
||||
"navigationBarBackgroundColor": "#d2364c",
|
||||
"backgroundColor": "#d2364c",
|
||||
"usingComponents": {
|
||||
"component-badge": "/components/badge/badge"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,6 +78,5 @@
|
|||
<template is="online_service"></template>
|
||||
</view>
|
||||
|
||||
<!-- 版权 -->
|
||||
<import src="/pages/common/copyright.wxml" />
|
||||
<template is="copyright"></template>
|
||||
|
|
|
|||
Loading…
Reference in New Issue