220 lines
9.8 KiB
HTML
220 lines
9.8 KiB
HTML
|
|
|||
|
<script>
|
|||
|
var local;
|
|||
|
var map;
|
|||
|
var lst_name='';
|
|||
|
function change_map(){
|
|||
|
var name=$("#area_info").val();
|
|||
|
|
|||
|
if(name!='' && lst_name!=name){
|
|||
|
lst_name=name;
|
|||
|
map.setCurrentCity(name);
|
|||
|
map.centerAndZoom(name,16);
|
|||
|
map.clearOverlays();
|
|||
|
local.search(name);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
$(function(){
|
|||
|
|
|||
|
map = new BMap.Map("allmap");
|
|||
|
var lng = '';
|
|||
|
var lat = '';
|
|||
|
if(!lng && !lat){
|
|||
|
var geolocation = new BMap.Geolocation();
|
|||
|
geolocation.getCurrentPosition(function (r) {
|
|||
|
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
|
|||
|
var lng = r.point.lng;
|
|||
|
var lat = r.point.lat;
|
|||
|
var point = new BMap.Point(lng, lat);
|
|||
|
map.centerAndZoom(point, 16);
|
|||
|
map.addControl(new BMap.NavigationControl());
|
|||
|
map.enableScrollWheelZoom();
|
|||
|
var marker = new BMap.Marker(point); // 创建标注
|
|||
|
map.addOverlay(marker); // 将标注添加到地图中
|
|||
|
marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
|
|||
|
document.getElementById("longitude").value = lng;
|
|||
|
document.getElementById("latitude").value = lat;
|
|||
|
|
|||
|
} else {
|
|||
|
alert('failed' + this.getStatus());
|
|||
|
}
|
|||
|
}, {enableHighAccuracy: true})
|
|||
|
}else{
|
|||
|
var point = new BMap.Point(lng, lat);
|
|||
|
map.centerAndZoom(point, 16);
|
|||
|
map.addControl(new BMap.NavigationControl());
|
|||
|
map.enableScrollWheelZoom();
|
|||
|
var marker = new BMap.Marker(point); // 创建标注
|
|||
|
map.addOverlay(marker); // 将标注添加到地图中
|
|||
|
marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
var options = {
|
|||
|
onSearchComplete: function(results){
|
|||
|
// 判断状态是否正确
|
|||
|
if (local.getStatus() == BMAP_STATUS_SUCCESS){
|
|||
|
if(results.getCurrentNumPois()>0){
|
|||
|
|
|||
|
map.clearOverlays(); //清除标注 或者可以把market 放入数组
|
|||
|
var point = new BMap.Point(results.getPoi(0).point.lng , results.getPoi(0).point.lat);
|
|||
|
var marker = new BMap.Marker(point);
|
|||
|
map.centerAndZoom(point, 16);
|
|||
|
map.addOverlay(marker);
|
|||
|
marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
|
|||
|
|
|||
|
document.getElementById("longitude").value = results.getPoi(0).point.lng;
|
|||
|
document.getElementById("latitude").value = results.getPoi(0).point.lat;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
};
|
|||
|
local = new BMap.LocalSearch(map, options);
|
|||
|
map.addEventListener("click", function(e){
|
|||
|
// alert(e.point.lng + ", " + e.point.lat);
|
|||
|
map.clearOverlays(); //清除标注 或者可以把market 放入数组
|
|||
|
var point = new BMap.Point(e.point.lng , e.point.lat);
|
|||
|
var marker = new BMap.Marker(point);
|
|||
|
map.addOverlay(marker);
|
|||
|
marker.setAnimation(BMAP_ANIMATION_BOUNCE); //跳动的动画
|
|||
|
|
|||
|
document.getElementById("longitude").value = e.point.lng;
|
|||
|
document.getElementById("latitude").value = e.point.lat;
|
|||
|
});
|
|||
|
})
|
|||
|
</script>
|
|||
|
<div class="dsc-form-default">
|
|||
|
<form method="POST" id="addr_form" action="{:url('Buy/add_inv')}">
|
|||
|
<dl>
|
|||
|
<dt><i class="required">*</i>{$Think.lang.cart_step1_receiver_name}</dt>
|
|||
|
<dd>
|
|||
|
<input type="text" class="text w100" name="true_name" maxlength="20" id="true_name" value=""/>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<dt><i class="required">*</i>{$Think.lang.cart_step1_area}</dt>
|
|||
|
<dd>
|
|||
|
<div id="region" onclick="change_map()">
|
|||
|
<select class="w110">
|
|||
|
<option value="0">{$Think.lang.please_select_address}</option>
|
|||
|
</select>
|
|||
|
<input type="hidden" value="" name="city_id" id="city_id">
|
|||
|
<input type="hidden" name="area_id" id="area_id" class="area_ids"/>
|
|||
|
<input type="hidden" name="area_info" id="area_info" class="area_names"/>
|
|||
|
</div>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<dt><i class="required">*</i>{$Think.lang.member_map_address}</dt>
|
|||
|
<dd>
|
|||
|
<input type="text" class="text w500" name="address" id="address" maxlength="80" value="" onkeyup="local.search($(this).val());"/>
|
|||
|
<p class="hint">{$Think.lang.cart_step1_true_address}</p>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<dt>{$Think.lang.location_map}:</dt>
|
|||
|
<dd>
|
|||
|
<input name="longitude" id="longitude" value="" type="hidden" />
|
|||
|
<input name="latitude" id="latitude" value="" type="hidden" />
|
|||
|
<div id="allmap" style="width:530px;height: 350px;margin-top: 20px"></div>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
<dl>
|
|||
|
<dt> <i class="required">*</i>{$Think.lang.cart_step1_mobile_num}</dt>
|
|||
|
<dd>
|
|||
|
<input type="text" class="text w200" name="mob_phone" id="mob_phone" maxlength="15" value=""/>
|
|||
|
({$Think.lang.ds_or}) {$Think.lang.cart_step1_phone_num}
|
|||
|
<input type="text" class="text w200" id="tel_phone" name="tel_phone" maxlength="20" value=""/>
|
|||
|
</dd>
|
|||
|
</dl>
|
|||
|
</form>
|
|||
|
</div>
|
|||
|
|
|||
|
<script type="text/javascript">
|
|||
|
$(document).ready(function() {
|
|||
|
regionInit("region");
|
|||
|
$('#addr_form').validate({
|
|||
|
rules: {
|
|||
|
true_name: {
|
|||
|
required: true
|
|||
|
},
|
|||
|
area_id: {
|
|||
|
required: true,
|
|||
|
min: 1,
|
|||
|
checkarea: true
|
|||
|
},
|
|||
|
address: {
|
|||
|
required: true
|
|||
|
},
|
|||
|
mob_phone: {
|
|||
|
required: checkPhone,
|
|||
|
minlength: 11,
|
|||
|
maxlength: 11,
|
|||
|
digits: true
|
|||
|
},
|
|||
|
tel_phone: {
|
|||
|
required: checkPhone,
|
|||
|
minlength: 6,
|
|||
|
maxlength: 20
|
|||
|
}
|
|||
|
},
|
|||
|
messages: {
|
|||
|
true_name: {
|
|||
|
required: '<i class="iconfont"></i>{$Think.lang.cart_step1_input_receiver}'
|
|||
|
},
|
|||
|
area_id: {
|
|||
|
required: '<i class="iconfont"></i>{$Think.lang.cart_step1_choose_area}',
|
|||
|
min: '<i class="iconfont"></i>{$Think.lang.cart_step1_choose_area}',
|
|||
|
checkarea: '<i class="iconfont"></i>{$Think.lang.cart_step1_choose_area}'
|
|||
|
},
|
|||
|
address: {
|
|||
|
required: '<i class="iconfont"></i>{$Think.lang.cart_step1_input_address}'
|
|||
|
},
|
|||
|
mob_phone: {
|
|||
|
required: '<i class="iconfont"></i>{$Think.lang.cart_step1_telphoneormobile}',
|
|||
|
minlength: '<i class="iconfont"></i>{$Think.lang.cart_step1_mobile_num_error}',
|
|||
|
maxlength: '<i class="iconfont"></i>{$Think.lang.cart_step1_mobile_num_error}',
|
|||
|
digits: '<i class="iconfont"></i>{$Think.lang.cart_step1_mobile_num_error}'
|
|||
|
},
|
|||
|
tel_phone: {
|
|||
|
required: '<i class="iconfont"></i>{$Think.lang.cart_step1_telphoneormobile}',
|
|||
|
minlength: '<i class="iconfont"></i>',
|
|||
|
maxlength: '<i class="iconfont"></i>'
|
|||
|
}
|
|||
|
},
|
|||
|
groups: {
|
|||
|
phone: 'mob_phone tel_phone'
|
|||
|
}
|
|||
|
});
|
|||
|
});
|
|||
|
function checkPhone() {
|
|||
|
return ($('input[name="mob_phone"]').val() == '' && $('input[name="tel_phone"]').val() == '');
|
|||
|
}
|
|||
|
function submitAddAddr() {
|
|||
|
if ($('#addr_form').valid()) {
|
|||
|
$('#buy_city_id').val($('#region').find('select').eq(1).val());
|
|||
|
$('#city_id').val($('#region').find('select').eq(1).val());
|
|||
|
if(isNaN($('#region').find('select').eq(1).val())){
|
|||
|
alert('{$Think.lang.location_area_last_level}');return;
|
|||
|
}
|
|||
|
var datas = $('#addr_form').serialize();
|
|||
|
$.post("{:url('Buy/add_addr')}", datas, function(data) {
|
|||
|
if (data.state) {
|
|||
|
var true_name = $.trim($("#true_name").val());
|
|||
|
var tel_phone = $.trim($("#tel_phone").val());
|
|||
|
var mob_phone = $.trim($("#mob_phone").val());
|
|||
|
var area_info = $.trim($("#area_info").val());
|
|||
|
var address = $.trim($("#address").val());
|
|||
|
showShippingPrice($('#city_id').val(), $('#area_id').val());
|
|||
|
hideAddrList(data.addr_id, true_name, area_info + ' ' + address, (mob_phone != '' ? mob_phone : tel_phone));
|
|||
|
} else {
|
|||
|
alert(data.msg);
|
|||
|
}
|
|||
|
}, 'json');
|
|||
|
} else {
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|