first commit
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\SystemTool\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rules\Exists;
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
use Modules\SystemTool\Models\SysFileModel;
|
||||
|
||||
class SysCarouselFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'title' => 'required|string|max:100',
|
||||
'image_id' => ['required', 'integer', new Exists(SysFileModel::class, 'id')],
|
||||
'link' => 'nullable|string|max:500',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
'sort' => 'nullable|integer',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'title.required' => '轮播图标题是必填的',
|
||||
'title.max' => '轮播图标题不能超过 :max 个字符',
|
||||
'image_id.required' => '轮播图图片是必填的',
|
||||
'link.max' => '跳转链接不能超过 :max 个字符',
|
||||
'status.in' => '状态值只能是 0(启用)或 1(禁用)',
|
||||
'sort.integer' => '排序必须是整数',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\SystemTool\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class SysDictFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
if (!$this->isUpdate()) {
|
||||
return [
|
||||
'name' => 'required|max:100',
|
||||
'code' => 'required|max:100|unique:sys_dict,code',
|
||||
'describe' => 'nullable|max:500',
|
||||
'status' => 'required|in:0,1',
|
||||
'sort' => 'nullable|integer|min:0',
|
||||
];
|
||||
} else {
|
||||
$id = $this->route('id');
|
||||
return [
|
||||
'name' => 'required|max:100',
|
||||
'code' => [
|
||||
'required',
|
||||
'max:100',
|
||||
Rule::unique('sys_dict', 'code')->ignore($id)
|
||||
],
|
||||
'describe' => 'nullable|max:500',
|
||||
'status' => 'required|in:0,1',
|
||||
'sort' => 'nullable|integer|min:0',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'name.required' => '字典名称不能为空',
|
||||
'name.max' => '字典名称不能超过100个字符',
|
||||
'code.required' => '字典编码不能为空',
|
||||
'code.max' => '字典编码不能超过100个字符',
|
||||
'code.unique' => '字典编码已存在',
|
||||
'status.required' => '状态不能为空',
|
||||
'status.in' => '状态格式错误',
|
||||
'sort.integer' => '排序必须为整数',
|
||||
'sort.min' => '排序不能小于0',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\SystemTool\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class SysDictItemFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
if (!$this->isUpdate()) {
|
||||
$dict_id = $this->input('dict_id');
|
||||
return [
|
||||
'dict_id' => 'required|exists:sys_dict,id',
|
||||
'label' => 'required|max:100',
|
||||
'value' => [
|
||||
'required',
|
||||
'max:100',
|
||||
Rule::unique('sys_dict_item')->where(function ($query) use ($dict_id) {
|
||||
return $query->where('dict_id', $dict_id);
|
||||
})
|
||||
],
|
||||
'color' => 'nullable|string',
|
||||
'status' => 'required|in:0,1',
|
||||
'sort' => 'nullable|integer|min:0',
|
||||
];
|
||||
} else {
|
||||
$id = $this->route('id');
|
||||
$dict_id = $this->input('dict_id');
|
||||
return [
|
||||
'dict_id' => 'required|exists:sys_dict,id',
|
||||
'label' => 'required|max:100',
|
||||
'value' => [
|
||||
'required',
|
||||
'max:100',
|
||||
Rule::unique('sys_dict_item')->where(function ($query) use ($dict_id) {
|
||||
return $query->where('dict_id', $dict_id);
|
||||
})->ignore($id)
|
||||
],
|
||||
'color' => 'nullable|string',
|
||||
'status' => 'required|in:0,1',
|
||||
'sort' => 'nullable|integer|min:0',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'dict_id.required' => '字典ID不能为空',
|
||||
'dict_id.exists' => '字典不存在',
|
||||
'label.required' => '字典标签不能为空',
|
||||
'label.max' => '字典标签不能超过100个字符',
|
||||
'value.required' => '字典键值不能为空',
|
||||
'value.max' => '字典键值不能超过100个字符',
|
||||
'value.unique' => '该字典下已存在相同的键值',
|
||||
'color.in' => '颜色格式错误',
|
||||
'status.required' => '状态不能为空',
|
||||
'status.in' => '状态格式错误',
|
||||
'sort.integer' => '排序必须为整数',
|
||||
'sort.min' => '排序不能小于0',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\SystemTool\Http\Requests;
|
||||
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
|
||||
class SysFileGroupFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
if (!$this->isUpdate()) {
|
||||
return [
|
||||
'parent_id' => [
|
||||
'required',
|
||||
'integer',
|
||||
function ($attribute, $value, $fail) {
|
||||
if ($value != 0 && !DB::table('sys_file_group')->where('id', $value)->exists()) {
|
||||
$fail('选择的上级分组不存在。');
|
||||
}
|
||||
},
|
||||
],
|
||||
'name' => 'required|string|max:255',
|
||||
'describe' => 'sometimes|string|max:500',
|
||||
'sort' => 'sometimes|integer|min:0',
|
||||
];
|
||||
} else {
|
||||
return [
|
||||
'name' => 'required|string|max:255',
|
||||
'describe' => 'sometimes|string|max:500',
|
||||
'sort' => 'sometimes|integer|min:0',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'name.required' => '分组名称不能为空',
|
||||
'name.string' => '分组名称必须是字符串',
|
||||
'name.max' => '分组名称不能超过50个字符',
|
||||
'sort.integer' => '分组排序必须是整数',
|
||||
'sort.min' => '分组排序不能为负数',
|
||||
'describe.string' => '分组描述必须是字符串',
|
||||
'describe.max' => '分组描述不能超过500个字符',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\SystemTool\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class SysFileMoveOrCopyRequest extends FormRequest
|
||||
{
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'group_id' => [
|
||||
'required',
|
||||
'integer',
|
||||
function ($attribute, $value, $fail) {
|
||||
if ($value != 0 && !DB::table('sys_file_group')->where('id', $value)->exists()) {
|
||||
$fail('选择的上级部门不存在。');
|
||||
}
|
||||
},
|
||||
],
|
||||
'ids' => [
|
||||
'required',
|
||||
function ($attribute, $value, $fail) {
|
||||
// 检查是否为数字
|
||||
if (is_numeric($value)) {
|
||||
return;
|
||||
}
|
||||
// 检查是否为数字数组
|
||||
if (is_array($value)) {
|
||||
foreach ($value as $item) {
|
||||
if (!is_numeric($item)) {
|
||||
$fail("$attribute 中的元素必须全部是数字");
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
$fail("$attribute 必须是数字或数字数组");
|
||||
},
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\SystemTool\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rules\Exists;
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
use Modules\SystemTool\Models\SysFileModel;
|
||||
|
||||
class SysGridNavFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'title' => 'required|string|max:100',
|
||||
'image_id' => ['required', 'integer', new Exists(SysFileModel::class, 'id')],
|
||||
'link' => 'nullable|string|max:500',
|
||||
'status' => 'nullable|integer|in:0,1',
|
||||
'sort' => 'nullable|integer',
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'title.required' => '导航标题是必填的',
|
||||
'title.max' => '导航标题不能超过 :max 个字符',
|
||||
'image_id.required' => '导航图标是必填的',
|
||||
'link.max' => '跳转链接不能超过 :max 个字符',
|
||||
'status.in' => '状态值只能是 0(启用)或 1(禁用)',
|
||||
'sort.integer' => '排序必须是整数',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\SystemTool\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
use Modules\SystemTool\Models\SysSiteConfigGroupModel;
|
||||
|
||||
class SysSiteConfigGroupFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
if (!$this->isUpdate()) {
|
||||
return [
|
||||
'key' => ['required', Rule::unique(SysSiteConfigGroupModel::class, 'key')],
|
||||
'title' => 'required',
|
||||
'remark' => 'sometimes|required',
|
||||
];
|
||||
} else {
|
||||
$id = $this->route('id');
|
||||
return [
|
||||
'key' => ['required', Rule::unique(SysSiteConfigGroupModel::class, 'key')->ignore($id)],
|
||||
'title' => 'required',
|
||||
'remark' => 'sometimes|required',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'key.required' => '键名字段是必填的',
|
||||
'key.unique' => '键名已存在',
|
||||
'title.required' => '标题字段是必填的',
|
||||
'remark.required' => '备注字段是必填的',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\SystemTool\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rules\Exists;
|
||||
use Modules\Common\Http\Requests\BaseFormRequest;
|
||||
use Modules\SystemTool\Models\SysSiteConfigGroupModel;
|
||||
use Modules\SystemTool\Models\SysSiteConfigItemsModel;
|
||||
use Modules\SystemTool\Rules\SysSiteConfigTypeRule;
|
||||
|
||||
class SysSiteConfigItemsFormRequest extends BaseFormRequest
|
||||
{
|
||||
protected $stopOnFirstFailure = true;
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
$rules = [
|
||||
'title' => 'required|string',
|
||||
'key' => ['required', 'string', 'min:2', 'max:255'],
|
||||
'group_id' => ['required', 'integer', new Exists(SysSiteConfigGroupModel::class, 'id')],
|
||||
'type' => ['required', 'string', new SysSiteConfigTypeRule],
|
||||
'describe' => 'nullable|string',
|
||||
'options' => [
|
||||
'sometimes',
|
||||
'nullable',
|
||||
'string',
|
||||
'regex:/^(?:[^=\n]+=[^=\n]+)(?:\n[^=\n]+=[^=\n]+)*$/',
|
||||
],
|
||||
'props' => [
|
||||
'sometimes',
|
||||
'nullable',
|
||||
'string',
|
||||
'regex:/^(?:[^=\n]+=[^=\n]+)(?:\n[^=\n]+=[^=\n]+)*$/',
|
||||
],
|
||||
'sort' => 'nullable|integer',
|
||||
'values' => 'nullable|string',
|
||||
];
|
||||
|
||||
if (!$this->isUpdate()) {
|
||||
$rules['key'][] = function ($attribute, $value, $fail) {
|
||||
$groupId = $this->input('group_id');
|
||||
$exists = SysSiteConfigItemsModel::query()
|
||||
->where('group_id', $groupId)
|
||||
->where('key', $value)
|
||||
->exists();
|
||||
if ($exists) {
|
||||
$fail('该键名在此分组中已存在');
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return $rules;
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'title.required' => '标题字段是必填的',
|
||||
'title.string' => '标题字段必须是字符串',
|
||||
'key.required' => '键名字段是必填的',
|
||||
'key.string' => '键名字段必填是字符串',
|
||||
'key.min' => '键名至少需要 :min 个字符',
|
||||
'key.max' => '键名不能超过 :max 个字符',
|
||||
'group_id.required' => '分组ID是必填的',
|
||||
'group_id.exists' => '选择的分组不存在',
|
||||
'type.required' => '类型字段是必填的',
|
||||
'describe.string' => '描述必须是字符串',
|
||||
'options.regex' => '选项格式不正确,应为 key=value 格式,多个用换行分隔',
|
||||
'props.regex' => '属性格式不正确,应为 key=value 格式,多个用换行分隔',
|
||||
'sort.integer' => '排序必须是整数',
|
||||
'values.string' => '值必须是字符串',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user