小程序分销开发+细节优化

This commit is contained in:
devil 2020-01-16 15:01:30 +08:00
parent ae501214e8
commit 356592d6f7
115 changed files with 2350 additions and 98 deletions

View File

@ -97,7 +97,7 @@ class Order extends Common
// 发起支付 - 支付方式
$pay_where = [
'where' => ['is_enable'=>1, 'is_open_user'=>1, 'payment'=>config('shopxo.under_line_list')],
'where' => ['is_enable'=>1, 'payment'=>config('shopxo.under_line_list')],
];
$this->assign('buy_payment_list', PaymentService::BuyPaymentList($pay_where));

View File

@ -11,6 +11,7 @@
namespace app\admin\controller;
use app\service\PaymentService;
use app\service\StoreService;
/**
* 支付方式管理
@ -58,6 +59,9 @@ class Payment extends Common
// 适用平台
$this->assign('common_platform_type', lang('common_platform_type'));
// 应用商店
$this->assign('store_payment_url', StoreService::StorePaymentUrl());
return $this->fetch();
}

View File

@ -12,6 +12,7 @@ namespace app\admin\controller;
use app\service\ThemeService;
use app\service\ConfigService;
use app\service\StoreService;
/**
* 主题管理
@ -64,6 +65,10 @@ class Theme extends Common
// 默认主题
$theme = MyC('common_default_theme', 'default', true);
$this->assign('theme', empty($theme) ? 'default' : $theme);
// 应用商店
$this->assign('store_theme_url', StoreService::StoreThemeUrl());
return $this->fetch('index');
} else {
return $this->fetch('upload');

View File

@ -6,7 +6,7 @@
<!-- operation start -->
<div class="am-g">
<a href="javascript:;" class="am-btn am-btn-secondary am-btn-xs am-margin-left-sm am-icon-cloud-upload am-radius" data-am-modal="{target: '#payment-upload-win'}"> 上传</a>
<a class="am-margin-left-sm" href="https://store.shopxo.net/payment.html" target="_blank">更多支付插件下载 <i class="am-icon-external-link"></i></a>
<a class="am-margin-left-sm" href="{{$store_payment_url}}" target="_blank">更多支付插件下载 <i class="am-icon-external-link"></i></a>
</div>
<!-- operation end -->
@ -21,7 +21,7 @@
<th class="am-hide-sm-only">作者</th>
<th class="am-hide-sm-only th-desc">描述</th>
<th>启用</th>
<th>开放使用</th>
<th>用户开放</th>
<th>操作</th>
</tr>
</thead>

View File

@ -149,7 +149,7 @@
</div>
<div class="am-form-group">
<label class="block">开放使用</label>
<label class="block">用户开放</label>
<input name="is_open_user" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="50" data-am-switch {{if (isset($data['is_open_user']) and $data['is_open_user'] eq 1) or !isset($data['is_open_user'])}}checked="true"{{/if}} />
</div>

View File

@ -5,4 +5,7 @@
<li {{if $view_type eq 'upload'}}class="am-active"{{/if}}>
<a href="{{:MyUrl('admin/pluginsadmin/index', ['view_type'=>'upload'])}}">上传应用</a>
</li>
<li class="fr">
<a class="am-margin-left-sm" href="{{$store_url}}" target="_blank">更多支付插件下载 <i class="am-icon-external-link"></i></a>
</li>
</ul>

View File

@ -5,4 +5,7 @@
<li {{if $view_type eq 'upload'}}class="am-active"{{/if}}>
<a href="{{:MyUrl('admin/theme/index', ['view_type'=>'upload'])}}">主题安装</a>
</li>
<li class="fr">
<a class="am-margin-left-sm" href="{{$store_theme_url}}" target="_blank">更多支付插件下载 <i class="am-icon-external-link"></i></a>
</li>
</ul>

View File

@ -8,7 +8,7 @@
<!-- nav end -->
<!-- form start -->
<form class="am-form form-validation view-save" action="{{:MyUrl('admin/theme/upload')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/theme/index')}}" enctype="multipart/form-data">
<form class="am-form form-validation view-save am-margin-top-sm" action="{{:MyUrl('admin/theme/upload')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/theme/index')}}" enctype="multipart/form-data">
<div class="am-form-group am-form-file">
<button type="button" class="am-btn am-btn-default am-btn-sm am-radius">
<i class="am-icon-cloud-upload"></i> 选择文件</button>

View File

@ -108,7 +108,7 @@ class Common extends Controller
{
if(MyC('home_site_state') != 1)
{
die(json_encode(DataReturn(MyC('home_site_close_reason', '网站维护中...'), -10000)));
exit(json_encode(DataReturn(MyC('home_site_close_reason', '网站维护中...'), -10000)));
}
}

View File

@ -1101,20 +1101,38 @@ function IsJson($jsonstr)
* @blog http://gong.gg/
* @version 0.0.1
* @datetime 2016-12-03T21:58:54+0800
* @param [string] $url [请求地址]
* @param [array] $post [发送的post数据]
* @param [string] $url [请求地址]
* @param [array] $post [发送的post数据]
* @param [boolean] $is_json [是否使用 json 数据发送]
* @return [mixed] [请求返回的数据]
*/
function CurlPost($url, $post)
function CurlPost($url, $post, $is_json = false)
{
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($post),
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_URL, $url);
// 是否 json
if($is_json)
{
$data_string = json_encode($post);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/json; charset=utf-8",
"Content-Length: " . strlen($data_string)
)
);
} else {
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Content-Type: application/x-www-form-urlencoded",
"cache-control: no-cache"
)
);
}
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
curl_close($ch);
return $result;

View File

@ -363,9 +363,9 @@ class Common extends Controller
// 是否ajax请求
if(IS_AJAX)
{
die(json_encode(DataReturn(MyC('home_site_close_reason', '网站维护中...'), -10000)));
exit(json_encode(DataReturn(MyC('home_site_close_reason', '网站维护中...'), -10000)));
} else {
die('<div style="text-align: center;margin-top: 15%;font-size: 18px;color: #f00;">'.MyC('home_site_close_reason', '网站维护中...', true).'</div>');
exit('<div style="text-align: center;margin-top: 15%;font-size: 18px;color: #f00;">'.MyC('home_site_close_reason', '网站维护中...', true).'</div>');
}
}
}

View File

@ -31,5 +31,31 @@ class StoreService
{
return config('shopxo.store_url').'?ver='.APPLICATION_VERSION.'&url='.urlencode(__MY_URL__);
}
/**
* 应用商店支付插件地址
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-06-16T00:33:28+0800
* @param [array] $params [输入参数]
*/
public static function StorePaymentUrl($params = [])
{
return config('shopxo.store_payment_url').'?ver='.APPLICATION_VERSION.'&url='.urlencode(__MY_URL__);
}
/**
* 应用商店主题地址
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-06-16T00:33:28+0800
* @param [array] $params [输入参数]
*/
public static function StoreThemeUrl($params = [])
{
return config('shopxo.store_theme_url').'?ver='.APPLICATION_VERSION.'&url='.urlencode(__MY_URL__);
}
}
?>

View File

