商品列表、分类管理、客户等级

This commit is contained in:
liu
2026-08-05 19:28:53 +08:00
parent dfa471bf22
commit 258df92e6c
36 changed files with 472 additions and 516 deletions
@@ -25,7 +25,7 @@ class CustomerLevelFormRequest extends BaseFormRequest
'name' => ['required', 'string', 'max:50', $unique],
'sort' => 'nullable|integer',
'status' => 'nullable|integer|in:0,1',
'icon' => ['nullable', 'integer', new Exists(SysFileModel::class, 'id')],
'icon_id' => ['nullable', 'integer', new Exists(SysFileModel::class, 'id')],
];
}
@@ -36,7 +36,7 @@ class CustomerLevelFormRequest extends BaseFormRequest
'name.max' => '等级名称最长 50 个字符',
'name.unique' => '等级名称已存在',
'status.in' => '状态值不正确',
'icon.exists' => '请重新上传图片'
'icon_id.exists' => '请重新上传图片'
];
}
}
@@ -2,7 +2,9 @@
namespace App\Http\Requests\Product;
use Illuminate\Validation\Rules\Exists;
use Modules\Common\Http\Requests\BaseFormRequest;
use Modules\SystemTool\Models\SysFileModel;
/**
* 商品分类 创建/编辑 验证
@@ -22,6 +24,7 @@ class ProductCategoryFormRequest extends BaseFormRequest
'name' => 'required|string|max:50',
'parent_id' => 'required|integer|min:0',
'sort' => 'nullable|integer',
'icon_id' => ['nullable', 'integer', new Exists(SysFileModel::class, 'id')],
'status' => 'nullable|integer|in:0,1',
];
}
@@ -33,6 +36,7 @@ class ProductCategoryFormRequest extends BaseFormRequest
'name.max' => '分类名称最长 50 个字符',
'parent_id.min' => '父级分类ID不正确',
'status.in' => '状态值不正确',
'icon_id.exists' => '请重新上传图片'
];
}
}
@@ -2,7 +2,11 @@
namespace App\Http\Requests\Product;
use App\Models\ProductCategoryModel;
use App\Models\SupplierModel;
use Illuminate\Validation\Rules\Exists;
use Modules\Common\Http\Requests\BaseFormRequest;
use Modules\SystemTool\Models\SysFileModel;
/**
* 商品档案 创建/编辑 验证(含多等级价格 prices 数组)
@@ -14,14 +18,17 @@ class ProductFormRequest extends BaseFormRequest
public function rules(): array
{
return [
'category_id' => ['required','integer', new Exists(ProductCategoryModel::class,'id')],
'supplier_id' => ['nullable','integer', 'exclude_if:supplier_id,0', new Exists(SupplierModel::class,'id')],
'name' => 'required|string|max:100',
'spec' => 'nullable|string|max:100',
'grade' => 'nullable|string|max:50',
'unit' => 'nullable|string|max:20',
'category_id' => 'required|integer|exists:product_category,id',
'supplier_id' => 'nullable|integer|exclude_if:supplier_id,0|exists:supplier,id',
'image' => 'nullable|string|max:255',
'image_ids' => 'nullable|array|max:255',
'image_ids.*' => ['integer', new Exists(SysFileModel::class, 'id')],
'content' => 'nullable|string',
'sort' => 'nullable|integer',
'shelf_life' => 'nullable|integer|min:0',
'stock' => 'nullable|integer|min:0',
'status' => 'nullable|integer|in:0,1',
'remark' => 'nullable|string|max:255',
'prices' => 'nullable|array',