下订单自提地址处理
parent
7f8ca29777
commit
321aba9650
|
|
@ -15,7 +15,6 @@ use app\service\GoodsService;
|
||||||
use app\service\UserService;
|
use app\service\UserService;
|
||||||
use app\service\PaymentService;
|
use app\service\PaymentService;
|
||||||
use app\service\BuyService;
|
use app\service\BuyService;
|
||||||
use app\service\ConfigService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买
|
* 购买
|
||||||
|
|
@ -87,7 +86,8 @@ class Buy extends Common
|
||||||
$this->assign('payment_list', PaymentService::BuyPaymentList(['is_enable'=>1, 'is_open_user'=>1]));
|
$this->assign('payment_list', PaymentService::BuyPaymentList(['is_enable'=>1, 'is_open_user'=>1]));
|
||||||
|
|
||||||
// 站点类型 - 自提模式下提货地址
|
// 站点类型 - 自提模式下提货地址
|
||||||
$this->assign('common_self_extraction_address', ConfigService::SiteTypeExtractionAddressList());
|
$extraction_address = BuyService::SiteExtractionAddress($params);
|
||||||
|
$this->assign('self_extraction_address', $extraction_address['data']);
|
||||||
|
|
||||||
// 页面数据
|
// 页面数据
|
||||||
$this->assign('base', $ret['data']['base']);
|
$this->assign('base', $ret['data']['base']);
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,91 @@
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<!-- 地址 -->
|
<!-- 自提地址, 用户地址 -->
|
||||||
|
{{if $common_site_type eq 2}}
|
||||||
|
<!-- 自提地址 -->
|
||||||
|
<div class="address extraction-address">
|
||||||
|
<div class="control">
|
||||||
|
<h3>确认自提点地址</h3>
|
||||||
|
{{if !empty($self_extraction_address['default'])}}
|
||||||
|
<button type="button" class="am-btn am-btn-default am-btn-secondary am-radius" data-am-modal="{target: '#extraction-address-popup'}">选择地址</button>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
{{if empty($self_extraction_address['data_list'])}}
|
||||||
|
<p class="am-text-danger am-text-center am-margin-top-lg">请联系管理员配置自提点地址</p>
|
||||||
|
{{else /}}
|
||||||
|
<!-- 选中地址 -->
|
||||||
|
{{if !empty($self_extraction_address['default'])}}
|
||||||
|
<div class="am-panel am-panel-default extraction-default">
|
||||||
|
<div class="am-panel-bd extraction-address-item am-cf am-vertical-align">
|
||||||
|
<div class="first-icon am-fl am-vertical-align-middle">
|
||||||
|
<i class="am-icon-map-marker"></i>
|
||||||
|
</div>
|
||||||
|
<div class="am-fl am-vertical-align-middle">
|
||||||
|
<p>
|
||||||
|
{{if !empty($self_extraction_address['default']['alias'])}}
|
||||||
|
<span class="am-badge am-badge-secondary am-radius am-margin-right-xs">{{$self_extraction_address.default.alias}}</span>
|
||||||
|
{{/if}}
|
||||||
|
<span>{{$self_extraction_address.default.name}}</span>
|
||||||
|
<span>{{$self_extraction_address.default.tel}}</span>
|
||||||
|
</p>
|
||||||
|
<p class="address-detail">
|
||||||
|
<span>{{$self_extraction_address.default.province_name}}</span>
|
||||||
|
<span>{{$self_extraction_address.default.city_name}}</span>
|
||||||
|
<span>{{$self_extraction_address.default.county_name}}</span>
|
||||||
|
<span>{{$self_extraction_address.default.address}}</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="address-right">
|
||||||
|
<span class="am-icon-angle-right am-icon-md"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{else /}}
|
||||||
|
<div class="table-no">
|
||||||
|
<i class="am-icon-warning"></i>
|
||||||
|
<span>没有地址</span>
|
||||||
|
<button type="button" class="am-btn am-btn-default am-btn-secondary am-radius am-margin-left-sm" data-am-modal="{target: '#extraction-address-popup'}">选择地址</button>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
<!-- 自提地址选择弹层 -->
|
||||||
|
<div class="am-popup" id="extraction-address-popup">
|
||||||
|
<div class="am-popup-inner">
|
||||||
|
<div class="am-popup-hd">
|
||||||
|
<h4 class="am-popup-title">自提点选择</h4>
|
||||||
|
<span class="am-close" data-am-modal-close>×</span>
|
||||||
|
</div>
|
||||||
|
<div class="am-popup-bd">
|
||||||
|
<ul class="am-list">
|
||||||
|
{{foreach $self_extraction_address.data_list as $key=>$address}}
|
||||||
|
<li class="extraction-address-item" data-value="{{$key}}">
|
||||||
|
<p>
|
||||||
|
{{if !empty($address['alias'])}}
|
||||||
|
<span class="am-badge am-badge-secondary am-radius am-margin-right-xs">{{$address.alias}}</span>
|
||||||
|
{{/if}}
|
||||||
|
<span>{{$address.name}}</span>
|
||||||
|
<span>{{$address.tel}}</span>
|
||||||
|
</p>
|
||||||
|
<p class="address-detail">
|
||||||
|
<span>{{$address.province_name}}</span>
|
||||||
|
<span>{{$address.city_name}}</span>
|
||||||
|
<span>{{$address.county_name}}</span>
|
||||||
|
<span>{{$address.address}}</span>
|
||||||
|
</p>
|
||||||
|
{{if !isset($params['address_id']) or $params['address_id'] neq $key}}
|
||||||
|
<button type="button" class="am-btn am-btn-default am-radius" data-value="{{$key}}">选择</button>
|
||||||
|
{{/if}}
|
||||||
|
</li>
|
||||||
|
{{/foreach}}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
</div>
|
||||||
|
{{else /}}
|
||||||
|
<!-- 用户地址 -->
|
||||||
<div class="address">
|
<div class="address">
|
||||||
<div class="control">
|
<div class="control">
|
||||||
<h3>确认收货地址</h3>
|
<h3>确认收货地址</h3>
|
||||||
|
|
@ -88,14 +172,15 @@
|
||||||
</li>
|
</li>
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
</ul>
|
</ul>
|
||||||
{{/if}}
|
{{else /}}
|
||||||
{{if empty($user_address_list)}}
|
|
||||||
<div class="table-no">
|
<div class="table-no">
|
||||||
<i class="am-icon-warning"></i>
|
<i class="am-icon-warning"></i>
|
||||||
没有地址
|
<span>没有地址</span>
|
||||||
<button class="am-btn am-btn-secondary am-btn-xs address-submit-save" type="button" data-url="{{:MyUrl('index/useraddress/saveinfo')}}" data-popup-title="新增地址">使用新地址</button></div>
|
<button class="am-btn am-btn-secondary am-btn-xs am-margin-left-sm address-submit-save" type="button" data-url="{{:MyUrl('index/useraddress/saveinfo')}}" data-popup-title="新增地址">使用新地址</button>
|
||||||
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<!-- 订单确认页面地址底部钩子 -->
|
<!-- 订单确认页面地址底部钩子 -->
|
||||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
|
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ use think\facade\Hook;
|
||||||
use app\service\GoodsService;
|
use app\service\GoodsService;
|
||||||
use app\service\UserService;
|
use app\service\UserService;
|
||||||
use app\service\ResourcesService;
|
use app\service\ResourcesService;
|
||||||
|
use app\service\ConfigService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 购买服务层
|
* 购买服务层
|
||||||
|
|
@ -1243,5 +1244,38 @@ class BuyService
|
||||||
}
|
}
|
||||||
return DataReturn('没有需要回滚的数据', 0);
|
return DataReturn('没有需要回滚的数据', 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自提点地址选中地址获取
|
||||||
|
* @author Devil
|
||||||
|
* @blog http://gong.gg/
|
||||||
|
* @version 1.0.0
|
||||||
|
* @date 2019-11-18
|
||||||
|
* @desc description
|
||||||
|
* @param [int] $params['address_id'] [自提点地址索引值]
|
||||||
|
* @param [array] $params['address_id'] [自提点地址列表]
|
||||||
|
*/
|
||||||
|
public static function SiteExtractionAddress($params = [])
|
||||||
|
{
|
||||||
|
// 自提地址列表
|
||||||
|
$address = ConfigService::SiteTypeExtractionAddressList();
|
||||||
|
|
||||||
|
// 选中地址处理
|
||||||
|
$default = null;
|
||||||
|
if(isset($params['address_id']) && !empty($address['data']) && is_array($address['data']))
|
||||||
|
{
|
||||||
|
if(isset($address['data'][$params['address_id']]))
|
||||||
|
{
|
||||||
|
$default = $address['data'][$params['address_id']];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 返回数据
|
||||||
|
$result = [
|
||||||
|
'data_list' => $address['data'],
|
||||||
|
'default' => $default,
|
||||||
|
];
|
||||||
|
return DataReturn('操作成功', 0, $result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
return [
|
return [
|
||||||
// 开发模式
|
// 开发模式
|
||||||
'is_develop' => true,
|
'is_develop' => false,
|
||||||
|
|
||||||
// 默认编码
|
// 默认编码
|
||||||
'default_charset' => 'utf-8',
|
'default_charset' => 'utf-8',
|
||||||
|
|
|
||||||
|
|
@ -49,10 +49,24 @@ ul.home_site_user_register_bg_images-images-view li {
|
||||||
.address-detail, #map {
|
.address-detail, #map {
|
||||||
border-bottom: 0 !important;
|
border-bottom: 0 !important;
|
||||||
}
|
}
|
||||||
.address-list {
|
|
||||||
padding: 0 20% 0 0 !important;
|
|
||||||
}
|
|
||||||
.address-list .edit-submit,
|
.address-list .edit-submit,
|
||||||
.address-list .delete-submit {
|
.address-list .delete-submit {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
@media only screen and (min-width:640px) {
|
||||||
|
.address-list {
|
||||||
|
padding: 0 20% 0 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (max-width:640px) {
|
||||||
|
.address-list .edit-submit,
|
||||||
|
.address-list .delete-submit {
|
||||||
|
position: absolute;
|
||||||
|
top: 12px;
|
||||||
|
right: 5px;
|
||||||
|
float: none !important;
|
||||||
|
}
|
||||||
|
.address-list .delete-submit {
|
||||||
|
right: 70px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/*页面*/
|
/*页面*/
|
||||||
.buy-items h3{border-bottom: 3px solid #e3e3e3; margin-top:15px;}
|
.buy-items h3{border-bottom: 2px solid #e3e3e3; margin-top:15px;}
|
||||||
|
|
||||||
/*地址管理*/
|
/*地址管理*/
|
||||||
h3 { font-size: 14px;font-weight: 700;}
|
h3 { font-size: 14px;font-weight: 700;}
|
||||||
|
|
@ -192,3 +192,60 @@ strong.total-price-content { color: #d2364c; font-size: 16px; }
|
||||||
.cart-content { margin-top: 20px; }
|
.cart-content { margin-top: 20px; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自提地址
|
||||||
|
*/
|
||||||
|
.extraction-address-item {
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
.extraction-address-item .first-icon {
|
||||||
|
width: 15px;
|
||||||
|
}
|
||||||
|
.extraction-address-item .first-icon i {
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
.extraction-address-item .address-detail {
|
||||||
|
margin-top: 2px;
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 640px) {
|
||||||
|
.extraction-address {
|
||||||
|
padding: 0 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 1025px) {
|
||||||
|
.extraction-address {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (max-width: 640px) {
|
||||||
|
.extraction-default {
|
||||||
|
background: url(../images/buy-peraddress.png) repeat-x;
|
||||||
|
background-position: bottom;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.extraction-default .am-panel-bd {
|
||||||
|
padding: 20px 5px;
|
||||||
|
}
|
||||||
|
.extraction-default .am-panel-bd .address-right {
|
||||||
|
padding-top: 5px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 自提地址-弹层
|
||||||
|
*/
|
||||||
|
#extraction-address-popup .am-list {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
#extraction-address-popup .am-list > li {
|
||||||
|
padding: 10px 5px;
|
||||||
|
border-color: #eee;
|
||||||
|
}
|
||||||
|
#extraction-address-popup .am-list > li:first-child {
|
||||||
|
border-top: 0;
|
||||||
|
}
|
||||||
|
#extraction-address-popup .extraction-address-item button {
|
||||||
|
position: absolute;
|
||||||
|
top: 15px;
|
||||||
|
right: 5px;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -120,4 +120,18 @@ $(function()
|
||||||
$('form.nav-buy input[name=user_note]').val($('.order-user-info input.memo-input').val());
|
$('form.nav-buy input[name=user_note]').val($('.order-user-info input.memo-input').val());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 自提点地址
|
||||||
|
$extraction_popup = $('#extraction-address-popup');
|
||||||
|
$extraction_popup.find('.extraction-address-item button').on('click', function()
|
||||||
|
{
|
||||||
|
window.location.href = UrlFieldReplace('address_id', $(this).data('value'));
|
||||||
|
});
|
||||||
|
$('.extraction-default .extraction-address-item').on('click', function(e)
|
||||||
|
{
|
||||||
|
if($(window).width() < 640)
|
||||||
|
{
|
||||||
|
$extraction_popup.modal();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
Loading…
Reference in New Issue