@ -37,19 +37,23 @@ return array (
0 => 'app\\plugins\\membershiplevelvip\\Hook',
1 => 'app\\plugins\\coupon\\Hook',
2 => 'app\\plugins\\distribution\\Hook',
3 => 'app\\plugins\\limitedtimediscount\\Hook',
),
'plugins_service_navigation_header_handle' =>
array (
0 => 'app\\plugins\\membershiplevelvip\\Hook',
1 => 'app\\plugins\\coupon\\Hook',
2 => 'app\\plugins\\limitedtimediscount\\Hook',
),
'plugins_service_goods_handle_end' =>
array (
0 => 'app\\plugins\\membershiplevelvip\\Hook',
1 => 'app\\plugins\\limitedtimediscount\\Hook',
),
'plugins_service_goods_spec_base' =>
array (
0 => 'app\\plugins\\membershiplevelvip\\Hook',
1 => 'app\\plugins\\limitedtimediscount\\Hook',
),
'plugins_service_buy_handle' =>
array (
@ -110,6 +114,7 @@ return array (
'plugins_js' =>
array (
0 => 'app\\plugins\\coupon\\Hook',
1 => 'app\\plugins\\limitedtimediscount\\Hook',
),
'plugins_view_goods_detail_panel_bottom' =>
array (
@ -131,6 +136,7 @@ return array (
array (
0 => 'app\\plugins\\coupon\\Hook',
1 => 'app\\plugins\\distribution\\Hook',
2 => 'app\\plugins\\fictitioussecretkey\\Hook',
),
'plugins_service_user_register_end' =>
array (
@ -160,5 +166,13 @@ return array (
array (
0 => 'app\\plugins\\distribution\\Hook',
),
'plugins_view_goods_detail_base_top' =>
array (
0 => 'app\\plugins\\limitedtimediscount\\Hook',
),
'plugins_view_home_floor_top' =>
array (
0 => 'app\\plugins\\limitedtimediscount\\Hook',
),
);
?>

View File

@ -22,40 +22,42 @@ return [
// 缓存key列表
// 公共系统配置信息key
'cache_common_my_config_key' => 'cache_common_my_config_data',
'cache_common_my_config_key' => 'cache_common_my_config_data',
// 前台顶部导航,后端菜单更新则删除缓存
'cache_common_home_nav_header_key' => 'cache_common_home_nav_header_data',
'cache_common_home_nav_header_key' => 'cache_common_home_nav_header_data',
// 前台顶部导航
'cache_common_home_nav_footer_key' => 'cache_common_home_nav_footer_data',
'cache_common_home_nav_footer_key' => 'cache_common_home_nav_footer_data',
// 商品大分类缓存
'cache_goods_category_key' => 'cache_goods_category_key_data',
'cache_goods_category_key' => 'cache_goods_category_key_data',
// 应用数据缓存
'cache_plugins_data_key' => 'cache_plugins_data_key_data_',
'cache_plugins_data_key' => 'cache_plugins_data_key_data_',
// 用户登录左侧数据
'cache_user_login_left_key' => 'cache_user_login_left_data',
'cache_user_login_left_key' => 'cache_user_login_left_data',
// 用户密码找回左侧数据
'cache_user_forgetpwd_left_key' => 'cache_user_forgetpwd_left_data',
'cache_user_forgetpwd_left_key' => 'cache_user_forgetpwd_left_data',
// 配置信息一条缓存 拼接唯一标记 [ only_tag ]
'cache_config_row_key' => 'cache_config_row_data_',
'cache_config_row_key' => 'cache_config_row_data_',
// 用户缓存信息
'cache_user_info' => 'cache_user_info_',
'cache_user_info' => 'cache_user_info_',
// 附件host, 数据库图片地址以/static/...开头
'attachment_host' => defined('__MY_PUBLIC_URL__') ? substr(__MY_PUBLIC_URL__, 0, -1) : '',
'attachment_host' => defined('__MY_PUBLIC_URL__') ? substr(__MY_PUBLIC_URL__, 0, -1) : '',
// 应用商店地址
'store_url' => 'https://store.shopxo.net/',
'store_url' => 'https://store.shopxo.net/',
'store_payment_url' => 'https://store.shopxo.net/payment.html',
'store_theme_url' => 'https://store.shopxo.net/theme.html',
// 开启U带域名
'url_domain_deploy' => true,
'url_domain_deploy' => true,
// 支付业务类型,支付插件根据业务类型自动生成支付入口文件
'payment_business_type_all' => [
@ -72,6 +74,6 @@ return [
'under_line_list' => ['CashPayment', 'DeliveryPayment'],
// 小程序平台
'mini_app_type_list' => ['weixin', 'alipay', 'baidu', 'toutiao', 'qq'],
'mini_app_type_list' => ['weixin', 'alipay', 'baidu', 'toutiao', 'qq'],
];
?>

View File

@ -34,11 +34,11 @@
"pages/plugins/membershiplevelvip/user/user",
"pages/plugins/membershiplevelvip/order/order",
"pages/plugins/membershiplevelvip/order-detail/order-detail",
"pages/plugins/membershiplevelvip/shouyi-detail/shouyi-detail",
"pages/plugins/membershiplevelvip/shouyi/shouyi",
"pages/plugins/membershiplevelvip/tongji/tongji",
"pages/plugins/membershiplevelvip/tuiguang/tuiguang",
"pages/plugins/membershiplevelvip/tuandui/tuandui"
"pages/plugins/membershiplevelvip/profit-detail/profit-detail",
"pages/plugins/membershiplevelvip/profit/profit",
"pages/plugins/membershiplevelvip/statistics/statistics",
"pages/plugins/membershiplevelvip/poster/poster",
"pages/plugins/membershiplevelvip/team/team"
],
"window": {
"defaultTitle": "shopxo",

View File

@ -23,6 +23,13 @@
margin: 20rpx 0;
padding: 0 20rpx;
}
.share button {
height: 70rpx;
line-height: 70rpx;
}
.submit-double button {
width: 48%;
}
/*
* 链接

View File

@ -7,8 +7,9 @@
<view class="content">
<image src="{{user_share_qrode}}" class="wh-auto dis-block" mode="widthFix" />
</view>
<view class="submit">
<button type="primary" plain="{{true}}" hover-class="none" onTap="qrcode_event">查看二维码长按保存</button>
<view class="submit submit-double oh">
<button type="primary" plain="{{true}}" hover-class="none" size="mini" class="fl" onTap="qrcode_show_event">查看二维码</button>
<button type="primary" plain="{{true}}" hover-class="none" size="mini" class="fr" onTap="qrcode_save_event">保存二维码</button>
</view>
</view>
@ -19,7 +20,7 @@
</view>
<view class="content">{{user_share_url}}</view>
<view class="submit">
<button type="primary" plain="{{true}}" hover-class="none" onTap="url_event">点击复制链接地址</button>
<button type="primary" plain="{{true}}" hover-class="none" size="mini" class="dis-block wh-auto" onTap="url_event">点击复制链接地址</button>
</view>
</view>

View File

@ -76,8 +76,8 @@ Page({
this.init();
},
// 二维码事件
qrcode_event(e) {
// 二维码查看事件
qrcode_show_event(e) {
if ((this.data.user_share_qrode || null) != null) {
my.previewImage({
current: 0,
@ -88,6 +88,24 @@ Page({
}
},
// 二维码保存事件
qrcode_save_event(e) {
if ((this.data.user_share_qrode || null) != null) {
my.saveImage({
url: this.data.user_share_qrode,
showActionSheet: true,
success: () => {
app.showToast('保存成功', 'success');
},
fail: (res) => {
app.showToast('保存失败');
},
});
} else {
app.showToast('二维码地址有误');
}
},
// url事件
url_event(e) {
if ((this.data.user_share_url || null) != null) {

View File

@ -17,7 +17,7 @@
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
<view class="nav-back tc wh-auto">
<navigator url="/pages/plugins/membershiplevelvip/order/order" open-type="navigateBack" hover-class="none">
<navigator url="/pages/plugins/membershiplevelvip/profit/profit" open-type="navigateBack" hover-class="none">
<button type="default" size="mini" class="cr-888 br" hover-class="none">返回</button>
</navigator>
</view>

View File

@ -11,7 +11,7 @@ Page({
},
onLoad(params) {
params['id'] = 1;
//params['id'] = 1;
this.setData({ params: params });
this.init();
},

View File

@ -13,7 +13,7 @@
<text class="cr-666">{{item.add_time_time}}</text>
<text class="fr cr-main">{{item.status_name}}</text>
</view>
<navigator url="/pages/plugins/membershiplevelvip/shouyi-detail/shouyi-detail?id={{item.id}}" hover-class="none">
<navigator url="/pages/plugins/membershiplevelvip/profit-detail/profit-detail?id={{item.id}}" hover-class="none">
<view class="content">
<view class="multi-text">
<text class="title cr-666">订单金额</text>
@ -29,10 +29,6 @@
<text class="title cr-666">当前级别</text>
<text class="value">{{item.level_name}}</text>
</view>
<view class="multi-text">
<text class="title cr-666">返佣规则</text>
<text class="value">{{item.commission_rules}}</text>
</view>
</view>
</navigator>
</view>

View File

@ -12,8 +12,8 @@
}
.head-item .avatar {
padding: 10rpx;
background: #1d1611;
border: 1px solid #3d3c3c;
background: #3c3835;
border: 1px solid #3c3835;
}
.head-item .avatar image {
width: 140rpx;

View File

@ -2,7 +2,7 @@
<view class="head-box oh">
<view class="head-item tc fl">
<view class="avatar">
<image onTap="preview_event" binderror="user_avatar_error" src="{{avatar}}" mode="widthFix" class="dis-block" />
<image onTap="preview_event" onError="user_avatar_error" src="{{avatar}}" mode="widthFix" class="dis-block" />
</view>
<text class="item-name dis-block cr-888">{{nickname}}</text>
</view>

View File

@ -14,12 +14,11 @@ Page({
nav_list: [],
},
onLoad(params) {
this.init();
},
onLoad(params) {},
onShow() {
app.set_nav_bg_color_main('#1d1611');
this.init();
},
init(e) {
@ -98,33 +97,33 @@ Page({
if ((data_base.is_commission || 0) == 1)
{
nav_list.push({
icon: "/images/plugins/membershiplevelvip/user-center-shouyi-icon.png",
icon: "/images/plugins/membershiplevelvip/user-center-profit-icon.png",
title: "收益明细",
url: "/pages/plugins/membershiplevelvip/shouyi/shouyi",
url: "/pages/plugins/membershiplevelvip/profit/profit",
});
}
// 开启推广
if ((data_base.is_propaganda || 0) == 1) {
nav_list.push({
icon: "/images/plugins/membershiplevelvip/user-center-tuandui-icon.png",
icon: "/images/plugins/membershiplevelvip/user-center-team-icon.png",
title: "我的团队",
url: "/pages/plugins/membershiplevelvip/tuandui/tuandui",
url: "/pages/plugins/membershiplevelvip/team/team",
});
nav_list.push({
icon: "/images/plugins/membershiplevelvip/user-center-tuiguang-icon.png",
icon: "/images/plugins/membershiplevelvip/user-center-poster-icon.png",
title: "推广返利",
url: "/pages/plugins/membershiplevelvip/tuiguang/tuiguang",
url: "/pages/plugins/membershiplevelvip/poster/poster",
});
nav_list.push({
icon: "/images/plugins/membershiplevelvip/user-center-tongji-icon.png",
icon: "/images/plugins/membershiplevelvip/user-center-statistics-icon.png",
title: "数据统计",
url: "/pages/plugins/membershiplevelvip/tongji/tongji",
url: "/pages/plugins/membershiplevelvip/statistics/statistics",
});
}
nav_list.push({
icon: "/images/plugins/membershiplevelvip/user-center-shouye-icon.png",
icon: "/images/plugins/membershiplevelvip/user-center-index-icon.png",
title: "会员首页",
url: "/pages/plugins/membershiplevelvip/index/index",
});

View File

@ -68,7 +68,7 @@ App({
// 请求地址
request_url: "{{request_url}}",
request_url: 'http://shopxo.com/',
request_url: 'https://dev.shopxo.net/',
// request_url: 'https://dev.shopxo.net/',
// 基础信息
application_title: "{{application_title}}",

View File

@ -1,5 +1,5 @@
{
"pages": [
"pages": [ "pages/plugins/distribution/user/user",
"pages/index/index",
"pages/goods-category/goods-category",
"pages/cart/cart",
@ -34,11 +34,21 @@
"pages/plugins/membershiplevelvip/user/user",
"pages/plugins/membershiplevelvip/order/order",
"pages/plugins/membershiplevelvip/order-detail/order-detail",
"pages/plugins/membershiplevelvip/shouyi-detail/shouyi-detail",
"pages/plugins/membershiplevelvip/shouyi/shouyi",
"pages/plugins/membershiplevelvip/tongji/tongji",
"pages/plugins/membershiplevelvip/tuiguang/tuiguang",
"pages/plugins/membershiplevelvip/tuandui/tuandui"
"pages/plugins/membershiplevelvip/profit/profit",
"pages/plugins/membershiplevelvip/profit-detail/profit-detail",
"pages/plugins/membershiplevelvip/statistics/statistics",
"pages/plugins/membershiplevelvip/poster/poster",
"pages/plugins/membershiplevelvip/team/team",
"pages/plugins/distribution/order/order",
"pages/plugins/distribution/order-detail/order-detail",
"pages/plugins/distribution/profit/profit",
"pages/plugins/distribution/profit-detail/profit-detail",
"pages/plugins/distribution/statistics/statistics",
"pages/plugins/distribution/poster/poster",
"pages/plugins/distribution/team/team",
"pages/plugins/distribution/introduce/introduce"
],
"window": {
"navigationBarTitleText": "{{application_title}}",

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -800,7 +800,7 @@ Page({
} else {
wx.showLoading({ title: '生成中...' });
wx.request({
url: app.get_request_url('poster', 'user', 'distribution'),
url: app.get_request_url('goodsposter', 'distribution', 'distribution'),
method: 'POST',
data: { "goods_id": this.data.goods.id },
dataType: 'json',

View File

@ -0,0 +1,78 @@
const app = getApp();
Page({
data: {
params: null,
data_list_loding_status: 1,
data_list_loding_msg: '',
data_bottom_line_status: false,
data_base: null,
level_list: [],
},
onLoad(params) {
this.setData({ params: params });
this.init();
},
onShow() { },
init() {
var self = this;
wx.showLoading({ title: "加载中..." });
this.setData({
data_list_loding_status: 1
});
wx.request({
url: app.get_request_url("index", "introduce", "distribution"),
method: "POST",
data: {
id: this.data.params.id
},
dataType: "json",
success: res => {
wx.hideLoading();
wx.stopPullDownRefresh();
if (res.data.code == 0) {
var data = res.data.data;
var data_base = data.base || null;
var level_list = ((data.level_list || null) != null && data.level_list.length > 0) ? data.level_list : [];
self.setData({
data_base: data_base,
level_list: level_list,
data_list_loding_status: (data_base == null || level_list.length <= 0) ? 0 : 3,
data_bottom_line_status: true,
data_list_loding_msg: '',
});
} else {
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: res.data.msg,
});
if (app.is_login_check(res.data, self, 'init')) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
wx.hideLoading();
wx.stopPullDownRefresh();
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: '服务器请求出错',
});
app.showToast("服务器请求出错");
}
});
},
// 下拉刷新
onPullDownRefresh() {
this.init();
},
});

View File

@ -0,0 +1,8 @@
{
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#ff6a80",
"backgroundColorTop": "#ff6a80",
"backgroundColorBottom": "#f5f5f5",
"backgroundTextStyle": "light",
"navigationBarTitleText": "等级介绍"
}

View File

@ -0,0 +1,47 @@
<view wx:if="{{data_base != null}}">
<!-- 等级信息 -->
<view wx:if="{{level_list.length > 0}}" class="panel-item">
<view wx:for="{{level_list}}" wx:key="item" class="bg-white spacing-mb">
<view class="panel-title">{{item.name}}</view>
<view class="panel-content">
<view class="item br-b oh">
<view class="title fl">等级证书</view>
<view class="content cr-888 fl br-l images">
<image src="{{item.images_url}}" class="avatar dis-block fl" mode="widthFix" />
</view>
</view>
<view class="item br-b oh">
<view class="title fl">返佣比例</view>
<view class="content cr-888 fl br-l">
<view>一级 {{item.level_rate_one}}%</view>
<view>二级 {{item.level_rate_two}}%</view>
<view>三级 {{item.level_rate_three}}%</view>
</view>
</view>
<view class="item br-b oh">
<view class="title fl">消费金额</view>
<view class="content cr-888 fl br-l">{{item.rules_msg}}</view>
</view>
</view>
</view>
</view>
<!-- 等级介绍 -->
<view wx:if="{{(data_base.user_center_level_desc || null) != null && data_base.user_center_level_desc.length > 0}}" class="spacing-mt user-center-level-desc">
<view class="tips-desc">
<view wx:for="{{data_base.user_center_level_desc}}" wx:key="key" class="item">
{{item}}
</view>
</view>
</view>
<view wx:if="{{((data_base.user_center_level_desc || null) != null && data_base.user_center_level_desc.length > 0) || level_list.length > 0}}">
<import src="/pages/common/bottom_line.wxml" />
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
</view>
</view>
<view wx:if="{{level_list.length <= 0 && ((data_base.user_center_level_desc || null) == null || data_base.user_center_level_desc.length <= 0)}}">
<import src="/pages/common/nodata.wxml" />
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
</view>

View File

@ -0,0 +1,48 @@
/*
* 等级信息
*/
.panel-item .panel-title {
background: #fff;
font-weight: bold;
padding: 15rpx;
border-bottom: 2px solid #eee;
font-size: 34rpx;
}
.panel-item .panel-content .item {
padding: 20rpx 0;
}
.panel-item .panel-content .item:last-child {
border: 0;
}
.panel-item .panel-content .item .title {
width: 25%;
padding-left: 20rpx;
}
.panel-item .panel-content .item .content {
width: calc(75% - 50rpx);
padding-left: 20rpx;
min-height: 46rpx;
}
.panel-item .panel-content .item view {
line-height: 46rpx;
}
.panel-item .panel-content .item .images image {
width: 60rpx;
height: 60rpx;
}
/*
* 等级介绍
*/
.user-center-level-desc {
padding: 0 10rpx;
}
.user-center-level-desc .tips-desc {
background: #def2fd;
border: 1px solid #cfeeff;
color: #1490d2;
padding: 10rpx;
font-size: 26rpx;
border-radius: 2px;
}

View File

@ -0,0 +1,86 @@
const app = getApp();
Page({
data: {
params: null,
data_list_loding_status: 1,
data_list_loding_msg: '',
data_bottom_line_status: false,
detail: null,
detail_list: [],
},
onLoad(params) {
//params['id'] = 1;
this.setData({ params: params });
this.init();
},
onShow() {},
init() {
var self = this;
wx.showLoading({ title: "加载中..." });
this.setData({
data_list_loding_status: 1
});
wx.request({
url: app.get_request_url("detail", "order", "distribution"),
method: "POST",
data: {
id: this.data.params.id
},
dataType: "json",
success: res => {
wx.hideLoading();
wx.stopPullDownRefresh();
if (res.data.code == 0) {
var data = res.data.data;
self.setData({
detail: data.data,
detail_list: [
{ name: "用户昵称", value: data.data.user_name_view || '' },
{ name: "订单金额", value: data.data.total_price + ' 元' || '' },
{ name: "退款金额", value: data.data.refund_price + ' 元' || '' },
{ name: "订单状态", value: data.data.order_status_name || '' },
{ name: "支付状态", value: data.data.order_pay_status_name || '' },
{ name: "来源终端", value: data.data.order_client_type_name || '' },
{ name: "下单时间", value: data.data.add_time_time || '' },
],
data_list_loding_status: 3,
data_bottom_line_status: true,
data_list_loding_msg: '',
});
} else {
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: res.data.msg,
});
if (app.is_login_check(res.data, self, 'init')) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
wx.hideLoading();
wx.stopPullDownRefresh();
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: '服务器请求出错',
});
app.showToast("服务器请求出错");
}
});
},
// 下拉刷新
onPullDownRefresh() {
this.init();
},
});

View File

@ -0,0 +1,8 @@
{
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#ff6a80",
"backgroundColorTop": "#ff6a80",
"backgroundColorBottom": "#f5f5f5",
"backgroundTextStyle": "light",
"navigationBarTitleText": "订单详情"
}

View File

@ -0,0 +1,31 @@
<view wx:if="{{detail != null}}">
<view wx:if="{{detail_list.length > 0}}" class="panel-item">
<view class="panel-content bg-white">
<view class="item br-b oh">
<view class="title fl">用户头像</view>
<view class="content cr-888 fl br-l">
<image src="{{detail.avatar}}" class="avatar dis-block fl" mode="widthFix" bindtap="avatar_event" data-value="{{detail.avatar}}" />
</view>
</view>
<view wx:for="{{detail_list}}" wx:key="item" class="item br-b oh">
<view class="title fl">{{item.name}}</view>
<view class="content cr-888 fl br-l">{{item.value}}</view>
</view>
</view>
</view>
<import src="/pages/common/bottom_line.wxml" />
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
</view>
<view wx:if="{{detail == null}}">
<import src="/pages/common/nodata.wxml" />
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
<view class="nav-back tc wh-auto">
<navigator url="/pages/plugins/distribution/order/order" open-type="navigateBack" hover-class="none">
<button type="default" size="mini" class="cr-888 br" hover-class="none">返回</button>
</navigator>
</view>
</view>

View File

@ -0,0 +1,31 @@
.panel-item .panel-title {
background: #fff;
font-weight: bold;
padding: 15rpx;
border-bottom: 2px solid #eee;
font-size: 34rpx;
}
.panel-item .panel-content .item {
padding: 20rpx 0;
}
.panel-item .panel-content .item:last-child {
border: 0;
}
.panel-item .panel-content .item .title {
width: 25%;
padding-left: 20rpx;
}
.panel-item .panel-content .item .content {
width: calc(75% - 50rpx);
padding-left: 20rpx;
min-height: 46rpx;
}
.panel-item .panel-content .item view {
line-height: 46rpx;
}
.panel-item .panel-content .item .content .avatar {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
}

View File

@ -0,0 +1,170 @@
const app = getApp();
Page({
data: {
data_list: [],
data_page_total: 0,
data_page: 1,
data_list_loding_status: 1,
data_bottom_line_status: false,
params: null,
nav_status_list: [
{ name: "全部", value: "-1" },
{ name: "待支付", value: "1" },
{ name: "已支付", value: "2" },
{ name: "待收货", value: "3" },
{ name: "已完成", value: "4" },
],
nav_status_index: 0,
},
onLoad(params) {
// 是否指定状态
var nav_status_index = 0;
if ((params.status || null) != null) {
for (var i in this.data.nav_status_list) {
if (this.data.nav_status_list[i]['value'] == params.status) {
nav_status_index = i;
break;
}
}
}
this.setData({
params: params,
nav_status_index: nav_status_index,
});
this.init();
},
onShow() {},
init() {
var user = app.get_user_info(this, 'init');
if (user != false) {
// 用户未绑定用户则转到登录页面
if (app.user_is_need_login(user)) {
wx.redirectTo({
url: "/pages/login/login?event_callback=init"
});
return false;
} else {
// 获取数据
this.get_data_list();
}
} else {
this.setData({
data_list_loding_status: 0,
data_bottom_line_status: false,
});
}
},
// 获取数据
get_data_list(is_mandatory) {
// 分页是否还有数据
if ((is_mandatory || 0) == 0) {
if (this.data.data_bottom_line_status == true) {
return false;
}
}
// 加载loding
wx.showLoading({ title: "加载中..." });
this.setData({
data_list_loding_status: 1
});
// 参数
var order_status = ((this.data.nav_status_list[this.data.nav_status_index] || null) == null) ? -1 : this.data.nav_status_list[this.data.nav_status_index]['value'];
// 获取数据
wx.request({
url: app.get_request_url("index", "order", "distribution"),
method: "POST",
data: {
page: this.data.data_page,
status: order_status,
uid: this.data.params.uid || 0,
is_more: 1,
},
dataType: "json",
success: res => {
wx.hideLoading();
wx.stopPullDownRefresh();
if (res.data.code == 0) {
if (res.data.data.data.length > 0) {
if (this.data.data_page <= 1) {
var temp_data_list = res.data.data.data;
} else {
var temp_data_list = this.data.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.data_page + 1,
payment_list: res.data.data.payment_list || [],
});
// 是否还有数据
if (this.data.data_page > 1 && this.data.data_page > this.data.data_page_total) {
this.setData({ data_bottom_line_status: true });
} else {
this.setData({ data_bottom_line_status: false });
}
} else {
this.setData({
data_list_loding_status: 0,
data_list: [],
data_bottom_line_status: false,
});
}
} else {
this.setData({
data_list_loding_status: 0,
});
if (app.is_login_check(res.data, this, 'get_data_list')) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
wx.hideLoading();
wx.stopPullDownRefresh();
this.setData({
data_list_loding_status: 2,
});
app.showToast("服务器请求出错");
}
});
},
// 下拉刷新
onPullDownRefresh() {
this.setData({
data_page: 1
});
this.get_data_list(1);
},
// 滚动加载
scroll_lower(e) {
this.get_data_list();
},
// 导航事件
nav_event(e) {
this.setData({
nav_status_index: e.currentTarget.dataset.index || 0,
data_page: 1,
});
this.get_data_list(1);
},
});

View File

@ -0,0 +1,8 @@
{
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#ff6a80",
"backgroundColorTop": "#ff6a80",
"backgroundColorBottom": "#f5f5f5",
"backgroundTextStyle": "light",
"navigationBarTitleText": "分销订单"
}

View File

@ -0,0 +1,44 @@
<!-- 导航 -->
<view class="nav">
<block wx:for="{{nav_status_list}}" wx:key="key">
<view class="item fl tc cr-888 {{nav_status_index == index ? 'active' : ''}}" data-index="{{index}}" bindtap="nav_event">{{item.name}}</view>
</block>
</view>
<!-- 列表 -->
<scroll-view scroll-y="{{true}}" class="scroll-box" bindscrolltolower="scroll_lower" lower-threshold="30">
<view class="data-list">
<view class="item bg-white spacing-mb" wx:if="{{data_list.length > 0}}" wx:for="{{data_list}}" wx:key="key">
<view class="base oh br-b">
<image src="{{item.avatar}}" class="avatar dis-block fl" mode="widthFix" bindtap="avatar_event" data-value="{{item.avatar}}" />
<text class="fr nickname cr-888">{{item.user_name_view || ''}}</text>
</view>
<navigator url="/pages/plugins/distribution/order-detail/order-detail?id={{item.id}}" hover-class="none">
<view class="content">
<view class="multi-text">
<text class="title cr-666">订单金额</text>
<text class="value">{{item.total_price}}</text>
<text class="unit cr-888">元</text>
</view>
<view class="multi-text">
<text class="title cr-666">订单状态</text>
<text class="value">{{item.order_status_name}}</text>
</view>
<view class="multi-text">
<text class="title cr-666">来源终端</text>
<text class="value">{{item.order_client_type_name}}</text>
</view>
</view>
</navigator>
</view>
<view wx:if="{{data_list.length == 0}}">
<import src="/pages/common/nodata.wxml" />
<template is="nodata" data="{{status: data_list_loding_status}}">
</template>
</view>
<import src="/pages/common/bottom_line.wxml" />
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
</view>
</scroll-view>

View File

@ -0,0 +1,47 @@
/*
* 导航
*/
.nav {
background: #eee;
height: 80rpx;
line-height: 80rpx;
}
.nav .item {
width: 20%;
}
.nav .active {
color: #ff6a80;
}
/*
* 列表
*/
.scroll-box {
height: calc(100vh - 80rpx);
}
.data-list .item .base {
padding: 15rpx 10rpx;
}
.data-list .item .base .avatar {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
}
.data-list .item .base .nickname {
margin-top: 10rpx;
}
.data-list .item .content {
padding: 20rpx 10rpx;
}
.data-list .item .content .multi-text {
line-height: 50rpx;
}
.data-list .item .content .multi-text .title {
margin-right: 30rpx;
}
.data-list .item .content .multi-text .value {
font-weight: 500;
}
.data-list .item .content .multi-text .unit {
margin-left: 10rpx;
}

View File

@ -0,0 +1,132 @@
const app = getApp();
Page({
data: {
data_list_loding_status: 1,
data_list_loding_msg: '加载中...',
data_bottom_line_status: false,
user_share_poster: null,
user_share_qrode: null,
user_share_url: null,
},
onShow() {
this.init();
},
init() {
var self = this;
wx.showLoading({ title: "加载中..." });
this.setData({
data_list_loding_status: 1
});
wx.request({
url: app.get_request_url("index", "poster", "distribution"),
method: "POST",
data: {},
dataType: "json",
success: res => {
wx.hideLoading();
wx.stopPullDownRefresh();
if (res.data.code == 0) {
var data = res.data.data;
self.setData({
user_share_poster: data.user_share_poster || null,
user_share_qrode: data.user_share_qrode || null,
user_share_url: data.user_share_url || null,
data_list_loding_status: 3,
data_bottom_line_status: true,
data_list_loding_msg: '',
});
// 是否全部没数据
if (self.data.user_share_poster == null && self.data.user_share_qrode == null && self.data.user_share_url == null)
{
self.setData({
data_list_loding_status: 0,
data_bottom_line_status: false,
});
}
} else {
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: res.data.msg,
});
if (app.is_login_check(res.data, self, 'init')) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
wx.hideLoading();
wx.stopPullDownRefresh();
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: '服务器请求出错',
});
app.showToast("服务器请求出错");
}
});
},
// 下拉刷新
onPullDownRefresh() {
this.init();
},
// 刷新海报
poster_refresh_event(e) {
wx.showLoading({ title: "处理中..." });
wx.request({
url: app.get_request_url("refresh", "poster", "distribution"),
method: "POST",
data: {},
dataType: "json",
success: res => {
wx.hideLoading();
if (res.data.code == 0) {
this.setData({ user_share_poster: res.data.data});
app.showToast(res.data.msg, "success");
} else {
if (app.is_login_check(res.data, self, 'init')) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
wx.hideLoading();
app.showToast("服务器请求出错");
}
});
},
// 图片查看事件
images_show_event(e) {
var value = e.currentTarget.dataset.value || null;
if (value != null) {
wx.previewImage({
current: value,
urls: [value]
});
} else {
app.showToast('宣传图片地址有误');
}
},
// url事件
url_event(e) {
if ((this.data.user_share_url || null) != null) {
wx.setClipboardData({
data: this.data.user_share_url,
success(res) {
app.showToast('复制成功', 'success');
}
})
} else {
app.showToast('链接地址有误');
}
},
});

View File

@ -0,0 +1,8 @@
{
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#ff6a80",
"backgroundColorTop": "#ff6a80",
"backgroundColorBottom": "#f5f5f5",
"backgroundTextStyle": "light",
"navigationBarTitleText": "推广返利"
}

View File

@ -0,0 +1,47 @@
<view wx:if="{{user_share_poster != null || user_share_qrode != null || user_share_url != null}}">
<view wx:if="{{user_share_poster != null}}" class="share qrcode bg-white spacing-mb">
<view class="title">海报分享</view>
<view class="desc cr-888 br-b">
保存海报后,发送给微信好友/群、QQ好友/群,分享到分朋友圈,微博等进行推广,轻轻松松赚返利!
</view>
<view class="content">
<image src="{{user_share_poster}}" class="wh-auto dis-block" mode="widthFix" />
</view>
<view class="submit submit-double oh">
<button type="primary" plain="{{true}}" hover-class="none" size="mini" data-value="{{user_share_poster}}" bindtap="images_show_event" class="fl">查看长按保存</button>
<button type="primary" plain="{{true}}" hover-class="none" size="mini" bindtap="poster_refresh_event" class="fr">重新生成</button>
</view>
</view>
<view wx:if="{{user_share_qrode != null}}" class="share qrcode bg-white spacing-mb">
<view class="title">二维码分享</view>
<view class="desc cr-888 br-b">
保存二维码后,发送给微信好友/群、QQ好友/群,分享到分朋友圈,微博等进行推广,轻轻松松赚返利!
</view>
<view class="content">
<image src="{{user_share_qrode}}" class="wh-auto dis-block" mode="widthFix" />
</view>
<view class="submit">
<button type="primary" plain="{{true}}" hover-class="none" size="mini" class="dis-block wh-auto" data-value="{{user_share_qrode}}" bindtap="images_show_event">查看二维码长按保存</button>
</view>
</view>
<view wx:if="{{user_share_url != null}}" class="share url bg-white">
<view class="title">链接分享</view>
<view class="desc cr-888 br-b">
复制以下链接,发送给微信好友/群、QQ好友/群,分享到分朋友圈,微博等进行推广,轻轻松松赚返利!
</view>
<view class="content">{{user_share_url}}</view>
<view class="submit">
<button type="primary" plain="{{true}}" hover-class="none" size="mini" class="dis-block wh-auto" bindtap="url_event">点击复制链接地址</button>
</view>
</view>
<import src="/pages/common/bottom_line.wxml" />
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
</view>
<view wx:if="{{user_share_qrode == null && user_share_url == null}}">
<import src="/pages/common/nodata.wxml" />
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
</view>

View File

@ -0,0 +1,40 @@
/*
* 公共
*/
.share {
padding: 20rpx 10rpx;
}
.share .title {
border-left: 3px solid #ff6a80;
margin-left: 10rpx;
padding-left: 20rpx;
font-size: 32rpx;
font-weight: 500;
}
.share .desc {
font-size: 32rpx;
padding: 0 10rpx 20rpx 10rpx;
margin-top: 20rpx;
}
.share .content {
padding: 20rpx;
}
.share .submit {
margin: 20rpx 0;
padding: 0 20rpx;
}
.share button {
height: 70rpx;
line-height: 70rpx;
}
.submit-double button {
width: 48%;
}
/*
* 链接
*/
.url .content {
font-size: 32rpx;
color: #ff6a80;
}

View File

@ -0,0 +1,89 @@
const app = getApp();
Page({
data: {
params: null,
data_list_loding_status: 1,
data_list_loding_msg: '',
data_bottom_line_status: false,
detail: null,
detail_list: [],
},
onLoad(params) {
//params['id'] = 1;
this.setData({ params: params });
this.init();
},
onShow() {},
init() {
var self = this;
wx.showLoading({ title: "加载中..." });
this.setData({
data_list_loding_status: 1
});
wx.request({
url: app.get_request_url("detail", "profit", "distribution"),
method: "POST",
data: {
id: this.data.params.id
},
dataType: "json",
success: res => {
wx.hideLoading();
wx.stopPullDownRefresh();
if (res.data.code == 0) {
var data = res.data.data;
self.setData({
detail: data.data,
detail_list: [
{ name: "订单金额", value: data.data.total_price + '元' || '' },
{ name: "退款金额", value: data.data.refund_price + '元' || '' },
{ name: "收益金额", value: data.data.profit_price + '元' || '' },
{ name: "当前级别", value: data.data.level_name || '' },
{ name: "结算状态", value: data.data.status_name || '' },
{ name: "订单状态", value: data.data.order_status_name || '' },
{ name: "订单支付状态", value: data.data.order_pay_status_name || '' },
{ name: "来源终端", value: data.data.order_client_type_name || '' },
{ name: "添加时间", value: data.data.add_time_time || '' },
{ name: "更新时间", value: data.data.upd_time_text || '' },
],
data_list_loding_status: 3,
data_bottom_line_status: true,
data_list_loding_msg: '',
});
} else {
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: res.data.msg,
});
if (app.is_login_check(res.data, self, 'init')) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
wx.hideLoading();
wx.stopPullDownRefresh();
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: '服务器请求出错',
});
app.showToast("服务器请求出错");
}
});
},
// 下拉刷新
onPullDownRefresh() {
this.init();
},
});

