| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041 |
- {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{}
- .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{}
- .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;}
- .empty-local-map{-webkit-box-flex:0;-webkit-flex:0 0 750px;-ms-flex:0 0 750px;flex:0 0 750px;height:500px;margin-right:20px;border-radius:4px;overflow-y:hidden;position:relative;}
- .empty-address-text{font-size: 14px;color: #f43530;height: 34px;line-height: 34px;}
- .day-wrap {display: flex;align-items: center}
- .day-input {width: 80px}
- .day-input[readonly] {background: #f5f5f5}
- .day-wrap .layui-form-radio:nth-child(4) {margin-right: 0px}
- </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">
- <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 class="layui-form-item">
- <label class="layui-form-label">提前预约:</label>
- <div class="layui-input-block day-wrap">
- <input type="radio" name="advance_day" value="0" title="无需提前" {if $local_info.advance_day == 0}checked{/if} lay-filter="day_select"/>
- <input type="radio" name="advance_day" value="1" title="提前" {if $local_info.advance_day != 0}checked{/if} lay-filter="day_select"/>
- <div class="layui-input-inline">
- <input type="number" name="advance_day_num" lay-verify="advance_day" class="layui-input day-input" {if $local_info.advance_day == 0}readonly{else/}value="{$local_info.advance_day}"{/if}>
- </div>
- <div class="layui-form-mid layui-word-aux">天</div>
- </div>
- <div class="word-aux">预约配送是否需提前进行预约</div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">最长预约:</label>
- <div class="layui-input-block day-wrap">
- <input type="radio" name="most_day" value="0" title="仅当日" {if $local_info.most_day == 0}checked{/if} lay-filter="day_select"/>
- <input type="radio" name="most_day" value="1" title="可预约" {if $local_info.most_day != 0}checked{/if} lay-filter="day_select"/>
- <div class="layui-input-inline">
- <input type="number" name="most_day_num" lay-verify="most_day" class="layui-input day-input" {if $local_info.most_day == 0}readonly{else/}value="{$local_info.most_day}"{/if}>
- </div>
- <div class="layui-form-mid layui-word-aux">天内</div>
- </div>
- <div class="word-aux">预约配送最长可预约多少天内进行提货</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="{$shop_detail.full_address}">
- </div>
- <div class="layui-form-mid layui-word-aux"><a href="{:addon_url('shop/shop/contact')}" 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">
- {if $tencent_map_key}
- {if $check_map_key.status == 0}
- <div class="local-map">
- <div class="map" id="container"></div>
- </div>
- {else/}
- <div class="empty-local-map">
- <div class="empty-address-text">{$check_map_key.message}。<a href="{:addon_url('/shop/config/map')}" class="text-color">重新配置</a></div>
- </div>
- {/if}
- {else/}
- <div class="empty-local-map">
- <div class="empty-address-text">腾讯地图尚未配置,无法定位地址。<a href="{:addon_url('/shop/config/map')}" class="text-color">点击配置</a></div>
- </div>
- {/if}
- <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&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);
- });
- form.on('radio(day_select)', function (data){
- if (data.value == 1) {
- $(data.elem).parents('.day-wrap').find('input[type="number"]').prop('readonly', false);
- } else {
- $(data.elem).parents('.day-wrap').find('input[type="number"]').prop('readonly', true);
- }
- })
- init();
- form.render();
- form.verify({
- start_time: function(value, item){ //value:表单的值、item:表单的DOM对象
- if ($('[name="time_is_open"]:checked').val() == 1) {
- 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对象
- if ($('[name="time_is_open"]:checked').val() == 1) {
- 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 '请选择可配送日期';
- },
- advance_day: function (value){
- if ($('[name="advance_day"]:checked').val() == 1) {
- if (value == '' || value == 0) return '请输入提前预约时间';
- if (value < 0) return '提前预约时间不能为负数';
- }
- },
- most_day: function (value){
- if ($('[name="most_day"]:checked').val() == 1) {
- if (value == '' || value == 0) return '请输入最长可预约时间';
- if (value < 0) return '最长可预约时间不能为负数';
- if (value > 15) return '最长可预约时间不能超过15天';
- }
- },
- 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.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);
- json.advance_day = $('[name="advance_day"]:checked').val() == 0 ? 0 : $('[name="advance_day_num"]').val();
- json.most_day = $('[name="most_day"]:checked').val() == 0 ? 0 : $('[name="most_day_num"]').val();
- 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/local/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('{$shop_detail.latitude}' == "" || '{$shop_detail.longitude}' == ""){
- var latlng = {lat:'',lng:''};
- }else{
- var latlng = {lat:'{$shop_detail.latitude}',lng:'{$shop_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}
|