From 09d4686437b34df6e2014acb785a0fc14a4ce285 Mon Sep 17 00:00:00 2001 From: walkor Date: Tue, 16 May 2023 15:54:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E7=BD=AElay-verify=E4=B9=9F=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E4=BC=A0=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugin/admin/app/common/Layui.php | 14 ++++++++++---- .../admin/app/controller/TableController.php | 18 ++++++++++++++++++ src/plugin/admin/app/view/table/insert.html | 11 +++++++++++ src/plugin/admin/app/view/table/update.html | 9 +++++++++ src/plugin/admin/app/view/table/view.html | 2 +- 5 files changed, 49 insertions(+), 5 deletions(-) diff --git a/src/plugin/admin/app/common/Layui.php b/src/plugin/admin/app/common/Layui.php index 0cfc90e..582a330 100644 --- a/src/plugin/admin/app/common/Layui.php +++ b/src/plugin/admin/app/common/Layui.php @@ -808,15 +808,21 @@ EOF; $props = Util::getControlProps($control, $info['control_args']); // 增加修改记录验证必填项 - if ($filter == 'form_show' && !isset($props['lay-verify']) && !$columns[$key]['nullable'] && $default === null && ($field !== 'password' || $type === 'insert')) { - $props['lay-verify'] = 'required'; + if ($filter == 'form_show' && !$columns[$key]['nullable'] && $default === null && ($field !== 'password' || $type === 'insert')) { + if (!isset($props['lay-verify'])) { + $props['lay-verify'] = 'required'; + // 非类似字符串类型不允许传空 + } elseif (!in_array($columns[$key]['type'], ['string', 'text', 'mediumText', 'longText', 'char', 'binary', 'json']) + && strpos($props['lay-verify'], 'required') === false) { + $props['lay-verify'] = 'required|' . $props['lay-verify']; + } } // 增加记录显示默认值 if ($type === 'insert' && !isset($props['value']) && $default !== null) { $props['value'] = $default; } - // 表单不显示主键 - if ($filter == 'form_show' && $primary_key && $field == $primary_key && $auto_increment) { + // 主键是自增字段或者表单是更新类型不显示主键 + if ($primary_key && $field == $primary_key && (($type == 'insert' && $auto_increment) || $type == 'update')) { continue; } // 查询类型 diff --git a/src/plugin/admin/app/controller/TableController.php b/src/plugin/admin/app/controller/TableController.php index 84aa0d7..0c0b155 100644 --- a/src/plugin/admin/app/controller/TableController.php +++ b/src/plugin/admin/app/controller/TableController.php @@ -1020,6 +1020,15 @@ EOF; $js //提交事件 layui.use(["form", "popup"], function () { + // 字段验证允许为空 + layui.form.verify({ + phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"], + email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"], + url: [/(^$)|(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, "链接格式不正确"], + number: [/(^$)|^\d+$/,'只能填写数字'], + date: [/(^$)|^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, "日期格式不正确"], + identity: [/(^$)|(^\d{15}$)|(^\d{17}(x|X|\d)$)/, "请输入正确的身份证号"] + }); layui.form.on("submit(save)", function (data) { layui.$.ajax({ url: INSERT_API, @@ -1130,6 +1139,15 @@ EOF; //提交事件 layui.use(["form", "popup"], function () { + // 字段验证允许为空 + layui.form.verify({ + phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"], + email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"], + url: [/(^$)|(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, "链接格式不正确"], + number: [/(^$)|^\d+$/,'只能填写数字'], + date: [/(^$)|^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, "日期格式不正确"], + identity: [/(^$)|(^\d{15}$)|(^\d{17}(x|X|\d)$)/, "请输入正确的身份证号"] + }); layui.form.on("submit(save)", function (data) { data.field[PRIMARY_KEY] = layui.url().search[PRIMARY_KEY]; layui.$.ajax({ diff --git a/src/plugin/admin/app/view/table/insert.html b/src/plugin/admin/app/view/table/insert.html index 1ed065b..16eb27b 100644 --- a/src/plugin/admin/app/view/table/insert.html +++ b/src/plugin/admin/app/view/table/insert.html @@ -40,6 +40,17 @@ js(3)?> layui.use(["form", "popup"], function () { + + // 字段验证允许为空 + layui.form.verify({ + phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"], + email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"], + url: [/(^$)|(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, "链接格式不正确"], + number: [/(^$)|^\d+$/,'只能填写数字'], + date: [/(^$)|^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, "日期格式不正确"], + identity: [/(^$)|(^\d{15}$)|(^\d{17}(x|X|\d)$)/, "请输入正确的身份证号"] + }); + //提交事件 layui.form.on("submit(save)", function (data) { layui.$.ajax({ diff --git a/src/plugin/admin/app/view/table/update.html b/src/plugin/admin/app/view/table/update.html index e638907..bc40505 100644 --- a/src/plugin/admin/app/view/table/update.html +++ b/src/plugin/admin/app/view/table/update.html @@ -76,6 +76,15 @@ }); layui.use(["form", "popup"], function () { + // 字段验证允许为空 + layui.form.verify({ + phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"], + email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"], + url: [/(^$)|(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, "链接格式不正确"], + number: [/(^$)|^\d+$/,'只能填写数字'], + date: [/(^$)|^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, "日期格式不正确"], + identity: [/(^$)|(^\d{15}$)|(^\d{17}(x|X|\d)$)/, "请输入正确的身份证号"] + }); //提交事件 layui.form.on("submit(save)", function (data) { layui.$.ajax({ diff --git a/src/plugin/admin/app/view/table/view.html b/src/plugin/admin/app/view/table/view.html index 8ed3d24..0216a86 100644 --- a/src/plugin/admin/app/view/table/view.html +++ b/src/plugin/admin/app/view/table/view.html @@ -237,7 +237,7 @@ } }); - // 字段允许为空 + // 字段验证允许为空 form.verify({ phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"], email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"],