View File

@ -0,0 +1,8 @@
{
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#ff6a80",
"backgroundColorTop": "#ff6a80",
"backgroundColorBottom": "#f5f5f5",
"backgroundTextStyle": "light",
"navigationBarTitleText": "收益详情"
}

View File

@ -0,0 +1,24 @@
<view wx:if="{{detail != null}}">
<view wx:if="{{detail_list.length > 0}}" class="panel-item">
<view class="panel-content bg-white">
<view wx:for="{{detail_list}}" wx:key="item" class="item br-b oh">
<view class="title fl">{{item.name}}</view>
<view class="content cr-888 fl br-l">{{item.value}}</view>
</view>
</view>
</view>
<import src="/pages/common/bottom_line.wxml" />
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
</view>
<view wx:if="{{detail == null}}">
<import src="/pages/common/nodata.wxml" />
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
<view class="nav-back tc wh-auto">
<navigator url="/pages/plugins/distribution/profit/profit" open-type="navigateBack" hover-class="none">
<button type="default" size="mini" class="cr-888 br" hover-class="none">返回</button>
</navigator>
</view>
</view>

View File

@ -0,0 +1,166 @@
const app = getApp();
Page({
data: {
data_list: [],
data_page_total: 0,
data_page: 1,
data_list_loding_status: 1,
data_bottom_line_status: false,
params: null,
nav_status_list: [
{ name: "全部", value: "-1" },
{ name: "待结算", value: "0" },
{ name: "已结算", value: "1" },
{ name: "已失效", value: "2" },
],
nav_status_index: 0,
},
onLoad(params) {
// 是否指定状态
var nav_status_index = 0;
if ((params.status || null) != null) {
for (var i in this.data.nav_status_list) {
if (this.data.nav_status_list[i]['value'] == params.status) {
nav_status_index = i;
break;
}
}
}
this.setData({
params: params,
nav_status_index: nav_status_index,
});
this.init();
},
onShow() {},
init() {
var user = app.get_user_info(this, 'init');
if (user != false) {
// 用户未绑定用户则转到登录页面
if (app.user_is_need_login(user)) {
wx.redirectTo({
url: "/pages/login/login?event_callback=init"
});
return false;
} else {
// 获取数据
this.get_data_list();
}
} else {
this.setData({
data_list_loding_status: 0,
data_bottom_line_status: false,
});
}
},
// 获取数据
get_data_list(is_mandatory) {
// 分页是否还有数据
if ((is_mandatory || 0) == 0) {
if (this.data.data_bottom_line_status == true) {
return false;
}
}
// 加载loding
wx.showLoading({ title: "加载中..." });
this.setData({
data_list_loding_status: 1
});
// 参数
var status = ((this.data.nav_status_list[this.data.nav_status_index] || null) == null) ? -1 : this.data.nav_status_list[this.data.nav_status_index]['value'];
// 获取数据
wx.request({
url: app.get_request_url("index", "profit", "distribution"),
method: "POST",
data: {
page: this.data.data_page,
status: status,
is_more: 1,
},
dataType: "json",
success: res => {
wx.hideLoading();
wx.stopPullDownRefresh();
if (res.data.code == 0) {
if (res.data.data.data.length > 0) {
if (this.data.data_page <= 1) {
var temp_data_list = res.data.data.data;
} else {
var temp_data_list = this.data.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.data_page + 1,
});
// 是否还有数据
if (this.data.data_page > 1 && this.data.data_page > this.data.data_page_total) {
this.setData({ data_bottom_line_status: true });
} else {
this.setData({ data_bottom_line_status: false });
}
} else {
this.setData({
data_list_loding_status: 0,
data_list: [],
data_bottom_line_status: false,
});
}
} else {
this.setData({
data_list_loding_status: 0,
});
if (app.is_login_check(res.data, this, 'get_data_list')) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
wx.hideLoading();
wx.stopPullDownRefresh();
this.setData({
data_list_loding_status: 2,
});
app.showToast("服务器请求出错");
}
});
},
// 下拉刷新
onPullDownRefresh() {
this.setData({
data_page: 1
});
this.get_data_list(1);
},
// 滚动加载
scroll_lower(e) {
this.get_data_list();
},
// 导航事件
nav_event(e) {
this.setData({
nav_status_index: e.currentTarget.dataset.index || 0,
data_page: 1,
});
this.get_data_list(1);
},
});

