jh-admin/app/shop/view/store/local.html

971 lines
36 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{extend name="base"/}
{block name="resources"}
<style>
.map-view{position:relative}
.map-block-view{display:none}
.map-block{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:1100px}
.local-map{-webkit-box-flex:0;-webkit-flex:0 0 750px;-ms-flex:0 0 750px;flex:0 0 750px;height:500px;border:1px solid #ededed;margin-right:20px;border-radius:4px;overflow-y:hidden;position:relative;}
.overlayers{-webkit-box-flex:1;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;border:1px solid #ededed;border-radius:4px;width:100%;height:494px;overflow-y:auto}
.overlayers::-webkit-scrollbar{width:10px;height:1px}
.overlayers::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 5px #ff8143;background:#ff8143}
.overlayers::-webkit-scrollbar-track{box-shadow:inset 0 0 5px #ededed;border-radius:10px;background:#ededed}
.map{height:500px;width:100%;position: relative;}
.region-list{width:310px}
.region-list li{padding:30px 12px;position:relative;border:1px solid transparent;border-bottom-color:#ebedf0}
.area-content{overflow:hidden;margin:8px 0}
.area-label{display:inline-block;width:70px;float:left}
.area-input-inline{float:left;width:190px}
.region-add-block{width:290px}
.region-add-block button{display:block;padding:0;margin:10px auto;font-size:14px;width:196px;color:#323233;line-height:32px;background:#fff;outline:0;border:1px solid #dcdee0;border-radius:2px;cursor:pointer}
.region-add-block button:hover{border-color:#ff8143;color:#ff8143}
.region-view{display:none;}
.radius-view{display:none;}
.administrative-view{display:none;}
.administrative-region-view{display:none;}
.administrative-radius-view{display:none;}
.time-view{display:none;}
.time-type-view{display:none;}
.area-block-delete{position:absolute;top:-2px;right:5px;font-size:12px;cursor:pointer}
.layui-form-item .layui-form-checkbox[lay-skin=primary] {margin-top: 0;}
.layui-form-radio {margin-top: 0;}
</style>
<link rel="stylesheet" href="SHOP_CSS/formSelects-v4.css" />
{/block}
{block name="main"}
<div class="layui-form">
<div class="layui-card card-common card-brief">
<div class="layui-card-header">
<span class="card-title">同城配送基础设置</span>
</div>
<div class="layui-card-body">
<div class="layui-form-item">
<label class="layui-form-label">配送方式:</label>
<div class="layui-input-inline">
<input type="checkbox" name="type" value="default" title="商家自配送" lay-skin="primary" checked>
<input type="checkbox" name="type" value="other" title="第三方配送" lay-skin="primary" disabled >
</div>
</div>
<!--配送时间设置-->
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">配送时间设置:</label>
<div class="layui-input-block">
<input type="radio" name="time_is_open" value="1" title="开启" lay-filter="time_is_open" {if $local_info.time_is_open == 1}checked{/if}/>
<input type="radio" name="time_is_open" value="0" title="关闭" lay-filter="time_is_open" {if $local_info.time_is_open == 0 || !isset($local_info.time_is_open)}checked{/if}/>
</div>
<div class="word-aux">开启后,买家下单选择同城配送时,可选择配送时间,提交订单后,将在买家备注中显示。</div>
</div>
</div>
<div class="layui-form-item time-view" {if $local_info.time_is_open == 0} style="display:none;"{/if}>
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-inline">
<input type="radio" name="time_type" value="0" title="每天" lay-filter="time_type" {if $local_info.time_type == 0 || !isset($local_info.time_type)}checked{/if}/>
<input type="radio" name="time_type" value="1" title="自定义" lay-filter="time_type" {if $local_info.time_type == 1 }checked{/if}/>
</div>
</div>
</div>
<div class="time-view ">
<div class="layui-form-item time-type-view" lay-verify="time_week">
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-inline">
<input type="checkbox" value="1" class='time-week' name="time_week[]" title="周一" lay-skin="primary" {if !empty($local_info.time_week) && in_array(1,$local_info.time_week)} checked {/if}>
<input type="checkbox" value="2" class='time-week' name="time_week[]" title="周二" lay-skin="primary" {if !empty($local_info.time_week) && in_array(2,$local_info.time_week)} checked {/if}>
<input type="checkbox" value="3" class='time-week' name="time_week[]" title="周三" lay-skin="primary" {if !empty($local_info.time_week) && in_array(3,$local_info.time_week)} checked {/if}>
<input type="checkbox" value="4" class='time-week' name="time_week[]" title="周四" lay-skin="primary" {if !empty($local_info.time_week) && in_array(4,$local_info.time_week)} checked {/if}>
<input type="checkbox" value="5" class='time-week' name="time_week[]" title="周五" lay-skin="primary" {if !empty($local_info.time_week) && in_array(5,$local_info.time_week)} checked {/if}>
<input type="checkbox" value="6" class='time-week' name="time_week[]" title="周六" lay-skin="primary" {if !empty($local_info.time_week) && in_array(6,$local_info.time_week)} checked {/if}>
<input type="checkbox" value="0" class='time-week' name="time_week[]" title="周日" lay-skin="primary" {if !empty($local_info.time_week) && in_array(0,$local_info.time_week)} checked {/if}>
</div>
</div>
</div>
<div class="time-type-view-all">
<div class="delivery-time">
{foreach name="$local_info.delivery_time" key="k" item="item"}
<div class="layui-form-item" >
<label class="layui-form-label">{$k == 0 ? '配送时段设置:' : ''}</label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="startTime{$k == 0 ? '' : $k}" lay-verify="start_time" placeholder="配送开始时间" value="" readonly >
<input type="hidden" class="layui-input" name="start_time" placeholder="配送开始时间" value="{$item.start_time}">
</div>
<div class="layui-form-mid layui-word-aux">~</div>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="endTime{$k == 0 ? '' : $k}" lay-verify="end_time" placeholder="配送结束时间" value="" readonly >
<input type="hidden" class="layui-input" name="end_time" placeholder="配送结束时间" value="{$item.end_time}">
</div>
<div class="layui-form-mid layui-word-aux">
{if $k eq 0}
<a href="javascript:;" class="text-color add">添加</a>
{else/}
<a href="javascript:;" class="text-color delete">删除</a>
{/if}
</div>
</div>
{/foreach}
</div>
</div>
<div class="layui-form-item" {if $local_info.time_is_open == 0} style="display:none;"{/if}>
<div class="layui-inline">
<label class="layui-form-label">细分时段:</label>
<div class="layui-input-block">
<input type="radio" name="time_interval" value="30" title="30分钟" {if $local_info.time_interval == 30}checked{/if}/>
<input type="radio" name="time_interval" value="60" title="一小时" {if $local_info.time_interval == 60}checked{/if}/>
<input type="radio" name="time_interval" value="90" title="90分钟" {if $local_info.time_interval == 90}checked{/if}/>
<input type="radio" name="time_interval" value="120" title="两小时" {if $local_info.time_interval == 120}checked{/if}/>
</div>
</div>
</div>
</div>
</div>
<div class="layui-card card-common card-brief">
<div class="layui-card-header">
<span class="card-title">配送区域设置</span>
</div>
<div class="layui-card-body">
<div class="layui-form-item">
<label class="layui-form-label">门店地址:</label>
<div class="layui-input-block">
<div class="layui-input-inline">
<input type="text" class="layui-input len-long" readonly disabled value="{$store_detail.full_address} {$store_detail.address}">
</div>
<div class="layui-form-mid layui-word-aux"><a href="{:url('shop/store/editstore', ['store_id' => $store_id])}" target='_brank' class="text-color">修改</a></div>
</div>
<div class="word-aux">配送区域以此地址为起点进行距离计算。</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">配送区域:</label>
<div class="layui-input-block">
<input type="radio" name="area_type" value="1" title="服务半径" lay-filter="area_type" {if $local_info.area_type == 1}checked{/if}/>
<input type="radio" name="area_type" value="2" title="自定义区域" lay-filter="area_type" {if $local_info.area_type == 2}checked{/if}/>
<input type="radio" name="area_type" value="3" title="行政区域" lay-filter="area_type" {if $local_info.area_type == 3}checked{/if}/>
</div>
<div class="word-aux">订单中商品在优惠前的价格(不包含运费)低于起送金额时,买家无法下单</div>
</div>
</div>
<div class="layui-form-item man_type">
<div class="layui-inline">
<label class="layui-form-label">配送优惠:</label>
<div class="layui-input-block">
<input type="radio" name="man_type" lay-filter="man_type" value="free" title="免邮" {if $local_info.man_type == 'free' || empty($local_info.man_type)} checked {/if}>
<input type="radio" name="man_type" lay-filter="man_type" value="discount" title="优惠" {if $local_info.man_type == 'discount'} checked {/if}>
</div>
<!-- <div class="word-aux">当配送区域交叉时,以最低费用计算费用。 因考虑实际送货路况,配送费按汽车导航距离计算,非地图直线距离。</div>-->
</div>
<div class="layui-block">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<div class="layui-form-mid"></div>
<div class="layui-input-inline">
<input type="number" name="man_money" lay-verify="man_money" class="layui-input" value="{$local_info.man_money}" onblur="$('input[name=\'man_money\']').val(Math.abs($('input[name=\'man_money\']').val()));">
</div>
<div class="layui-form-mid discount-txt-before">元,免邮</div>
<div class="layui-input-inline man-discount" style="width: 100px;">
<input type="number" name="man_discount" lay-verify="man_discount" lay-verify="man_discount" placeholder="" autocomplete="off" class="layui-input" value="{$local_info.man_discount}" onblur="manDiscount()">
</div>
<div class="layui-form-mid discount-txt-after"></div>
</div>
</div>
</div>
<div class="layui-form-item administrative-view">
<label class="layui-form-label"><span class="required">*</span>可配送区域:</label>
<div class="layui-input-inline len-long area-select">
<select name="district_id" xm-select="district_id" lay-filter="district_id" lay-verify="district_id">
{foreach $district_list as $k => $v}
<option value="{$v.id}" {if in_array($v.id, $local_info.area_array)}selected="selected"{/if}>{$v.name}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item radius-view">
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<div class="layui-form-mid">距离</div>
<div class="layui-input-inline">
<input type="number" name="radius_start_distance" lay-verify="radius_start_distance" class="layui-input" value="{if $local_info.area_type == 1}{$local_info.start_distance}{/if}">
</div>
<div class="layui-form-mid">公里以内,配送费用</div>
<div class="layui-input-inline" style="width: 100px;">
<input type="number" name="radius_start_delivery_money" lay-verify="radius_start_delivery_money" placeholder="¥" autocomplete="off" class="layui-input" value="{if $local_info.area_type == 1}{$local_info.start_delivery_money}{/if}">
</div>
</div>
</div>
</div>
<div class="layui-form-item radius-view">
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<div class="layui-form-mid">距离每增加</div>
<div class="layui-input-inline">
<input type="number" name="radius_continued_distance" lay-verify="radius_continued_distance" class="layui-input" value="{if $local_info.area_type == 1}{$local_info.continued_distance}{/if}">
</div>
<div class="layui-form-mid">公里,运费将增加</div>
<div class="layui-input-inline" style="width: 100px;">
<input type="number" name="radius_continued_delivery_money" lay-verify="radius_continued_delivery_money" placeholder="¥" autocomplete="off" class="layui-input" value="{if $local_info.area_type == 1}{$local_info.continued_delivery_money}{/if}">
</div>
</div>
<div class="word-aux">当配送区域交叉时,以最低费用计算费用。 因考虑实际送货路况,配送费按汽车导航距离计算,非地图直线距离。</div>
</div>
</div>
<div class="layui-inline map-block-view">
<label class="layui-form-label">地图定位:</label>
<div class="layui-input-block map-view">
<div class="map-block">
<div class="local-map">
<div class="map" id="container"></div>
</div>
<div class="overlayers">
<ul class="region-list"></ul>
<div class="region-add-block">
<button onclick="addArea();">增加配送区域</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-card card-common card-brief administrative-view">
<div class="layui-card-header">
<span class="card-title">配送价格</span>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">起送价格:</label>
<div class="layui-input-block">
<div class="layui-input-inline">
<input type="number" name='xz_start_money' lay-verify="xz_start_money" class="layui-input" value="{if $local_info.area_type == 3}{$local_info.start_money}{/if}">
</div>
<div class="layui-form-mid"></div>
</div>
<div class="word-aux">订单中商品在优惠券的价格(不包含运费)低于配送价时,买家无法下单</div>
</div>
</div>
<div class="layui-form-item administrative-region-view">
<div class="layui-inline">
<label class="layui-form-label">配送费:</label>
<div class="layui-input-inline">
<div class="layui-input-inline">
<input type="number" name='xz_delivery_money' lay-verify="xz_delivery_money"class="layui-input administrative-delivery-money"value="{if $local_info.area_type == 3}{$local_info.delivery_money}{/if}">
</div>
<div class="layui-form-mid"></div>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">阶梯价:</label>
<div class="layui-input-inline">
<div class="layui-input-inline">
<input type="checkbox" name="is_open_step" value="1" lay-skin="switch" lay-filter="is_open_step" {if isset($local_info.is_open_step) && $local_info.is_open_step == 1}checked{/if}/>
</div>
<div class="layui-form-mid"></div>
</div>
</div>
</div>
<div class="layui-form-item administrative-radius-view">
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-inline">
<div class="layui-form-mid">半径</div>
<div class="layui-input-inline">
<input type="number" name="xz_start_distance" lay-verify="xz_start_distance" class="layui-input" value="{if $local_info.area_type == 3}{$local_info.start_distance}{/if}">
</div>
<div class="layui-form-mid">公里以内,配送费用</div>
<div class="layui-input-inline" style="width: 100px;">
<input type="number" name="xz_start_delivery_money" placeholder="¥" lay-verify="xz_start_delivery_money" autocomplete="off" class="layui-input" value="{if $local_info.area_type == 3}{$local_info.start_delivery_money}{/if}">
</div>
</div>
</div>
</div>
<div class="layui-form-item administrative-radius-view">
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-inline">
<div class="layui-form-mid">距离每增加</div>
<div class="layui-input-inline">
<input type="number" name="xz_continued_distance" lay-verify="xz_continued_distance" class="layui-input" value="{if $local_info.area_type == 3}{$local_info.continued_distance}{/if}">
</div>
<div class="layui-form-mid">公里,运费将增加</div>
<div class="layui-input-inline" style="width: 100px;">
<input type="number" name="xz_continued_delivery_money" lay-verify="xz_continued_delivery_money" placeholder="¥" autocomplete="off" class="layui-input"value="{if $local_info.area_type == 3}{$local_info.continued_delivery_money}{/if}">
</div>
</div>
</div>
</div>
</div>
<div class="form-row">
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
</div>
</div>
{/block}
{block name="script"}
<!--<script type="text/javascript" src="{:get_http_type()}://webapi.amap.com/maps?v=1.4.15&amp;key=2df5711d4e2fd9ecd1622b5a53fc6b1d&plugin=AMap.CircleEditor,AMap.PolyEditor"></script>-->
<!--<script type="text/javascript" src="SHOP_JS/local.js"></script>-->
<script src="https://map.qq.com/api/gljs?libraries=tools,service&v=1.exp&key={$tencent_map_key}"></script>
<script type="text/javascript" src="SHOP_JS/qq_local.js"></script>
<script type="text/html" id="area-html">
<li key = '{{ d.key }}'>
<div class="area-content">
<label class="area-label">区域名称</label>
<div class="area-input-inline">
<input type="text" class="layui-input area-name" lay-verify="area_name" value="{{ d.area_name || '' }}">
</div>
</div>
<div class="area-content">
<label class="area-label">起送价</label>
<div class="area-input-inline">
<input type="number" class="layui-input start-price" lay-verify="start_price"value="{{ d.start_price || '' }}">
</div>
</div>
<div class="area-content region-view">
<label class="area-label">配送费</label>
<div class="area-input-inline">
<input type="number" class="layui-input delivery-money" lay-verify="delivery_money"value="{{ d.delivery_money || '' }}">
</div>
</div>
<div class="area-content">
<label class="area-label">划分方式</label>
<div class="area-input-inline layui-input-inline">
<input type="radio" name="rule_type{{ d.key }}" class='rule-type' value="circle" title="半径" lay-filter="huafen_type{{ d.key }}" {{# if(d.rule_type == 'circle' || d.rule_type == undefined){ }} checked{{# } }} />
<input type="radio" name="rule_type{{ d.key }}" class='rule-type' value="polygon" title="自定义" lay-filter="huafen_type{{ d.key }}" {{# if(d.rule_type == 'polygon'){ }} checked{{# } }}/>
</div>
</div>
<div class="area-block-delete text-color" onclick="deleteArea('{{ d.key }}');">删除</div>
</li>
</script>
<script>
var laytpl,form;
var init_key = 1;
{if empty($local_info.local_area_array)}
var area_array = [
{
rule_type:'circle'
}
];
{else/}
var area_array = JSON.parse('{:json_encode($local_info.local_area_array, JSON_UNESCAPED_UNICODE)}');
{/if}
//全局定义一次, 加载formSelects
layui.config({
base: '__STATIC__/ext/layui/extend/' //此处路径请自行处理, 可以使用绝对路径
}).extend({
formSelects: 'formSelects-v4'
});
layui.use([ 'laydate', 'form', 'laytpl' , 'formSelects'], function() {
var laydate = layui.laydate;
var formSelects = layui.formSelects;
form = layui.form;
laytpl = layui.laytpl;
function fetchTimeSelect(){
$('.delivery-time .layui-form-item').each(function (index, item) {
//时间选择器
var startTime = $(item).find("input[name=start_time]").val(), endTime = $(item).find("input[name=end_time]").val(), initTime = parseInt({:strtotime(date('Y-m-d'))});
laydate.render({
elem: '#startTime' + (index ? index : '')
,type: 'time'
,value: startTime ? ns.time_to_date((initTime + parseInt(startTime)), 'h:m:s') : ''
,done: function(value, date, endDate){
var time = date.hours * 3600 + date.minutes * 60 + date.seconds;
$(item).find("input[name=start_time]").val(time);
}
});
//时间选择器
laydate.render({
elem: '#endTime' + (index ? index : '')
,type: 'time'
,value: startTime ? ns.time_to_date((initTime + parseInt(endTime)), 'h:m:s') : ''
,done: function(value, date, endDate){
var time = date.hours * 3600 + date.minutes * 60 + date.seconds;
$(item).find("input[name=end_time]").val(time);
}
});
})
}
fetchTimeSelect();
$('body').on('click', '.delivery-time .delete', function () {
$(this).parents('.layui-form-item').remove()
})
$('body').on('click', '.delivery-time .add', function () {
var length = $('.delivery-time .layui-form-item').length;
if (length >= 3) { layer.msg('最多添加三个时段'); return;}
var h = `<div class="layui-form-item" >
<label class="layui-form-label"></label>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="startTime`+ length +`" lay-verify="start_time" placeholder="配送开始时间" value="" readonly >
<input type="hidden" class="layui-input" name="start_time" placeholder="配送开始时间" value="">
</div>
<div class="layui-form-mid layui-word-aux">~</div>
<div class="layui-input-inline">
<input type="text" class="layui-input" id="endTime`+ length +`" lay-verify="end_time" placeholder="配送结束时间" value="" readonly >
<input type="hidden" class="layui-input" name="end_time" placeholder="配送结束时间" value="">
</div>
<div class="layui-form-mid layui-word-aux">
<a href="javascript:;" class="text-color delete">删除</a>
</div>
</div>`;
$('.delivery-time').append(h);
fetchTimeSelect();
})
//开启定时达
form.on('radio(time_is_open)', function(data){
timeChange(data.value);
});
//运费优惠设置
form.on('radio(man_type)', function(data){
switchManType();
});
//开启定时达
form.on('radio(time_type)', function(data){
timeTypeChange(data.value);
});
//区域类型
form.on('radio(area_type)', function(data){
areaChange(data.value);
});
//启用阶梯价
form.on('switch(is_open_step)', function(data){
stepPriceChange(data.elem.checked ? 1 : 0);
});
init();
form.render();
form.verify({
start_time: function(value, item){ //value表单的值、item表单的DOM对象
var end_time = $(item).parents('.layui-form-item').find("input[name=end_time]").val();
var start_time = $(item).parents('.layui-form-item').find("input[name=start_time]").val();
if(parseInt(start_time) > parseInt(end_time)){
return '配送开始时间不能大于配送结束时间';
}
var prev_endtime = $(item).parents('.layui-form-item').prev('.layui-form-item').find("input[name=end_time]").val();
if (prev_endtime && parseInt(prev_endtime) > parseInt(start_time)) return '配送开始时间不能小于上一阶段配送结束时间';
},
end_time: function(value, item){ //value表单的值、item表单的DOM对象
var end_time = $(item).parents('.layui-form-item').find("input[name=end_time]").val();
var start_time = $(item).parents('.layui-form-item').find("input[name=start_time]").val();
var time_interval = $('[name="time_interval"]:checked').val();
if(parseInt(end_time) < parseInt(start_time)){
return '配送结束时间不能小于配送开始时间';
}
if((parseInt(end_time) - parseInt(start_time)) < parseInt(time_interval)){
return '配送时间间隔不能小于' + time_interval + '分钟';
}
},
time_week: function(){
if ($('[name="time_is_open"]:checked').val() == 1 && $('[name="time_type"]:checked').val() == 1 && !$('.time-week:checked').length)
return '请选择可配送日期';
},
radius_start_distance: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
if(area_type == 1 && value == ''){
return '请填写配送区域相关信息';
}
if (area_type == 1 && parseFloat(value) <= 0) {
return '距离不能小于等于0';
}
},
radius_start_delivery_money: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
if(area_type == 1 && value == ''){
return '请填写配送区域相关信息';
}
},
radius_continued_distance: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
if(area_type == 1 && value == ''){
return '请填写配送区域相关信息';
}
if (area_type == 1 && parseFloat(value) <= 0) {
return '距离不能小于等于0';
}
},
radius_continued_delivery_money: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
if(area_type == 1 && value == ''){
return '请填写配送区域相关信息';
}
},
xz_start_distance: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
var is_open_step = $("input[name=is_open_step]:checked").val();
if(area_type == 3 && is_open_step == 1 && value == ''){
return '请填写配送区域相关信息';
}
},
xz_start_delivery_money: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
var is_open_step = $("input[name=is_open_step]:checked").val();
if(area_type == 3 && is_open_step == 1 && value == ''){
return '请填写配送区域相关信息';
}
},
xz_continued_distance: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
var is_open_step = $("input[name=is_open_step]:checked").val();
if(area_type == 3 && is_open_step == 1 && value == ''){
return '请填写配送区域相关信息';
}
},
xz_continued_delivery_money: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
var is_open_step = $("input[name=is_open_step]:checked").val();
if(area_type == 3 && is_open_step == 1 && value == ''){
return '请填写配送区域相关信息';
}
},
xz_start_money: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
var is_open_step = $("input[name=is_open_step]:checked").val();
if(area_type == 3 && value == ''){
return '请填写配送区域相关信息';
}
},
xz_delivery_money: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
var is_open_step = $("input[name=is_open_step]:checked").val();
if(area_type == 3 && is_open_step == 0 && value == ''){
return '请填写配送区域相关信息';
}
},
start_price: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
if((area_type == 1 || area_type == 2) && value == ''){
return '请填写配送区域相关信息';
}
},
delivery_money: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
if(area_type == 2 && value == ''){
return '请填写配送区域相关信息';
}
},
//配送区域
area_name: function(value, item){
var area_type = $("input[name=area_type]:checked").val();
if((area_type == 1 || area_type == 2) && value == ''){
return '请填写配送区域相关信息';
}
},
district_id : function(value, item){
var area_type = $("input[name=area_type]:checked").val();
if(area_type == 3 && value == ''){
return '请填写配送区域相关信息';
}
},
man_discount: function(value, item){ //value表单的值、item表单的DOM对象
var man_type = $("[name=man_type]:checked").val();
if(man_type == 'discount'){
if(parseFloat(value) < 0){
return '运费折扣不能小于0';
}
}
},
man_money: function(value, item){ //value表单的值、item表单的DOM对象
if(parseFloat(value) < 0){
return '金额不能小于0';
}
},
});
var repeat_flag = false;
//提交
form.on('submit(save)', function(data) {
if (repeat_flag) return false;
repeat_flag = true;
var transfer_type =$("input[name=type]:checked()");
if(transfer_type.length <= 0){
repeat_flag = false;
layer.msg("请至少选择一种配送方式!");
return
}
var field = data.field;
var json = {};
json.store_id = "{$store_id}";
json.type = field.type;
json.man_money = field.man_money;
json.man_type = field.man_type;
json.man_discount = field.man_discount;
json.area_type = field.area_type;
//是否开启定时达
json.time_is_open = field.time_is_open;
json.time_interval = $('[name="time_interval"]:checked').val();
if(field.time_is_open){
//时间类型
json.time_type = field.time_type;
//自定义时间
if(field.time_type == 1){
var time_week = [];
$('.time-week').each(function(){
if($(this).prop('checked')){
time_week.push($(this).val());
}
});
json.time_week = time_week.toString();
}
}
json.delivery_time = [];
$('.delivery-time .layui-form-item').each(function (index, item) {
json.delivery_time.push({
start_time: $(item).find("input[name=start_time]").val(),
end_time: $(item).find("input[name=end_time]").val()
})
})
json.start_time = json.delivery_time[0].start_time;
json.end_time = json.delivery_time[0].end_time;
json.delivery_time = JSON.stringify(json.delivery_time);
switch(field.area_type){
case '1':
json.start_distance = field.radius_start_distance;
json.start_delivery_money = field.radius_start_delivery_money;
json.continued_distance = field.radius_continued_distance;
json.continued_delivery_money = field.radius_continued_delivery_money;
var local_area_json = eachOverlayers(field.area_type);
json.local_area_json = JSON.stringify(local_area_json);
break;
case '2':
var local_area_json = eachOverlayers(field.area_type);
json.local_area_json = JSON.stringify(local_area_json);
break;
case '3':
//地址id
var area_array = formSelects.value('district_id', 'valStr');
json.area_array = area_array;
json.start_money = field.xz_start_money;
json.is_open_step = field.is_open_step;
if(field.is_open_step){
json.start_distance = field.xz_start_distance;
json.start_delivery_money = field.xz_start_delivery_money;
json.continued_distance = field.xz_continued_distance;
json.continued_delivery_money = field.xz_continued_delivery_money;
}else{
json.delivery_money = field.xz_delivery_money;
}
break;
}
if(json.local_area_json == '[]'){
repeat_flag = false;
layer.msg('至少保留一个配送区域');
return;
}
$.ajax({
type: 'POST',
dataType: 'JSON',
url: ns.url("shop/store/local"),
data: json,
success: function(res) {
layer.msg(res.message);
if (res.code == 0) {
location.reload();
}else{
repeat_flag = false;}
}
});
});
});
//删除区域
function deleteArea(key){
var parent = $('li[key='+key+']');
parent.remove();
removeOverlayers(key);
}
//遍历获取区域配置
function eachOverlayers(area_type){
var area_json = [];
$('.region-list li').each(function(){
var start_price = $(this).find('.start-price').val();
var area_name = $(this).find('.area-name').val();
var rule_type = $(this).find('.rule-type:checked').val();
var key = $(this).attr('key');
var path = getOverlayersPath(key, rule_type);
var item_json = {
start_price:start_price,
area_name:area_name,
rule_type:rule_type,
path:path,
};
if(area_type == 2){
var delivery_money = $(this).find('.delivery-money').val();
item_json.delivery_money = delivery_money;
}
area_json.push(item_json);
});
return area_json;
}
$("body").on('click', '.region-list li', function(){
$('.region-list li').removeClass('border-color');
$(this).addClass('border-color');
// var rule_type = $(this).find('.rule_type:checked');
var key = $(this).attr('key');
//创建覆盖物
foursOverlayers(key);
});
//初始化
function init(){
//是否启用定时达
timeChange($("input[name=time_is_open]:checked").val());
//是否启用定时达
timeTypeChange($("input[name=time_type]:checked").val());
//初始化区域类型
areaChange($("input[name=area_type]:checked").val());
//初始化阶梯价
stepPriceChange($("input[name=is_open_step]").prop('checked') ? 1 : 0);
if ($("input[name=area_type]:checked").val() == 1) {
initMap();
}
form.render();
}
function initMap() {
if ($('#container canvas').length) return;
if('{$store_detail.latitude}' == "" || '{$store_detail.longitude}' == ""){
var latlng = {lat:'',lng:''};
}else{
var latlng = {lat:'{$store_detail.latitude}',lng:'{$store_detail.longitude}'};
}
createMap('container', latlng);
$.each(area_array, function(i, item){
addArea(item);
});
}
function timeChange(is_open){
$('.time-view').hide();
if(is_open == 0){
}else if(is_open == 1){
$('.time-view').show();
}
}
function manDiscount(){
$('input[name="man_discount"]').val(Math.abs($('input[name="man_discount"]').val()));
}
switchManType(1);
function switchManType(init = 0){
let data = $('[name="man_type"]:checked').val();
if(data == 'free'){
$('.man_type .discount-txt-before').text('元,免邮费');
$('.man_type .discount-txt-after, .man_type .man-discount').addClass('layui-hide');
}else if(data == 'discount'){
$('.man_type .discount-txt-after, .man_type .man-discount').removeClass('layui-hide');
$('.man_type .discount-txt-before').text('元,运费优惠');
}
manDiscount();
}
function timeTypeChange(type){
$('.time-type-view').hide();
if(type == 0){
}else if(type == 1){
$('.time-type-view').show();
}
}
function areaChange(area_type){
$(".region-view").hide();
$(".radius-view").hide();
$(".administrative-view").hide();
$(".map-block-view").hide();
if(area_type== 1){
$(".radius-view").show();
$(".map-block-view").show();
initMap();
}else if(area_type == 2){
$(".region-view").show();
$(".map-block-view").show();
initMap();
}else if(area_type == 3){
$(".administrative-view").show();
}
}
function stepPriceChange(is_open){
$(".administrative-region-view").hide();
$(".administrative-radius-view").hide();
if(is_open == 0){
$(".administrative-region-view").show();
}else if(is_open == 1){
$(".administrative-radius-view").show();
}
}
/**
* 创建配送区域
*/
function addArea(data){
var temp_data = data != undefined ? data : [];
var rule_type = temp_data.length == 0 ? 'circle' : data.rule_type;
var key = init_key;
temp_data['key'] = key;
temp_data['rule_type'] = rule_type;
var tpl = $("#area-html").html();
laytpl(tpl).render(temp_data, function(html){
$('.region-list li').removeClass('border-color');
$('.region-list').append(html);
$('.region-list li').last().addClass('border-color');
form.render();
form.on('radio(huafen_type'+key +')', function(data){
var parent_obj = $(data.elem).parent().parent().parent();
var rule_type = data.value;
var key = parent_obj.attr('key');
removeOverlayers(key);
//创建覆盖物
createOverlayers(rule_type, key);
});
});
var path = data != undefined ? data.path : undefined;
//创建覆盖物
createOverlayers(rule_type, key, path);
areaChange($("input[name=area_type]:checked").val());
init_key++;
}
/**
* 创建覆盖物
* @param type
* @param key
*/
function createOverlayers(type, key, path){
switch(type){
//多边形
case 'polygon':{
createPolygon(key, getRandomColor(), getRandomColor(), path);
break;
}
//圆
case 'circle':{
createCircle(key, getRandomColor(), getRandomColor(), path);
break;
}
}
}
/**
* 随机生成颜色
* @returns {string}
*/
function getRandomColor(){
return '#' + (function(color){
return (color += '0123456789abcdef'[Math.floor(Math.random()*16)])
&& (color.length == 6) ? color : arguments.callee(color);
})('');
}
/**
* 一天内的时间比较
* @param start_time
* @param end_time
* @returns {boolean}
* @constructor
*/
function compareDate(start_time, end_time)
{
var date = new Date();
var start_time_arr = start_time.split(":");
var end_time_arr = end_time.split(":");
return date.setHours(end_time_arr[0],end_time_arr[1],end_time_arr[2]) > date.setHours(start_time_arr[0],start_time_arr[1],start_time_arr[2]);
}
</script>
{/block}