From 9adebb75e04e8b0b369ebd318495cb683aa385b8 Mon Sep 17 00:00:00 2001 From: zhaoxiaohao <279049017@qq.com> Date: Mon, 26 Apr 2021 09:30:24 +0800 Subject: [PATCH] 添加手机号199的验证 --- kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html | 380 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 238 insertions(+), 142 deletions(-) diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html index 044de0d..b9f741d 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html @@ -1,4 +1,4 @@ -<form id="app-form-add" lay-filter="app-form-add" class="layui-form model-form"> +<form id="app-form-add" lay-filter="app-form-add" autocomplete="off" class="layui-form model-form"> <input name="id" type="hidden" /> <div style="display:flex"> <div class="layui-form-item"> @@ -6,7 +6,7 @@ <label class="layui-form-label" style="width: 75px;">所在医院</label> <div class="layui-input-block" style="width: 150px;"> <input name="hospitalName" id="hospitalName" placeholder="请输入医院名称" type="text" class="layui-input" - maxlength="50" lay-verify="required" required style="width: 150px;" /> + maxlength="50" lay-verify="required" required style="width: 150px;" /> <input type="hidden" name="hospitalId" id="hospitalId" /> <input type="hidden" name="id" id="id" /> </div> @@ -15,9 +15,9 @@ <label class="layui-form-label">科室</label> <div class="layui-input-block" style="width: 150px;"> <input name="departmentName" id="departmentName" placeholder="请选择科室" type="hidden" - class="layui-input" maxlength="20" /> + class="layui-input" maxlength="20" /> <select id="departmentId" name="departmentId" lay-filter="departmentId" placeholder="请选择科室" - lay-verify="required" required> + lay-verify="required" required> <option value="">-请选择科室-</option> </select> </div> @@ -40,24 +40,24 @@ <label class="layui-form-label">姓名</label> <div class="layui-input-block" style="width: 150px;"> <input name="doctorName" type="text" class="layui-input" maxlength="20" lay-verify="required" - required style="width: 150px;" /> + required style="width: 150px;" /> </div> </div> <div class="layui-inline"> <label class="layui-form-label">职称</label> <div class="layui-input-block" style="width: 150px;"> <select id="doctorRankId" name="doctorRankId" lay-filter="doctorRankId" placeholder="选择一个职称" - lay-verify="required" required> + lay-verify="required" required> <option value="">-请选择-</option> </select> <input name="doctorRank" id='doctorRank' type="hidden" class="layui-input" maxlength="20" /> </div> </div> <div class="layui-inline"> - <label class="layui-form-label">角色</label> + <label class="layui-form-label">Email</label> <div class="layui-input-block" style="width: 150px;"> - <select name="roleId" xm-select="roleId" lay-verify="required"> - </select> + <input name="doctorEmail" type="text" class="layui-input" maxlength="50" lay-verify="v_email" + autocomplete="off" /> </div> </div> </div> @@ -68,7 +68,7 @@ <label class="layui-form-label">联系电话</label> <div class="layui-input-block" style="width: 150px;"> <input name="doctorTel" id="doctorTel-add" type="text" class="layui-input" maxlength="20" - lay-verify="required|phone" required style="width: 150px;" /> + lay-verify="required|phone" required style="width: 150px;" /> </div> </div> <div class="layui-inline"> @@ -77,11 +77,11 @@ <input name="doctorOtherLink" type="text" class="layui-input" maxlength="20" /> </div> </div> - <div class="layui-inline"> - <label class="layui-form-label">Email</label> + <div class="layui-inline" id="roleId_div"> + <label class="layui-form-label">角色</label> <div class="layui-input-block" style="width: 150px;"> - <input name="doctorEmail" type="text" class="layui-input" maxlength="20" lay-verify="required|email" - required /> + <select name="roleId" xm-select="roleId"> + </select> </div> </div> </div> @@ -89,9 +89,9 @@ <div style="display:flex"> <div class="layui-form-item"> <label class="layui-form-label">医生简介</label> - <div class="layui-input-block"> + <div class="layui-input-block" > <textarea name="doctorAbout" id="doctorAbout" class="layui-textarea" maxlength="300" - style="width: 650px;"></textarea> + style="width: 697px;"></textarea> </div> </div> </div> @@ -100,9 +100,9 @@ <label class="layui-form-label">医生状态</label> <div class="layui-input-block"> <input name="doctorState" id="doctorState-shi" type="radio" checked value="true" title="正常" - class="layui-input" /> + class="layui-input" /> <input name="doctorState" id="doctorState-fou" type="radio" value="false" title="试用" - class="layui-input" /> + class="layui-input" /> </div> </div> <div class="layui-form-item"> @@ -116,7 +116,7 @@ <label class="layui-form-label">医答</label> <div class="layui-input-block"> <input name="isAnswer" id="isAnswer-shi" type="radio" checked value="true" title="是" - class="layui-input" /> + class="layui-input" /> <input name="isAnswer" id="isAnswer-fou" type="radio" value="false" title="否" class="layui-input" /> </div> </div> @@ -124,38 +124,35 @@ <label class="layui-form-label">签约</label> <div class="layui-input-block"> <input name="isSigning" id="isSigning-shi" type="radio" checked value="true" title="是" - class="layui-input" /> + class="layui-input" /> <input name="isSigning" id="isSigning-fou" type="radio" value="false" title="否" class="layui-input" /> </div> </div> </div> - <div style="display:flex"> + <div style="display:flex" class="account"> <div class="layui-form-item"> <div class="layui-inline"> <label class="layui-form-label">登录帐号</label> <div class="layui-input-block" style="width: 150px;"> - <input name="username" id="username" readonly type="text" class="layui-input" maxlength="20" - lay-verify="required" required /> + <input name="username" id="username" readonly type="text" class="layui-input" maxlength="20" /> </div> </div> <div class="layui-inline" id="password_div"> <label class="layui-form-label">登录密码</label> <div class="layui-input-block" style="width: 150px;"> - <input name="password" type="password" id="password" class="layui-input" maxlength="20" - lay-verify="required|phone" required /> - </div> - </div> + <input name="password" type="password" id="password" class="layui-input" maxlength="20" /> + </div> + </div> <div class="layui-inline" id="passwordSure_div"> <label class="layui-form-label">确认密码</label> <div class="layui-input-block" style="width: 150px;"> - <input name="passwordSure" type="password" id="passwordSure" lay-verify="required|confirmPass" class="layui-input" - maxlength="20" /> + <input name="passwordSure" type="password" id="passwordSure" class="layui-input" maxlength="20" /> </div> </div> <!-- </div> <div class="layui-form-item"> - + </div> <div class="layui-form-item"> --> @@ -180,14 +177,14 @@ <label class="layui-form-label">销售代表</label> <div class="layui-input-block" style="width: 150px;"> <input name="serverUserName" id="serverUserName-add" type="hidden" class="layui-input" - maxlength="15" /> + maxlength="15" /> <select id="serverUserId-add" name="serverUserId" lay-filter="serverUserId-add" - lay-verify="required" required> + lay-verify="required" required> <option value="">-请选择-</option> </select> </div> </div> - <!-- + <!-- </div> <div class="layui-form-item"> --> @@ -198,7 +195,7 @@ <div class="layui-form-item model-form-footer"> <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> <button class="layui-btn permissions" permissions="sysdoctor-edit" id="sure" lay-filter="user-form-submit" - lay-submit>保存</button> + lay-submit>保存</button> </div> </form> @@ -214,10 +211,20 @@ var formSelects = layui.formSelects; var $ = layui.jquery; - - + //验证邮箱 + admin.v_email = function(value, item){ + var exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; + if(value && !exp.test(value) ){ + return '邮箱格式不正确'; + } + } + form.verify({ + v_email:admin.v_email, + }) + //医生管理员 + var guanliyuan_role = undefined; //获取角色 - var get_role = function () { + var get_role = function (flag) { admin.req('api-user/findByMap?tenant_id=hospital', {}, function (data) { layer.closeAll('loading'); if (0 == data.code) { @@ -229,29 +236,32 @@ value: data.data[i].id }); } + guanliyuan_role = data.data[0].id; formSelects.data('roleId', 'local', { arr: roleSelectData }); - // 回显user数据 - var user = admin.getTempData('t_user'); - $('#user-form').attr('method', 'POST'); - if (user) { - form.val('user-form', user); - $('#user-form').attr('method', 'POST'); - var rds = new Array(); - for (var i = 0; i < user.roles.length; i++) { - rds.push(user.roles[i].id); - } - formSelects.value('roleId', rds); + if (doctor != null && doctor.roles) { + formSelects.value('roleId', doctor.roles); } + } else { layer.msg('获取角色失败', { icon: 2, - time: 500 + time: 2000 }); } }, 'GET'); + } + /* + * 验证手机号码 + */ + function validatorTel(content) { + + // 正则验证格式 + eval("var reg = /^1[345789]\\d{9}$/;"); + var flag = RegExp(reg).test(content) + return flag; } //判断用户名是否被使用 var username_is_usered = function (username_id) { @@ -262,99 +272,90 @@ if (data.code == 0) { if (data.data > 0) { $("#" + username_id).val("") - layer.msg("该登录帐号已经使用", { + layer.msg("该手机号已经使用", { icon: 2, - time: 500 + time: 2000 }) } } else { layer.msg(data.msg, { icon: 2, - time: 500 + time: 2000 }); } }, 'post'); } - // // 显示编辑弹窗 - // var showEditModel = function (data, flag) { - // var title = ""; - // if (flag == 1) { - // title = "查看详情"; - // } else if (flag == 2) { - // title = "新增"; - // } else if (flag == 3) { - // title = "编辑"; - // } - - // layer.open({ - // type: 1, - // title: title, - // area: '650px', - // offset: '120px', - // content: $('#app-model').html(), - // success: function () { - // $('#app-form')[0].reset(); - // $('#app-form').attr('method', 'POST'); - // //将医院的数据保存到下拉表 - // let selected = false; - // //将科室的数据绑定到里面 - // if (flag != 2) { - // getdepartment(data.hospitalId); - // } - // if (data) { - // if (data.isAnswer) { - // $("#isAnswer-shi").attr('checked', true); - // } else { - // $("#isAnswer-fou").attr('checked', true); - // } - - // if (data.isSigning) { - // $("#isSigning-shi").attr('checked', true); - // } else { - // $("#isSigning-fou").attr('checked', true); - // } - - // if (data.isTop) { - // $("#isTop-shi").attr('checked', true); - // } else { - // $("#isTop-fou").attr('checked', true); - // } - - // if (data.doctorState) { - // $("#doctorState-shi").attr('checked', true); - // } else { - // $("#doctorState-fou").attr('checked', true); - // } - // form.val('app-form', data); - // if (flag == 1) { - // //将确定隐藏 doctorState-shi - // $("#sure").hide(); - // $("#phonto").hide(); - // //将所有的设置为只读 - // $('#app-form').find('input').attr('readonly', true); - // $('#app-form').find('select,input[type="radio"]').attr('disabled', - // true); - // } else { - // $("#sure").show(); - // $('#app-form').attr('method', 'POST'); - // } - // } - // } - // }); - // }; // 表单提交事件 form.on('submit(user-form-submit)', function (data) { - layer.load(2); data.field.hospitalId = $("#hospitalId").val(); if (data.field.roleId != null && data.field.roleId != "") { data.field.roles = data.field.roleId.split(','); } - // data.field.hospitalId = ""+data.field.hospitalId; + if ($("#doctorType").val() == 2) { + //将关于密码的的去掉 + data.field.username = ""; + data.field.password = ""; + data.field.passwordSure = ""; + } else { + if (data.field.roles == null || data.field.roles.length == 0) { + layer.msg("请选择角色"); + return false; + } + if (data.field.roles.includes(guanliyuan_role)) { + data.field.isAdminUser = true; + } else { + data.field.isAdminUser = false; + } + var doctor = admin.getTempData('t_doctor'); + //判断只有输入密码的时候进行密码判断 + if (doctor != null) { + if (doctor.doctorType == 2 && doctorType != 2) { + if (data.field.username == null || data.field.username.trim() == "") { + layer.msg("请输入手机号"); + return false; + } + if (data.field.password == null || data.field.password.trim() == "") { + layer.msg("请输入登录密码"); + return false; + } + if (data.field.passwordSure == null || data.field.passwordSure.trim() == "") { + layer.msg("请输入确认密码"); + return false; + } else { + if (data.field.password != data.field.passwordSure) { + layer.msg("两次密码不一致,请重新输入"); + return false; + } + } + } + } else { + if (data.field.username == null || data.field.username.trim() == "") { + layer.msg("请输入手机号"); + return false; + } + if (data.field.password == null || data.field.password.trim() == "") { + layer.msg("请输入登录密码"); + return false; + } + if (data.field.passwordSure == null || data.field.passwordSure.trim() == "") { + layer.msg("请输入确认密码"); + return false; + } else { + if (data.field.password != data.field.passwordSure) { + layer.msg("两次密码不一致,请重新输入"); + return false; + } + } + } + data.field.roles.forEach(element => { + element = "" + element + }); + } data.field.roleId = null; - debugger - console.log(data.field, "data.fielddata.fielddata.fielddata.field") + + layer.load(2); admin.req('api-user/sysdoctor', JSON.stringify(data.field), function (data) { layer.closeAll('loading'); if (data.code == 0) { @@ -407,7 +408,7 @@ } else { layer.msg(data.msg, { icon: 2, - time: 500 + time: 2000 }); } }, 'get'); @@ -415,7 +416,7 @@ //职称添加数据 var getZhiCheng = function () { admin.req('api-user/sysdictionaries/findAll', JSON.stringify({ - dictionariesClassId: "1248150699682988034" + dictionariesClassId: "DOCTOR_RANK" }), function (data) { layer.closeAll('loading'); if (0 === data.code) { @@ -434,26 +435,26 @@ } else { layer.msg(data.msg, { icon: 2, - time: 500 + time: 2000 }); } }, 'Post'); } //获取销售代表 - var getXiaoShouDaiBiao = function () { - admin.req('api-user/users/getThisUserOrganizationUser', {}, function (data) { + var getXiaoShouDaiBiao = function (selectVal) { + admin.req('api-user/users/getAppointUser', { type: 0 }, function (data) { layer.closeAll('loading'); if (0 === data.code) { user = data.data; $.each(data.data, function (index, item) { //往下拉菜单里添加元素 $('#serverUserId-add').append(new Option(item.nickname, item.id, - false, false)); + false, (!strUtil.isEmpty(selectVal) && selectVal == item.id))); }) } else { layer.msg(data.msg, { icon: 2, - time: 500 + time: 2000 }); } }, 'get'); @@ -465,13 +466,20 @@ $('.layui-layer-content').css('overflow', 'auto'); //将医院的数据保存到下拉表 let selected = false; + var selectVal=""; + //先拿到当前登录用户的信息 + var nowUser = config.getUser(); + if (!strUtil.isEmpty(nowUser)) { + selectVal = nowUser.id; + } //获取职称的 getZhiCheng(); //获取销售代表 - getXiaoShouDaiBiao(); + getXiaoShouDaiBiao(selectVal); //获取角色 get_role(); var upload = layui.upload; + $("#roleId_div").hide() //执行实例 upload.render({ elem: '#phonto', @@ -499,16 +507,47 @@ layer.closeAll('loading'); } }); + //将密码隐藏 + $(".account").hide(); + //将密码置空 + $("#password").val(""); form.render(); - $("#username").blur(function () { - username_is_usered("username"); - }) - $("#doctorTel-add").blur(function () { - $("#username").val($("#doctorTel-add").val()) - username_is_usered("username"); - }) + //医生类型的选择事件 + // form.on('select(doctorType)', function (data) { + // // console.log("eeeeeeeeeeeeeeeee"); + // // var doctor = admin.getTempData('t_doctor'); + // // debugger + // // console.log("doctordoctordoctordoctordoctor",doctor); + // var doctorType = $('#doctorType').val(); + // //将密码项取消 + // if (doctorType == 2) { + // $(".account").hide(); + // } else { + // $(".account").show(); + // } + // }) }; + $("#username").blur(function () { + if (!validatorTel(doctorTel_add)) { + layer.msg("请输入正确的手机号"); + } else { + username_is_usered("username"); + } + }) + $("#doctorTel-add").blur(function () { + $("#username").val($("#doctorTel-add").val()) + var doctorTel_add = $("#doctorTel-add").val(); + if (!validatorTel(doctorTel_add)) { + layer.msg("请输入正确的手机号"); + //将手机号还原 + $("#doctorTel-add").val("") + $("#username").val("") + + } else { + username_is_usered("username"); + } + }) //自动完成-医院名称 autocomplete.render({ elem: $('#hospitalName')[0], @@ -523,11 +562,48 @@ getdepartment(resp.id); } }); + //医生类型的选择事件 + form.on('select(doctorType)', function (data) { + var doctor = admin.getTempData('t_doctor'); + var doctorType = $('#doctorType').val(); + if (doctor == null) { + if (doctorType != 2) { + $(".account").show(); + $("#password_div").show(); + $("#passwordSure_div").show(); + $("#roleId_div").show() + } else { + $(".account").hide(); + $("#roleId_div").hide() + } + } else { + if (doctor.doctorType == 2 && doctorType == 2) { + $(".account").hide(); + $("#roleId_div").hide() + } else if (doctor.doctorType == 2 && doctorType != 2) { + $(".account").show(); + $("#password_div").show(); + $("#passwordSure_div").show(); + $("#roleId_div").show() + if (doctor.username == null) { + $("#username").val(doctor.doctorTel); + form.render(); + } + } else if (doctor.doctorType != 2 && doctorType != 2) { + $(".account").show(); + $("#password_div").hide(); + $("#passwordSure_div").hide(); + $("#roleId_div").show() + } else if (doctor.doctorType != 2 && doctorType == 2) { + $(".account").hide(); + $("#roleId_div").hide() + } + } + }) //数据的回显 var doctor = admin.getTempData('t_doctor'); $('#app-form-add').attr('method', 'POST'); if (doctor) { - console.log("doctordoctordoctor",doctor); //重新装载科室 getdepartment(doctor.hospitalId); //获取职称的 @@ -535,17 +611,37 @@ //获取销售代表 getXiaoShouDaiBiao(); //获取角色 - get_role(); + get_role(doctor.isAdminUser); form.val('app-form-add', doctor); $("#hospitalId").val(doctor.hospitalId); $("#password_div").hide(); $("#passwordSure_div").hide(); + // $("#doctorTel-add").prop("disabled",true) + $("#doctorTel-add").unbind("blur") + //将密码项取消 + if (doctor.doctorType == 2) { + $(".account").hide(); + $("#roleId_div").hide() + } else { + $(".account").show(); + $("#roleId_div").show() + } $('#demo2').append('<img src="' + doctor.doctorLogo + - '" width="50px" height="50px" alt="' + "name" + - '" class="layui-upload-img">') + '" width="50px" height="50px" alt="' + "name" + + '" class="layui-upload-img">') $("#password").removeAttr("lay-verify") $("#password").removeAttr("required") $("#passwordSure").removeAttr("lay-verify") + + $("#doctorState-shi").attr("checked", doctor.doctorState? true : false); + $("#doctorState-fou").attr("checked", !doctor.doctorState ? true : false); + $("#isTop-shi").attr("checked", doctor.isTop? true : false); + $("#isTop-fou").attr("checked", !doctor.isTop ? true : false); + $("#isAnswer-shi").attr("checked", doctor.isAnswer? true : false); + $("#isAnswer-fou").attr("checked", !doctor.isAnswer ? true : false); + + $("#isSigning-shi").attr("checked", doctor.isSigning? true : false); + $("#isSigning-fou").attr("checked", !doctor.isSigning ? true : false); form.render(); } else { loadEditData(); -- Gitblit v1.8.0