View File

@ -0,0 +1,8 @@
{
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#ff6a80",
"backgroundColorTop": "#ff6a80",
"backgroundColorBottom": "#f5f5f5",
"backgroundTextStyle": "light",
"navigationBarTitleText": "收益明细"
}

View File

@ -0,0 +1,50 @@
<!-- 导航 -->
<view class="nav">
<block wx:for="{{nav_status_list}}" wx:key="key">
<view class="item fl tc cr-888 {{nav_status_index == index ? 'active' : ''}}" data-index="{{index}}" bindtap="nav_event">{{item.name}}</view>
</block>
</view>
<!-- 列表 -->
<scroll-view scroll-y="{{true}}" class="scroll-box" bindscrolltolower="scroll_lower" lower-threshold="30">
<view class="data-list">
<view class="item bg-white spacing-mb" wx:if="{{data_list.length > 0}}" wx:for="{{data_list}}" wx:key="key">
<view class="base oh br-b">
<text class="cr-666">{{item.add_time_time}}</text>
<text class="fr cr-main">{{item.status_name}}</text>
</view>
<navigator url="/pages/plugins/distribution/profit-detail/profit-detail?id={{item.id}}" hover-class="none">
<view class="content">
<view class="multi-text">
<text class="title cr-666">订单金额</text>
<text class="value">{{item.total_price}}</text>
<text class="unit cr-888">元</text>
</view>
<view class="multi-text">
<text class="title cr-666">退款金额</text>
<text class="value">{{item.refund_price}}</text>
<text class="unit cr-888">元</text>
</view>
<view class="multi-text">
<text class="title cr-666">收益金额</text>
<text class="value">{{item.profit_price}}</text>
<text class="unit cr-888">元</text>
</view>
<view class="multi-text">
<text class="title cr-666">当前级别</text>
<text class="value">{{item.level_name}}</text>
</view>
</view>
</navigator>
</view>
<view wx:if="{{data_list.length == 0}}">
<import src="/pages/common/nodata.wxml" />
<template is="nodata" data="{{status: data_list_loding_status}}">
</template>
</view>
<import src="/pages/common/bottom_line.wxml" />
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
</view>
</scroll-view>

