新增用户隐私政策、动态表格层级样式优化、细节优化
parent
a7a813d973
commit
05d342339f
|
|
@ -57,6 +57,19 @@ class Agreement extends Common
|
|||
// 编辑器文件存放地址
|
||||
$this->assign('editor_path_type', ResourcesService::EditorPathTypeValue('agreement'));
|
||||
|
||||
// 导航数据
|
||||
$nav_data = [
|
||||
[
|
||||
'name' => '用户注册协议',
|
||||
'type' => 'register',
|
||||
],
|
||||
[
|
||||
'name' => '用户隐私政策',
|
||||
'type' => 'privacy',
|
||||
]
|
||||
];
|
||||
$this->assign('nav_data', $nav_data);
|
||||
|
||||
// 导航/视图
|
||||
$nav_type = input('nav_type', 'register');
|
||||
$this->assign('nav_type', $nav_type);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
<ul class="am-nav am-nav-pills table-nav second-nav">
|
||||
<li {{if $nav_type eq 'register'}}class="am-active"{{/if}} data-type="register">
|
||||
<a href="{{:MyUrl('admin/agreement/index', ['nav_type'=>'register'])}}">用户注册协议</a>
|
||||
</li>
|
||||
</ul>
|
||||
{{foreach $nav_data as $v}}
|
||||
<li {{if $nav_type eq $v['type']}}class="am-active"{{/if}} data-type="{{$v.type}}">
|
||||
<a href="{{:MyUrl('admin/agreement/index', ['nav_type'=>$v['type']])}}">{{$v.name}}</a>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
<div class="am-alert am-margin-sm" data-am-alert>
|
||||
<button type="button" class="am-close">×</button>
|
||||
<p>前端访问协议地址增加参数 is_content=0 则仅展示纯协议内容</p>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
<!-- right content start -->
|
||||
<div class="content-right">
|
||||
<!-- table nav start -->
|
||||
{{include file="agreement/nav" /}}
|
||||
<!-- table nav end -->
|
||||
|
||||
<div class="content">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:MyUrl('admin/agreement/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/agreement/index', ['nav_type'=>$nav_type])}}">
|
||||
<div class="am-form-group">
|
||||
<div class="am-cf">
|
||||
<label><span class="am-form-group-label-tips am-margin-left-0">{{$data.common_agreement_userprivacy.describe}}</span></label>
|
||||
<a href="{{:MyUrl('index/agreement/index', ['document'=>'userprivacy'])}}" target="_blank" class="am-fr">查看详情</a>
|
||||
</div>
|
||||
<textarea class="am-radius am-validate" name="{{$data.common_agreement_userprivacy.only_tag}}" maxlength="105000" id="editor-tag" data-validation-message="{{$data.common_agreement_userprivacy.error_tips}}">{{if !empty($data)}}{{$data.common_agreement_userprivacy.value|raw}}{{/if}}</textarea>
|
||||
</div>
|
||||
<div class="am-form-group am-form-group-refreshing am-margin-top-lg am-padding-left-0">
|
||||
<button type="submit" class="am-btn am-btn-primary am-radius btn-loading-example am-btn-sm am-btn-block" data-am-loading="{loadingText:'处理中...'}">保存</button>
|
||||
<a href="{{:MyUrl('index/agreement/index', ['document'=>'userprivacy'])}}" target="_blank">
|
||||
<button type="button" class="am-btn am-btn-default am-btn-xs am-btn-block am-margin-top-sm">查看详情</button>
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
<!-- form end -->
|
||||
</div>
|
||||
</div>
|
||||
<!-- right content end -->
|
||||
|
||||
<!-- footer start -->
|
||||
{{include file="public/footer" /}}
|
||||
<!-- footer end -->
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<div class="content">
|
||||
<!-- form start -->
|
||||
<form class="am-form form-validation view-save" action="{{:MyUrl('admin/agreement/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/agreement/index', ['type'=>$nav_type])}}">
|
||||
<form class="am-form form-validation view-save" action="{{:MyUrl('admin/agreement/save')}}" method="POST" request-type="ajax-url" request-value="{{:MyUrl('admin/agreement/index', ['nav_type'=>$nav_type])}}">
|
||||
<div class="am-form-group">
|
||||
<div class="am-cf">
|
||||
<label><span class="am-form-group-label-tips am-margin-left-0">{{$data.common_agreement_userregister.describe}}</span></label>
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@
|
|||
<input type="text" name="idcard_front" value="{{$data.idcard_front_old}}" />
|
||||
{{/if}}
|
||||
<img src="{{if empty($data['idcard_front'])}}{{$attachment_host}}/static/common/images/default-idcard-front.jpg{{else /}}{{$data.idcard_front}}{{/if}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.images-idcard_front">+上传人像面图片</div>
|
||||
|
|
@ -90,6 +91,7 @@
|
|||
<input type="text" name="idcard_back" value="{{$data.idcard_back_old}}" />
|
||||
{{/if}}
|
||||
<img src="{{if empty($data['idcard_back'])}}{{$attachment_host}}/static/common/images/default-idcard-back.jpg{{else /}}{{$data.idcard_back}}{{/if}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.images-idcard_back">+上传国微面图片</div>
|
||||
|
|
|
|||
|
|
@ -62,6 +62,11 @@ class Agreement extends Common
|
|||
}
|
||||
$data = $ret['data'];
|
||||
}
|
||||
|
||||
// 是否隐藏头尾、默认显示
|
||||
$is_content = isset($params['is_content']) ? intval($params['is_content']) : 1;
|
||||
$this->assign('is_header', $is_content);
|
||||
$this->assign('is_footer', $is_content);
|
||||
$this->assign('data', $data);
|
||||
return $this->fetch();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,16 +1,20 @@
|
|||
{{include file="public/header" /}}
|
||||
|
||||
<!-- header top nav -->
|
||||
{{include file="public/header_top_nav" /}}
|
||||
<!-- header nav start -->
|
||||
{{if isset($is_header) and $is_header eq 1}}
|
||||
<!-- header top nav -->
|
||||
{{include file="public/header_top_nav" /}}
|
||||
|
||||
<!-- search -->
|
||||
{{include file="public/nav_search" /}}
|
||||
<!-- search -->
|
||||
{{include file="public/nav_search" /}}
|
||||
|
||||
<!-- header nav -->
|
||||
{{include file="public/header_nav" /}}
|
||||
<!-- header nav -->
|
||||
{{include file="public/header_nav" /}}
|
||||
|
||||
<!-- goods category -->
|
||||
{{include file="public/goods_category" /}}
|
||||
<!-- goods category -->
|
||||
{{include file="public/goods_category" /}}
|
||||
{{/if}}
|
||||
<!-- header nav end -->
|
||||
|
||||
<!-- content -->
|
||||
<div class="am-container">
|
||||
|
|
|
|||
|
|
@ -137,4 +137,4 @@
|
|||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 顶部导航条 end
|
||||
<!-- 顶部导航条 end -->
|
||||
|
|
@ -103,9 +103,11 @@
|
|||
{{if MyC('home_is_enable_userregister_agreement') eq 1}}
|
||||
<div class="agreement am-padding-horizontal-sm">
|
||||
<label class="am-checkbox am-success c-p">
|
||||
<input type="checkbox" value="1" name="is_agree_agreement" data-validation-message="请同意注册协议" data-am-ucheck required /> 阅读并同意
|
||||
<input type="checkbox" value="1" name="is_agree_agreement" data-validation-message="请同意协议" data-am-ucheck required /> 阅读并同意
|
||||
</label>
|
||||
<a href="{{:MyUrl('index/agreement/index', ['document'=>'userregister'])}}" target="_blank">《服务协议》</a>
|
||||
<span>与</span>
|
||||
<a href="{{:MyUrl('index/agreement/index', ['document'=>'userprivacy'])}}" target="_blank">《隐私政策》</a>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
|
|
@ -149,7 +151,7 @@
|
|||
{{if MyC('home_is_enable_userregister_agreement') eq 1}}
|
||||
<div class="agreement am-padding-horizontal-sm">
|
||||
<label class="am-checkbox am-success c-p">
|
||||
<input type="checkbox" value="1" name="is_agree_agreement" data-validation-message="请同意注册协议" data-am-ucheck required /> 阅读并同意
|
||||
<input type="checkbox" value="1" name="is_agree_agreement" data-validation-message="请同意协议" data-am-ucheck required /> 阅读并同意
|
||||
</label>
|
||||
<a href="{{:MyUrl('index/agreement/index', ['document'=>'userregister'])}}" target="_blank">《服务协议》</a>
|
||||
</div>
|
||||
|
|
@ -195,7 +197,7 @@
|
|||
{{if MyC('home_is_enable_userregister_agreement') eq 1}}
|
||||
<div class="agreement am-padding-horizontal-sm">
|
||||
<label class="am-checkbox am-success c-p">
|
||||
<input type="checkbox" value="1" name="is_agree_agreement" data-validation-message="请同意注册协议" data-am-ucheck required /> 阅读并同意
|
||||
<input type="checkbox" value="1" name="is_agree_agreement" data-validation-message="请同意协议" data-am-ucheck required /> 阅读并同意
|
||||
</label>
|
||||
<a href="{{:MyUrl('index/agreement/index', ['document'=>'userregister'])}}" target="_blank">《服务协议》</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@
|
|||
<input type="text" name="idcard_front" value="{{$data.idcard_front_old}}" />
|
||||
{{/if}}
|
||||
<img src="{{if empty($data['idcard_front'])}}{{$attachment_host}}/static/common/images/default-idcard-front.jpg{{else /}}{{$data.idcard_front}}{{/if}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.images-idcard_front">+上传人像面图片</div>
|
||||
|
|
@ -70,6 +71,7 @@
|
|||
<input type="text" name="idcard_back" value="{{$data.idcard_back_old}}" />
|
||||
{{/if}}
|
||||
<img src="{{if empty($data['idcard_back'])}}{{$attachment_host}}/static/common/images/default-idcard-back.jpg{{else /}}{{$data.idcard_back}}{{/if}}" />
|
||||
<i>×</i>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="plug-file-upload-submit" data-view-tag="ul.images-idcard_back">+上传国微面图片</div>
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ class ConfigService
|
|||
'home_email_user_email_binding',
|
||||
'home_site_close_reason',
|
||||
'common_agreement_userregister',
|
||||
'common_agreement_userprivacy',
|
||||
'common_self_extraction_address',
|
||||
'home_index_floor_top_right_keywords',
|
||||
'home_index_floor_manual_mode_goods',
|
||||
|
|
|
|||
|
|
@ -207,6 +207,21 @@ class OrderService
|
|||
}
|
||||
}
|
||||
|
||||
// 是否指定同步回调地址
|
||||
if(!empty($params['redirect_url']))
|
||||
{
|
||||
$redirect_url = base64_decode(urldecode($params['redirect_url']));
|
||||
if(!empty($redirect_url))
|
||||
{
|
||||
// 赋值同步返回地址
|
||||
$call_back_url = $redirect_url;
|
||||
}
|
||||
}
|
||||
if(empty($redirect_url))
|
||||
{
|
||||
$redirect_url = MyUrl('index/order/index');
|
||||
}
|
||||
|
||||
// 新增支付日志
|
||||
$pay_log = self::OrderPayLogInsert([
|
||||
'user_id' => $params['user']['id'],
|
||||
|
|
@ -235,7 +250,7 @@ class OrderService
|
|||
'client_type' => $client_type,
|
||||
'notify_url' => $url.'_notify.php',
|
||||
'call_back_url' => $call_back_url,
|
||||
'redirect_url' => MyUrl('index/order/index'),
|
||||
'redirect_url' => $redirect_url,
|
||||
'site_name' => MyC('home_site_name', 'ShopXO', true),
|
||||
'ajax_url' => MyUrl('index/order/paycheck'),
|
||||
];
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ class ResourcesService
|
|||
|
||||
/**
|
||||
* 附件路径处理
|
||||
* @author Devil
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-12-12
|
||||
|
|
@ -89,12 +89,12 @@ class ResourcesService
|
|||
|
||||
/**
|
||||
* 附件集合处理
|
||||
* @author Devil
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2018-08-07
|
||||
* @desc description
|
||||
* @param [array] $params [输入参数]
|
||||
* @param [array] $params [输入参数]
|
||||
* @param [array] $data [字段列表]
|
||||
*/
|
||||
public static function AttachmentParams($params, $data)
|
||||
|
|
@ -117,7 +117,7 @@ class ResourcesService
|
|||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2019-01-13T15:13:30+0800
|
||||
* @param [type] $value [description]
|
||||
* @param [string] $value [description]
|
||||
*/
|
||||
public static function AttachmentPathViewHandle($value)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -362,37 +362,15 @@ class UserAddressService
|
|||
'city' => intval($params['city']),
|
||||
'county' => isset($params['county']) ? intval($params['county']) : 0,
|
||||
'address' => $params['address'],
|
||||
'lng' => isset($params['lng']) ? floatval($params['lng']) : 0,
|
||||
'lat' => isset($params['lat']) ? floatval($params['lat']) : 0 ,
|
||||
'idcard_name' => empty($params['idcard_name']) ? '' : $params['idcard_name'],
|
||||
'idcard_number' => empty($params['idcard_number']) ? '' : $params['idcard_number'],
|
||||
'idcard_front' => $attachment['data']['idcard_front'],
|
||||
'idcard_back' => $attachment['data']['idcard_back'],
|
||||
'is_default' => $is_default,
|
||||
];
|
||||
|
||||
// 坐标
|
||||
if(!empty($params['lng']) && $params['lng'] != 0)
|
||||
{
|
||||
$data['lng'] = floatval($params['lng']);
|
||||
}
|
||||
if(!empty($params['lat']) && $params['lat'] != 0)
|
||||
{
|
||||
$data['lat'] = floatval($params['lat']);
|
||||
}
|
||||
|
||||
// 身份证信息
|
||||
if(!empty($params['idcard_name']))
|
||||
{
|
||||
$data['idcard_name'] = $params['idcard_name'];
|
||||
}
|
||||
if(!empty($params['idcard_number']))
|
||||
{
|
||||
$data['idcard_number'] = $params['idcard_number'];
|
||||
}
|
||||
if(!empty($attachment['data']['idcard_front']))
|
||||
{
|
||||
$data['idcard_front'] = $attachment['data']['idcard_front'];
|
||||
}
|
||||
if(!empty($attachment['data']['idcard_back']))
|
||||
{
|
||||
$data['idcard_back'] = $attachment['data']['idcard_back'];
|
||||
}
|
||||
|
||||
// 用户地址保存前钩子
|
||||
$hook_name = 'plugins_service_user_address_save_begin';
|
||||
$ret = HookReturnHandle(Hook::listen($hook_name, [
|
||||
|
|
|
|||
|
|
@ -32,5 +32,219 @@ return array (
|
|||
'log_write' =>
|
||||
array (
|
||||
),
|
||||
'plugins_admin_css' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_css' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
2 => 'app\\plugins\\coupon\\Hook',
|
||||
3 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_js' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
1 => 'app\\plugins\\coupon\\Hook',
|
||||
2 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_navigation_header_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
1 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_users_center_left_menu_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
2 => 'app\\plugins\\coupon\\Hook',
|
||||
3 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_header_navigation_top_right_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
2 => 'app\\plugins\\coupon\\Hook',
|
||||
3 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_goods_save_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_service_editor_path_type_admin_goods_saveinfo' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_right_content_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_base_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_base_buy_nav_min_inside_begin' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_service_warehouse_handle_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_service_buy_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_service_buy_order_insert_begin' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
'plugins_service_buy_order_insert_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
2 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_order_status_change_history_success_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
2 => 'app\\plugins\\coupon\\Hook',
|
||||
3 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_order_aftersale_audit_handle_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
1 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
2 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_view_admin_goods_save' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_service_goods_handle_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
1 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_module_form_admin_goods_index' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_module_form_admin_goods_detail' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_service_goods_buy_nav_button_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\shop\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_panel_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
1 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_title' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\excellentbuyreturntocash\\Hook',
|
||||
),
|
||||
'plugins_view_buy_group_goods_inside_bottom' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_buy_group_goods_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_view_buy_form_inside' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_buy_order_insert_success' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_user_register_end' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_base_data_return_api_goods_detail' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_service_base_data_return_api_buy_index' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\coupon\\Hook',
|
||||
),
|
||||
'plugins_view_admin_goods_list_operate' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\intellectstools\\Hook',
|
||||
),
|
||||
'plugins_view_admin_order_list_operate' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\intellectstools\\Hook',
|
||||
),
|
||||
'plugins_service_site_extraction_address_list' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_extends_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_view_admin_user_save' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_user_save_handle' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_goods_spec_base' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_view_goods_detail_panel_price_top' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_module_form_admin_user_index' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_module_form_admin_user_detail' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_quick_navigation_pc' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_quick_navigation_h5' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_quick_navigation_weixin' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_quick_navigation_alipay' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_quick_navigation_baidu' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_quick_navigation_qq' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
'plugins_service_quick_navigation_toutiao' =>
|
||||
array (
|
||||
0 => 'app\\plugins\\distribution\\Hook',
|
||||
),
|
||||
);
|
||||
?>
|
||||
|
|
@ -1,3 +1,24 @@
|
|||
+=========================================================+
|
||||
ShopXO 2.0.3 Release 000000 http://shopxo.net
|
||||
+=========================================================+
|
||||
全局
|
||||
1.
|
||||
|
||||
web端
|
||||
1. 系统更新+插件更新优化
|
||||
2. 支付宝支付金额兼容性优化、支持异步返回
|
||||
3. 后台左侧菜单宽度调整
|
||||
4. 插件/主题打包新增版本号
|
||||
5. 商品编辑优化
|
||||
6. api接口新增更多配置信息
|
||||
7. 用户注册新增用户隐私协议
|
||||
|
||||
插件
|
||||
1. 优购返现插件新增按照订单金额返券
|
||||
2. 优惠券插件修复web端未登录点击领取无响应
|
||||
3. 新增智能工具箱插件
|
||||
|
||||
|
||||
+=========================================================+
|
||||
ShopXO 2.0.2 Release 20210426 http://shopxo.net
|
||||
+=========================================================+
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ return [
|
|||
// 应用地址
|
||||
'app_host' => '',
|
||||
// 应用调试模式
|
||||
'app_debug' => false,
|
||||
'app_debug' => true,
|
||||
// 应用Trace
|
||||
'app_trace' => false,
|
||||
// 是否支持多模块
|
||||
|
|
|
|||
|
|
@ -0,0 +1,24 @@
|
|||
/**
|
||||
* 地址添加/编辑
|
||||
*/
|
||||
.user-address-idcard-images ul li {
|
||||
margin: 0;
|
||||
}
|
||||
@media only screen and (min-width: 641px) {
|
||||
.user-address-idcard-images ul li,
|
||||
.user-address-idcard-images .plug-file-upload-submit {
|
||||
width: 200px;
|
||||
}
|
||||
.user-address-idcard-images ul li {
|
||||
height: 132px;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width: 641px) {
|
||||
.user-address-idcard-images ul li,
|
||||
.user-address-idcard-images .plug-file-upload-submit {
|
||||
width: 128px;
|
||||
}
|
||||
.user-address-idcard-images ul li {
|
||||
height: 85px;
|
||||
}
|
||||
}
|
||||
|
|
@ -97,7 +97,8 @@ form.am-form .am-form-group-refreshing, .plug-file-upload-view { border-bottom:
|
|||
-webkit-box-shadow: 0 0 30px rgba(0,0,0,0.4);
|
||||
box-shadow: 0 0 30px rgba(0,0,0,0.4);
|
||||
}
|
||||
.popup-not-title .am-close {
|
||||
.popup-not-title .am-close,
|
||||
.modal-dialog-not-title .am-close {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 10px;
|
||||
|
|
@ -112,7 +113,12 @@ form.am-form .am-form-group-refreshing, .plug-file-upload-view { border-bottom:
|
|||
height: 32px;
|
||||
z-index: 1;
|
||||
}
|
||||
.popup-not-title .am-close:hover {
|
||||
.modal-dialog-not-title .am-close {
|
||||
top: -15px;
|
||||
right: -15px;
|
||||
}
|
||||
.popup-not-title .am-close:hover,
|
||||
.modal-dialog-not-title .am-close:hover {
|
||||
background: #f22a30;
|
||||
}
|
||||
.am-popup-hd .am-close, .am-popup-hd .am-full {
|
||||
|
|
@ -585,7 +591,7 @@ button.colorpicker-submit img {
|
|||
background: #e8e6e6;
|
||||
min-width: 100px;
|
||||
position: sticky;
|
||||
z-index: 1011;
|
||||
z-index: 1;
|
||||
top: 0;
|
||||
}
|
||||
.am-table-scrollable-horizontal .am-table tr .am-grid-xxxl {
|
||||
|
|
@ -621,11 +627,11 @@ button.colorpicker-submit img {
|
|||
.am-table-scrollable-horizontal .am-table tr td.am-grid-fixed-left,
|
||||
.am-table-scrollable-horizontal .am-table tr td.am-grid-fixed-right {
|
||||
background: #fff;
|
||||
z-index: 1011;
|
||||
z-index: 1;
|
||||
}
|
||||
.am-table-scrollable-horizontal .am-table tr th.am-grid-fixed-left,
|
||||
.am-table-scrollable-horizontal .am-table tr th.am-grid-fixed-right {
|
||||
z-index: 1012;
|
||||
z-index: 2;
|
||||
}
|
||||
.am-table-scrollable-horizontal .am-table tr .am-grid-fixed-left {
|
||||
-webkit-box-shadow: 1px 0px 1px #ddd;
|
||||
|
|
|
|||
|
|
@ -2556,16 +2556,27 @@ $(function()
|
|||
fillcolor:true,
|
||||
success:function(o, color)
|
||||
{
|
||||
var style = o.context.dataset.colorStyle || 'color';
|
||||
$(o.context.dataset.inputTag).css(style, color);
|
||||
var style_arr = (o.context.dataset.colorStyle || 'color').split('|');
|
||||
var style_value = {};
|
||||
for(var i in style_arr)
|
||||
{
|
||||
style_value[style_arr[i]] = color;
|
||||
}
|
||||
$(o.context.dataset.inputTag).css(style_value);
|
||||
$(o.context.dataset.colorTag).val(color);
|
||||
$(o.context.dataset.colorTag).trigger('change');
|
||||
},
|
||||
reset:function(o)
|
||||
{
|
||||
var style = o.context.dataset.colorStyle || 'color';
|
||||
$(o.context.dataset.inputTag).css(style, '');
|
||||
$(o.context.dataset.colorTag).val('');
|
||||
var color = '';
|
||||
var style_arr = (o.context.dataset.colorStyle || 'color').split('|');
|
||||
var style_value = {};
|
||||
for(var i in style_arr)
|
||||
{
|
||||
style_value[style_arr[i]] = color;
|
||||
}
|
||||
$(o.context.dataset.inputTag).css(style_value);
|
||||
$(o.context.dataset.colorTag).val(color);
|
||||
$(o.context.dataset.colorTag).trigger('change');
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -15,13 +15,21 @@
|
|||
return this.each(function(){
|
||||
var obj = $(this);
|
||||
obj.bind(opts.event,function(){
|
||||
//定位
|
||||
// 上、左距离、浮动类型处理
|
||||
var top_inc = parseInt($(this).data('top-inc')) || 0;
|
||||
var top_dec = parseInt($(this).data('top-dec')) || 0;
|
||||
var left_inc = parseInt($(this).data('left-inc')) || 0;
|
||||
var left_dec = $(this).data('left-inc') == undefined ? 1 : parseInt($(this).data('left-dec')) || 0;
|
||||
var position = $(this).data('position') || 'absolute';
|
||||
|
||||
// 定位
|
||||
var ttop = $(this).offset().top; //控件的定位点高
|
||||
var thei = $(this).height(); //控件本身的高
|
||||
var thei = $(this).outerHeight(); //控件本身的高
|
||||
var tleft = $(this).offset().left+$(this).outerWidth()-232; //控件的定位点宽
|
||||
$("#colorpanel").css({
|
||||
top:ttop+thei+16,
|
||||
left:tleft
|
||||
"top":ttop+thei+top_inc-top_dec,
|
||||
"left":tleft+left_inc-left_dec,
|
||||
"position":position
|
||||
}).show();
|
||||
var target = opts.target ? $(opts.target) : obj;
|
||||
if(target.data("color") == null){
|
||||
|
|
@ -82,12 +90,12 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
colorTable='<table width=232 border="0" cellspacing="0" cellpadding="0" style="border:1px solid #000;height: 24px;line-height: 21px;">'
|
||||
colorTable='<table width=232 border="0" cellspacing="0" cellpadding="0" style="border:1px solid #333;height: 24px;line-height: 21px;">'
|
||||
+'<tr><td colspan=21 bgcolor=#cccccc>'
|
||||
+'<table cellpadding="0" cellspacing="1" border="0" style="border-collapse: collapse">'
|
||||
+'<tr><td width="3"><td><input type="text" id="DisColor" size="3" disabled style="border:solid 1px #000000;background-color:#ffff00"></td>'
|
||||
+'<td width="3"><td><input type="text" id="HexColor" size="7" style="border:inset 1px;font-family:Arial;" value="#000000"><a href="javascript:void(0);" id="_determine">确定</a> | <a href="javascript:void(0);" id="_cclose">关闭</a> | <a href="javascript:void(0);" id="_creset">清除</a></td></tr></table></td></table>'
|
||||
+'<table id="CT" border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="000000" style="cursor:pointer;">'
|
||||
+'<tr><td width="3"><td><input type="text" id="DisColor" size="3" disabled style="border:solid 1px #000000;background-color:#000000;padding:0;"></td>'
|
||||
+'<td width="3"><td><input type="text" id="HexColor" style="border:inset 1px;font-family:Arial;width:58px;" value="#000000"><a href="javascript:void(0);" id="_determine">确定</a> | <a href="javascript:void(0);" id="_cclose">关闭</a> | <a href="javascript:void(0);" id="_creset">清除</a></td></tr></table></td></table>'
|
||||
+'<table id="CT" border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse;border-color:#333;border-width:0 1px 1px 1px;border-style:solid;">'
|
||||
+colorTable+'</table>';
|
||||
$("#colorpanel").html(colorTable);
|
||||
$("#_cclose").on('click',function(){
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ input.add,input.min{width:15px}
|
|||
.mobile-navigation li.active a{ color:#d2364c; }
|
||||
.hot-icon { position: absolute; top: 1%; left: 53%; z-index: 2; border: 1px solid #fff; }
|
||||
|
||||
@media only screen and (min-width: 640px) {
|
||||
@media only screen and (min-width: 641px) {
|
||||
.am-container {padding-left:0px;padding-right:0px ;}
|
||||
.nav-search{background: #fff; margin: 20px 0 5px 0;}
|
||||
.header-top { display:block;}
|
||||
|
|
@ -455,7 +455,7 @@ ul.am-dropdown-content > .am-active > a:focus,
|
|||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width: 641px) {
|
||||
@media only screen and (max-width: 640px) {
|
||||
.common-login-modal {
|
||||
height: 410px;
|
||||
top: calc(50% - 210px);
|
||||
|
|
@ -811,7 +811,7 @@ table.am-table .am-btn-danger:hover {
|
|||
width: 100%;
|
||||
}
|
||||
}
|
||||
@media only screen and (max-width:641px) {
|
||||
@media only screen and (max-width:640px) {
|
||||
.shop-navigation {
|
||||
background: #d2354c;
|
||||
margin-top: 0;
|
||||
|
|
@ -889,7 +889,7 @@ img.common-user-icon {
|
|||
.user-content {display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;background:#fff;}
|
||||
|
||||
.user-offcanvas-bar { z-index: 900; }
|
||||
@media only screen and (min-width:640px) {
|
||||
@media only screen and (min-width:641px) {
|
||||
.user-sidebar {display:block;position:relative;background:none; border-top: 5px solid #ED5564;z-index: 0;}
|
||||
.user-offcanvas-bar {position:static;width:auto;background:none;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0);overflow-y:hidden;}
|
||||
.user-offcanvas-bar:after {content:none;}
|
||||
|
|
@ -934,7 +934,7 @@ button { outline: none !important; }
|
|||
.common-cropper-popup .am-form-group { width: auto; }
|
||||
.common-cropper-popup form.am-form .am-form-group-refreshing { padding: 0 !important; }
|
||||
.common-cropper-popup .am-form-file input[type="file"] { width: 106px !important; top: 0; }
|
||||
@media only screen and (max-width:641px){
|
||||
@media only screen and (max-width:640px){
|
||||
.common-cropper-popup .img-preview { margin-left:10px; }
|
||||
.common-cropper-popup .preview-md,
|
||||
.common-cropper-popup .preview-sm { margin:0 0 5px 8px; }
|
||||
|
|
|
|||
Loading…
Reference in New Issue