diff --git a/pages/plugins/realstore/detail/detail.vue b/pages/plugins/realstore/detail/detail.vue
index db68224a..4e6b1741 100644
--- a/pages/plugins/realstore/detail/detail.vue
+++ b/pages/plugins/realstore/detail/detail.vue
@@ -74,75 +74,62 @@
-
-
-
- 全部
-
-
+
+
+
+ 全部
+
+
+
{{item.name}}
-
-
-
-
-
-
-
-
- {{item.name}}
-
-
-
-
-
- {{goods.title}}
- {{goods.simple_desc}}
-
-
- {{currency_symbol}}{{goods.min_price}}
-
-
-
-
-
- {{goods.buy_number}}
-
-
-
-
-
- {{goods.is_error_msg}}
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.title}}
+ {{item.simple_desc}}
+
+
+ {{currency_symbol}}{{item.min_price}}
+
+
+
+
-
+ {{item.buy_number}}
+
+
+
+
+
+ {{item.is_error_msg}}
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
@@ -235,9 +222,14 @@
cache_buy_use_type_index_key: 'cache_plugins_realstore_buy_use_type_index',
buy_use_type_index: 0,
params: null,
+ is_first: 1,
user: null,
info: null,
- data: [],
+ goods_category: [],
+ data_list: [],
+ data_total: 0,
+ data_page_total: 0,
+ data_page: 1,
cart: null,
goods_count: 0,
data_base: null,
@@ -295,6 +287,9 @@
// 下拉刷新
onPullDownRefresh() {
+ this.setData({
+ data_page: 1
+ });
this.get_detail_init();
},
@@ -326,6 +321,8 @@
var upd_data = {
data_base: data.base || null,
info: data.info || null,
+ goods_category: data.goods_category || [],
+ cart: data.cart || null,
favor_user: data.favor_user || [],
tablecode: data.tablecode || null
};
@@ -362,8 +359,14 @@
title: this.info.name
});
- // 获取数据
- this.get_detail_data();
+ // 获取数据、仅首次调用列表接口
+ if(this.is_first == 1) {
+ this.setData({is_first: 0});
+ this.get_data_list();
+ } else {
+ // 购物车更新列表数据处理
+ this.cart_data_list_handle();
+ }
}
} else {
this.setData({
@@ -385,42 +388,84 @@
}
});
},
-
+
// 获取数据-获取数据
- get_detail_data() {
+ get_data_list(is_mandatory) {
+ // 分页是否还有数据
+ if ((is_mandatory || 0) == 0) {
+ if (this.data_bottom_line_status == true) {
+ uni.stopPullDownRefresh();
+ return false;
+ }
+ }
+
+ // 加载loding
+ uni.showLoading({
+ title: "加载中..."
+ });
+
+ // 分类id
+ var category_id = (this.nav_active_index == -1) ? 0 : this.goods_category[this.nav_active_index]['id'];
+
+ // 获取数据
uni.request({
- url: app.globalData.get_request_url("data", "detail", "realstore"),
+ url: app.globalData.get_request_url("datalist", "detail", "realstore"),
method: "POST",
data: this.request_params_merge({
id: this.params.id || 0,
- keywords: this.search_keywords_value
+ page: this.data_page,
+ keywords: this.search_keywords_value,
+ category_id: category_id
}, 'data'),
dataType: "json",
success: res => {
+ uni.hideLoading();
uni.stopPullDownRefresh();
if (res.data.code == 0) {
var data = res.data.data;
- var upd_data = {
- info: data.info || null,
- data: data.data || [],
- cart: data.cart || null,
- goods_count: data.goods_count || 0,
- data_list_loding_msg: '',
- data_list_loding_status: 0
- };
- // 购物车窗口打开、没有购物车数据则关闭
- if(this.cart_status && upd_data.cart != null && ((upd_data.cart.data || null) == null || upd_data.cart.data.length <= 0)) {
- upd_data['cart_status'] = false;
+ if (data.data.length > 0) {
+ if (this.data_page <= 1) {
+ var temp_data_list = data.data;
+ } else {
+ var temp_data_list = this.data_list || [];
+ var temp_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: data.total,
+ data_page_total: data.page_total,
+ data_list_loding_status: 3,
+ data_page: this.data_page + 1
+ });
+
+ // 是否还有数据
+ this.setData({
+ data_bottom_line_status: (this.data_page > 1 && this.data_page > this.data_page_total)
+ });
+ } else {
+ this.setData({
+ data_list_loding_status: 0
+ });
+ if (this.data_page <= 1) {
+ this.setData({
+ data_list: [],
+ data_bottom_line_status: false
+ });
+ }
}
- this.setData(upd_data);
} else {
this.setData({
- data_list_loding_status: 2,
+ data_list_loding_status: 0,
data_list_loding_msg: res.data.msg
});
+ app.globalData.showToast(res.data.msg);
}
},
fail: () => {
+ uni.hideLoading();
uni.stopPullDownRefresh();
this.setData({
data_list_loding_status: 2,
@@ -492,10 +537,8 @@
return false;
} else {
var index = e.currentTarget.dataset.index;
- var gindex = e.currentTarget.dataset.gindex;
var type = parseInt(e.currentTarget.dataset.type) || 0;
- var temp_data = this.data;
- var temp_goods = temp_data[index]['goods_list'][gindex];
+ var temp_goods = this.data_list[index];
// 是否存在多规格
if((temp_goods.is_exist_many_spec || 0) != 0) {
@@ -684,7 +727,7 @@
success: res => {
uni.hideLoading();
if (res.data.code == 0) {
- this.get_detail_data();
+ this.get_cart_data();
} else {
if (app.globalData.is_login_check(res.data)) {
app.globalData.showToast(res.data.msg);
@@ -716,7 +759,7 @@
success: res => {
uni.hideLoading();
if (res.data.code == 0) {
- this.get_detail_data();
+ this.get_cart_data();
} else {
if (app.globalData.is_login_check(res.data)) {
app.globalData.showToast(res.data.msg);
@@ -748,7 +791,7 @@
success: res => {
uni.hideLoading();
if (res.data.code == 0) {
- this.get_detail_data();
+ this.get_cart_data();
} else {
if (app.globalData.is_login_check(res.data)) {
app.globalData.showToast(res.data.msg);
@@ -764,6 +807,52 @@
});
},
+ // 获取购物车数据
+ get_cart_data() {
+ uni.request({
+ url: app.globalData.get_request_url("cartdata", "detail", "realstore"),
+ method: 'POST',
+ data: this.request_params_merge({
+ "id": this.params.id || 0
+ }, 'init'),
+ dataType: 'json',
+ success: res => {
+ if (res.data.code == 0) {
+ this.setData({
+ cart: res.data.data
+ });
+ this.cart_data_list_handle();
+ } else {
+ app.globalData.showToast('请求失败,请重试!');
+ }
+ },
+ fail: () => {
+ app.globalData.showToast("服务器请求出错");
+ }
+ });
+ },
+
+ // 购物车更新列表数据处理
+ cart_data_list_handle() {
+ var temp_cart = this.cart;
+ var temp_data_list = this.data_list;
+ if(temp_data_list.length > 0) {
+ for(var i in temp_data_list) {
+ temp_data_list[i]['buy_number'] = 0;
+ if(temp_cart.data.length > 0) {
+ for(var k in temp_cart.data) {
+ if(temp_cart.data[k]['goods_id'] == temp_data_list[i]['id']) {
+ temp_data_list[i]['buy_number'] += parseInt(temp_cart.data[k]['stock']);
+ }
+ }
+ }
+ }
+ }
+ this.setData({
+ data_list: temp_data_list
+ });
+ },
+
// 门店状态判断
is_status_check() {
if((this.info || null) == null) {
@@ -781,9 +870,10 @@
// 搜索事件
search_button_event(e) {
this.setData({
- search_keywords_value: e || ''
+ search_keywords_value: e || '',
+ data_page: 1
});
- this.get_detail_data();
+ this.get_data_list(1);
},
// 搜索icon扫码事件、扫码商品id实现加入购物车
@@ -862,13 +952,6 @@
if(!this.is_status_check()) {
return false;
}
-
- // 起步价
- var starting_price = parseFloat(this.info.starting_price) || 0;
- if(starting_price > 0 && this.cart.total_price < starting_price) {
- app.globalData.showToast("起步价"+starting_price+"元");
- return false;
- }
// 获取购物车数据
var ids = [];
@@ -881,6 +964,13 @@
return false;
}
+ // 起步价
+ var starting_price = parseFloat(this.info.starting_price) || 0;
+ if(starting_price > 0 && this.cart.total_price < starting_price) {
+ app.globalData.showToast("起步价"+starting_price+"元");
+ return false;
+ }
+
// 进入订单确认页面
var data = this.request_params_merge({
"buy_type": "cart",
@@ -921,10 +1011,16 @@
// 导航事件
nav_event(e) {
- var index = e.currentTarget.dataset.index;
this.setData({
- nav_active_index: index
+ nav_active_index: e.currentTarget.dataset.index,
+ data_page: 1
});
+ this.get_data_list(1);
+ },
+
+ // 滚动加载
+ scroll_lower(e) {
+ this.get_data_list();
},
// 顶部返回操作
@@ -963,10 +1059,11 @@
itemList: this.info.buy_use_type_list.map(function(v) {return v.name}),
success: function (res) {
self.setData({
- buy_use_type_index: res.tapIndex
+ buy_use_type_index: res.tapIndex,
+ data_page: 1
});
uni.setStorageSync(self.cache_buy_use_type_index_key, res.tapIndex);
- self.get_detail_data();
+ self.get_data_list(1);
}
});
},