mirror of
https://gitee.com/ShopeX/OMS
synced 2026-03-22 10:25:35 +08:00
347 lines
13 KiB
HTML
347 lines
13 KiB
HTML
<!--
|
|
Copyright 2012-2026 ShopeX (https://www.shopex.cn)
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<style>
|
|
.areabox{padding:2px;}
|
|
.weight_rule li{float:left;padding:4px;text-align:left;}
|
|
.weight_rule ul{width:600px;}
|
|
.weight_left{width:200px;}
|
|
.weight_right{width:380px;}
|
|
select{width:80px;}
|
|
ul{padding:4px;}
|
|
</style>
|
|
|
|
下属规则设置<br>
|
|
<div class="tableform">
|
|
<form method="POST" id='area_rule_form' action='index.php?app=logistics&ctl=admin_area_rule&act=editArearule'>
|
|
|
|
<div class="division">
|
|
<table border="0" cellpadding="0" cellspacing="0" class="girdlist">
|
|
<tr >
|
|
<th >地区:</th>
|
|
<td><{$rule_obj.region_name}></td>
|
|
</tr>
|
|
<tr >
|
|
<th><span style='color:red'>*</span>规则类型:</th>
|
|
<td>
|
|
<input type='radio' id='noweighttype' class='first_rule_weight' name='set_type' value='noweight' onclick="showArea('noweight')" <{if $rule_obj.set_type=='noweight'}>checked<{/if}>>按任意重量设置
|
|
<input type='radio' id='weighttype' class='first_rule_weight' name='set_type' value='weight' onclick="showArea('weight')" <{if $rule_obj.set_type=='weight'}>checked<{/if}>>按重量区间设置
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="division" id='first_rule_weight_one'>
|
|
<table border="0" cellpadding="0" cellspacing="0" class="girdlist">
|
|
<tr >
|
|
<th>区间类型</th>
|
|
<td>
|
|
<span class="spectype"><input type="radio" name="addspectype" class="addspectype" value="weight" checked >普通区间</span>
|
|
<span class="spectype"><input type="radio" name="addspectype" value="above" class="addspectype">"以上"区间</span>
|
|
<input type="button" id ='addspec' value='添加'>
|
|
<{help}>重量请输入整数,<br>请输入连续的区间,重量区间表示:左区间<=重量<右区间<{/help}>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th></th>
|
|
<td><div id="spec_body">
|
|
<{if $rule_obj.set_type=='weight'}>
|
|
<{foreach from=$rule_obj.items item=items}>
|
|
<div class='weight_rule' id='<{$items.item_id}>' align="left">
|
|
<ul>
|
|
<li class="weight_left">
|
|
重量:<input type="text" name="min_weight[]" size=8 value="<{$items.min_weight}>" vtype="required&&unsigned">g
|
|
<{if $items.max_weight=='-1'}>
|
|
<input type="hidden" name="max_weight[]" value="<{$items.max_weight}>" >以上
|
|
<{else}>
|
|
至<input type="text" name="max_weight[]" size=8 value="<{$items.max_weight}>" vtype="required&&unsigned">g
|
|
<{/if}>
|
|
</li>
|
|
<li class="weight_right">
|
|
首选物流公司:
|
|
<select name="corp_id[]" id="dlyCorpWeight<{$items.item_id}>" onchange="dlyCorpChange('Weight<{$items.item_id}>')">
|
|
<{foreach from=$dly_corp item=dlyCorp1}>
|
|
<option value='<{$dlyCorp1.corp_id}>' <{if $dlyCorp1.corp_id==$items.corp_id}>selected<{/if}>><{$dlyCorp1.name}></option>
|
|
<{/foreach}>
|
|
</select>
|
|
<span id="secondSpanWeight<{$items.item_id}>" <{if !in_array($items.corp_id,$elecIds)}>style="display:none;"<{/if}>>
|
|
次选物流公司:<select name='second_corp_id[]' id="secondDlyCorpWeight<{$items.item_id}>">
|
|
<option value='0'>--请选择--</option>
|
|
<{foreach from=$dlyCorpNormal item=dlyCorp2}>
|
|
<option value='<{$dlyCorp2.corp_id}>' <{if $items.second_corp_id==$dlyCorp2.corp_id}>selected<{/if}>><{$dlyCorp2.name}></option>
|
|
<{/foreach}>
|
|
</select>
|
|
</span>
|
|
<a onclick='deleteArea($(this).getParent("div"))'>删除</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<input type="hidden" name="item_id[]" value="<{$items.item_id}>">
|
|
<{/foreach}>
|
|
<{/if}>
|
|
</div></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="division" id='first_rule_weight_nothing' style='display:none'>
|
|
<table border="0" cellpadding="0" cellspacing="0" class="girdlist">
|
|
<tr >
|
|
<th></th>
|
|
<td>
|
|
首选物流公司:
|
|
<select name='default_corp_id' id='dlyCorpNoweight' onchange="dlyCorpChange('Noweight')">
|
|
<{foreach from=$dly_corp item=dlyCorp1}>
|
|
<option value='<{$dlyCorp1.corp_id}>' <{if $rule_obj.items.0.corp_id==$dlyCorp1.corp_id}>selected<{/if}>><{$dlyCorp1.name}></option>
|
|
<{/foreach}>
|
|
</select>
|
|
<span id="secondSpanNoweight" <{if !in_array($rule_obj.items.0.corp_id,$elecIds)}>style="display:none;"<{/if}>>
|
|
次选物流公司:<select name='default_second_corp_id' id='secondDlyCorpNoweight'>
|
|
<option value='0'>--请选择--</option>
|
|
<{foreach from=$dlyCorpNormal item=dlyCorp2}>
|
|
<option value='<{$dlyCorp2.corp_id}>' <{if $rule_obj.items.0.second_corp_id==$dlyCorp2.corp_id}>selected<{/if}>><{$dlyCorp2.name}></option>
|
|
<{/foreach}>
|
|
</select>
|
|
</span>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<{if $rule_obj.set_type=='noweight'}>
|
|
<input type="hidden" name='default_item_id' value="<{$rule_obj.items.0.item_id}>">
|
|
<{/if}>
|
|
</div>
|
|
|
|
<div class="table-action">
|
|
<{button type="button" label="保存" id="create_rule_save" }>
|
|
</div>
|
|
|
|
<input type="hidden" name="rule_id" value="<{$rule_obj.rule_id}>">
|
|
<input type="hidden" name="rule_type" value="other">
|
|
<input type="hidden" name="obj_id" value="<{$rule_obj.obj_id}>">
|
|
</form>
|
|
</div>
|
|
|
|
<script>
|
|
var corp_id=<{$dly_corp_list}>;
|
|
var dlyCorpNormal = <{$dlyCorpNormalJson}>;
|
|
var electronIds = <{$electronIds}>;
|
|
|
|
var addAreaTemp = function(){
|
|
var p_region_id = "<{$rule.first_city_id}>";
|
|
var first_city="<{$rule.first_city}>";
|
|
p_region_array =[];
|
|
first_city_array=[];
|
|
p_region_array = p_region_id.split(',');
|
|
first_city_array = first_city.split(',');
|
|
temp= '<div><span class="span_x_ipt" package="mainland"><input id="dom_el_88646801" type="hidden" name="area[]"><select onchange="selectArea(this,this.value,2)">';
|
|
temp+='<option value="_NULL_">请选择---</option>';
|
|
p_region_array.each(function(i,index){
|
|
temp+='<option value='+p_region_array[index]+' has_c="true">'+first_city_array[index]+'</option>';
|
|
});
|
|
temp+='</select></span>';
|
|
temp+="<a onclick='deleteArea($(this).getParent(\"li\"))'>删除</a></div>";
|
|
|
|
return temp;
|
|
}
|
|
|
|
function showArea(setType){
|
|
if(setType=='weight'){
|
|
$('first_rule_weight_one').setStyle('display','');
|
|
$('first_rule_weight_nothing').setStyle('display','none');
|
|
}
|
|
|
|
if(setType=='noweight'){
|
|
$('first_rule_weight_nothing').setStyle('display','');
|
|
$('first_rule_weight_one').setStyle('display','none');
|
|
}
|
|
}
|
|
|
|
showArea('<{$rule_obj.set_type}>');
|
|
|
|
$$('.first_rule_weight').addEvent('click',function(i,index){
|
|
confirmchange = confirm('切换规则类型,现有类型将会全部删除?');
|
|
if(confirmchange==false){
|
|
if(this.value=='weight'){
|
|
showArea('noweight');
|
|
this.set('checked',false);
|
|
$('noweighttype').set('checked',true);
|
|
}else{
|
|
this.set('checked',false);
|
|
$('weighttype').set('checked',true);
|
|
showArea('weight');
|
|
}
|
|
}
|
|
});
|
|
|
|
$('addspec').addEvent('click',function(e){
|
|
var add_above=0;
|
|
$$('.weight_left').each(function(etd){
|
|
above_max_weight = etd.getChildren('input[name^=max_weight]').get('value')/1;
|
|
if(above_max_weight=='-1'){
|
|
add_above++;
|
|
|
|
}
|
|
});
|
|
|
|
if(add_above>=1){
|
|
return MessageBox.error('<{t}>以上区间存在不可以再添加!<{/t}>');
|
|
}else{
|
|
var spectype = $('first_rule_weight_one').getElement("input[name='addspectype']:checked").value;
|
|
var index = uniqueID();
|
|
var newRow=new Element('div[class="areabox"]',{html:getTemp(spectype)}).inject($('spec_body'));
|
|
}
|
|
});
|
|
|
|
var new_city_item = 0;
|
|
var getTemp = function(type,index){
|
|
var max_weight_value=0;
|
|
temp='<div class="weight_rule" align="left"><ul><li class="weight_left">重量:<input type="text" name="min_weight[]" size=8 vtype="required&&unsigned">g ';
|
|
if(type=='weight'){
|
|
temp+='至<input type="text" name="max_weight[]" size=8 vtype="required&&unsigned">g ';
|
|
}else{
|
|
temp+='以上<input type="hidden" name="max_weight[]" size=10 value="-1"> ';
|
|
}
|
|
|
|
temp+='</li><li class="weight_right">首选物流公司:';
|
|
temp+='<select name="corp_id[]" id="dlyCorp'+index+'" onchange="dlyCorpChange('+index+')">';
|
|
temp+='<option value="0">--请选择--</option>';
|
|
if(corp_id){
|
|
corp_id.each(function(i,index){
|
|
temp+='<option value='+i.corp_id+'>'+i.name+'</option>';
|
|
});
|
|
}
|
|
temp+="</select> ";
|
|
temp+='<span id="secondSpan'+index+'" style="display:none;">次选物流公司:<select name="second_corp_id[]" id="secondDlyCorp'+index+'">';
|
|
temp+='<option value="0">--请选择--</option>';
|
|
if(dlyCorpNormal){
|
|
dlyCorpNormal.each(function(i,index){
|
|
temp+='<option value='+i.corp_id+'>'+i.name+'</option>';
|
|
});
|
|
}
|
|
temp+="</select></span>";
|
|
temp+="<a onclick='deleteArea($(this).getParent(\"div\"))' >删除</a>";
|
|
temp+="</li></ul></div>";
|
|
|
|
return temp;
|
|
};
|
|
|
|
function dlyCorpChange(index) {
|
|
var dlyCorp = 'dlyCorp'+index;
|
|
var secondDlyCorp = 'secondDlyCorp'+index;
|
|
var secondSpan = 'secondSpan'+index;
|
|
|
|
var val = $(dlyCorp).value;
|
|
if(electronIds.contains(val)) {
|
|
$(secondSpan).show();
|
|
} else {
|
|
$(secondSpan).hide();
|
|
}
|
|
$(secondDlyCorp).selectedIndex = 0;
|
|
}
|
|
|
|
function deleteArea(d){
|
|
if (!confirm('删除后无法恢复,确定要删除吗?')){
|
|
return;
|
|
}
|
|
|
|
d.remove();
|
|
if(d.get('id')){
|
|
new Request({url:'index.php?app=logistics&ctl=admin_area_rule&act=deleteRule&item_id='+d.get('id'),
|
|
onComplete:function(rs){
|
|
var json = Json.evaluate(rs);
|
|
if (typeof(json.error) != 'undefined'){
|
|
alert('删除失败');
|
|
}else{
|
|
alert('删除成功');
|
|
}
|
|
}}).send();
|
|
}
|
|
}
|
|
|
|
$('create_rule_save').addEvent('click',function(e){
|
|
var set_type=$('area_rule_form').getElements("input[name='set_type']:checked").get('value');
|
|
if(set_type=='weight'){
|
|
var above_set=0;
|
|
compareValueFlag = $$('.weight_left').every(function(etd){
|
|
min_weight = etd.getChildren('input[name^=min_weight]').get('value')/1;
|
|
max_weight = etd.getChildren('input[name^=max_weight]').get('value')/1;
|
|
if(max_weight=='-1'){
|
|
above_set++;
|
|
}
|
|
if((min_weight>max_weight || min_weight==max_weight) && max_weight!='-1'){
|
|
return false;
|
|
}
|
|
return true;
|
|
});
|
|
|
|
if(!compareValueFlag )return MessageBox.error('<{t}>重量最小值大于最大值<{/t}>');
|
|
if(above_set>=2) return MessageBox.error('<{t}>以上区间只能有一个<{/t}>');
|
|
|
|
//区间判断重复
|
|
var length=$$('.weight_left').length;
|
|
if(length<=0){
|
|
return MessageBox.error('<{t}>请选择对应的重量区间!<{/t}>');
|
|
}
|
|
|
|
for(i=0;i<length;i++){
|
|
imin = $$('.weight_left')[i].getChildren('input[name^=min_weight]').get('value');
|
|
imax = $$('.weight_left')[i].getChildren('input[name^=max_weight]').get('value');
|
|
|
|
for(j=i+1;j<length;j++){
|
|
min=$$('.weight_left')[j].getChildren('input[name^=min_weight]').get('value')/1;
|
|
max=$$('.weight_left')[j].getChildren('input[name^=max_weight]').get('value')/1;
|
|
if(imax=='-1'){
|
|
if(min>imin/1){
|
|
return MessageBox.error(min+'大于'+imin+',<{t}>大于以上区间重量最小值<{/t}>');
|
|
}
|
|
}
|
|
if(imax>min){
|
|
return MessageBox.error(imax+'大于'+min+'<{t}>重复区间存在<{/t}>');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var form=this.getParent('form');
|
|
var _this=this;
|
|
form.store('target',{
|
|
onRequest:function(){
|
|
_this.disabled=true;
|
|
},
|
|
onComplete:function(jsontext){
|
|
try{
|
|
var json = Json.evaluate(jsontext);
|
|
if (typeof(json.error) != 'undefined'){
|
|
_this.disabled=false;
|
|
}else{
|
|
show_area_list();
|
|
_this.getParent('.dialog').retrieve('instance').close();
|
|
}
|
|
}catch(e){}
|
|
}
|
|
});
|
|
form.fireEvent('submit',e);
|
|
});
|
|
|
|
uniqueID = (function () {
|
|
var id = 0;
|
|
return function () {
|
|
return id++;
|
|
};
|
|
})();
|
|
</script>
|