Commit 2f78da71 by 杨树贤

Merge branch 'ysx-供应商需求-20250723'

parents 0f9ae83d b870391e
# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv)
vendor/
storage/
public/
......@@ -42,16 +42,16 @@ class SupplierContractApiController extends Controller
$validator = \Validator::make($data, [
'supplier_id' => 'required|integer',
'end_time' => 'required|date',
'recall_time' => 'required|date',
'commission_rate' => 'numeric|max:100|min:1',
'check_date' => 'required|integer|min:1|max:31'
], [
'supplier_id.required' => '供应商ID不能为空',
'supplier_id.integer' => '供应商ID必须为整数',
'start_time.required' => '合同开始时间不能为空',
'start_time.date' => '合同开始时间必须为日期格式',
'end_time.required' => '合同结束时间不能为空',
'end_time.date' => '合同结束时间必须为日期格式',
'end_time.after' => '合同结束时间必须大于合同开始时间',
'recall_time.required' => '召回期不能为空',
'recall_time.date' => '召回期必须为日期格式',
'commission_rate.required' => '抽佣比率不能为空',
'commission_rate.numeric' => '抽佣比率必须为数字',
'commission_rate.max' => '抽佣比率不能大于100',
......
......@@ -59,6 +59,7 @@ class SupplierContractController extends Controller
$contract = $model->with('supplier')->where('id', $id)->first()->toArray();
$contract['start_time'] = date('Y-m-d H:i:s', $contract['start_time']);
$contract['end_time'] = date('Y-m-d H:i:s', $contract['end_time']);
$contract['recall_time'] = $contract['recall_time'] ? date('Y-m-d H:i:s', $contract['recall_time']) : '';
$this->data['contract'] = $contract;
}
$this->data['supplierList'] = $supplierList;
......
......@@ -203,7 +203,6 @@ class SupplierController extends Controller
} else {
$this->data['title'] = '添加供应商';
}
return $this->view('新增供应商');
}
......@@ -248,7 +247,7 @@ class SupplierController extends Controller
$supplier['customer_tags'] = $customerTags ? implode(',', $customerTags['list']) : '';
$supplierModel = new SupplierChannelModel();
$supplierModel->where('supplier_id', $supplierId)->update([
'customer_tags' => $supplier['customer_tags']?:'',
'customer_tags' => $supplier['customer_tags'] ?: '',
]);
$this->data['supplier'] = $supplier;
$this->data['address'] = $supplierService->getAddress($supplierId);
......
......@@ -33,6 +33,7 @@ class SupplierContractService
try {
\DB::connection('web')->beginTransaction();
$data['end_time'] = strtotime($data['end_time']);
$data['recall_time'] = strtotime($data['recall_time']);
// 检查是否已存在相同供应商的合同
if (empty($data['id'])) {
......@@ -61,6 +62,7 @@ class SupplierContractService
'end_time' => '合同有效期',
'commission_rate' => '抽佣比率',
'check_date' => '对账日期',
'recall_time' => '召回期',
];
$diffArr = [];
$oldData = $oldData->toArray();
......@@ -124,7 +126,7 @@ class SupplierContractService
} catch (\Exception $e) {
\DB::connection('web')->rollBack();
\Log::error(json_encode($e->getMessage()) . ' ' . $e->getLine());
return $e->getMessage();
return $e->getMessage().' '.$e->getLine();
}
}
......
......@@ -295,7 +295,7 @@ class SupplierValidator
//如果付款方式为账期,那么月结天数一定要选
if ($validateData['pay_type'] == 1) {
if (!array_get($validateData, 'pay_type_value')) {
$errorMessageList[] = '付款方式选择账期,月结天数必须设置';
$errorMessageList[] = '付款方式选择账期,具体的付款周期值必填';
}
}
......
......@@ -373,4 +373,10 @@ return [
5 => '4年内',
6 => '5年内',
],
'SupplierPayTypeExtra' => [
'天' => '天',
'当月' => '当月',
'当周' => '当周',
]
];
......@@ -60,5 +60,8 @@ return [
'sign_com_id' => '签约公司id',
'sign_com_name' => '签约公司名称',
'sku_optional_batch_text' => 'SKU可选批次',
'pay_type_name' => '付款周期',
'pay_type_value' => '付款周期值',
'pay_type_extra' => '付款周期类型',
]
];
......@@ -2,6 +2,21 @@
layui.use(['table', 'form', 'element', 'layer', 'admin'], function () {
let admin = layui.admin;
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) {
const payType = data.value;
......@@ -9,6 +24,7 @@
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').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') {
parentDiv.find('.pay_type_2_div').hide();
parentDiv.find('.pay_type_2_div').find('.valueInput').attr('name', '');
......@@ -50,27 +66,50 @@
}
});
$(document).on('click', '.delete_pay_type', function () {
let count = $('.pay_type_div').size();
if (count <= 1) {
layer.msg('至少要保留一个付款方式', {icon: 5});
return;
// 处理周期类型选择变化
form.on('select(pay_type_extra)', function (data) {
const payTypeExtra = data.value;
// 隐藏所有子选项
$('.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总会变来变去,所以手动固定死,确保提交的时候,顺序和名称都是对的
$("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')
// 更新隐藏字段值
$('[name="pay_type_extra"]').val(payTypeExtra);
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>
\ No newline at end of file
</script>
......@@ -257,7 +257,7 @@
<div class="layui-col-md3">
付款周期 :{{$supplier['pay_type_name'] }}
@if($supplier['pay_type'] == 1)
(月结{{$supplier['pay_type_value'].$supplier['pay_type_extra']}})
({{'按'.$supplier['pay_type_extra'].' '.$supplier['pay_type_value']}})
@endif
</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