Xia Kaixiang | e97f6de | 2019-04-28 15:00:14 +0800 | [diff] [blame] | 1 | <!-- operator表单弹窗 --> |
| 2 | <form id="oper-form" lay-filter="oper-form" class="layui-form model-form"> |
| 3 | <input name="operid" id="operid" type="hidden"/> |
| 4 | <div class="layui-form-item"> |
| 5 | <label class="layui-form-label">账号</label> |
| 6 | <div class="layui-input-block"> |
| 7 | <input name="opercode" placeholder="请输入账号" type="text" class="layui-input" maxlength="20" |
| 8 | lay-verify="required|opercode" required/> |
| 9 | </div> |
| 10 | </div> |
| 11 | <div class="layui-form-item"> |
| 12 | <label class="layui-form-label">用户名</label> |
| 13 | <div class="layui-input-block"> |
| 14 | <input name="opername" placeholder="请输入用户名" type="text" class="layui-input" maxlength="60" |
| 15 | lay-verify="required" required/> |
| 16 | </div> |
| 17 | </div> |
| 18 | <div class="layui-form-item"> |
| 19 | <label class="layui-form-label">性别</label> |
| 20 | <div class="layui-input-block"> |
| 21 | <input type="radio" name="sex" value="male" title="男" checked/> |
| 22 | <input type="radio" name="sex" value="female" title="女"/> |
| 23 | </div> |
| 24 | </div> |
| 25 | <div class="layui-form-item"> |
| 26 | <label class="layui-form-label">手机号</label> |
| 27 | <div class="layui-input-block"> |
qiaowei | 77e1bec | 2019-05-07 18:05:39 +0800 | [diff] [blame] | 28 | <input name="mobile" placeholder="请输入手机号" type="text" class="layui-input" lay-verify="mobile" /> |
Xia Kaixiang | e97f6de | 2019-04-28 15:00:14 +0800 | [diff] [blame] | 29 | </div> |
| 30 | </div> |
| 31 | <div class="layui-form-item"> |
| 32 | <label class="layui-form-label">邮箱</label> |
| 33 | <div class="layui-input-block"> |
qiaowei | 77e1bec | 2019-05-07 18:05:39 +0800 | [diff] [blame] | 34 | <input name="email" placeholder="请输入邮箱" type="text" class="layui-input" lay-verify="swEmail" /> |
Xia Kaixiang | e97f6de | 2019-04-28 15:00:14 +0800 | [diff] [blame] | 35 | </div> |
| 36 | </div> |
| 37 | |
| 38 | <div class="layui-form-item"> |
| 39 | <label class="layui-form-label">角色</label> |
| 40 | <div class="layui-input-block"> |
| 41 | <select name="roleId" xm-select="roleId" lay-verify="required"> |
| 42 | <option th:each="role : ${roles}" th:value="${role.roleId}">[[${role.roleName}]]</option> |
| 43 | </select> |
| 44 | </div> |
| 45 | </div> |
| 46 | |
| 47 | <div class="layui-form-item model-form-footer"> |
| 48 | <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button> |
qiaowei | 00edf01 | 2019-04-29 09:35:04 +0800 | [diff] [blame] | 49 | <button class="layui-btn" lay-filter="oper-form-submit" lay-submit id="submitbtn">保存</button> |
Xia Kaixiang | e97f6de | 2019-04-28 15:00:14 +0800 | [diff] [blame] | 50 | </div> |
| 51 | </form> |
| 52 | |
| 53 | |
| 54 | <script> |
| 55 | layui.use(['layer', 'admin', 'form', 'formSelects'], function () { |
| 56 | var layer = layui.layer; |
| 57 | var admin = layui.admin; |
| 58 | var form = layui.form; |
| 59 | var formSelects = layui.formSelects; |
| 60 | |
| 61 | form.render('radio'); |
| 62 | form.verify({ |
| 63 | "mobile": function (e) { |
| 64 | if (null != e && e.length > 0 && !(/^1\d{10}$/.test(e))) { |
| 65 | return "请输入正确的手机号"; |
| 66 | } |
| 67 | }, |
| 68 | "swEmail": function (e) { |
| 69 | if (null != e && e.length > 0 && !(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(e))) { |
| 70 | return "邮箱格式不正确"; |
| 71 | } |
| 72 | }, |
| 73 | "opercode": function (e) { |
| 74 | if(null!=e && e.length>0 && !(/^[0-9a-zA-Z]*$/.test(e))){ |
| 75 | return "账号非法,请填入字母、数字或它们的组合"; |
| 76 | } |
| 77 | |
| 78 | var msg = ""; |
| 79 | $.ajax({ |
| 80 | type: "GET", |
| 81 | url: '/operator/checkopercode', |
| 82 | async: false, //同步提交。不设置则默认异步,异步的话,最后执行ajax |
| 83 | data: { |
| 84 | opercode: e, |
| 85 | operid: $("#operid").val() |
| 86 | }, |
| 87 | success: function (result) { |
| 88 | if (result.code != 200) { |
| 89 | msg = result.msg; |
| 90 | } |
| 91 | }, |
| 92 | error: function (error) { |
| 93 | msg = "请求服务器校验账号失败"; |
| 94 | } |
| 95 | }); |
| 96 | if (msg != "") { |
| 97 | return msg; |
| 98 | } |
| 99 | } |
| 100 | }); |
| 101 | |
| 102 | var url = '/operator/add'; |
| 103 | // 回显user数据 |
| 104 | var user = admin.getTempData('t_user'); |
| 105 | if (user) { |
| 106 | $('input[name="opercode"]').attr('readonly', 'readonly'); |
Xia Kaixiang | e97f6de | 2019-04-28 15:00:14 +0800 | [diff] [blame] | 107 | form.val('oper-form', user); |
| 108 | var rds = new Array(); |
| 109 | for (var i = 0; i < user.roles.length; i++) { |
| 110 | rds.push(user.roles[i].roleId); |
| 111 | } |
| 112 | formSelects.value('roleId', rds); |
| 113 | } |
Xia Kaixiang | e97f6de | 2019-04-28 15:00:14 +0800 | [diff] [blame] | 114 | // 表单提交事件 |
| 115 | form.on('submit(oper-form-submit)', function (data) { |
| 116 | layer.load(2); |
qiaowei | 00edf01 | 2019-04-29 09:35:04 +0800 | [diff] [blame] | 117 | var token_name = $("meta[name='_csrf_token']").attr("content"); |
| 118 | var token = $("meta[name='_csrf_token']").attr("value"); |
| 119 | data.field[token_name] = token; |
Xia Kaixiang | e97f6de | 2019-04-28 15:00:14 +0800 | [diff] [blame] | 120 | $.ajax({ |
| 121 | type : "POST", |
| 122 | dataType : "json", |
| 123 | url : url, |
| 124 | data : data.field, |
| 125 | success : function(result) { |
| 126 | layer.closeAll('loading'); |
qiaowei | 77e1bec | 2019-05-07 18:05:39 +0800 | [diff] [blame] | 127 | if (result.code == 200) { |
| 128 | layer.msg(result.msg, {icon: 1}); |
Xia Kaixiang | e97f6de | 2019-04-28 15:00:14 +0800 | [diff] [blame] | 129 | admin.finishPopupCenter(); |
| 130 | } else if (data.code == 401) { |
qiaowei | 77e1bec | 2019-05-07 18:05:39 +0800 | [diff] [blame] | 131 | layer.msg(result.msg, {icon: 2, time: 1500}, function () { |
Xia Kaixiang | e97f6de | 2019-04-28 15:00:14 +0800 | [diff] [blame] | 132 | location.replace('/login'); |
| 133 | }, 1000); |
| 134 | return; |
| 135 | } else { |
qiaowei | 77e1bec | 2019-05-07 18:05:39 +0800 | [diff] [blame] | 136 | console.log('err:' + result.code); |
| 137 | layer.msg(result.msg, {icon: 2}); |
Xia Kaixiang | e97f6de | 2019-04-28 15:00:14 +0800 | [diff] [blame] | 138 | } |
| 139 | }, |
| 140 | error : function(data) { |
| 141 | layer.closeAll('loading'); |
| 142 | layer.msg("请求服务器失败!", {icon: 2}); |
| 143 | } |
| 144 | }); |
| 145 | return false; |
| 146 | }); |
| 147 | }); |
| 148 | </script> |