View File

@ -0,0 +1,37 @@
/*
* 导航
*/
.nav {
background: #eee;
height: 80rpx;
line-height: 80rpx;
}
.nav .item {
width: 25%;
}
.nav .active {
color: #ff6a80;
}
/*
* 列表
*/
.scroll-box {
height: calc(100vh - 80rpx);
}
.data-list .item .base,
.data-list .item .content {
padding: 20rpx 10rpx;
}
.data-list .item .content .multi-text {
line-height: 50rpx;
}
.data-list .item .content .multi-text .title {
margin-right: 30rpx;
}
.data-list .item .content .multi-text .value {
font-weight: 500;
}
.data-list .item .content .multi-text .unit {
margin-left: 10rpx;
}

View File

@ -0,0 +1,201 @@
import * as echarts from '../../../../components/ec-canvas/echarts';
const app = getApp();
// 近15日收益走势
let profit_chart_obj = null;
function init_profit_chart(canvas, width, height) {
profit_chart_obj = echarts.init(canvas, null, {
width: width,
height: height
});
canvas.setChart(profit_chart_obj);
return profit_chart_obj;
};
// 近15日推广用户数
let user_chart_obj = null;
function init_user_chart(canvas, width, height) {
user_chart_obj = echarts.init(canvas, null, {
width: width,
height: height
});
canvas.setChart(user_chart_obj);
return user_chart_obj;
};
Page({
data: {
data_list_loding_status: 1,
data_list_loding_msg: '加载中...',
data_bottom_line_status: false,
user_total: null,
user_profit_already_price: 0.00,
user_profit_stay_price: 0.00,
user_profit_total_price: 0.00,
user_data: null,
profit_data: null,
// 图表
profit_chart: {
onInit: init_profit_chart,
},
user_chart: {
onInit: init_user_chart,
},
},
onShow() {
this.init();
},
init() {
var self = this;
wx.showLoading({ title: "加载中..." });
this.setData({
data_list_loding_status: 1
});
wx.request({
url: app.get_request_url("index", "statistics", "distribution"),
method: "POST",
data: {},
dataType: "json",
success: res => {
wx.hideLoading();
wx.stopPullDownRefresh();
if (res.data.code == 0) {
var data = res.data.data;
self.setData({
user_total: data.user_total || null,
user_profit_already_price: data.user_profit_already_price || 0.00,
user_profit_stay_price: data.user_profit_stay_price || 0.00,
user_profit_total_price: data.user_profit_total_price || 0.00,
user_data: data.user_chart || null,
profit_data: data.profit_chart || null,
data_list_loding_status: 3,
data_bottom_line_status: true,
data_list_loding_msg: '',
});
// 图表
setTimeout(function()
{
// 近15日收益走势
self.set_profit_chart(data.profit_chart);
// 近15日推广用户数
self.set_profit_user(data.user_chart);
}, 200);
} else {
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: res.data.msg,
});
if (app.is_login_check(res.data, self, 'init')) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
wx.hideLoading();
wx.stopPullDownRefresh();
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: false,
data_list_loding_msg: '服务器请求出错',
});
app.showToast("服务器请求出错");
}
});
},
// 近15日推广用户数
set_profit_user(data) {
if ((data || null) != null) {
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
}
},
grid: {
top: '10%',
left: '5%',
right: '5%',
bottom: '15%',
containLabel: true
},
xAxis: {
type: 'category',
boundaryGap: false,
data: data.name_arr
},
yAxis: {
type: 'value'
},
series: [{
data: data.data,
type: 'bar',
areaStyle: {}
}]
};
if (typeof (user_chart_obj) == 'object') {
user_chart_obj.setOption(option);
}
}
},
// 近15日收益走势图表
set_profit_chart(data) {
if ((data || null) != null)
{
var option = {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985'
}
}
},
grid: {
top: '10%',
left: '5%',
right: '5%',
bottom: '15%',
containLabel: true
},
xAxis: {
type: 'category',
boundaryGap: false,
data: data.name_arr
},
yAxis: {
type: 'value'
},
series: [{
data: data.data,
type: 'line'
}]
};
if (typeof (profit_chart_obj) == 'object') {
profit_chart_obj.setOption(option);
}
}
},
// 下拉刷新
onPullDownRefresh() {
this.init();
},
});

