提交 8f2f2476 编写于 作者: D devil

小程序优化

上级 0fa2f242
App({
data: {
// uuid缓存key
cache_user_uuid_key: "cache_user_uuid_key",
// 配置信息缓存key
cache_config_info_key: "cache_config_info_key",
// 用户登录缓存key
cache_user_login_key: "cache_user_login_key",
......@@ -59,15 +65,13 @@ App({
"user_orderaftersale": "退款/售后",
"user_orderaftersale_detail": "订单售后",
"user_order_comments": "订单评论",
"coupon": "领劵中心",
"user_coupon": "优惠劵",
"extraction_address": "自提地址",
},
// 请求地址
request_url: "{{request_url}}",
// request_url: 'http://shopxo.com/',
// request_url: 'http://dev.shopxo.net/',
request_url: 'http://shopxo.com/',
request_url: 'http://dev.shopxo.net/',
// 基础信息
application_title: "{{application_title}}",
......@@ -80,68 +84,36 @@ App({
/**
* 小程序初始化
*/
onLaunch(options) {
onLaunch(params) {
// 启动参数处理
params = this.launch_params_handle(params);
// 设置设备信息
this.set_system_info();
// 参数缓存
my.setStorage({
key: this.data.cache_launch_info_key,
data: options.query || null
});
// 启动query参数处理
this.startup_query(options.query);
// 初始化配置
this.init_config();
},
/**
* 启动query参数处理
* 启动参数处理
*/
startup_query(params) {
// 没有启动参数则返回
if ((params || null) == null) {
return false;
launch_params_handle(params) {
// 启动参数处理
if ((params.query || null) != null) {
params = params.query;
}
if ((params.scene || null) != null) {
params = this.url_params_to_json(decodeURIComponent(params.scene));
}
// 启动处理类型
var type = params.type || null;
switch (type) {
// type=page
case "page":
// 页面
var page = params.page || null;
// 参数名
var params_field = params.params_field || null;
// 参数值
var params_value = params.params_value || null;
// 页面跳转
if(page != null)
{
my.navigateTo({
url: "/pages/" + page + "/" + page + "?" + params_field + "=" + params_value
});
}
break;
// type=view
case "view" :
var url = params.url || null;
// 页面跳转
if(url != null)
{
my.navigateTo({
url: '/pages/web-view/web-view?url='+url
});
}
break;
// 缓存启动参数
my.setStorage({
key: this.data.cache_launch_info_key,
data: params
});
// 默认
default:
break;
}
return params;
},
/**
......@@ -200,12 +172,13 @@ App({
// 用户信息
var user = this.get_user_cache_info();
var token = (user == false) ? '' : user.token || '';
var uuid = this.request_uuid();
return this.data.request_url +
"index.php?s=/api/" + c + "/" + a + plugins_params+
"&application=app&application_client_type=alipay" +
"&token=" +
token +
"&token=" + token +
"&ajax=ajax" +
"&uuid="+ uuid +
params;
},
......@@ -615,7 +588,7 @@ App({
// 拨打电话
case 4 :
my.makePhoneCall({ number: value });
this.call_tel(value);
break;
}
}
......@@ -711,6 +684,22 @@ App({
}
},
/**
* url参数转json对象
*/
url_params_to_json(url_params) {
var json = new Object();
if ((url_params || null) != null)
{
var arr = url_params.split('&');
for(var i = 0; i<arr.length; i++) {
var temp = arr[i].split('=');
json[temp[0]] = temp[1]
}
}
return json;
},
// 拨打电话
call_tel(value) {
if ((value || null) != null) {
......@@ -793,4 +782,161 @@ App({
});
},
/**
* 获取配置信息、可指定默认值
* key 数据key(支持多级读取、以 . 分割key名称)
* default_value 默认值
*/
get_config(key, default_value) {
var value = null;
var res = my.getStorageSync({key: this.data.cache_config_info_key}) || null;
var config = res.data || null;
if(config != null)
{
// 数据读取
var arr = key.split('.');
if(arr.length == 1)
{
value = config[key] == undefined ? null : config[key];
} else {
value = config;
for(var i in arr)
{
if(value[arr[i]] != undefined)
{
value = value[arr[i]];
} else {
value = null;
break;
}
}
}
}
return (value === null) ? ((default_value === undefined) ? value : default_value) : value;
},
// 初始化 配置信息
init_config() {
var self = this;
my.request({
url: this.get_request_url('common', 'base'),
method: 'POST',
data: {},
dataType: 'json',
header: { 'content-type': 'application/x-www-form-urlencoded' },
success: (res) => {
if (res.data.code == 0) {
my.setStorage({
key: this.data.cache_config_info_key,
data: res.data.data,
fail: () => {
this.showToast('配置信息缓存失败');
}
});
} else {
this.showToast(res.data.msg);
}
},
fail: () => {
this.showToast('服务器请求出错');
},
});
},
/**
* 配置是否有效(100毫秒检验一次、最多检验100次)
* object 回调操作对象
* method 回调操作对象的函数
*/
is_config(object, method) {
var self = this;
var count = 0;
var timer = setInterval(function()
{
if(self.get_config('status') == 1)
{
clearInterval(timer);
if (typeof object === 'object' && (method || null) != null) {
object[method](true);
}
}
count++;
if(count >= 100)
{
clearInterval(timer);
}
}, 100);
},
/**
* 百度坐标BD-09到火星坐标GCJ02(高德,谷歌,腾讯坐标)
* object 回调操作对象
* method 回调操作对象的函数
*/
map_bd_to_gcj(lng, lat) {
  let x_pi = 3.14159265358979324 * 3000.0 / 180.0;
  let x = lng - 0.0065;
  let y = lat - 0.006;
  let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
  let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
  let lngs = z * Math.cos(theta);
  let lats = z * Math.sin(theta);
  return {
    lng: lngs,
    lat: lats
  };
},
/**
* 百度坐标BD-09到火星坐标GCJ02(高德,谷歌,腾讯坐标)
* lng 经度
* lat 纬度
* name 地图上面显示的名称
* address 地图上面显示的详细地址
* scale 缩放比例,范围5~18
*/
open_location(lng, lat, name, address, scale) {
if(lng == undefined || lat == undefined || lng == '' || lat == '') {
this.showToast('坐标有误');
return false;
}
// 转换坐标打开位置
var position = this.map_bd_to_gcj(parseFloat(lng), parseFloat(lat));
my.openLocation({
name: name || '',
address: address || '',
scale: scale || 18,
longitude: position.lng,
latitude: position.lat
});
},
// uuid生成
uuid() {
var d = new Date().getTime();
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
var r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
});
},
// 获取当前uuid
request_uuid() {
var res = my.getStorageSync({key: this.data.cache_user_uuid_key}) || null;
var uuid = res.data || null;
if(uuid == null) {
uuid = this.uuid();
my.setStorage({
key: this.data.cache_user_uuid_key,
data: uuid,
fail: () => {
this.showToast('uuid缓存失败');
}
});
}
return uuid;
},
});
......@@ -62,10 +62,11 @@
"pages/plugins/wallet/user-cash/user-cash",
"pages/plugins/wallet/user-cash-detail/user-cash-detail",
"pages/plugins/excellentbuyreturntocash/profit/profit",
"pages/plugins/excellentbuyreturntocash/profit-detail/profit-detail"
"pages/plugins/excellentbuyreturntocash/profit-detail/profit-detail",
"pages/plugins/exchangerate/currency/currency"
],
"window": {
"defaultTitle": "{{application_title}}",
"defaultTitle": "shopxo",
"titleBarColor": "#d2364c",
"backgroundColor": "#f5f5f5"
},
......
/**
* 按钮
*/
.quick-nav-movable-container {
position: fixed;
width: 100%;
height: 100%;
top: 150rpx;
left: 0;
background:transparent;
pointer-events: none;
z-index: 2;
}
.quick-nav-event-submit {
pointer-events: auto;
position: fixed;
bottom: 150rpx;
width: 100rpx;
height: 100rpx;
border-radius: 50%;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
background-color: rgb(210 54 76 / 80%);
}
.quick-nav-event-submit image {
width: 50rpx;
height: 50rpx;
margin: 25rpx auto 25rpx auto;
display: block;
}
/**
* 弹窗
*/
.quick-nav-popup-container {
padding: 20rpx 10rpx 0 10rpx;
background: #fff;
}
.quick-nav-popup-container .close {
overflow: hidden;
}
.quick-nav-popup-container .close .icon-right {
float: right;
}
.quick-nav-popup-content {
max-height: 80vh;
overflow-y: scroll;
overflow-x: hidden;
padding-bottom: 20rpx;
}
/**
* 内容
*/
.quick-nav-data-list {
overflow: hidden;
background: #fff;
}
.quick-nav-data-list .items {
width: calc(25% - 60rpx);
float: left;
padding: 30rpx;
}
.quick-nav-data-list .items-content {
border-radius: 50%;
padding: 20rpx;
text-align: center;
width: 70rpx;
height: 70rpx;
margin: 0 auto;
}
.quick-nav-data-list .items image {
width: 60rpx !important;
height: 60rpx !important;
margin-top: 5rpx;
}
.quick-nav-data-list .items .title {
margin-top: 10rpx;
font-size: 28rpx !important;
text-align:center;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
max-width: 100%;
}
/*
* 没有数据
*/
.quick-nav-popup-container .no-data-box {
padding: 80rpx 0;
text-align: center;
}
.quick-nav-popup-container .no-data-box image {
width: 160rpx;
margin-bottom: 30rpx;
}
.quick-nav-popup-container .no-data-box .no-data-tips {
font-size: 28rpx;
color: #a6a6a6;
}
\ No newline at end of file
<!-- 开启事件 -->
<movable-area class="quick-nav-movable-container">
<movable-view direction="all" x="{{x}}" y="{{y}}" animation="{{false}}" class="quick-nav-event-submit" onTap="quick_open_event">
<image src="/images/quick-submit-icon.png" mode="widthFix"></image>
</movable-view>
</movable-area>
<!-- 弹窗 -->
<component-popup prop-show="{{popup_status}}" prop-position="bottom" onClose="quick_close_event">
<view class="quick-nav-popup-container">
<view class="close oh">
<view class="icon-right" catchTap="quick_close_event">
<icon type="clear" size="20" />
</view>
</view>
<view class="quick-nav-popup-content">
<view a:if="{{data_list.length > 0}}" class="quick-nav-data-list">
<view class="items" a:for="{{data_list}}">
<view class="items-content" data-value="{{item.event_value}}" data-type="{{item.event_type}}" onTap="navigation_event" style="background-color:{{item.bg_color}}">
<image src="{{item.images_url}}" mode="aspectFit" />
</view>
<view class="title">{{item.name}}</view>
</view>
</view>
<view a:else>
<import src="/pages/common/nodata.axml" />
<template is="nodata" data="{{status: 0}}"></template>
</view>
</view>
</view>
</component-popup>
\ No newline at end of file
const app = getApp();
Component({
data: {
popup_status: false,
data_list: [],
system: null,
x: 0,
y: 0,
is_first: 1,
},
// 页面被展示
didMount() {
// 非首次进入则重新初始化配置接口
if(this.data.is_first == 0) {
app.init_config();
}
// 数据设置
var system = app.get_system_info();
this.setData({
is_first: 0,
system: system,
x: 5,
y: (system.windowHeight || 450)-160,
});
},
methods: {
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({ data_list: app.get_config('quick_nav') || [] });
} else {
app.is_config(this, 'init_config');
}
},
// 弹层开启
quick_open_event(e) {
this.setData({popup_status: true, data_list: app.get_config('quick_nav') || []});
},
// 弹层关闭
quick_close_event(e) {
this.setData({ popup_status: false });
},
// 操作事件
navigation_event(e) {
app.operation_event(e);
},
},
});
{
"component": true,
"usingComponents": {
"component-popup": "/components/popup/popup"
}
}
\ No newline at end of file
......@@ -160,13 +160,11 @@
/**
* 留言
*/
.content-textarea-view,
.content-textarea-view textarea {
height: 180rpx;
.content-textarea-view {
padding: 5rpx;
}
.content-textarea-view view {
padding: 12rpx;
.content-textarea-view textarea {
height: 180rpx;
}
/**
......
......@@ -86,8 +86,7 @@
<!-- 留言 -->
<view class="content-textarea-view bg-white spacing-mb">
<textarea a:if="{{!popup_plugins_coupon_status}}" onInput="bind_user_note_event" value="{{user_note_value}}" maxlength="60" placeholder="留言" class="wh-auto" />
<view a:if="{{popup_plugins_coupon_status}}" class="cr-888">{{user_note_value || '留言'}}</view>
<textarea onInput="bind_user_note_event" value="{{user_note_value}}" maxlength="60" placeholder="留言" />
</view>
<!-- 支付方式 -->
......@@ -150,4 +149,7 @@
</view>
</view>
</component-popup>
</block>
\ No newline at end of file
</block>
<!-- 快捷导航 -->
<component-quick-nav />
\ No newline at end of file
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
data_list_loding_status: 1,
buy_submit_disabled_status: false,
data_list_loding_msg: '',
......@@ -15,7 +14,6 @@ Page({
is_first: 1,
extension_data: [],
payment_id: 0,
common_order_is_booking: 0,
common_site_type: 0,
extraction_address: [],
site_model: 0,
......@@ -24,6 +22,10 @@ Page({
{ name: "自提点取货", value: 2 }
],
// 基础配置
price_symbol: app.data.price_symbol,
common_order_is_booking: 0,
// 优惠劵
plugins_coupon_data: null,
plugins_use_coupon_ids: [],
......@@ -53,11 +55,28 @@ Page({
onShow() {
my.setNavigationBar({title: app.data.common_pages_title.buy});
// 数据加载
this.init();
this.setData({is_first: 0});
this.setData({ is_first: 0 });
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
common_order_is_booking: app.get_config('config.common_order_is_booking'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据列表
// 获取数据
init() {
// 订单参数信息是否正确
if (this.data.params == null) {
......@@ -114,7 +133,6 @@ Page({
total_price: data.base.actual_price,
extension_data: data.extension_data || [],
data_list_loding_status: 3,
common_order_is_booking: data.common_order_is_booking || 0,
common_site_type: data.common_site_type || 0,
extraction_address: data.base.extraction_address || [],
plugins_coupon_data: data.plugins_coupon_data || null,
......
{
"pullRefresh": true,
"usingComponents": {
"component-quick-nav": "/components/quick-nav/quick-nav",
"component-popup": "/components/popup/popup"
}
}
\ No newline at end of file
......@@ -81,4 +81,7 @@
<view a:if="{{data_list.length == 0 && data_list_loding_status != 0}}">
<import src="/pages/common/nodata.axml" />
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
</view>
\ No newline at end of file
</view>
<!-- 快捷导航 -->
<component-quick-nav />
\ No newline at end of file
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
data_list_loding_status: 1,
data_list_loding_msg: '购物车空空如也',
data_bottom_line_status: false,
......@@ -11,17 +10,38 @@ Page({
is_selected_all: false,
buy_submit_disabled_status: true,
// 站点模式
// 基础配置
price_symbol: app.data.price_symbol,
common_site_type: 0,
common_is_exhibition_mode_btn_text: null,
customer_service_tel: null,
common_app_customer_service_tel: null,
},
onShow() {
my.setNavigationBar({ title: app.data.common_pages_title.cart });
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
common_site_type: app.get_config('config.common_site_type'),
common_is_exhibition_mode_btn_text: app.get_config('config.common_is_exhibition_mode_btn_text', '立即咨询'),
common_app_customer_service_tel: app.get_config('config.common_app_customer_service_tel'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init(e) {
var user = app.get_user_info(this, "init");
if (user != false) {
......@@ -93,11 +113,6 @@ Page({
data_list_loding_status: data.data.length == 0 ? 0 : 3,
data_bottom_line_status: true,
data_list_loding_msg: '购物车空空如也',
// 站点模式
common_site_type: data.common_site_type || 0,
common_is_exhibition_mode_btn_text: data.common_is_exhibition_mode_btn_text || '立即咨询',
customer_service_tel: data.customer_service_tel || null,
});
// 导航购物车处理
......@@ -430,7 +445,7 @@ Page({
// 展示型事件
exhibition_submit_event(e) {
app.call_tel(this.data.customer_service_tel);
app.call_tel(this.data.common_app_customer_service_tel);
},
});
{
"pullRefresh": true
"pullRefresh": true,
"usingComponents": {
"component-quick-nav": "/components/quick-nav/quick-nav"
}
}
\ No newline at end of file
......@@ -74,4 +74,7 @@
<view a:if="{{data_list.length == 0 && data_list_loding_status != 0}}">
<import src="/pages/common/nodata.axml" />
<template is="nodata" data="{{status: data_list_loding_status}}"></template>
</view>
\ No newline at end of file
</view>
<!-- 快捷导航 -->
<component-quick-nav />
\ No newline at end of file
......@@ -4,13 +4,31 @@ Page({
data_list_loding_status: 1,
nav_active_index: 0,
data_list: [],
category_show_level: 3,
data_content: null,
// 基础配置
category_show_level: 3,
},
onShow() {
my.setNavigationBar({title: app.data.common_pages_title.goods_category});
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
category_show_level: app.get_config('config.category_show_level'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
......@@ -40,7 +58,6 @@ Page({
}
this.setData({
data_list: category,
category_show_level: res.data.data.category_show_level || 3,
data_content: data_content,
data_list_loding_status: category.length == 0 ? 0 : 3,
data_bottom_line_status: true,
......
{
"pullRefresh": true
"pullRefresh": true,
"usingComponents": {
"component-quick-nav": "/components/quick-nav/quick-nav"
}
}
\ No newline at end of file
......@@ -255,4 +255,7 @@
</view>
<image src="/images/default-cart-icon.png" class="dis-block"></image>
</view>
</navigator>
\ No newline at end of file
</navigator>
<!-- 快捷导航 -->
<component-quick-nav />
\ No newline at end of file
const app = getApp();
import parse from 'mini-html-parser2';
Page({
data: {
price_symbol: app.data.price_symbol,
data: {
indicator_dots: false,
indicator_color: 'rgba(0, 0, 0, .3)',
indicator_active_color: '#e31c55',
......@@ -33,13 +31,19 @@ Page({
goods_spec_base_images: '',
show_field_price_text: null,
goods_video_is_autoplay: false,
goods_video_is_autoplay: false,
common_app_is_use_mobile_detail: 1,
common_is_goods_detail_show_photo: 0,
// 购物车快捷导航
quick_nav_cart_count: 0,
// 在线客服
// 基础配置
price_symbol: app.data.price_symbol,
common_app_is_poster_share: 0,
common_app_is_good_thing : 0,
common_app_is_online_service: 0,
common_app_is_use_mobile_detail: 0,
common_is_goods_detail_show_photo: 0,
common_app_customer_service_tel: null,
common_app_mini_alipay_tnt_inst_id: null,
common_app_mini_alipay_scene: null,
common_app_mini_alipay_openid: null,
......@@ -54,31 +58,54 @@ Page({
// 优惠劵
plugins_coupon_data: null,
// 购物车快捷导航
quick_nav_cart_count: 0,
// 站点类型
common_site_type: 0,
is_goods_site_type_consistent: 0,
customer_service_tel: null,
// 优惠劵领取
temp_coupon_receive_index: null,
temp_coupon_receive_value: null,
},
onLoad(params) {
// 启动参数处理
params = app.launch_params_handle(params);
//params['goods_id']=2;
this.setData({params: params});
this.init();
},
onShow() {
my.setNavigationBar({title: (this.data.goods == null) ? app.data.common_pages_title.goods_detail : this.data.goods.title});
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
common_app_is_use_mobile_detail: app.get_config('config.common_app_is_use_mobile_detail'),
common_is_goods_detail_show_photo: app.get_config('config.common_is_goods_detail_show_photo'),
common_app_is_online_service: app.get_config('config.common_app_is_online_service'),
common_app_is_good_thing: app.get_config('config.common_app_is_good_thing'),
common_app_is_poster_share: app.get_config('config.common_app_is_poster_share'),
common_app_customer_service_tel: app.get_config('config.common_app_customer_service_tel'),
common_app_mini_alipay_tnt_inst_id: app.get_config('config.common_app_mini_alipay_tnt_inst_id'),
common_app_mini_alipay_scene: app.get_config('config.common_app_mini_alipay_scene'),
});
// 在线客服开启,获取用户openid
if(this.data.common_app_is_online_service == 1)
{
this.setData({common_app_mini_alipay_openid: app.get_user_openid()});
}
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据列表
// 获取数据
init() {
// 参数校验
if((this.data.params.goods_id || null) == null)
......@@ -110,6 +137,8 @@ Page({
if (res.data.code == 0) {
var data = res.data.data;
self.setData({
data_bottom_line_status: true,
data_list_loding_status: 3,
goods: data.goods,
indicator_dots: (data.goods.photo.length > 1),
autoplay: (data.goods.photo.length > 1),
......@@ -119,36 +148,25 @@ Page({
temp_buy_number: data.goods.buy_min_number || 1,
goods_favor_text: (data.goods.is_favor == 1) ? '已收藏' : '收藏',
goods_favor_icon: '/images/goods-detail-favor-icon-' + data.goods.is_favor+'.png',
data_bottom_line_status: true,
data_list_loding_status: 3,
nav_submit_text: data.nav_submit_text,
nav_submit_is_disabled: data.nav_submit_is_disabled,
common_site_type: data.common_site_type || 0,
is_goods_site_type_consistent: data.is_goods_site_type_consistent || 0,
goods_spec_base_price: data.goods.price,
goods_spec_base_original_price: data.goods.original_price,
goods_spec_base_inventory: data.goods.inventory,
goods_spec_base_images: data.goods.images,
show_field_price_text: (data.goods.show_field_price_text == '销售价') ? null : (data.goods.show_field_price_text.replace(/<[^>]+>/g, "") || null),
common_app_is_use_mobile_detail: data.common_app_is_use_mobile_detail || 0,
common_is_goods_detail_show_photo: data.common_is_goods_detail_show_photo || 0,
plugins_limitedtimediscount_data: data.plugins_limitedtimediscount_data || null,
plugins_limitedtimediscount_is_valid: ((data.plugins_limitedtimediscount_data || null) != null && (data.plugins_limitedtimediscount_data.is_valid || 0) == 1) ? 1 : 0,
plugins_coupon_data: data.plugins_coupon_data || null,
quick_nav_cart_count: data.common_cart_total || 0,
// 在线客服
common_app_is_online_service: data.common_app_is_online_service || 0,
common_app_mini_alipay_tnt_inst_id: data.common_app_mini_alipay_tnt_inst_id || null,
common_app_mini_alipay_scene: data.common_app_mini_alipay_scene || null,
});
// 在线客服开启,用户openid
if(this.data.common_app_is_online_service == 1)
{
this.setData({common_app_mini_alipay_openid: app.get_user_openid()});
}
// 限时秒杀倒计时
if (this.data.plugins_limitedtimediscount_is_valid == 1) {
this.plugins_limitedtimediscount_countdown();
......@@ -171,34 +189,6 @@ Page({
// 不能选择规格处理
this.goods_specifications_choose_handle_dont(0);
// 购买按钮处理
var nav_submit_text = ((data.common_order_is_booking || 0) == 0) ? '立即购买' : '立即预约';
var nav_submit_is_disabled = (data.goods.is_shelves == 1 && data.goods.inventory > 0) ? false : true;
if (data.goods.is_shelves != 1) {
nav_submit_text = '已下架';
nav_submit_is_disabled = true;
} else {
if(data.goods.inventory <= 0) {
nav_submit_text = '卖光了';
nav_submit_is_disabled = true;
}
}
// 站点模式 - 是否展示型
var common_site_type = data.common_site_type || 0;
if (common_site_type == 1) {
nav_submit_text = data.common_is_exhibition_mode_btn_text || '立即咨询';
}
// 数据赋值
this.setData({
nav_submit_text: nav_submit_text,
nav_submit_is_disabled: nav_submit_is_disabled,
common_site_type: common_site_type,
is_goods_site_type_consistent: data.is_goods_site_type_consistent || 0,
customer_service_tel: data.customer_service_tel || null,
});
} else {
self.setData({
data_bottom_line_status: false,
......@@ -828,7 +818,7 @@ Page({
// 展示型事件
exhibition_submit_event(e) {
app.call_tel(this.data.customer_service_tel);
app.call_tel(this.data.common_app_customer_service_tel);
},
......
{
"pullRefresh": true,
"usingComponents": {
"component-quick-nav": "/components/quick-nav/quick-nav",
"component-popup": "/components/popup/popup",
"component-badge": "/components/badge/badge"
}
......
......@@ -76,6 +76,11 @@
margin-top: 20rpx;
width: 30rpx;
}
.popup-form .item {
width: 480rpx;
padding: 0 20rpx;
margin-top: 20rpx;
}
.popup-form .keywords input {
width: calc(100% - 30rpx);
}
......
......@@ -54,4 +54,7 @@
</view>
<button formType="submit" class="bg-main form-submit wh-auto" disabled="{{popup_form_loading_status}}" hover-class="none">确认</button>
</form>
</component-popup>
\ No newline at end of file
</component-popup>
<!-- 快捷导航 -->
<component-quick-nav />
\ No newline at end of file
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
data_list_loding_status: 1,
data_bottom_line_status: false,
data_list: [],
......@@ -18,18 +17,46 @@ Page({
{ name: "价格", field: "min_price", sort: "asc", "icon": "default" },
{ name: "最新", field: "id", sort: "asc", "icon": "default" }
],
// 基础配置
price_symbol: app.data.price_symbol,
},
onLoad(params) {
this.setData({params: params, post_data: params});
this.init();
// 启动参数处理
params = app.launch_params_handle(params);
// 初始参数
this.setData({
params: params,
post_data: {
keywords: params.keywords || ''
}
});
},
onShow() {
my.setNavigationBar({title: app.data.common_pages_title.goods_search});
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 初始化
// 获取数据
init() {
// 获取数据
this.get_data_list();
......
{
"pullRefresh": true,
"usingComponents": {
"component-quick-nav": "/components/quick-nav/quick-nav",
"component-popup": "/components/popup/popup"
}
}
\ No newline at end of file
......@@ -16,14 +16,14 @@
.search icon {
position: absolute;
left: 15rpx;
top: 15rpx;
top: calc(50% - 8px);
}
.search input {
font-size: 28rpx;
padding-left: 60rpx;
box-sizing: border-box;
height: 70rpx;
line-height: 70rpx;
line-height: 90rpx;
}
/**
......
......@@ -8,7 +8,7 @@
</view>
<!-- 商城公告 -->
<view a:if="{{common_shop_notice != null}}">
<view a:if="{{(common_shop_notice || null) != null}}">
<view class="tips">{{common_shop_notice}}</view>
</view>
......@@ -81,6 +81,9 @@
<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>
<!-- 快捷导航 -->
<component-quick-nav />
<view a:if="{{load_status == 1}}">
<import src="/pages/common/copyright.axml" />
<template is="copyright"></template>
......
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
load_status: 0,
data_list_loding_status: 1,
data_bottom_line_status: false,
data_list: [],
banner_list: [],
navigation: [],
// 基础配置
price_symbol: app.data.price_symbol,
common_shop_notice: null,
common_app_is_enable_search: 1,
common_app_is_enable_answer: 1,
common_app_is_enable_search: 0,
common_app_is_enable_answer: 0,
common_app_is_header_nav_fixed: 0,
// 在线客服
common_app_is_online_service: 0,
common_app_mini_alipay_tnt_inst_id: null,
common_app_mini_alipay_scene: null,
......@@ -28,11 +28,41 @@ Page({
},
onShow() {
// 主题颜色
app.set_nav_bg_color_main();
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 获取数据列表
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
common_shop_notice: app.get_config('config.common_shop_notice'),
common_app_is_enable_search: app.get_config('config.common_app_is_enable_search'),
common_app_is_enable_answer: app.get_config('config.common_app_is_enable_answer'),
common_app_is_header_nav_fixed: app.get_config('config.common_app_is_header_nav_fixed'),
common_app_is_online_service: app.get_config('config.common_app_is_online_service'),
common_app_mini_alipay_tnt_inst_id: app.get_config('config.common_app_mini_alipay_tnt_inst_id'),
common_app_mini_alipay_scene: app.get_config('config.common_app_mini_alipay_scene'),
});
// 在线客服开启,获取用户openid
if(this.data.common_app_is_online_service == 1)
{
this.setData({common_app_mini_alipay_openid: app.get_user_openid()});
}
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var self = this;
......@@ -59,18 +89,9 @@ Page({
banner_list: data.banner_list || [],
navigation: data.navigation || [],
data_list: data.data_list || [],
common_shop_notice: data.common_shop_notice || null,
common_app_is_enable_search: data.common_app_is_enable_search,
common_app_is_enable_answer: data.common_app_is_enable_answer,
common_app_is_header_nav_fixed: data.common_app_is_header_nav_fixed,
data_list_loding_status: data.data_list.length == 0 ? 0 : 3,
plugins_limitedtimediscount_data: data.plugins_limitedtimediscount_data || null,
plugins_limitedtimediscount_is_valid: ((data.plugins_limitedtimediscount_data || null) != null && (data.plugins_limitedtimediscount_data.is_valid || 0) == 1) ? 1 : 0,
// 在线客服
common_app_is_online_service: data.common_app_is_online_service || 0,
common_app_mini_alipay_tnt_inst_id: data.common_app_mini_alipay_tnt_inst_id || null,
common_app_mini_alipay_scene: data.common_app_mini_alipay_scene || null,
});
// 导航购物车处理
......@@ -82,12 +103,6 @@ Page({
app.set_tab_bar_badge(2, 1, cart_total);
}
// 在线客服开启,用户openid
if(this.data.common_app_is_online_service == 1)
{
this.setData({common_app_mini_alipay_openid: app.get_user_openid()});
}
// 限时秒杀倒计时
if (this.data.plugins_limitedtimediscount_is_valid == 1)
{
......
{
"pullRefresh": true,
"usingComponents": {
"component-quick-nav": "/components/quick-nav/quick-nav",
"component-icon-nav": "/components/icon-nav/icon-nav",
"component-slider": "/components/slider/slider"
}
......
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
data_bottom_line_status: false,
data_list_loding_status: 1,
data_list_loding_msg: '',
......@@ -11,16 +10,31 @@ Page({
// 优惠劵领取
temp_coupon_receive_index: null,
temp_coupon_receive_value: null,
// 基础配置
price_symbol: app.data.price_symbol,
},
onLoad(params) {
onShow() {
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
onShow() {
my.setNavigationBar({title: app.data.common_pages_title.coupon });
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
// 获取数据
this.get_data_list();
......
{
"pullRefresh": true
"pullRefresh": true,
"defaultTitle": "领劵中心"
}
\ No newline at end of file
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
data_bottom_line_status: false,
data_list_loding_status: 1,
data_list_loding_msg: '',
......@@ -13,16 +12,31 @@ Page({
{ name: "已过期", value: "already_expire" },
],
nav_tabs_value: 'not_use',
// 基础配置
price_symbol: app.data.price_symbol,
},
onLoad(params) {
onShow() {
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
onShow() {
my.setNavigationBar({title: app.data.common_pages_title.user_coupon });
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var user = app.get_user_info(this, "init");
if (user != false) {
......
{
"pullRefresh": true
"pullRefresh": true,
"defaultTitle": "优惠劵"
}
\ No newline at end of file
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
data_list_loding_status: 1,
data_list_loding_msg: '加载中...',
data_bottom_line_status: false,
......@@ -13,13 +12,33 @@ Page({
user_profit_total_price: 0.00,
user_data: null,
profit_data: null,
// 基础配置
price_symbol: app.data.price_symbol,
},
onShow() {
app.set_nav_bg_color_main('#ff6a80');
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var self = this;
my.showLoading({ content: "加载中..." });
......
.exchangerate-container .item {
padding: 20rpx 10rpx;
font-size: 36rpx;
}
.exchangerate-container .item .icon image {
width: 50rpx;
height: 50rpx !important;
margin: 0 10rpx;
vertical-align: middle;
}
.exchangerate-container .item .single-text {
width: calc(100% - 80rpx);
line-height: 50rpx;
}
\ No newline at end of file
<!-- 货币列表 -->
<view a:if="{{data_list.length > 0}}" class="exchangerate-container">
<block a:for="{{data_list}}">
<view class="item oh spacing-mb bg-white" onTap="selected_event" data-index="{{index}}">
<view a:if="{{common_site_type != 1}}" class="fl icon">
<image src="/images/default-select{{item.id == data_default.id ? '-active' : ''}}-icon.png" mode="widthFix" />
</view>
<view class="fl single-text {{item.id == data_default.id ? 'cr-main' : 'cr-666'}}">{{item.name}} / {{item.symbol}}</view>
</view>
</block>
</view>
<view a:if="{{data_list_loding_status != 3}}">
<import src="/pages/common/nodata.axml" />
<template is="nodata" data="{{status: data_list_loding_status, msg: data_list_loding_msg}}"></template>
</view>
<import src="/pages/common/bottom_line.axml" />
<template is="bottom_line" data="{{status: data_bottom_line_status}}"></template>
\ No newline at end of file
const app = getApp();
Page({
data: {
data_bottom_line_status: false,
data_list_loding_status: 1,
data_list_loding_msg: '',
data_list: [],
data_default: null,
data_base: null,
},
onShow() {
// 数据加载
this.init();
},
// 获取数据
init() {
this.get_data_list();
},
// 获取数据
get_data_list() {
var self = this;
my.showLoading({ content: "加载中..." });
if (self.data.data_list.length <= 0)
{
self.setData({
data_list_loding_status: 1
});
}
my.request({
url: app.get_request_url("index", "index", "exchangerate"),
method: "POST",
data: {},
dataType: "json",
success: res => {
my.hideLoading();
my.stopPullDownRefresh();
if (res.data.code == 0) {
var data = res.data.data;
var status = ((data.data.data || []).length > 0);
this.setData({
data_base: data.base || null,
data_default: data.data.default || null,
data_list: data.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,
});
app.showToast(res.data.msg);
}
},
fail: () => {
my.hideLoading();
my.stopPullDownRefresh();
self.setData({
data_bottom_line_status: false,
data_list_loding_status: 2,
data_list_loding_msg: '服务器请求出错',
});
app.showToast("服务器请求出错");
}
});
},
// 选择事件
selected_event(e) {
// 参数处理
var index = e.currentTarget.dataset.index;
var temp_list = this.data.data_list;
var data = temp_list[index] || null;
if(data == null)
{
app.showToast('数据有误');
return false;
}
// id与当前默认一致则不处理
if (data.id != this.data.data_default.id)
{
var self = this;
my.showLoading({ content: "处理中..." });
my.request({
url: app.get_request_url("setcurrency", "index", "exchangerate"),
method: "POST",
data: { "currency": data.id },
dataType: "json",
header: { 'content-type': 'application/x-www-form-urlencoded' },
success: res => {
my.hideLoading();
if (res.data.code == 0) {
app.showToast(res.data.msg, "success");
self.setData({ data_default: data });
// 重新初始化配置
app.init_config();
// 返回上一页
setTimeout(function () {
my.navigateBack();
}, 1500);
} else {
app.showToast(res.data.msg);
}
},
fail: () => {
my.hideLoading();
app.showToast("服务器请求出错");
}
});
}
},
// 下拉刷新
onPullDownRefresh() {
this.get_data_list();
},
});
{
"pullRefresh": true,
"defaultTitle": "货币切换"
}
\ No newline at end of file
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
data_list_loding_status: 1,
data_list_loding_msg: '加载中...',
data_bottom_line_status: false,
......@@ -12,13 +11,33 @@ Page({
user_profit_total_price: 0.00,
user_data: null,
profit_data: null,
// 基础配置
price_symbol: app.data.price_symbol,
},
onShow() {
app.set_nav_bg_color_main('#1d1611');
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var self = this;
my.showLoading({ content: "加载中..." });
......
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
data_list: [],
data_page_total: 0,
data_page: 1,
data_list_loding_status: 1,
data_bottom_line_status: false,
// 基础配置
price_symbol: app.data.price_symbol,
},
onShow() {
my.setNavigationBar({title: app.data.common_pages_title.user_favor});
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var user = app.get_user_info(this, "init");
if (user != false) {
......
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
data_list: [],
data_page_total: 0,
data_page: 1,
data_list_loding_status: 1,
data_bottom_line_status: false,
// 基础配置
price_symbol: app.data.price_symbol,
},
onShow() {
my.setNavigationBar({ title: app.data.common_pages_title.user_goods_browse });
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var user = app.get_user_info(this, "init");
if (user != false) {
......
......@@ -2,7 +2,6 @@ const app = getApp();
import parse from 'mini-html-parser2';
Page({
data: {
price_symbol: app.data.price_symbol,
params: null,
data_list_loding_status: 1,
data_list_loding_msg: '',
......@@ -12,18 +11,38 @@ Page({
detail_list: [],
extension_data: [],
site_fictitious: null,
// 基础配置
price_symbol: app.data.price_symbol,
},
onLoad(params) {
//params['id'] = 7;
this.setData({params: params});
this.init();
},
onShow() {
my.setNavigationBar({title: app.data.common_pages_title.user_order_detail});
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var self = this;
my.showLoading({ content: "加载中..." });
......
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
data_list: [],
data_page_total: 0,
data_page: 1,
......@@ -24,6 +23,9 @@ Page({
],
nav_status_index: 0,
order_select_ids: [],
// 基础配置
price_symbol: app.data.price_symbol,
},
onLoad(params) {
......@@ -42,13 +44,30 @@ Page({
params: params,
nav_status_index: nav_status_index,
});
this.init();
},
onShow() {
my.setNavigationBar({title: app.data.common_pages_title.user_order});
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var user = app.get_user_info(this, "init");
if (user != false) {
......
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
params: null,
data_list_loding_status: 1,
data_list_loding_msg: '',
......@@ -110,6 +109,9 @@ Page({
form_images_list: [],
form_express_name: '',
form_express_number: '',
// 基础配置
price_symbol: app.data.price_symbol,
},
onLoad(params) {
......@@ -117,13 +119,30 @@ Page({
params: params,
popup_delivery_status: ((params.is_delivery_popup || 0) == 1),
});
this.init();
},
onShow() {
my.setNavigationBar({ title: app.data.common_pages_title.user_orderaftersale_detail });
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var self = this;
my.showLoading({content: "加载中..." });
......
const app = getApp();
Page({
data: {
price_symbol: app.data.price_symbol,
params: null,
data_list_loding_status: 1,
data_list_loding_msg: '',
......@@ -25,6 +24,9 @@ Page({
{ name: "已取消", value: "5" },
],
nav_status_index: 0,
// 基础配置
price_symbol: app.data.price_symbol,
},
onLoad(params) {
......@@ -44,13 +46,30 @@ Page({
form_keyword_value: params.keywords || '',
nav_status_index: nav_status_index,
});
this.init();
},
onShow() {
my.setNavigationBar({ title: app.data.common_pages_title.user_orderaftersale });
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
price_symbol: app.get_config('price_symbol'),
});
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init() {
var user = app.get_user_info(this, "init");
if (user != false) {
......
......@@ -60,7 +60,7 @@
<text class="item-name">安全退出</text>
</view>
<view a:if="{{customer_service_tel != null}}" class="nav-item" onTap="call_event">
<view a:if="{{(customer_service_tel || null) != null}}" class="nav-item" onTap="call_event">
<image src="/images/user-nav-customer-service-icon.png" class="item-icon" mode="widthFix" />
<text class="item-name">客服电话 </text>
<text class="item-name cr-blue">{{customer_service_tel}}</text>
......@@ -68,7 +68,7 @@
</view>
<!-- 用户中心公告 -->
<view a:if="{{common_user_center_notice != null}}" class="user-notice">
<view a:if="{{(common_user_center_notice || null) != null}}" class="user-notice">
<view class="tips">{{common_user_center_notice}}</view>
</view>
......@@ -78,5 +78,8 @@
<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>
<!-- 快捷导航 -->
<component-quick-nav />
<import src="/pages/common/copyright.axml" />
<template is="copyright"></template>
......@@ -3,8 +3,6 @@ Page({
data: {
avatar: app.data.default_user_head_src,
nickname: "用户名",
customer_service_tel: null,
common_user_center_notice: null,
message_total: 0,
head_nav_list: [
{ name: "订单总数", url: "user-order", count: 0 },
......@@ -23,22 +21,52 @@ Page({
// 远程自定义导航
navigation: [],
// 在线客服
// 基础配置
common_app_customer_service_tel: null,
common_user_center_notice: null,
common_app_is_online_service: 0,
common_app_is_head_vice_nav: 0,
common_app_mini_alipay_tnt_inst_id: null,
common_app_mini_alipay_scene: null,
common_app_mini_alipay_openid: null,
// 是否启用头部小导航
common_app_is_head_vice_nav: 0,
},
onShow() {
my.setNavigationBar({title: app.data.common_pages_title.user});
// 主题颜色
app.set_nav_bg_color_main();
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
common_app_customer_service_tel: app.get_config('config.common_app_customer_service_tel'),
common_user_center_notice: app.get_config('config.common_user_center_notice'),
common_app_is_online_service: app.get_config('config.common_app_is_online_service'),
common_app_is_head_vice_nav: app.get_config('config.common_app_is_head_vice_nav'),
common_app_mini_alipay_tnt_inst_id: app.get_config('config.common_app_mini_alipay_tnt_inst_id'),
common_app_mini_alipay_scene: app.get_config('config.common_app_mini_alipay_scene'),
});
// 在线客服开启,获取用户openid
if(this.data.common_app_is_online_service == 1)
{
this.setData({common_app_mini_alipay_openid: app.get_user_openid()});
}
} else {
app.is_config(this, 'init_config');
}
},
// 获取数据
init(e) {
var user = app.get_user_info(this, "init"),
self = this;
......@@ -109,19 +137,11 @@ Page({
this.setData({
user_order_status_list: temp_user_order_status_list,
customer_service_tel: data.customer_service_tel || null,
common_user_center_notice: data.common_user_center_notice || null,
avatar: ((data.avatar || null) != null) ? data.avatar : ((this.data.avatar || null) == null ? app.data.default_user_head_src : this.data.avatar),
nickname: (data.nickname != null) ? data.nickname : this.data.nickname,
message_total: ((data.common_message_total || 0) == 0) ? 0 : data.common_message_total,
head_nav_list: temp_head_nav_list,
navigation: data.navigation || [],
common_app_is_head_vice_nav: data.common_app_is_head_vice_nav || 0,
// 在线客服
common_app_is_online_service: data.common_app_is_online_service || 0,
common_app_mini_alipay_tnt_inst_id: data.common_app_mini_alipay_tnt_inst_id || null,
common_app_mini_alipay_scene: data.common_app_mini_alipay_scene || null,
});
// 导航购物车处理
......@@ -131,12 +151,6 @@ Page({
} else {
app.set_tab_bar_badge(2, 1, cart_total);
}
// 在线客服开启,用户openid
if(this.data.common_app_is_online_service == 1)
{
this.setData({common_app_mini_alipay_openid: app.get_user_openid()});
}
} else {
if (app.is_login_check(res.data, this, 'get_data')) {
app.showToast(res.data.msg);
......@@ -152,17 +166,30 @@ Page({
// 清除缓存
clear_storage(e) {
// 获取uuid重新存储缓存,一定情况下确保用户的uuid不改变
var res = my.getStorageSync({key: app.data.cache_user_uuid_key}) || null;
var uuid = res.data || null;
// 清除所有缓存
my.clearStorage();
app.showToast('清除缓存成功', 'success');
app.showToast("清除缓存成功", "success");
// 重新存储用户uuid缓存
if(uuid != null) {
my.setStorage({
key: app.data.cache_user_uuid_key,
data: uuid
});
}
},
// 客服电话
call_event() {
if(this.data.customer_service_tel == null)
if(this.data.common_app_customer_service_tel == null)
{
app.showToast('客服电话有误');
app.showToast("客服电话有误");
} else {
app.call_tel(this.data.customer_service_tel);
app.call_tel(this.data.common_app_customer_service_tel);
}
},
......
{
"pullRefresh": true,
"usingComponents": {
"component-quick-nav": "/components/quick-nav/quick-nav",
"component-badge": "/components/badge/badge"
}
}
\ No newline at end of file
App({
data: {
// uuid缓存key
cache_user_uuid_key: "cache_user_uuid_key",
// 配置信息缓存key
cache_config_info_key: "cache_config_info_key",
// 用户登录缓存key
cache_user_login_key: "cache_user_login_key",
......@@ -59,8 +65,6 @@ App({
"user_orderaftersale": "退款/售后",
"user_orderaftersale_detail": "订单售后",
"user_order_comments": "订单评论",
"coupon": "领劵中心",
"user_coupon": "优惠劵",
"extraction_address": "自提地址",
},
......@@ -86,6 +90,9 @@ App({
// 启动query参数处理
this.startup_query(options);
// 初始化配置
this.init_config();
},
/**
......
......@@ -160,13 +160,11 @@
/**
* 留言
*/
.content-textarea-view,
.content-textarea-view textarea {
height: 180rpx;
.content-textarea-view {
padding: 5rpx;
}
.content-textarea-view view {
padding: 12rpx;
.content-textarea-view textarea {
height: 180rpx;
}
/**
......
......@@ -12,6 +12,7 @@ Page({
address_id: null,
total_price: 0,
user_note_value: '',
user_note_disabled: true,
is_first: 1,
extension_data: [],
payment_id: 0,
......@@ -172,6 +173,20 @@ Page({
this.setData({ user_note_value: e.detail.value });
},
// 用户留言点击
bind_user_note_tap_event(e) {
this.setData({
user_note_disabled: false,
});
},
// 用户留言失去焦点
bind_user_note_blur_event(e) {
this.setData({
user_note_disabled: true,
});
},
// 提交订单
buy_submit_event(e) {
// 表单数据
......
......@@ -86,8 +86,7 @@
<!-- 留言 -->
<view class="content-textarea-view bg-white spacing-mb">
<textarea s-if="!popup_plugins_coupon_status" bindinput="bind_user_note_event" value="{=user_note_value=}" maxlength="60" placeholder="留言" class="wh-auto" />
<view s-if="popup_plugins_coupon_status" class="cr-888">{{user_note_value || '留言'}}</view>
<textarea bindblur="bind_user_note_blur_event" bindinput="bind_user_note_event" bindinput="bind_user_note_event" value="{=user_note_value=}" maxlength="60" placeholder="留言" focus="{{!user_note_disabled}}" disabled="{{user_note_disabled}}" />
</view>
<!-- 支付方式 -->
......
......@@ -16,7 +16,7 @@
.search icon {
position: absolute;
left: 15rpx;
top: 15rpx;
top: calc(50% - 8px);
}
.search input {
font-size: 28rpx;
......
App({
data: {
// uuid缓存key
cache_user_uuid_key: "cache_user_uuid_key",
// 配置信息缓存key
cache_config_info_key: "cache_config_info_key",
// 用户登录缓存key
cache_user_login_key: "cache_user_login_key",
// 用户信息缓存key
cache_user_info_key: "cache_shop_user_info_key",
......@@ -92,6 +98,9 @@ App({
key: this.data.cache_launch_info_key,
data: options
});
// 初始化配置
this.init_config();
},
/**
......
......@@ -12,6 +12,7 @@ Page({
address_id: null,
total_price: 0,
user_note_value: '',
user_note_disabled: true,
is_first: 1,
extension_data: [],
payment_id: 0,
......@@ -184,6 +185,20 @@ Page({
this.setData({user_note_value: e.detail.value});
},
// 用户留言点击
bind_user_note_tap_event(e) {
this.setData({
user_note_disabled: false,
});
},
// 用户留言失去焦点
bind_user_note_blur_event(e) {
this.setData({
user_note_disabled: true,
});
},
// 提交订单
buy_submit_event(e) {
// 表单数据
......
......@@ -86,8 +86,7 @@
<!-- 留言 -->
<view class="content-textarea-view bg-white spacing-mb">
<textarea qq:if="{{!popup_plugins_coupon_status}}" bindinput="bind_user_note_event" value="{{user_note_value}}" maxlength="60" placeholder="留言" class="wh-auto" />
<view qq:if="{{popup_plugins_coupon_status}}" class="cr-888">{{user_note_value || '留言'}}</view>
<textarea bindblur="bind_user_note_blur_event" bindinput="bind_user_note_event" bindinput="bind_user_note_event" value="{{user_note_value}}" maxlength="60" placeholder="留言" focus="{{!user_note_disabled}}" disabled="{{user_note_disabled}}" />
</view>
<!-- 支付方式 -->
......
......@@ -160,13 +160,11 @@
/**
* 留言
*/
.content-textarea-view,
.content-textarea-view textarea {
height: 180rpx;
.content-textarea-view {
padding: 5rpx;
}
.content-textarea-view view {
padding: 12rpx;
.content-textarea-view textarea {
height: 180rpx;
}
/**
......
......@@ -16,7 +16,7 @@
.search icon {
position: absolute;
left: 15rpx;
top: 15rpx;
top: calc(50% - 8px);
}
.search input {
font-size: 28rpx;
......
App({
data: {
// uuid缓存key
cache_user_uuid_key: "cache_user_uuid_key",
// 配置信息缓存key
cache_config_info_key: "cache_config_info_key",
// 用户登录缓存key
cache_user_login_key: "cache_user_login_key",
// 用户信息缓存key
cache_user_info_key: "cache_shop_user_info_key",
......@@ -92,6 +98,9 @@ App({
key: this.data.cache_launch_info_key,
data: options
});
// 初始化配置
this.init_config();
},
/**
......
......@@ -12,6 +12,7 @@ Page({
address_id: null,
total_price: 0,
user_note_value: '',
user_note_disabled: true,
is_first: 1,
extension_data: [],
payment_id: 0,
......@@ -194,6 +195,20 @@ Page({
});
},
// 用户留言点击
bind_user_note_tap_event(e) {
this.setData({
user_note_disabled: false,
});
},
// 用户留言失去焦点
bind_user_note_blur_event(e) {
this.setData({
user_note_disabled: true,
});
},
// 提交订单
buy_submit_event(e) {
// 表单数据
......
......@@ -86,8 +86,7 @@
<!-- 留言 -->
<view class="content-textarea-view bg-white spacing-mb">
<textarea tt:if="{{!popup_plugins_coupon_status}}" bindinput="bind_user_note_event" value="{{user_note_value}}" maxlength="60" placeholder="留言" class="wh-auto" />
<view tt:if="{{popup_plugins_coupon_status}}" class="cr-888">{{user_note_value || '留言'}}</view>
<textarea bindblur="bind_user_note_blur_event" bindinput="bind_user_note_event" bindinput="bind_user_note_event" value="{{user_note_value}}" maxlength="60" placeholder="留言" focus="{{!user_note_disabled}}" disabled="{{user_note_disabled}}" />
</view>
<!-- 支付方式 -->
......
......@@ -160,13 +160,11 @@
/**
* 留言
*/
.content-textarea-view,
.content-textarea-view textarea {
height: 180rpx;
.content-textarea-view {
padding: 5rpx;
}
.content-textarea-view view {
padding: 12rpx;
.content-textarea-view textarea {
height: 180rpx;
}
/**
......
......@@ -16,7 +16,7 @@
.search icon {
position: absolute;
left: 15rpx;
top: 15rpx;
top: calc(50% - 8px);
}
.search input {
font-size: 28rpx;
......
......@@ -8,7 +8,7 @@ App({
// 用户登录缓存key
cache_user_login_key: "cache_user_login_key",
// 用户信息缓存key
cache_user_info_key: "cache_shop_user_info_key",
......@@ -71,7 +71,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}}",
......@@ -85,30 +85,17 @@ App({
/**
* 小程序初始化
*/
onLaunch(options) {
onLaunch(params) {
// 启动参数处理
options = this.launch_params_handle(options);
params = this.launch_params_handle(params);
// 设置设备信息
this.set_system_info();
// 缓存启动参数
wx.setStorage({
key: this.data.cache_launch_info_key,
data: options
});
// 初始化配置
this.init_config();
},
sleep(delay) {
var start = (new Date()).getTime();
while((new Date()).getTime() - start < delay) {
continue;
}
},
/**
* 启动参数处理
*/
......@@ -120,6 +107,13 @@ App({
if ((params.scene || null) != null) {
params = this.url_params_to_json(decodeURIComponent(params.scene));
}
// 缓存启动参数
wx.setStorage({
key: this.data.cache_launch_info_key,
data: params
});
return params;
},
......@@ -183,7 +177,7 @@ App({
"&application=app&application_client_type=weixin" +
"&token=" + token +
"&ajax=ajax" +
"&uuid="+uuid+
"&uuid="+ uuid +
params;
},
......@@ -540,7 +534,7 @@ App({
// 拨打电话
case 4:
wx.makePhoneCall({ phoneNumber: value });
this.call_tel(value);
break;
}
}
......
......@@ -3,6 +3,9 @@ Component({
data: {
popup_status: false,
data_list: [],
system: null,
x: 0,
y: 0,
is_first: 1,
},
pageLifetimes: {
......@@ -15,8 +18,14 @@ Component({
app.init_config();
}
// 首次初始化状态
this.setData({ is_first: 0 });
// 数据设置
var system = app.get_system_info();
this.setData({
is_first: 0,
system: system,
x: 5,
y: (system.windowHeight || 450)-160,
});
},
},
methods: {
......
<!-- 开启事件 -->
<view class="quick-event-submit" bindtap="quick_open_event">
<image src="/images/quick-submit-icon.png" mode="widthFix"></image>
</view>
<movable-area class="quick-nav-movable-container">
<movable-view direction="all" x="{{x}}" y="{{y}}" animation="{{false}}" class="quick-nav-event-submit" bindtap="quick_open_event">
<image src="/images/quick-submit-icon.png" mode="widthFix"></image>
</movable-view>
</movable-area>
<!-- 弹窗 -->
<component-popup prop-show="{{popup_status}}" prop-position="bottom" bindonclose="quick_close_event">
<view class="popup-container">
<view class="quick-nav-popup-container">
<view class="close oh">
<view class="icon-right" catchtap="quick_close_event">
<icon type="clear" size="20" />
</view>
</view>
<view class="popup-content">
<view wx:if="{{data_list.length > 0}}" class="data-list">
<view class="quick-nav-popup-content">
<view wx:if="{{data_list.length > 0}}" class="quick-nav-data-list">
<view class="items" wx:for="{{data_list}}" wx:key="key">
<view class="items-content" data-value="{{item.event_value}}" data-type="{{item.event_type}}" bindtap="navigation_event" style="background-color:{{item.bg_color}}">
<image src="{{item.images_url}}" mode="aspectFit" />
......
/**
* 弹窗
* 按钮
*/
.quick-event-submit {
.quick-nav-movable-container {
position: fixed;
width: 100%;
height: 100%;
top: 150rpx;
left: 0;
background:transparent;
pointer-events: none;
z-index: 2;
}
.quick-nav-event-submit {
pointer-events: auto;
position: fixed;
bottom: 150rpx;
left: 10rpx;
width: 100rpx;
height: 100rpx;
border-radius: 50%;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
background-color: #d2364c;
z-index: 2;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
background-color: rgb(210 54 76 / 80%);
}
.quick-event-submit image {
.quick-nav-event-submit image {
width: 50rpx;
height: 50rpx;
margin: 25rpx auto 25rpx auto;
display: block;
}
.popup-container {
/**
* 弹窗
*/
.quick-nav-popup-container {
padding: 20rpx 10rpx 0 10rpx;
background: #fff;
}
.popup-container .close {
.quick-nav-popup-container .close {
overflow: hidden;
}
.popup-container .close .icon-right {
.quick-nav-popup-container .close .icon-right {
float: right;
}
.popup-content {
.quick-nav-popup-content {
max-height: 80vh;
overflow-y: scroll;
overflow-x: hidden;
......@@ -39,16 +51,16 @@
/**
* 内容
*/
.data-list {
.quick-nav-data-list {
overflow: hidden;
background: #fff;
}
.data-list .items {
.quick-nav-data-list .items {
width: calc(25% - 60rpx);
float: left;
padding: 30rpx;
}
.items-content {
.quick-nav-data-list .items-content {
border-radius: 50%;
padding: 20rpx;
text-align: center;
......@@ -56,14 +68,14 @@
height: 70rpx;
margin: 0 auto;
}
.data-list .items image {
.quick-nav-data-list .items image {
width: 60rpx !important;
height: 60rpx !important;
margin-top: 5rpx;
}
.data-list .items .title {
.quick-nav-data-list .items .title {
margin-top: 10rpx;
font-size: 32rpx;
font-size: 28rpx !important;
text-align:center;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
......@@ -75,15 +87,15 @@
/*
* 没有数据
*/
.no-data-box {
.quick-nav-popup-container .no-data-box {
padding: 80rpx 0;
text-align: center;
}
.no-data-box image {
.quick-nav-popup-container .no-data-box image {
width: 160rpx;
margin-bottom: 30rpx;
}
.no-data-box .no-data-tips {
.quick-nav-popup-container .no-data-box .no-data-tips {
font-size: 28rpx;
color: #a6a6a6;
}
\ No newline at end of file
......@@ -11,6 +11,7 @@ Page({
address_id: null,
total_price: 0,
user_note_value: '',
user_note_disabled: true,
is_first: 1,
extension_data: [],
payment_id: 0,
......@@ -45,6 +46,8 @@ Page({
},
onShow() {
wx.setNavigationBarTitle({ title: app.data.common_pages_title.buy });
// 数据加载
this.init();
this.setData({ is_first: 0 });
......@@ -196,11 +199,25 @@ Page({
this.init();
},
// 用户留言事件
// 用户留言输入事件
bind_user_note_event(e) {
this.setData({user_note_value: e.detail.value});
},
// 用户留言点击
bind_user_note_tap_event(e) {
this.setData({
user_note_disabled: false,
});
},
// 用户留言失去焦点
bind_user_note_blur_event(e) {
this.setData({
user_note_disabled: true,
});
},
// 提交订单
buy_submit_event(e) {
// 表单数据
......
{
"enablePullDownRefresh": true,
"usingComponents": {
"component-quick-nav": "/components/quick-nav/quick-nav",
"component-popup": "/components/popup/popup"
}
}
\ No newline at end of file
......@@ -86,8 +86,7 @@
<!-- 留言 -->
<view class="content-textarea-view bg-white spacing-mb">
<textarea wx:if="{{!popup_plugins_coupon_status}}" bindinput="bind_user_note_event" value="{{user_note_value}}" maxlength="60" placeholder="留言" class="wh-auto" />
<view wx:if="{{popup_plugins_coupon_status}}" class="cr-888">{{user_note_value || '留言'}}</view>
<textarea bindtap="bind_user_note_tap_event" bindblur="bind_user_note_blur_event" bindinput="bind_user_note_event" value="{{user_note_value}}" maxlength="60" placeholder="留言" focus="{{!user_note_disabled}}" disabled="{{user_note_disabled}}" />
</view>
<!-- 支付方式 -->
......@@ -151,4 +150,7 @@
</view>
</view>
</component-popup>
</block>
\ No newline at end of file
</block>
<!-- 快捷导航 -->
<component-quick-nav></component-quick-nav>
\ No newline at end of file
......@@ -160,13 +160,11 @@
/**
* 留言
*/
.content-textarea-view,
.content-textarea-view textarea {
height: 180rpx;
.content-textarea-view {
padding: 5rpx;
}
.content-textarea-view view {
padding: 12rpx;
.content-textarea-view textarea {
height: 180rpx;
}
/**
......
{
"enablePullDownRefresh": true,
"usingComponents": {
"component-quick-nav": "/components/quick-nav/quick-nav",
"component-popup": "/components/popup/popup",
"component-badge": "/components/badge/badge"
}
......
......@@ -275,4 +275,7 @@
</view>
<image src="/images/default-cart-icon.png" class="dis-block"></image>
</view>
</navigator>
\ No newline at end of file
</navigator>
<!-- 快捷导航 -->
<component-quick-nav></component-quick-nav>
\ No newline at end of file
......@@ -25,7 +25,14 @@ Page({
onLoad(params) {
// 启动参数处理
params = app.launch_params_handle(params);
this.setData({params: params});
// 初始参数
this.setData({
params: params,
post_data: {
keywords: params.keywords || ''
}
});
// 显示分享菜单
app.show_share_menu();
......
{
"enablePullDownRefresh": true,
"usingComponents": {
"component-quick-nav": "/components/quick-nav/quick-nav",
"component-popup": "/components/popup/popup"
}
}
\ No newline at end of file
......@@ -14,7 +14,7 @@
<!-- 列表 -->
<scroll-view scroll-y="{{true}}" class="scroll-box" bindscrolltolower="scroll_lower" lower-threshold="30">
<view class="data-list">
<view class="items bg-white" wx:for="{{data_list}}">
<view class="items bg-white" wx:for="{{data_list}}" wx:key="key">
<navigator url="/pages/goods-detail/goods-detail?goods_id={{item.id}}" hover-class="none">
<image src="{{item.images}}" mode="aspectFit" />
<view class="base">
......@@ -53,4 +53,7 @@
</view>
<button formType="submit" class="bg-main form-submit wh-auto" disabled="{{popup_form_loading_status}}" hover-class="none">确认</button>
</form>
</component-popup>
\ No newline at end of file
</component-popup>
<!-- 快捷导航 -->
<component-quick-nav></component-quick-nav>
\ No newline at end of file
......@@ -16,7 +16,7 @@
.search icon {
position: absolute;
left: 15rpx;
top: 20rpx;
top: calc(50% - 8px);
}
.search input {
font-size: 28rpx;
......
......@@ -105,7 +105,7 @@ Page({
// 返回上一页
setTimeout(function () {
wx.navigateBack();
}, 2000);
}, 1500);
} else {
app.showToast(res.data.msg);
}
......
......@@ -2,7 +2,6 @@
padding: 20rpx 10rpx;
font-size: 36rpx;
}
.exchangerate-container .item .icon image {
width: 50rpx;
height: 50rpx !important;
......@@ -11,4 +10,5 @@
}
.exchangerate-container .item .single-text {
width: calc(100% - 80rpx);
line-height: 50rpx;
}
\ No newline at end of file
......@@ -153,8 +153,20 @@ Page({
// 清除缓存
clear_storage(e) {
// 获取uuid重新存储缓存,一定情况下确保用户的uuid不改变
var uuid = wx.getStorageSync(app.data.cache_user_uuid_key) || null;
// 清除所有缓存
wx.clearStorage();
app.showToast("清除缓存成功", "success");
// 重新存储用户uuid缓存
if(uuid != null) {
wx.setStorage({
key: app.data.cache_user_uuid_key,
data: uuid
});
}
},
// 客服电话
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册