addFirmUser.html 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>新增企业管理用户</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  9. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  10. <meta name="apple-mobile-web-app-capable" content="yes">
  11. <meta name="format-detection" content="telephone=no">
  12. <link rel="stylesheet" type="text/css" href="../../layui/css/layui.css" />
  13. <link rel="stylesheet" type="text/css" href="../../css/common.css" />
  14. <style type="text/css">
  15. .ui-required:before {
  16. content: "*";
  17. color: red;
  18. vertical-align: middle;
  19. }
  20. #roleSelectViwe .layui-form-item {
  21. margin-bottom: 0
  22. }
  23. #roleSelectViwe .layui-input-inline {
  24. width: calc(100% - 110px);
  25. margin-right: 0;
  26. }
  27. .region {
  28. padding-left: 10px;
  29. height: 38px;
  30. line-height: 38px;
  31. background-color: #fff;
  32. border-radius: 2px;
  33. border: 1px solid #e6e6e6;
  34. width: 100% !important;
  35. width: calc(100% - 132px) !important;
  36. }
  37. .userTip {
  38. color: #666;
  39. font-size: 12px;
  40. }
  41. .userTip b {
  42. color: #333;
  43. }
  44. </style>
  45. <script type="text/html" id="typeHtmlTpl">
  46. <option value="">请选择</option>
  47. {{# if(!d.list){d.list = []}; layui.each(d.list, function(index, item){ }}
  48. <option value="{{item.guid}}">{{item.roleName}}</option>
  49. {{# }); }}
  50. </script>
  51. </head>
  52. <body>
  53. <form class="layui-form" action="" lay-filter="addForm" style="padding: 20px 20px 0 0">
  54. <div class="layui-form-item">
  55. <label class="layui-form-label">企业名称</label>
  56. <div class="layui-input-block">
  57. <input type="hidden" name="fkOrgGuid">
  58. <input type="text" name="orgName" class="layui-input layui-disabled" disabled="disabled">
  59. </div>
  60. </div>
  61. <div class="layui-form-item">
  62. <label class="layui-form-label ui-required">账号</label>
  63. <div class="layui-input-block">
  64. <input type="text" name="account" maxlength="32" lay-verify="required|nickname" placeholder="请输入账号"
  65. autocomplete="off" class="layui-input">
  66. </div>
  67. </div>
  68. <div class="layui-form-item">
  69. <label class="layui-form-label ui-required">角色</label>
  70. <div class="layui-input-block">
  71. <select name="roleId" lay-verify="required" lay-filter="roles" id="rolesView"></select>
  72. </div>
  73. </div>
  74. <div class="layui-form-item">
  75. <div class="layui-inline" id="nameBox">
  76. <label class="layui-form-label">姓名</label>
  77. <div class="layui-input-inline" style="width: 300px;">
  78. <input type="text" name="userName" maxlength="10" placeholder="请输入姓名" autocomplete="off" class="layui-input">
  79. </div>
  80. </div>
  81. <div class="layui-inline">
  82. <label class="layui-form-label">手机号码</label>
  83. <div class="layui-input-block">
  84. <input type="text" name="mobileNo" lay-verify="phoneNumber" placeholder="请输入手机号码" maxLength="11"
  85. autocomplete="off" class="layui-input">
  86. </div>
  87. </div>
  88. </div>
  89. <div class="layui-form-item" id="whetherPassword">
  90. <label class="layui-form-label ui-required">登录密码</label>
  91. <div class="layui-input-block">
  92. <input type="password" id="L_pass" name="passwd" maxlength="32" lay-verify="password" placeholder="请输入密码"
  93. autocomplete="off" class="layui-input">
  94. </div>
  95. </div>
  96. <div class="layui-form-item" id="whetherPassword1">
  97. <label class="layui-form-label ui-required">确认密码</label>
  98. <div class="layui-input-block">
  99. <input type="password" lay-verify="resspaword" maxlength="32" placeholder="请再次输入密码" autocomplete="off"
  100. class="layui-input">
  101. </div>
  102. </div>
  103. <div class="layui-form-item layui-layer-btn">
  104. <div class="layui-input-block">
  105. <button type="reset" class="layui-btn layui-btn-primary" id="closeWin">取消</button>
  106. <button class="layui-btn" lay-submit lay-filter="formDemo">保存</button>
  107. </div>
  108. </div>
  109. </form>
  110. <script type="text/javascript">
  111. function loadJS(url) {
  112. document.write("<script src='" + url + "?ver=" + new Date().getTime() + "'><\/script>")
  113. }
  114. loadJS("../../layui/layui.js");
  115. loadJS("../../js/ajaxhook.min.js");
  116. loadJS("../../js/config.js");
  117. </script>
  118. <script type="text/javascript">
  119. layui.config({
  120. base: "../../js/layuiPlugins/"
  121. }).use(["form", 'layer', 'laytpl', 'jquery'], function () {
  122. var form = layui.form,
  123. layer = layui.layer,
  124. laytpl = layui.laytpl,
  125. $ = layui.jquery;
  126. var funcName = "user";
  127. form.val('addForm', location.searchObj());
  128. var formData = {
  129. guid: (JSON.stringify(location.searchObj()) != "{}") ? location.searchObj().guid || null : null, //带参传入ID
  130. roleTableDataId: "roleDataList", //数据ID
  131. current: {}, //当前表单数据
  132. roleListPort: "roleList", //角色数据接口
  133. select_data: "select_" + funcName, //查询用户
  134. save_data: 'add_org_user', //保存用户
  135. roleSelectView: "#rolesView", //角色列表下拉容器
  136. formLayFilter: "addForm", //表单容器
  137. closeModal: function () { //关闭当前窗口
  138. parent.layer.close(parent.layer.getFrameIndex(window.name));
  139. }
  140. };
  141. //类型下拉列表模板
  142. function typeTpl(obj) {
  143. laytpl(typeHtmlTpl.innerHTML).render(obj, function (html) {
  144. $(obj.elem).html(html);
  145. form.render();
  146. });
  147. }
  148. //初始化
  149. formData.main = function () {
  150. var _this = this;
  151. if (this.guid) {
  152. _this.getCurrent(_this.guid); //获取并初始化表单角色信息
  153. } else {
  154. _this.initialization();
  155. }
  156. if (location.searchObj().event == "view") {
  157. var el = document.getElementsByTagName("INPUT");
  158. for (var i = 0; i < el.length; i++) {
  159. el[i].readOnly = true;
  160. }
  161. el = document.getElementsByTagName("SELECT");
  162. for (var i = 0; i < el.length; i++) {
  163. el[i].disabled = true;
  164. }
  165. el = document.getElementsByTagName("checkbox");
  166. for (var i = 0; i < el.length; i++) {
  167. el[i].disabled = true;
  168. }
  169. el = document.getElementsByTagName("button");
  170. for (var i = 0; i < el.length; i++) {
  171. if (el[i].innerText.replace(" ", "") == "保存") {
  172. el[i].style.display = "none";
  173. }
  174. }
  175. }
  176. return this;
  177. };
  178. //初始化
  179. formData.initialization = function () {
  180. var _this = this;
  181. //初始化地区
  182. //初始化角色权限下拉
  183. $.ajax({
  184. url: this.roleListPort,
  185. method: 'post',
  186. contentType: "application/json",
  187. data: JSON.stringify({}),
  188. success: function (res) {
  189. typeTpl({
  190. elem: "#rolesView",
  191. list: res.data
  192. });
  193. form.val(_this.formLayFilter, _this.current);
  194. }
  195. });
  196. //监听提交
  197. form.on('submit(formDemo)', function (obj) {
  198. //必须return false;
  199. return _this.fusionData(obj.field).submitInfo(); //获取选中权限变数组,提交变化===下拉
  200. });
  201. //关闭窗口
  202. $("#closeWin").on("click", function () {
  203. _this.closeModal();
  204. });
  205. return _this;
  206. };
  207. //获取当前信息
  208. formData.getCurrent = function (id) {
  209. var _this = this;
  210. $.ajax({
  211. url: this.select_data,
  212. method: 'get',
  213. data: {
  214. guid: id || this.guid //当前ID
  215. },
  216. success: function (res) {
  217. _this.current = res.data[0];
  218. _this.initialization().formVal();
  219. }
  220. });
  221. return _this;
  222. };
  223. //表单赋值
  224. formData.formVal = function () {
  225. var _this = this;
  226. form.val(this.formLayFilter, this.current);
  227. return this;
  228. };
  229. //合并表单内容
  230. formData.fusionData = function (obj) {
  231. this.current = $.extend(this.current, obj);
  232. if (this.current.guid) {
  233. delete this.current.password;
  234. }
  235. return this;
  236. };
  237. //提交新增修改
  238. formData.submitInfo = function () {
  239. var _this = this;
  240. $.ajax({
  241. type: 'POST',
  242. url: this.save_data,
  243. data: JSON.stringify(this.current),
  244. contentType: 'application/json',
  245. success: function (res) {
  246. if (!(res.code - 0)) {
  247. parent.layer.msg(res.msg, {
  248. icon: 1
  249. });
  250. _this.closeModal();
  251. } else {
  252. layer.msg(res.msg, {
  253. icon: 2
  254. });
  255. }
  256. }
  257. });
  258. return false;
  259. };
  260. formData.main();
  261. //验证规则
  262. form.verify({
  263. nickname: function (value) {
  264. if (!new RegExp("^[a-zA-Z][a-zA-Z0-9_]*$").test(value)) {
  265. return '账号必须以英文字母开头,只能包含英文字母、数字、下划线';
  266. }
  267. if (/(^\_)|(\__)|(\_+$)/.test(value)) {
  268. return '账号首尾不能出现下划线\'_\'';
  269. }
  270. },
  271. checkName: function (value) {
  272. },
  273. phoneNumber: function (value) {
  274. if (value) {
  275. if (!(/^1[3|4|5|7|8]\d{9}$/).test(value)) {
  276. return '请输入正确的手机号码';
  277. }
  278. }
  279. return false;
  280. },
  281. password: function (value) {
  282. if (location.searchObj().guid) {
  283. if (value) {
  284. if (!(/^[\S]{6,12}$/).test(value)) {
  285. return '密码必须6到12位,且不能出现空格';
  286. }
  287. }
  288. return false;
  289. }
  290. if (!(/^[\S]{6,12}$/).test(value)) {
  291. return '密码必须6到12位,且不能出现空格';
  292. }
  293. },
  294. resspaword: function (value) {
  295. var pass = $('#L_pass').val();
  296. if (value != pass) {
  297. return '两次密码不一致';
  298. }
  299. },
  300. ageLength: [
  301. /^[0-9]{0,2}$/,
  302. '年龄必须0到2位,且只能是数字'
  303. ],
  304. jobLength: [
  305. /^[a-z\A-Z\u4e00-\u9fa5_]{0,10}$/,
  306. '职务必须是0-10位,且不包含特殊字符与数字'
  307. ],
  308. workUnit: [
  309. /^[0-9\a-z\A-Z\u4e00-\u9fa5_]{0,25}$/,
  310. '工作单位必须是0-25位,且不包含特殊字符'
  311. ],
  312. vcode: [
  313. /^[\w]{4,5}$/,
  314. '验证码不符合规则'
  315. ]
  316. });
  317. });
  318. </script>
  319. </body>
  320. </html>