View File

@ -0,0 +1,11 @@
{
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#ff6a80",
"backgroundColorTop": "#ff6a80",
"backgroundColorBottom": "#f5f5f5",
"backgroundTextStyle": "light",
"navigationBarTitleText": "数据统计",
"usingComponents": {
"component-ec-canvas": "/components/ec-canvas/ec-canvas"
}
}

View File

@ -0,0 +1,61 @@
/*
* 公共
*/
.container {
padding: 20rpx 10rpx;
}
.container .title {
border-left: 3px solid #ff6a80;
padding-left: 20rpx;
font-size: 32rpx;
font-weight: 500;
}
.container .base-content {
padding: 30rpx 10rpx;
}
.container .base-content .name {
margin-bottom: 10rpx;
}
.container .base-content .value .golden,
.container .base-content .value .yellow,
.container .base-content .value .green {
font-weight: 500;
margin-right: 10rpx;
}
.container .base-content .value .golden {
color: #ff6a80;
}
.container .base-content .value .yellow {
color: #f37b1d;
}
.container .base-content .value .green {
color: #5eb95e;
}
/*
* 用户
*/
.user-container .item {
width: 50%;
}
/*
* 返利
*/
.profit-container .item {
width: 33.33%;
}
/*
* 图表
*/
.chart-container {
width: 100%;
height: 520rpx;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.chart-container .chart-not-data {
margin-top: 230rpx;
}

View File

@ -0,0 +1,147 @@
const app = getApp();
Page({
data: {
data_list: [],
data_page_total: 0,
data_page: 1,
data_list_loding_status: 1,
data_bottom_line_status: false,
params: null,
},
onLoad(params) {
this.setData({
params: params,
});
this.init();
},
onShow() { },
init() {
var user = app.get_user_info(this, 'init');
if (user != false) {
// 用户未绑定用户则转到登录页面
if (app.user_is_need_login(user)) {
wx.redirectTo({
url: "/pages/login/login?event_callback=init"
});
return false;
} else {
// 获取数据
this.get_data_list();
}
} else {
this.setData({
data_list_loding_status: 0,
data_bottom_line_status: false,
});
}
},
// 获取数据
get_data_list(is_mandatory) {
// 分页是否还有数据
if ((is_mandatory || 0) == 0) {
if (this.data.data_bottom_line_status == true) {
return false;
}
}
// 加载loding
wx.showLoading({ title: "加载中..." });
this.setData({
data_list_loding_status: 1
});
// 获取数据
wx.request({
url: app.get_request_url("index", "team", "distribution"),
method: "POST",
data: {
page: this.data.data_page,
},
dataType: "json",
success: res => {
wx.hideLoading();
wx.stopPullDownRefresh();
if (res.data.code == 0) {
if (res.data.data.data.length > 0) {
if (this.data.data_page <= 1) {
var temp_data_list = res.data.data.data;
} else {
var temp_data_list = this.data.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.data_page + 1,
});
// 是否还有数据
if (this.data.data_page > 1 && this.data.data_page > this.data.data_page_total) {
this.setData({ data_bottom_line_status: true });
} else {
this.setData({ data_bottom_line_status: false });
}
} else {
this.setData({
data_list_loding_status: 0,
data_list: [],
data_bottom_line_status: false,
});
}
} else {
this.setData({
data_list_loding_status: 0,
});
if (app.is_login_check(res.data, this, 'get_data_list')) {
app.showToast(res.data.msg);
}
}
},
fail: () => {
wx.hideLoading();
wx.stopPullDownRefresh();
this.setData({
data_list_loding_status: 2,
});
app.showToast("服务器请求出错");
}
});
},
// 下拉刷新
onPullDownRefresh() {
this.setData({
data_page: 1
});
this.get_data_list(1);
},
// 滚动加载
scroll_lower(e) {
this.get_data_list();
},
// 头像查看
avatar_event(e) {
var value = e.currentTarget.dataset.value || null;
if (value != null)
{
wx.previewImage({
current: value,
urls: [value]
});
} else {
app.showToast('头像地址有误');
}
},
});

