Commit 6a223189 by 杨树贤

Merge branch 'ysx-账期改造-20250728' into ysx-供应商需求-20250723

parents 64304a05 061b9dde
...@@ -203,7 +203,6 @@ class SupplierController extends Controller ...@@ -203,7 +203,6 @@ class SupplierController extends Controller
} else { } else {
$this->data['title'] = '添加供应商'; $this->data['title'] = '添加供应商';
} }
return $this->view('新增供应商'); return $this->view('新增供应商');
} }
...@@ -248,7 +247,7 @@ class SupplierController extends Controller ...@@ -248,7 +247,7 @@ class SupplierController extends Controller
$supplier['customer_tags'] = $customerTags ? implode(',', $customerTags['list']) : ''; $supplier['customer_tags'] = $customerTags ? implode(',', $customerTags['list']) : '';
$supplierModel = new SupplierChannelModel(); $supplierModel = new SupplierChannelModel();
$supplierModel->where('supplier_id', $supplierId)->update([ $supplierModel->where('supplier_id', $supplierId)->update([
'customer_tags' => $supplier['customer_tags']?:'', 'customer_tags' => $supplier['customer_tags'] ?: '',
]); ]);
$this->data['supplier'] = $supplier; $this->data['supplier'] = $supplier;
$this->data['address'] = $supplierService->getAddress($supplierId); $this->data['address'] = $supplierService->getAddress($supplierId);
......
...@@ -295,7 +295,7 @@ class SupplierValidator ...@@ -295,7 +295,7 @@ class SupplierValidator
//如果付款方式为账期,那么月结天数一定要选 //如果付款方式为账期,那么月结天数一定要选
if ($validateData['pay_type'] == 1) { if ($validateData['pay_type'] == 1) {
if (!array_get($validateData, 'pay_type_value')) { if (!array_get($validateData, 'pay_type_value')) {
$errorMessageList[] = '付款方式选择账期,月结天数必须设置'; $errorMessageList[] = '付款方式选择账期,具体的付款周期值必填';
} }
} }
......
...@@ -373,4 +373,10 @@ return [ ...@@ -373,4 +373,10 @@ return [
5 => '4年内', 5 => '4年内',
6 => '5年内', 6 => '5年内',
], ],
'SupplierPayTypeExtra' => [
'天' => '天',
'当月' => '当月',
'当周' => '当周',
]
]; ];
...@@ -60,5 +60,8 @@ return [ ...@@ -60,5 +60,8 @@ return [
'sign_com_id' => '签约公司id', 'sign_com_id' => '签约公司id',
'sign_com_name' => '签约公司名称', 'sign_com_name' => '签约公司名称',
'sku_optional_batch_text' => 'SKU可选批次', 'sku_optional_batch_text' => 'SKU可选批次',
'pay_type_name' => '付款周期',
'pay_type_value' => '付款周期值',
'pay_type_extra' => '付款周期类型',
] ]
]; ];
...@@ -2,6 +2,21 @@ ...@@ -2,6 +2,21 @@
layui.use(['table', 'form', 'element', 'layer', 'admin'], function () { layui.use(['table', 'form', 'element', 'layer', 'admin'], function () {
let admin = layui.admin; let admin = layui.admin;
let form = layui.form; let form = layui.form;
// 页面加载时初始化,确保当周期类型为空时,对应的下拉框不显示
$(document).ready(function() {
// 检查所有周期类型选择框,如果值为空,则隐藏对应的子选项
$('select[name="pay_type_extra"]').each(function() {
const payTypeExtra = $(this).val();
const parentDiv = $(this).parents('.pay_type_div');
// 如果周期类型为空,隐藏所有子选项
if (!payTypeExtra) {
parentDiv.find('.pay_type_1_days_div, .pay_type_1_monthly_div, .pay_type_1_weekly_div').hide();
}
});
});
//要根据付款类型的不同选项,切换不同的显示 //要根据付款类型的不同选项,切换不同的显示
form.on('select(pay_type)', function (data) { form.on('select(pay_type)', function (data) {
const payType = data.value; const payType = data.value;
...@@ -9,6 +24,7 @@ ...@@ -9,6 +24,7 @@
parentDiv.find('.pay_type_' + payType + '_div').show(); parentDiv.find('.pay_type_' + payType + '_div').show();
parentDiv.find('.pay_type_' + payType + '_div').find('.valueInput').first().attr('name', 'pay_type_value'); parentDiv.find('.pay_type_' + payType + '_div').find('.valueInput').first().attr('name', 'pay_type_value');
parentDiv.find('.pay_type_' + payType + '_div').find('.valueInput').eq(1).attr('name', 'pay_type_extra'); parentDiv.find('.pay_type_' + payType + '_div').find('.valueInput').eq(1).attr('name', 'pay_type_extra');
$('.pay_type_1_days_div, .pay_type_1_monthly_div, .pay_type_1_weekly_div').hide();
if (payType === '1') { if (payType === '1') {
parentDiv.find('.pay_type_2_div').hide(); parentDiv.find('.pay_type_2_div').hide();
parentDiv.find('.pay_type_2_div').find('.valueInput').attr('name', ''); parentDiv.find('.pay_type_2_div').find('.valueInput').attr('name', '');
...@@ -50,27 +66,50 @@ ...@@ -50,27 +66,50 @@
} }
}); });
$(document).on('click', '.delete_pay_type', function () { // 处理周期类型选择变化
let count = $('.pay_type_div').size(); form.on('select(pay_type_extra)', function (data) {
if (count <= 1) { const payTypeExtra = data.value;
layer.msg('至少要保留一个付款方式', {icon: 5}); // 隐藏所有子选项
return; $('.pay_type_1_days_div, .pay_type_1_monthly_div, .pay_type_1_weekly_div').hide();
// 清空所有值
$('#pay_type_value, #pay_type_value_monthly, #pay_type_value_weekly').val('');
// 根据选择的类型显示对应的选项
if (payTypeExtra === '天') {
$('.pay_type_1_days_div').show();
} else if (payTypeExtra === '当月') {
$('.pay_type_1_monthly_div').show();
} else if (payTypeExtra === '当周') {
$('.pay_type_1_weekly_div').show();
} else {
// 当周期类型为空时,确保所有子选项都隐藏
$('.pay_type_1_days_div, .pay_type_1_monthly_div, .pay_type_1_weekly_div').hide();
} }
var self = $(this);
layer.confirm('确定要删除付款方式吗?', function (index) {
self.parents('.pay_type_div').remove();
layer.closeAll();
});
});
$(document).on('click', '.add_pay_type', function () { // 更新隐藏字段值
$('#pay_type_div_list').append($('#pay_type_template').html()); $('[name="pay_type_extra"]').val(payTypeExtra);
//不知道为什么元素的name总会变来变去,所以手动固定死,确保提交的时候,顺序和名称都是对的
$("input[name^='pay_type_value[']").attr('name','pay_type_value')
$("input[name^='pay_type_extra[']").attr('name','pay_type_extra')
$("select[name^='pay_type[']").attr('name','pay_type')
form.render('select'); form.render('select');
}); });
// 处理days
form.on('select(pay_type_days)', function (data) {
const value = data.value;
$('[name="pay_type_value"]').val(value);
});
// 处理月结天数选择
form.on('select(pay_type_monthly)', function (data) {
const value = data.value;
$('[name="pay_type_value"]').val(value);
});
// 处理当周结星期选择
form.on('select(pay_type_weekly)', function (data) {
const value = data.value;
$('[name="pay_type_value"]').val(value);
});
}); });
</script> </script>
\ No newline at end of file
...@@ -257,7 +257,7 @@ ...@@ -257,7 +257,7 @@
<div class="layui-col-md3"> <div class="layui-col-md3">
付款周期 :{{$supplier['pay_type_name'] }} 付款周期 :{{$supplier['pay_type_name'] }}
@if($supplier['pay_type'] == 1) @if($supplier['pay_type'] == 1)
(月结{{$supplier['pay_type_value'].$supplier['pay_type_extra']}}) ({{'按'.$supplier['pay_type_extra'].' '.$supplier['pay_type_value']}})
@endif @endif
</div> </div>
</div> </div>
......
...@@ -6,96 +6,88 @@ ...@@ -6,96 +6,88 @@
<div class="layui-col-md3"> <div class="layui-col-md3">
@inject('statusPresenter','App\Presenters\StatusPresenter') @inject('statusPresenter','App\Presenters\StatusPresenter')
{!! $statusPresenter->render('settlement_type','结算方式 : ', {!! $statusPresenter->render('settlement_type','结算方式 : ',
!empty($supplier)?$supplier['settlement_type']:'',config('field.SettlementType'),['required'=>true]) !!} !empty($supplier)?$supplier['settlement_type']:'',config('field.SettlementType'),['required'=>true]) !!}
</div> </div>
<div class="layui-col-md3"> <div class="layui-col-md2">
<div class="layui-inline"> <div class="layui-inline">
@inject('statusPresenter','App\Presenters\StatusPresenter') @inject('statusPresenter','App\Presenters\StatusPresenter')
{!! $statusPresenter->render('pay_type','付款周期 : ', {!! $statusPresenter->render('pay_type','付款周期 : ',
!empty($supplier)?$supplier['pay_type']:'',config('fixed.SupplierPayType'),['required'=>true]) !!} !empty($supplier)?$supplier['pay_type']:'',config('fixed.SupplierPayType'),['required'=>true,'width'=>'120px']) !!}
</div> </div>
</div> </div>
<div class="layui-col-md6" style="width:500px;margin-bottom: 3px;margin-left: -20px;"> <div class="layui-col-md7" style="width:500px;margin-bottom: 3px;margin-left: -30px;display: flex;align-items: center;">
<div class="layui-row"> {{-- 周期类型选择 --}}
@if (!empty($supplier)&&$supplier['pay_type']==1) <div class="layui-inline pay_type_1_div pay_type_extra_div" style="margin-left: -20px; @if(!empty($supplier)&&$supplier['pay_type_extra']!='')display: block;@else display: none;@endif">
<div class="pay_type_1_div"> @inject('statusPresenter','App\Presenters\StatusPresenter')
<div class="layui-row" style=""> {!! $statusPresenter->render('pay_type_extra','周期类型 : ',
<span class="require">*</span>月结 : &nbsp !empty($supplier)?$supplier['pay_type_extra']:'',config('field.SupplierPayTypeExtra'),['required'=>true,'width'=>'80px']) !!}
<div class="layui-input-inline" style="width: 80px;"> </div>
<input class="layui-input valueInput" type="hidden" name="pay_type_value"
value="{{$supplier['pay_type_value'] or ''}}"> {{-- 月结天数选择 --}}
<select lay-filter="pay_type_month"> <div class="pay_type_1_div pay_type_1_days_div" style="@if(!empty($supplier)&&$supplier['pay_type']==1 && $supplier['pay_type_extra']=='天')display: block;@else display: none;@endif margin-bottom: 8px;">
<option value="">请选择</option> <div class="layui-row" style="">
<option value="7" <div class="layui-input-inline" style="width: 80px;">
@if($supplier['pay_type_value']==7) <input class="layui-input valueInput" type="hidden" id="pay_type_value" value="{{$supplier['pay_type_value'] or ''}}">
selected='selected' <select lay-filter="pay_type_days">
@endif>7 <option value="">请选择</option>
</option> <option value="7" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='7' ) selected='selected' @endif>7</option>
<option value="15" <option value="15" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='15' ) selected='selected' @endif>15</option>
@if($supplier['pay_type_value']==15) <option value="30" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='30' ) selected='selected' @endif>30</option>
selected='selected' <option value="45" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='45' ) selected='selected' @endif>45</option>
@endif>15 <option value="60" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='60' ) selected='selected' @endif>60</option>
</option> <option value="90" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='90' ) selected='selected' @endif>90</option>
<option value="30" </select>
@if($supplier['pay_type_value']==30)
selected='selected'
@endif>30
</option>
<option value="45"
@if($supplier['pay_type_value']==45)
selected='selected'
@endif>45
</option>
<option value="60"
@if($supplier['pay_type_value']==60)
selected='selected'
@endif>60
</option>
<option value="90"
@if($supplier['pay_type_value']==90)
selected='selected'
@endif>90
</option>
</select>
</div>
&nbsp天
<input type="hidden" class="valueInput" name="pay_type_extra" value="天">
</div>
</div>
@else
<div class="pay_type_1_div" style="display: none">
<div class="layui-row">
<span class="require">*</span>月结 : &nbsp
<div class="layui-input-inline" style="width: 80px;">
<input class="layui-input valueInput" type="hidden" name="pay_type_value">
<select lay-filter="pay_type_month">
<option value="">请选择</option>
<option value="7">7</option>
<option value="15">15</option>
<option value="30">30</option>
<option value="45">45</option>
<option value="60">60</option>
<option value="90">90</option>
</select>
</div>
&nbsp天
<input type="hidden" class="valueInput" name="pay_type_extra" value="天">
</div>
</div> </div>
@endif &nbsp天
</div>
</div>
@if (!empty($supplier)&&$supplier['pay_type']==2) {{-- 当月结日期选择 --}}
<div class="pay_type_2_div"> <div class="pay_type_1_div pay_type_1_monthly_div" style="@if(!empty($supplier)&&$supplier['pay_type']==1 && $supplier['pay_type_extra']=='当月')display: block;@else display: none;@endif margin-bottom: 8px;">
<input type="hidden" class="valueInput" name="pay_type_value"> <div class="layui-row" style="">
<input type="hidden" class="valueInput" name="pay_type_extra" value=""> <div class="layui-input-inline" style="width: 80px;">
<input class="layui-input valueInput" type="hidden" id="pay_type_value_monthly" value="{{$supplier['pay_type_value'] or ''}}">
<select lay-filter="pay_type_monthly">
<option value="">请选择</option>
@for($i = 1; $i <= 31; $i++) <option value="{{$i.'号'}}" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')==$i ) selected='selected' @endif>{{$i}}</option>
@endfor
</select>
</div> </div>
@else &nbsp号
<div class="pay_type_2_div" style="display: none"> </div>
<input type="hidden" class="valueInput" name=""> </div>
<input type="hidden" class="valueInput" name="" value="">
{{-- 当周结星期选择 --}}
<div class="pay_type_1_div pay_type_1_weekly_div" style="@if(!empty($supplier)&&$supplier['pay_type']==1 && $supplier['pay_type_extra']=='当周')display: block;@else display: none;@endif margin-bottom: 8px;">
<div class="layui-row" style="">
<div class="layui-input-inline" style="width: 80px;">
<input class="layui-input valueInput" type="hidden" id="pay_type_value_weekly" value="{{$supplier['pay_type_value'] or ''}}">
<select lay-filter="pay_type_weekly">
<option value="">请选择</option>
<option value="周一" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='周一' ) selected='selected' @endif>周一</option>
<option value="周二" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='周二' ) selected='selected' @endif>周二</option>
<option value="周三" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='周三' ) selected='selected' @endif>周三</option>
<option value="周四" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='周四' ) selected='selected' @endif>周四</option>
<option value="周五" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='周五' ) selected='selected' @endif>周五</option>
<option value="周六" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='周六' ) selected='selected' @endif>周六</option>
<option value="周日" @if(!empty($supplier)&&array_get($supplier,'pay_type_value')=='7' ) selected='selected' @endif>周日</option>
</select>
</div> </div>
@endif </div>
<input type="hidden" class="valueInput" name="pay_type_value">
<input type="hidden" class="valueInput" name="pay_type_extra" value="">
</div>
@if (!empty($supplier)&&array_get($supplier,'pay_type')==2)
<div class="pay_type_2_div">
<input type="hidden" class="valueInput" name="pay_type_value">
<input type="hidden" class="valueInput" name="pay_type_extra" value="">
</div>
@else
<div class="pay_type_2_div" style="display: none">
<input type="hidden" class="valueInput" name="">
<input type="hidden" class="valueInput" name="" value="">
</div> </div>
@endif
</div> </div>
</div> </div>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment