diff --git a/application/api/controller/Buy.php b/application/api/controller/Buy.php
index 739a65828..c24eaa17c 100755
--- a/application/api/controller/Buy.php
+++ b/application/api/controller/Buy.php
@@ -57,34 +57,18 @@ class Buy extends Common
// 商品校验
if(isset($ret['code']) && $ret['code'] == 0)
{
- // 用户默认地址
- $address = UserService::UserDefaultAddress(['user'=>$this->user]);
-
- // 商品/基础信息
- $base = [
- 'total_price' => empty($ret['data']) ? 0 : array_sum(array_column($ret['data'], 'total_price')),
- 'total_stock' => empty($ret['data']) ? 0 : array_sum(array_column($ret['data'], 'stock')),
- 'address' => empty($address['data']) ? null : $address['data'],
- ];
-
// 支付方式
$payment_list = PaymentService::BuyPaymentList(['is_enable'=>1, 'is_open_user'=>1]);
- // 扩展展示数据
- $extension_list = [
- // ['name'=>'感恩节9折', 'tips'=>'-¥23元'],
- // ['name'=>'运费', 'tips'=>'+¥10元'],
- ];
-
// 数据返回组装
$result = [
- 'goods_list' => $ret['data'],
+ 'goods_list' => $ret['data']['goods'],
'payment_list' => $payment_list,
- 'base' => $base,
- 'extension_list' => $extension_list,
+ 'base' => $ret['data']['base'],
+ 'extension_data' => $ret['data']['extension_data'],
'common_order_is_booking' => (int) MyC('common_order_is_booking', 0),
];
- return DataReturn('success', 0, $result);
+ return DataReturn('操作成功', 0, $result);
}
return $ret;
}
diff --git a/application/index/controller/Buy.php b/application/index/controller/Buy.php
index 6d74692c6..44140c364 100755
--- a/application/index/controller/Buy.php
+++ b/application/index/controller/Buy.php
@@ -55,7 +55,7 @@ class Buy extends Common
return redirect(MyUrl('index/buy/index'));
} else {
// 获取商品列表
- $params = session('buy_post_data');
+ $params = array_merge(input(), session('buy_post_data'));
$params['user'] = $this->user;
$ret = BuyService::BuyTypeGoodsList($params);
@@ -68,15 +68,9 @@ class Buy extends Common
// 支付方式
$this->assign('payment_list', PaymentService::BuyPaymentList(['is_enable'=>1, 'is_open_user'=>1]));
- // 商品/基础信息
- $base = [
- 'total_price' => empty($ret['data']) ? 0 : array_sum(array_column($ret['data'], 'total_price')),
- 'total_stock' => empty($ret['data']) ? 0 : array_sum(array_column($ret['data'], 'stock')),
- 'address' => UserService::UserDefaultAddress(['user'=>$this->user])['data'],
- ];
- $this->assign('base', $base);
- $this->assign('goods_list', $ret['data']);
-
+ $this->assign('base', $ret['data']['base']);
+ $this->assign('goods_list', $ret['data']['goods']);
+ $this->assign('extension_data', $ret['data']['extension_data']);
$this->assign('params', $params);
return $this->fetch();
} else {
diff --git a/application/index/view/default/buy/index.html b/application/index/view/default/buy/index.html
index c1d7a298d..c52a520c2 100755
--- a/application/index/view/default/buy/index.html
+++ b/application/index/view/default/buy/index.html
@@ -26,7 +26,7 @@
{{if !empty($user_address_list)}}
{{foreach $user_address_list as $address}}
- -
+
-
{{if !empty($address.alias)}}
diff --git a/application/service/BuyService.php b/application/service/BuyService.php
index d1ccd7f1d..1a00289dc 100755
--- a/application/service/BuyService.php
+++ b/application/service/BuyService.php
@@ -509,6 +509,61 @@ class BuyService
} else {
$ret = DataReturn('参数有误', -1);
}
+
+ // 数据组装
+ if($ret['code'] == 0)
+ {
+ // 商品数据
+ $goods = $ret['data'];
+
+ // 用户默认地址
+ $address_params = [
+ 'user' => $params['user'],
+ ];
+ if(!empty($params['address_id']))
+ {
+ $address_params['where'] = ['id' => $params['address_id']];
+ }
+ $address = UserService::UserDefaultAddress($address_params);
+
+ // 商品/基础信息
+ $total_price = empty($goods) ? 0 : array_sum(array_column($goods, 'total_price'));
+ $base = [
+ 'total_price' => $total_price,
+ 'actual_price' => $total_price,
+ 'total_stock' => empty($goods) ? 0 : array_sum(array_column($goods, 'stock')),
+ 'address' => empty($address['data']) ? null : $address['data'],
+ ];
+
+ // 扩展展示数据
+ // name 名称
+ // price 金额
+ // type 类型(0减少, 1增加)
+ // tips 提示信息
+ $extension_data = [
+ [
+ 'name' => '感恩节9折',
+ 'price' => 23,
+ 'type' => 0,
+ 'tips' => '-¥23元'
+ ],
+ [
+ 'name' => '运费',
+ 'price' => 10,
+ 'type' => 1,
+ 'tips' => '+¥10元'
+ ],
+ ];
+
+ // 返回数据
+ $result = [
+ 'goods' => $goods,
+ 'base' => $base,
+ 'extension_data' => $extension_data,
+ ];
+ return DataReturn('操作成功', 0, $result);
+ }
+
return $ret;
}
@@ -638,7 +693,7 @@ class BuyService
{
return $goods;
}
- $check = self::BuyGoodsCheck(['goods'=>$goods['data']]);
+ $check = self::BuyGoodsCheck(['goods'=>$goods['data']['goods']]);
if(!isset($check['code']) || $check['code'] != 0)
{
return $check;
@@ -689,7 +744,7 @@ class BuyService
$order_id = Db::name('Order')->insertGetId($order);
if($order_id > 0)
{
- foreach($goods['data'] as $v)
+ foreach($goods['data']['goods'] as $v)
{
$detail = [
'order_id' => $order_id,
diff --git a/application/service/UserService.php b/application/service/UserService.php
index 3a601a61c..0f8159124 100755
--- a/application/service/UserService.php
+++ b/application/service/UserService.php
@@ -466,7 +466,7 @@ class UserService
}
// 获取用户地址
- $params['where'] = ['is_default'=>1];
+ $params['where'] = empty($params['where']) ? ['is_default'=>1] : $params['where'];
$ret = self::UserAddressList($params);
if(!empty($ret['data'][0]))
{
diff --git a/public/appmini/old/alipay/pages/buy/buy.axml b/public/appmini/old/alipay/pages/buy/buy.axml
index 84c60d2aa..e54ce9681 100755
--- a/public/appmini/old/alipay/pages/buy/buy.axml
+++ b/public/appmini/old/alipay/pages/buy/buy.axml
@@ -46,8 +46,8 @@
-
-
+
+
{{item.name}}
{{item.tips}}
diff --git a/public/appmini/old/alipay/pages/buy/buy.js b/public/appmini/old/alipay/pages/buy/buy.js
index f3bf0cf65..5e2c9416a 100755
--- a/public/appmini/old/alipay/pages/buy/buy.js
+++ b/public/appmini/old/alipay/pages/buy/buy.js
@@ -12,7 +12,7 @@ Page({
total_price: 0,
user_note_value: '',
is_first: 1,
- extension_list: [],
+ extension_data: [],
payment_id: 0,
common_order_is_booking: 0,
},
@@ -87,7 +87,7 @@ Page({
this.setData({
goods_list: data.goods_list,
total_price: data.base.total_price,
- extension_list: data.extension_list || [],
+ extension_data: data.extension_data || [],
data_list_loding_status: 3,
common_order_is_booking: data.common_order_is_booking || 0,
});
diff --git a/public/appmini/old/weixin/pages/buy/buy.js b/public/appmini/old/weixin/pages/buy/buy.js
index 14cc0ad8a..2c5e49a10 100755
--- a/public/appmini/old/weixin/pages/buy/buy.js
+++ b/public/appmini/old/weixin/pages/buy/buy.js
@@ -12,7 +12,7 @@ Page({
total_price: 0,
user_note_value: '',
is_first: 1,
- extension_list: [],
+ extension_data: [],
payment_id: 0,
common_order_is_booking: 0,
},
@@ -85,7 +85,7 @@ Page({
this.setData({
goods_list: data.goods_list,
total_price: data.base.total_price,
- extension_list: data.extension_list || [],
+ extension_data: data.extension_data || [],
data_list_loding_status: 3,
common_order_is_booking: data.common_order_is_booking || 0,
});
diff --git a/public/appmini/old/weixin/pages/buy/buy.wxml b/public/appmini/old/weixin/pages/buy/buy.wxml
index f87824a72..5e0fa32b4 100755
--- a/public/appmini/old/weixin/pages/buy/buy.wxml
+++ b/public/appmini/old/weixin/pages/buy/buy.wxml
@@ -45,8 +45,8 @@
-
-
+
+
{{item.name}}
{{item.tips}}
diff --git a/public/appmini/old/weixin/pages/web-view/web-view.json b/public/appmini/old/weixin/pages/web-view/web-view.json
index e79bc9dcc..b4dcabbde 100755
--- a/public/appmini/old/weixin/pages/web-view/web-view.json
+++ b/public/appmini/old/weixin/pages/web-view/web-view.json
@@ -1,4 +1,4 @@
{
- "defaultTitle": "加载中...",
+ "navigationBarTitleText": "加载中...",
"enablePullDownRefresh": false
}
\ No newline at end of file
diff --git a/public/static/common/js/common.js b/public/static/common/js/common.js
index 31751cc68..138a61354 100755
--- a/public/static/common/js/common.js
+++ b/public/static/common/js/common.js
@@ -1055,6 +1055,81 @@ function FullscreenEscEvent()
}
}
+/**
+ * url参数替换,参数不存在则添加
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2019-03-20
+ * @desc description
+ * @param {[string]} field [字段名称]
+ * @param {[string]} value [字段值]
+ * @param {[string]} url [自定义url]
+ */
+function UrlFieldReplace(field, value, url)
+{
+ // 当前页面url地址
+ url = url || window.location.href;
+
+ // 锚点
+ var anchor = '';
+ if(url.indexOf('#') >= 0)
+ {
+ anchor = url.substr(url.indexOf('#'));
+ url = url.substr(0, url.indexOf('#'));
+ }
+
+ if(url.indexOf('?') >= 0)
+ {
+ var str = url.substr(0, url.lastIndexOf('.'));
+ var ext = url.substr(url.lastIndexOf('.'));
+ if(str.indexOf(field) >= 0)
+ {
+ var first = str.substr(0, str.lastIndexOf(field));
+ var last = str.substr(str.lastIndexOf(field));
+ last = last.replace(new RegExp(field+'/', 'g'), '');
+ last = (last.indexOf('/') >= 0) ? last.substr(last.indexOf('/')) : '';
+ url = first+field+'/'+value+last+ext;
+ } else {
+ if(ext.indexOf('?') >= 0)
+ {
+ var p = '';
+ exts = ext.substr(ext.indexOf('?')+1);
+ if(ext.indexOf(field) >= 0)
+ {
+ var params_all = exts.split('&');
+ for(var i in params_all)
+ {
+ var temp = params_all[i].split('=');
+
+ if(temp.length >= 2)
+ {
+ if(i > 0)
+ {
+ p += '&';
+ }
+ if(temp[0] == field)
+ {
+ p += field+'='+value;
+ } else {
+ p += params_all[i];
+ }
+ }
+ }
+ } else {
+ p = exts+'&'+field+'='+value;
+ }
+ url = str+(ext.substr(0, ext.indexOf('?')))+'?'+p;
+ } else {
+ url = str+'/'+field+'/'+value+ext;
+ }
+ }
+ } else {
+ url += '?'+field+'='+value;
+ }
+ return url+anchor;
+}
+
// 公共数据操作
$(function()
@@ -1723,7 +1798,6 @@ $(function()
// 文件上传
upload_editor.addListener("beforeInsertFile", function(t, result)
{
- console.log(t, result, 'file');
var fileHtml = '';
for(var i in result){
fileHtml += '- '+result[i].url+'
';
diff --git a/public/static/index/default/js/buy.js b/public/static/index/default/js/buy.js
index 737a7fdab..0cf91b27f 100755
--- a/public/static/index/default/js/buy.js
+++ b/public/static/index/default/js/buy.js
@@ -1,32 +1,12 @@
if(store.enabled)
{
// 选择缓存key
- var store_address_key = 'store-buy-address-selected-index';
var store_use_new_address_status_key = 'store-buy-use-new-address-status-count';
var store_payment_key = 'store-buy-payment-selected-index';
}
$(function()
{
- // 底部地址同步显示
- function address_sync_view()
- {
- var $address = $('ul.address-list li.address-default');
- if($address.length > 0)
- {
- var user = $address.find('.user-base span.user').text();
- var phone = $address.find('.user-base span.phone').text();
- var province = $address.find('.region .province').text();
- var city = $address.find('.region .city').text();
- var dist = $address.find('.region .dist').text();
- var street = $address.find('.region .street').text();
-
- $('.buy-address-detail').text(province+' '+city+' '+dist+' '+street);
- $('.buy-footer-address .buy-user').text(user);
- $('.buy-footer-address .buy-phone').text(phone);
- }
- }
-
// 选中处理
if(store.enabled)
{
@@ -37,20 +17,11 @@ $(function()
// 如果新的地址大于使用新地址标记数量则使用第一个地址
if(store_address_use_status < $('ul.address-list li').length)
{
- store.set(store_address_key, 0);
store.set(store_use_new_address_status_key, undefined);
+ window.location.href = UrlFieldReplace('address_id', $('ul.address-list li:first').data('value'));
}
}
- // 地址
- var store_address_value = store.get(store_address_key);
- if(store_address_value !== undefined)
- {
- $('ul.address-list li').eq(store_address_value).addClass('address-default').siblings().removeClass('address-default');
-
- // 底部地址同步
- address_sync_view();
- }
// 支付方式
var store_payment_value = store.get(store_payment_key);
if(store_payment_value !== undefined)
@@ -59,23 +30,34 @@ $(function()
}
}
- // 地址不为空,并且未设置默认,并且没有选择 默认选中第一个
- if($('ul.address-list li').length > 0 && $('ul.address-list li.address-default').length == 0)
- {
- $('ul.address-list li').eq(0).addClass('address-default');
-
- // 底部地址同步
- address_sync_view();
- }
-
// 地址选择
- $('ul.address-list li').on('click', function()
+ $('ul.address-list li').on('click', function(e)
{
- $(this).addClass('address-default').siblings().removeClass('address-default');
- store.set(store_address_key, $(this).index());
+ if($(window).width() < 640)
+ {
+ if(!$('.address').hasClass('mobile-address'))
+ {
+ $('.address').addClass('mobile-address');
+ $(document.body).css({"overflow": "hidden", "position":"fixed"});
+ e.stopPropagation();
+ }
+ } else {
+ // 底部地址同步
+ window.location.href = UrlFieldReplace('address_id', $(this).data('value'));
+ }
+ });
- // 底部地址同步
- address_sync_view();
+ // 手机模式下选择地址
+ $('.address').on('click', 'ul.address-list li', function()
+ {
+ window.location.href = UrlFieldReplace('address_id', $(this).data('value'));
+ });
+
+ // 设为默认地址
+ $('.address-default-submit').on('click', function(e)
+ {
+ ConfirmNetworkAjax($(this));
+ e.stopPropagation();
});
// 混合列表选择
@@ -123,34 +105,6 @@ $(function()
e.stopPropagation();
});
-
- // 手机模式下选择地址
- $('ul.address-list li').on('click', function(e)
- {
- if($(window).width() < 640)
- {
- if(!$('.address').hasClass('mobile-address'))
- {
- $('.address').addClass('mobile-address');
- $(document.body).css({"overflow": "hidden", "position":"fixed"});
- e.stopPropagation();
- }
- }
- });
- $('.address').on('click', 'ul.address-list li', function()
- {
- $('.address').removeClass('mobile-address');
- $(document.body).css({"overflow": "auto", "position":"unset"});
- $('body').scrollTop(0);
- });
-
- // 设为默认地址
- $('.address-default-submit').on('click', function(e)
- {
- ConfirmNetworkAjax($(this));
- e.stopPropagation();
- });
-
// 提交订单
$('.nav-buy .btn-go').on('click', function()
{