View File

@ -0,0 +1,8 @@
{
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#ff6a80",
"backgroundColorTop": "#ff6a80",
"backgroundColorBottom": "#f5f5f5",
"backgroundTextStyle": "light",
"navigationBarTitleText": "我的团队"
}

View File

@ -0,0 +1,46 @@
<scroll-view scroll-y="{{true}}" class="scroll-box" bindscrolltolower="scroll_lower" lower-threshold="30">
<view class="data-list">
<view class="item bg-white spacing-mb" wx:if="{{data_list.length > 0}}" wx:for="{{data_list}}" wx:key="key">
<view class="base oh br-b">
<image src="{{item.avatar}}" class="avatar dis-block fl" mode="widthFix" bindtap="avatar_event" data-value="{{item.avatar}}" />
<text class="fr nickname cr-888">{{item.user_name_view || ''}}</text>
</view>
<view class="content">
<view class="multi-text">
<text class="title cr-666">消费金额</text>
<text class="value">{{item.order_total}}</text>
<text class="unit cr-888">元</text>
</view>
<view class="multi-text">
<text class="title cr-666">下级消费</text>
<text class="value">{{item.find_order_total}}</text>
<text class="unit cr-888">元</text>
</view>
<view class="multi-text">
<text class="title cr-666">下级用户</text>
<text class="value">{{item.referrer_count}}</text>
<text class="unit cr-888">人</text>
</view>
<view class="multi-text">
<text class="title cr-666">加入时间</text>
<text class="value">{{item.add_time_time}}</text>
</view>
</view>
<view class="operation tr br-t-dashed">
<navigator url="/pages/plugins/distribution/order/order?uid={{item.id}}" hover-class="none">
<button class="cr-888 br" type="default" size="mini" hover-class="none" class="submit-order">用户订单</button>
</navigator>
</view>
</view>
<view wx:if="{{data_list.length == 0}}">
<import src="/pages/common/nodata.wxml" />
<template is="nodata" data="{{status: data_list_loding_status}}">
</template>
</view>
<import src="/pages/common/bottom_line.wxml" />
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
</view>
</scroll-view>

View File

