vr-shopxo-source/sourcecode/alipay/default/pages/index/index.js

226 lines
6.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

const app = getApp();
Page({
data: {
load_status: 0,
data_list_loding_status: 1,
data_bottom_line_status: false,
data_list: [],
banner_list: [],
navigation: [],
// 基础配置
currency_symbol: app.data.currency_symbol,
common_shop_notice: null,
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,
common_app_mini_alipay_openid: null,
// 限时秒杀插件
plugins_limitedtimediscount_is_valid: 0,
plugins_limitedtimediscount_data: null,
plugins_limitedtimediscount_timer_title: '距离结束',
plugins_limitedtimediscount_is_show_time: true,
plugins_limitedtimediscount_timer: null,
},
onShow() {
// 主题颜色
app.set_nav_bg_color_main();
// 数据加载
this.init();
// 初始化配置
this.init_config();
},
// 初始化配置
init_config(status) {
if((status || false) == true) {
this.setData({
currency_symbol: app.get_config('currency_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;
// 加载loding
this.setData({
data_list_loding_status: 1,
});
// 加载loding
my.request({
url: app.get_request_url("index", "index"),
method: "POST",
data: {},
dataType: "json",
header: { 'content-type': 'application/x-www-form-urlencoded' },
success: res => {
my.stopPullDownRefresh();
self.setData({load_status: 1});
if (res.data.code == 0) {
var data = res.data.data;
self.setData({
data_bottom_line_status: true,
banner_list: data.banner_list || [],
navigation: data.navigation || [],
data_list: data.data_list || [],
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,
});
// 导航购物车处理
var cart_total = data.common_cart_total || 0;
if (cart_total <= 0)
{
app.set_tab_bar_badge(2, 0);
} else {
app.set_tab_bar_badge(2, 1, cart_total);
}
// 限时秒杀倒计时
if (this.data.plugins_limitedtimediscount_is_valid == 1)
{
this.plugins_limitedtimediscount_countdown();
}
} else {
self.setData({
data_list_loding_status: 0,
data_bottom_line_status: true,
});
app.showToast(res.data.msg);
}
},
fail: () => {
my.stopPullDownRefresh();
self.setData({
data_list_loding_status: 2,
data_bottom_line_status: true,
load_status: 1,
});
app.showToast('服务器请求出错');
}
});
},
// 搜索事件
search_input_event(e) {
var keywords = e.detail.value || null;
if (keywords == null) {
app.showToast('请输入搜索关键字');
return false;
}
// 进入搜索页面
my.navigateTo({
url: '/pages/goods-search/goods-search?keywords='+keywords
});
},
// 下拉刷新
onPullDownRefresh() {
this.init();
},
// 显示秒杀插件-倒计时
plugins_limitedtimediscount_countdown() {
// 销毁之前的任务
clearInterval(this.data.plugins_limitedtimediscount_timer);
// 定时参数
var status = this.data.plugins_limitedtimediscount_data.time.status || 0;
var msg = this.data.plugins_limitedtimediscount_data.time.msg || '';
var hours = parseInt(this.data.plugins_limitedtimediscount_data.time.hours) || 0;
var minutes = parseInt(this.data.plugins_limitedtimediscount_data.time.minutes) || 0;
var seconds = parseInt(this.data.plugins_limitedtimediscount_data.time.seconds) || 0;
var self = this;
if (status == 1) {
// 秒
var timer = setInterval(function () {
if (seconds <= 0) {
if (minutes > 0) {
minutes--;
seconds = 59;
} else if (hours > 0) {
hours--;
minutes = 59;
seconds = 59;
}
} else {
seconds--;
}
self.setData({
'plugins_limitedtimediscount_data.time.hours': (hours < 10) ? '0' + hours : hours,
'plugins_limitedtimediscount_data.time.minutes': (minutes < 10) ? '0' + minutes : minutes,
'plugins_limitedtimediscount_data.time.seconds': (seconds < 10) ? '0' + seconds : seconds,
plugins_limitedtimediscount_timer: timer,
});
if (hours <= 0 && minutes <= 0 && seconds <= 0) {
// 停止时间
clearInterval(timer);
// 活动已结束
self.setData({
plugins_limitedtimediscount_timer_title: '活动已结束',
plugins_limitedtimediscount_is_show_time: false,
});
}
}, 1000);
} else {
// 活动已结束
self.setData({
plugins_limitedtimediscount_timer_title: msg,
plugins_limitedtimediscount_is_show_time: false,
});
}
},
// 页面从前台变为后台时执行
onHide: function () {
clearInterval(this.data.plugins_limitedtimediscount_timer);
},
// 页面销毁时执行
onUnload: function () {
clearInterval(this.data.plugins_limitedtimediscount_timer);
},
// 自定义分享
onShareAppMessage() {
var user_id = app.get_user_cache_info('id', 0) || 0;
return {
title: app.data.application_title,
desc: app.data.application_describe,
path: '/pages/index/index?referrer=' + user_id
};
},
});