提交 9a347569 编写于 作者: D devil

用户地址新增身份证信息填写

上级 0331c61b
......@@ -121,6 +121,9 @@ class Order extends Common
$ret = OrderService::OrderList($data_params);
$data = (empty($ret['data']) || empty($ret['data'][0])) ? [] : $ret['data'][0];
$this->assign('data', $data);
// 加载百度地图api
$this->assign('is_load_baidu_map_api', 1);
}
return $this->fetch();
}
......
......@@ -39,6 +39,24 @@
<span>{{$data.address_data.county_name}}</span>
<span>{{$data.address_data.address}}</span>
</p>
{{if !empty($data['address_data']['idcard_name']) or !empty($data['address_data']['idcard_number']) or !empty($data['address_data']['idcard_front']) or !empty($data['address_data']['idcard_back'])}}
<div class="am-alert am-alert-secondary">
<p class="am-margin-bottom-xs"><strong>身份证信息</strong></p>
<hr data-am-widget="divider" style="" class="am-divider am-divider-dashed am-margin-vertical-0" />
<div class="am-margin-top-xs">
<p>姓名:{{$data.address_data.idcard_name}}</p>
<p>号码:{{$data.address_data.idcard_number}}</p>
{{if !empty($data['address_data']['idcard_front']) or !empty($module_data['address_data']['idcard_back'])}}
<p class="am-nbfc"><span class="am-fl">照片:</span>{{if !empty($data['address_data']['idcard_front'])}}<a href="{{$data.address_data.idcard_front}}" target="_blank" class="am-fl"><img width="100" height="68" src="{{$data.address_data.idcard_front}}" alt="身份证人像面" class="am-img-thumbnail am-radius am-block" /></a>{{/if}} {{if !empty($data['address_data']['idcard_back'])}}<a href="{{$data.address_data.idcard_back}}" target="_blank" class="am-fl am-margin-left-xs"><img width="100" height="68" src="{{$data.address_data.idcard_back}}" alt="身份证人像面" class="am-img-thumbnail am-radius am-block" /></a>{{/if}}</p>
{{/if}}
</div>
</div>
{{/if}}
{{if !empty($data['address_data']['lng']) and !empty($data['address_data']['lat'])}}
<div class="am-margin-top-xs">
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$data.address_data.lng}}" data-lat="{{$data.address_data.lat}}"> 查看位置</button>
</div>
{{/if}}
{{else /}}
{{include file="public/not_data" /}}
{{/if}}
......@@ -67,6 +85,11 @@
<span>{{$data.address_data.county_name}}</span>
<span>{{$data.address_data.address}}</span>
</p>
{{if !empty($data['address_data']['lng']) and !empty($data['address_data']['lat'])}}
<div class="am-margin-top-xs">
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$data.address_data.lng}}" data-lat="{{$data.address_data.lat}}"> 查看位置</button>
</div>
{{/if}}
</div>
<!-- 取货码 -->
{{:ModuleInclude('order/module/take', $data)}}
......
......@@ -8,10 +8,25 @@
<span class="am-margin-left-sm">{{$module_data.address_data.tel}}</span>
</div>
<div class="am-margin-top-xs">
<span>{{$module_data.address_data.province_name}}</span>
<span>{{$module_data.address_data.city_name}}</span>
<span>{{$module_data.address_data.county_name}}</span>
<span>{{$module_data.address_data.address}}</span>
<p>
<span>{{$module_data.address_data.province_name}}</span>
<span>{{$module_data.address_data.city_name}}</span>
<span>{{$module_data.address_data.county_name}}</span>
<span>{{$module_data.address_data.address}}</span>
</p>
{{if !empty($module_data['address_data']['idcard_name']) or !empty($module_data['address_data']['idcard_number']) or !empty($module_data['address_data']['idcard_front']) or !empty($module_data['address_data']['idcard_back'])}}
<div class="am-alert am-alert-secondary am-margin-vertical-0">
<p class="am-margin-bottom-xs"><strong>身份证信息</strong></p>
<hr data-am-widget="divider" style="" class="am-divider am-divider-dashed am-margin-vertical-0" />
<div class="am-margin-top-xs">
<p>姓名:{{$module_data.address_data.idcard_name}}</p>
<p>号码:{{$module_data.address_data.idcard_number}}</p>
{{if !empty($module_data['address_data']['idcard_front']) or !empty($module_data['address_data']['idcard_back'])}}
<p class="am-nbfc"><span class="am-fl">照片:</span>{{if !empty($module_data['address_data']['idcard_front'])}}<a href="{{$module_data.address_data.idcard_front}}" target="_blank" class="am-fl"><img width="35" height="27" src="{{$module_data.address_data.idcard_front}}" alt="身份证人像面" class="am-img-thumbnail am-radius am-block" /></a>{{/if}} {{if !empty($module_data['address_data']['idcard_back'])}}<a href="{{$module_data.address_data.idcard_back}}" target="_blank" class="am-fl am-margin-left-xs"><img width="35" height="27" src="{{$module_data.address_data.idcard_back}}" alt="身份证人像面" class="am-img-thumbnail am-radius am-block" /></a>{{/if}}</p>
{{/if}}
</div>
</div>
{{/if}}
{{if !empty($module_data['address_data']['lng']) and !empty($module_data['address_data']['lat'])}}
<div class="am-margin-top-xs">
<button type="button" class="am-btn am-btn-success am-btn-xs am-radius am-icon-map-marker am-padding-xs submit-map-popup" data-lng="{{$module_data.address_data.lng}}" data-lat="{{$module_data.address_data.lat}}"> 查看位置</button>
......
......@@ -137,7 +137,7 @@ class Orderaftersale extends Common
'return_money_goods_reason' => empty($return_money_goods_reason) ? [] : explode("\n", $return_money_goods_reason),
'aftersale_type_list' => lang('common_order_aftersale_type_list'),
'return_goods_address' => MyC('home_order_aftersale_return_goods_address', '管理员未填写', true),
'editor_path_type' => 'order_aftersale-'.$this->user['id'].'-'.$order_id.'-'.$order_detail_id,
'editor_path_type' => 'order_aftersale-'.intval($this->user['id']%(3*24)/24).'-'.$order_id.'-'.$order_detail_id,
];
return DataReturn('success', 0, $result);
}
......
......@@ -405,6 +405,11 @@ function PathToParams($key = null, $default = null, $path = '')
{
$path = $_REQUEST['s'];
}
if(empty($path))
{
$path = !empty($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : (empty($_SERVER['REDIRECT_URL']) ? (empty($_SERVER['REQUEST_URI']) ? (empty($_SERVER['PATH_TRANSLATED']) ? '' : $_SERVER['PATH_TRANSLATED']) : $_SERVER['REQUEST_URI']) : $_SERVER['REDIRECT_URL']);
}
if(!empty($path) && !array_key_exists($key, $data))
{
if(substr($path, 0, 1) == '/')
......@@ -429,7 +434,7 @@ function PathToParams($key = null, $default = null, $path = '')
}
}
}
if($key !== null)
{
return array_key_exists($key, $data) ? $data[$key] : $default;
......
......@@ -137,7 +137,7 @@ class Orderaftersale extends Common
$this->assign('common_order_aftersale_type_list', lang('common_order_aftersale_type_list'));
// 编辑器文件存放地址
$this->assign('editor_path_type', 'order_aftersale-'.$this->user['id'].'-'.$order_id.'-'.$order_detail_id);
$this->assign('editor_path_type', 'order_aftersale-'.intval($this->user['id']%(3*24)/24).'-'.$order_id.'-'.$order_detail_id);
// 订单售后搜索form key
$this->assign('form_search_keywords_form_key', 'f0p');
......
......@@ -78,6 +78,9 @@ class UserAddress extends Common
$data = $ret['data'];
}
// 编辑器文件存放地址
$this->assign('editor_path_type', 'user_address-'.intval($this->user['id']%(3*24)/24));
// 加载百度地图api
$this->assign('is_load_baidu_map_api', 1);
$this->assign('data', $data);
......@@ -93,7 +96,7 @@ class UserAddress extends Common
*/
public function Save()
{
$params = input('post.');
$params = $this->data_post;
$params['user'] = $this->user;
return UserAddressService::UserAddressSave($params);
}
......@@ -108,7 +111,7 @@ class UserAddress extends Common
*/
public function Delete()
{
$params = $_POST;
$params = $this->data_post;
$params['user'] = $this->user;
return UserAddressService::UserAddressDelete($params);
}
......@@ -123,7 +126,7 @@ class UserAddress extends Common
*/
public function SetDefault()
{
$params = $_POST;
$params = $this->data_post;
$params['user'] = $this->user;
return UserAddressService::UserAddressDefault($params);
}
......
......@@ -93,8 +93,10 @@
<span class="am-icon-angle-right am-icon-md"></span>
</div>
<div class="address-operation-btn">
<a href="javascript:;" class="am-icon-check-circle-o address-default-submit" data-url="{{:MyUrl('index/useraddress/setdefault')}}" data-id="{{$address.id}}" data-view="reload"> 设为默认</a>
<span class="cut">|</span>
{{if isset($address['is_default']) and $address['is_default'] neq 1}}
<a href="javascript:;" class="am-icon-check-circle-o address-default-submit" data-url="{{:MyUrl('index/useraddress/setdefault')}}" data-id="{{$address.id}}" data-view="reload"> 设为默认</a>
<span class="cut">|</span>
{{/if}}
<a href="javascript:;" class="am-icon-edit address-submit-save" data-url="{{:MyUrl('index/useraddress/saveinfo', ['id'=>$address['id']])}}" data-popup-title="编辑地址"> 编辑</a>
<span class="cut">|</span>
<a href="javascript:;" class="am-icon-trash-o address-submit-delete" data-url="{{:MyUrl('index/useraddress/delete')}}" data-id="{{$address.id}}"> 删除</a>
......
......@@ -50,8 +50,10 @@
</div>
</div>
<div class="address-operation-btn">
<a href="javascript:;" class="am-icon-check-circle-o address-default-submit" data-url="{{:MyUrl('index/useraddress/setdefault')}}" data-id="{{$address.id}}" data-view="reload"> 设为默认</a>
<span class="cut">|</span>
{{if isset($address['is_default']) and $address['is_default'] neq 1}}
<a href="javascript:;" class="am-icon-check-circle-o address-default-submit" data-url="{{:MyUrl('index/useraddress/setdefault')}}" data-id="{{$address.id}}" data-view="reload"> 设为默认</a>
<span class="cut">|</span>
{{/if}}
<a href="javascript:;" class="am-icon-edit address-submit-save" data-url="{{:MyUrl('index/useraddress/saveinfo', ['id'=>$address['id']])}}" data-popup-title="编辑地址"> 编辑</a>
<span class="cut">|</span>
<a href="javascript:;" class="am-icon-trash-o address-submit-delete" data-url="{{:MyUrl('index/useraddress/delete')}}" data-id="{{$address.id}}"> 删除</a>
......
......@@ -6,36 +6,72 @@
<form class="am-form form-validation" method="post" action="{{:MyUrl('index/useraddress/save')}}" request-type="ajax-fun" request-value="ViewModalBack">
<div class="am-form-group">
<label>姓名<span class="am-form-group-label-tips-must">必填</span></label>
<input type="text" name="name" placeholder="姓名" minlength="2" maxlength="16" data-validation-message="姓名格式 2~16 个字符之间" class="am-radius" {{if !empty($data)}} value="{{$data.name}}"{{/if}} required />
<input type="text" name="name" placeholder="姓名" minlength="2" maxlength="16" data-validation-message="姓名格式 2~16 个字符之间" class="am-radius" {{if !empty($data['name'])}} value="{{$data.name}}"{{/if}} required />
</div>
<div class="am-form-group">
<label>电话<span class="am-form-group-label-tips-must">必填</span></label>
<input type="text" name="tel" placeholder="电话" minlength="6" maxlength="30" data-validation-message="电话格式有误" class="am-radius" {{if !empty($data)}} value="{{$data.tel}}"{{/if}} required />
<input type="text" name="tel" placeholder="电话" minlength="6" maxlength="30" data-validation-message="电话格式有误" class="am-radius" {{if !empty($data['tel'])}} value="{{$data.tel}}"{{/if}} required />
</div>
{{include file="lib/region_linkage" /}}
<div class="am-form-group">
<label>详细地址<span class="am-form-group-label-tips-must">必填</span></label>
<div class="am-input-group am-input-group-sm">
<input type="hidden" name="lng" id="form-lng" {{if !empty($data)}} value="{{$data.lng}}"{{/if}} />
<input type="hidden" name="lat" id="form-lat" {{if !empty($data)}} value="{{$data.lat}}"{{/if}} />
<input type="text" name="address" id="form-address" placeholder="详细地址" minlength="2" maxlength="80" data-validation-message="详细地址格式 1~80 个字符之间" class="am-radius" {{if !empty($data)}} value="{{$data.address}}"{{/if}} required />
<input type="hidden" name="lng" id="form-lng" {{if !empty($data['lng'])}} value="{{$data.lng}}"{{/if}} />
<input type="hidden" name="lat" id="form-lat" {{if !empty($data['lat'])}} value="{{$data.lat}}"{{/if}} />
<input type="text" name="address" id="form-address" placeholder="详细地址" minlength="2" maxlength="80" data-validation-message="详细地址格式 1~80 个字符之间" class="am-radius" {{if !empty($data['address'])}} value="{{$data.address}}"{{/if}} required />
<span class="am-input-group-btn">
<button type="button" class="am-btn am-btn-default am-radius" id="map-location-submit"><span class="am-icon-map-marker"></span> 定位</button>
</span>
</div>
<div id="map" data-level="17" class="am-margin-top-xs"></div>
</div>
<div class="am-form-group">
<label>别名<span class="am-form-group-label-tips">选填</span></label>
<input type="text" name="alias" placeholder="别名" minlength="0" maxlength="16" data-validation-message="别名格式最多 16 个字符" class="am-radius" {{if !empty($data)}} value="{{$data.alias}}"{{/if}} />
<input type="text" name="alias" placeholder="别名" minlength="0" maxlength="16" data-validation-message="别名格式最多 16 个字符" class="am-radius" {{if !empty($data['alias'])}} value="{{$data.alias}}"{{/if}} />
</div>
<div class="am-form-group">
<label class="block">是否默认</label>
<input name="is_default" value="1" type="checkbox" data-off-text="否" data-on-text="是" data-size="xs" data-on-color="success" data-off-color="default" data-handle-width="49" data-am-switch {{if isset($data['is_default']) and $data['is_default'] eq 1}}checked="true"{{/if}} />
</div>
<div class="am-alert am-alert-secondary">
<div class="am-form-group">
<label>身份证姓名<span class="am-form-group-label-tips">选填,请务必与上传的身份证件姓名保持一致</span></label>
<input type="text" name="idcard_name" placeholder="身份证姓名" minlength="0" maxlength="16" data-validation-message="身份证姓名格式最多 16 个字符" class="am-radius" {{if !empty($data['idcard_name'])}} value="{{$data.idcard_name}}"{{/if}} />
</div>
<div class="am-form-group">
<label>身份证号码<span class="am-form-group-label-tips">选填,请务必与上传的身份证件号码保持一致</span></label>
<input type="text" name="idcard_number" placeholder="身份证号码" minlength="0" maxlength="18" data-validation-message="身份证号码格式最多 18 个字符" class="am-radius" {{if !empty($data['idcard_number'])}} value="{{$data.idcard_number}}"{{/if}} />
</div>
<div class="am-form-group plug-file-upload-view">
<label>身份证照片<span class="am-form-group-label-tips">选填,请使用身份证原件拍摄,图片要清晰</span></label>
<div class="am-nbfc user-address-idcard-images">
<div class="am-fl">
<ul class="plug-file-upload-view images-idcard_front" data-form-name="idcard_front" data-max-number="1" data-dialog-type="images">
<li>
{{if !empty($data['idcard_front_old'])}}
<input type="text" name="idcard_front" value="{{$data.idcard_front_old}}" />
{{/if}}
<img src="{{if empty($data['idcard_front'])}}{{$attachment_host}}/static/{{$module_name}}/{{$default_theme}}/images/default-idcard-front.jpg{{else /}}{{$data.idcard_front}}{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.images-idcard_front">+上传人像面图片</div>
</div>
<div class="am-fl am-margin-left-lg">
<ul class="plug-file-upload-view images-idcard_back" data-form-name="idcard_back" data-max-number="1" data-dialog-type="images">
<li>
{{if !empty($data['idcard_back_old'])}}
<input type="text" name="idcard_back" value="{{$data.idcard_back_old}}" />
{{/if}}
<img src="{{if empty($data['idcard_back'])}}{{$attachment_host}}/static/{{$module_name}}/{{$default_theme}}/images/default-idcard-back.jpg{{else /}}{{$data.idcard_back}}{{/if}}" />
</li>
</ul>
<div class="plug-file-upload-submit" data-view-tag="ul.images-idcard_back">+上传国微面图片</div>
</div>
</div>
</div>
</div>
<div class="am-form-group am-form-group-refreshing">
<input type="hidden" name="id" {{if !empty($data)}} value="{{$data.id}}"{{/if}} />
......
......@@ -1440,9 +1440,13 @@ class BuyService
'county_name' => isset($address['county_name']) ? $address['county_name'] : '',
'lng' => isset($address['lng']) ? (float) $address['lng'] : '0.0000000000',
'lat' => isset($address['lat']) ? (float) $address['lat'] : '0.0000000000',
'idcard_name' => empty($address['idcard_name']) ? '' : $address['idcard_name'],
'idcard_number' => empty($address['idcard_number']) ? '' : $address['idcard_number'],
'idcard_front' => empty($address['idcard_front']) ? '' : ResourcesService::AttachmentPathHandle($address['idcard_front']),
'idcard_back' => empty($address['idcard_back']) ? '' : ResourcesService::AttachmentPathHandle($address['idcard_back']),
'add_time' => time(),
];
// 订单地址添加前钩子
$hook_name = 'plugins_service_buy_order_address_insert_begin';
$ret = HookReturnHandle(Hook::listen($hook_name, [
......
......@@ -1338,7 +1338,16 @@ class OrderService
{
// 销售模式+自提模式 地址信息
$data = Db::name('OrderAddress')->where(['order_id'=>$order_id])->find();
return empty($data) ? [] : $data;
if(!empty($data))
{
// 附件
$data['idcard_front_old'] = $data['idcard_front'];
$data['idcard_front'] = ResourcesService::AttachmentPathViewHandle($data['idcard_front']);
$data['idcard_back_old'] = $data['idcard_back'];
$data['idcard_back'] = ResourcesService::AttachmentPathViewHandle($data['idcard_back']);
return $data;
}
return [];
}
/**
......
......@@ -13,6 +13,7 @@ namespace app\service;
use think\Db;
use think\facade\Hook;
use app\service\RegionService;
use app\service\ResourcesService;
/**
* 用户地址服务层
......@@ -54,7 +55,7 @@ class UserAddressService
$where['is_delete_time'] = 0;
// 获取用户地址
$field = 'id,alias,name,tel,province,city,county,address,lng,lat,is_default';
$field = 'id,alias,name,tel,province,city,county,address,lng,lat,is_default,idcard_name,idcard_number,idcard_front,idcard_back';
$data = Db::name('UserAddress')->where($where)->field($field)->order('id desc')->select();
if(!empty($data))
{
......@@ -71,6 +72,18 @@ class UserAddressService
{
$is_default = true;
}
// 附件
if(isset($v['idcard_front']))
{
$v['idcard_front_old'] = $v['idcard_front'];
$v['idcard_front'] = ResourcesService::AttachmentPathViewHandle($v['idcard_front']);
}
if(isset($v['idcard_back']))
{
$v['idcard_back_old'] = $v['idcard_back'];
$v['idcard_back'] = ResourcesService::AttachmentPathViewHandle($v['idcard_back']);
}
}
// 是否处理默认地址,没有默认地址将第一个设置为默认地址
......@@ -215,17 +228,29 @@ class UserAddressService
$where = ['user_id' => $params['user']['id'], 'id'=>$params['id']];
$temp = Db::name('UserAddress')->where($where)->find();
}
// 附件
$data_fields = ['idcard_front', 'idcard_back'];
$attachment = ResourcesService::AttachmentParams($params, $data_fields);
if($attachment['code'] != 0)
{
return $attachment;
}
// 操作数据
$is_default = isset($params['is_default']) ? intval($params['is_default']) : 0;
$data = [
'name' => $params['name'],
'tel' => $params['tel'],
'province' => intval($params['province']),
'city' => intval($params['city']),
'county' => isset($params['county']) ? intval($params['county']) : 0,
'address' => $params['address'],
'is_default' => $is_default,
'name' => $params['name'],
'tel' => $params['tel'],
'province' => intval($params['province']),
'city' => intval($params['city']),
'county' => isset($params['county']) ? intval($params['county']) : 0,
'address' => $params['address'],
'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['alias']))
{
......
此差异已折叠。
......@@ -30,7 +30,7 @@ form.am-form .am-form-group-label-tips-must { color: #f00; }
.am-form-group:hover>label { color: #333 !important; }
.am-form-group:hover>label>.am-form-group-label-tips { color: #FF9800 !important; }
form.am-form .am-form-group, .plug-file-upload-view, .business-form-group, .business-form-block { border-bottom: 1px dashed #e2e2e2; padding: 15px 20% 20px 5px; margin-bottom: 0; }
form.am-form .am-form-group-refreshing, .plug-file-upload-view { border-bottom: 0px; }
form.am-form .am-form-group-refreshing, .plug-file-upload-view { border-bottom: 0 !important; }
/**
* 插件
......
......@@ -99,4 +99,25 @@ ul.address-list li .user-base {
*/
.my-content {
padding: 15px 10px;
}
.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;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册