@ -0,0 +1,39 @@
.scroll-box {
height: 100vh;
}
.data-list .item .base {
padding: 15rpx 10rpx;
}
.data-list .item .base .avatar {
width: 60rpx;
height: 60rpx;
border-radius: 50%;
}
.data-list .item .base .nickname {
margin-top: 10rpx;
}
.data-list .item .content {
padding: 20rpx 10rpx;
}
.data-list .item .content .multi-text {
line-height: 50rpx;
}
.data-list .item .content .multi-text .title {
margin-right: 30rpx;
}
.data-list .item .content .multi-text .value {
font-weight: 500;
}
.data-list .item .content .multi-text .unit {
margin-left: 10rpx;
}
.data-list .item .operation {
padding: 20rpx 10rpx;
}
.data-list .item .submit-order {
border: 1px solid #e5e5e5;
color: #888 !important;
}
.data-list .item .operation button:not(:first-child) {
margin-left: 30rpx;
}

View File

@ -0,0 +1,172 @@
const app = getApp();
Page({
data: {
data_bottom_line_status: false,
data_list_loding_status: 1,
data_list_loding_msg: '',
data_base: null,
user_level: null,
extraction: null,
avatar: app.data.default_user_head_src,
nickname: "用户名",
submit_disabled_status: false,
// 导航
nav_list: [],
},
onLoad(params) {},
onShow() {
this.setData({ nav_list: this.nav_list_data()});
this.init();
},
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.nickname || '用户名',
});
},
});
} else {
self.setData({
avatar: user.avatar || app.data.default_user_head_src,
nickname: user.nickname || '用户名',
});
self.get_data();
}
}
},
// 导航数据
nav_list_data() {
return [
{
icon: "/images/plugins/distribution/user-center-order-icon.png",
title: "分销订单",
url: "/pages/plugins/distribution/order/order",
},
{
icon: "/images/plugins/distribution/user-center-profit-icon.png",
title: "收益明细",
url: "/pages/plugins/distribution/profit/profit",
},
{
icon: "/images/plugins/distribution/user-center-team-icon.png",
title: "我的团队",
url: "/pages/plugins/distribution/team/team",
},
{
icon: "/images/plugins/distribution/user-center-poster-icon.png",
title: "推广返利",
url: "/pages/plugins/distribution/poster/poster",
},
{
icon: "/images/plugins/distribution/user-center-statistics-icon.png",
title: "数据统计",
url: "/pages/plugins/distribution/statistics/statistics",
}
];
},
// 获取数据
get_data() {
var self = this;
wx.request({
url: app.get_request_url("index", "user", "distribution"),
method: "POST",
data: {},
dataType: "json",
success: res => {
wx.hideLoading();
wx.stopPullDownRefresh();
if (res.data.code == 0) {
var data = res.data.data;
var data_base = data.base || null;
var user_level = data.user_level || null;
self.setData({
data_base: data_base,
user_level: user_level,
extraction: data.extraction || null,
avatar: (user_level == null || (user_level.images_url || null) == null) ? self.data.avatar : user_level.images_url,
data_list_loding_msg: '',
data_list_loding_status: 0,
data_bottom_line_status: false,
});
// 导航
var temp_data_list = self.nav_list_data();
if (data_base != null && (data_base.is_show_introduce || 0) == 1)
{
// 等级介绍
temp_data_list.push({
icon: "/images/plugins/distribution/user-center-introduce-icon.png",
title: "等级介绍",
url: "/pages/plugins/distribution/introduce/introduce",
});
}
self.setData({ nav_list: temp_data_list });
} 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 });
},
});

View File

@ -0,0 +1,8 @@
{
"enablePullDownRefresh": true,
"navigationBarBackgroundColor": "#ff6a80",
"backgroundColorTop": "#ff6a80",
"backgroundColorBottom": "#f5f5f5",
"backgroundTextStyle": "light",
"navigationBarTitleText": "我的分销"
}

View File

@ -0,0 +1,52 @@
<!-- 头部 -->
<view class="head-box oh">
<view class="head-item tc fl">
<view class="avatar">
<image bindtap="preview_event" binderror="user_avatar_error" src="{{avatar}}" mode="widthFix" class="dis-block" />
</view>
<text class="item-name dis-block cr-fff">{{nickname}}</text>
</view>
<view class="head-base fl">
<view wx:if="{{(user_level || null) != null && (user_level.name || null) != null}}" class="single-text level-name spacing-mt">{{user_level.name}}</view>
<block wx:if="{{(data_base || null) != null && (data_base.is_enable_self_extraction || 0) == 1}}">
<navigator url="/pages/plugins/distribution/extraction/extraction" hover-class="none">
<button size="mini" type="default" hover-class="none" class="head-base-submit">{{(extraction_data || null) == null ? '申请' : ''}}取货点</button>
</navigator>
</block>
</view>
</view>
<!-- 导航 -->
<view wx:if="{{nav_list.length > 0}}" class="nav spacing-mt oh bg-white">
<block wx:for="{{nav_list}}" wx:key="key">
<navigator url="{{item.url}}" hover-class="none">
<view class="item fl tc">
<image src="{{item.icon}}" mode="scaleToFill" class="dis-block" />
<view class="title">{{item.title}}</view>
</view>
</navigator>
</block>
</view>
<!-- 通知 -->
<view class="tips-container spacing-mb">
<!-- 不符合分销条件描述 -->
<block wx:if="{{((user_level || null) == null)}}">
<view wx:if="{{(data_base.non_conformity_desc || null) != null && data_base.non_conformity_desc.length > 0}}" class="tips-item spacing-mt">
<view class="not-opening-vip-desc">
<view wx:for="{{data_base.non_conformity_desc}}" wx:key="key" class="item">
{{item}}
</view>
</view>
</view>
</block>
<!-- 会员中心通知 -->
<view wx:if="{{(data_base.user_center_notice || null) != null && data_base.user_center_notice.length > 0}}" class="tips-item spacing-mt">
<view class="tips">
<view wx:for="{{data_base.user_center_notice}}" wx:key="key" class="item">
{{item}}
</view>
</view>
</view>
</view>

View File

@ -0,0 +1,99 @@
/*
* 头部
*/
.head-box{
padding-top: 20rpx;
font-size: 24rpx;
background-color: #ff6a80;
position: relative;
}
.head-item {
padding-bottom: 30rpx;
}
.head-item .avatar {
padding: 10rpx;
background: #fbbec7;
border: 1px solid #fbbec7;
}
.head-item .avatar image {
width: 140rpx;
height: 140rpx;
}
.head-item .avatar,
.head-item .avatar image {
border-radius: 50%;
}
.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 .level-name {
font-size: 42rpx;
font-weight: 500;
margin-bottom: 30rpx;
color: #fffbe0;
}
.head-base .head-base-submit {
font-size: 26rpx;
height: 55rpx;
line-height: 55rpx;
border: 1px solid #ffe2e5;
background-color: #ffe2e5;
color: #f77076;
position: absolute;
right: 30rpx;
bottom: 35rpx;
padding: 0 20rpx;
}
/*
* 导航
*/
.nav {
border-top: 1px solid #eee;
}
.nav .item {
padding: 30rpx 0;
width: calc(50% - 1px);
border-bottom: 1px solid #eee;
}
.nav .item:nth-child(odd) {
border-right: 1px solid #eee;
}
.nav .item image {
width: 100rpx;
height: 100rpx;
margin: 0 auto;
}
.nav .item .title {
margin-top: 20rpx;
}
/*
* 提示信息
*/
.tips-container .tips-item {
padding: 0 10rpx;
}
.tips-container .tips-item .tips .item {
line-height: 38rpx;
}
.tips-container .not-opening-vip-desc {
background: #def2fd;
border: 1px solid #cfeeff;
color: #1490d2;
padding: 10rpx;
font-size: 26rpx;
border-radius: 2px;
}

View File

@ -8,7 +8,7 @@
<image src="{{user_share_qrode}}" class="wh-auto dis-block" mode="widthFix" />
</view>
<view class="submit">
<button type="primary" plain="{{true}}" hover-class="none" bindtap="qrcode_event">查看二维码长按保存</button>
<button type="primary" plain="{{true}}" hover-class="none" size="mini" class="dis-block wh-auto" bindtap="qrcode_event">查看二维码长按保存</button>
</view>
</view>
@ -19,7 +19,7 @@
</view>
<view class="content">{{user_share_url}}</view>
<view class="submit">
<button type="primary" plain="{{true}}" hover-class="none" bindtap="url_event">点击复制链接地址</button>
<button type="primary" plain="{{true}}" hover-class="none" size="mini" class="dis-block wh-auto" bindtap="url_event">点击复制链接地址</button>
</view>
</view>

View File

@ -23,6 +23,10 @@
margin: 20rpx 0;
padding: 0 20rpx;
}
.share button {
height: 70rpx;
line-height: 70rpx;
}
/*
* 链接

View File

@ -11,7 +11,7 @@ Page({
},
onLoad(params) {
params['id'] = 1;
//params['id'] = 1;
this.setData({ params: params });
this.init();
},

Some files were not shown because too many files have changed in this diff Show More