save.html 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <article class="cl pd-20">
  2. <form action="" method="post" class="form form-horizontal" id="form-save">
  3. <input type="hidden" name="userid" id="userid" value="{$data.userid}">
  4. <div class="row cl">
  5. <label class="form-label col-xs-4 col-sm-2">
  6. <span class="c-red">*</span>用户名:</label>
  7. <div class="formControls col-xs-8 col-sm-6">
  8. <input type="text" class="input-text" id="username" name="username" value="{$data.username}"
  9. autocomplete="new-password">
  10. </div>
  11. </div>
  12. {empty name="$data.id"}
  13. <div class="row cl">
  14. <label class="form-label col-xs-4 col-sm-2">
  15. <span class="c-red">*</span>初始密码:</label>
  16. <div class="formControls col-xs-4 col-sm-6">
  17. <input type="password" class="input-text" id="password" name="password" value=""
  18. placeholder="初始密码, 6位及以上, 至少包括字母和数字" autocomplete="new-password">
  19. </div>
  20. <div class=" form-label col-xs-4 col-sm-4" style="text-align: left;">
  21. <span class="c-red" id="span_password">* 为空时使用系统配置的默认密码</span>
  22. </div>
  23. </div>
  24. {else/}
  25. <div class="row cl">
  26. <label class="form-label col-xs-4 col-sm-2">
  27. 修改密码:</label>
  28. <div class="formControls col-xs-8 col-sm-6">
  29. <input type="password" class="input-text" id="password" name="password" value=""
  30. placeholder="6位及以上, 至少包括字母和数字" autocomplete="new-password">
  31. </div>
  32. </div>
  33. {/empty}
  34. <div class="row cl">
  35. <label class="form-label col-xs-4 col-sm-2">
  36. 确认密码:</label>
  37. <div class="formControls col-xs-8 col-sm-6">
  38. <input type="password" class="input-text" id="repassword" name="repassword" value=""
  39. placeholder="确认密码, 两次密码需一致">
  40. </div>
  41. </div>
  42. <div class="row cl">
  43. <label class="form-label col-xs-4 col-sm-2">
  44. 昵称: </label>
  45. <div class="formControls col-xs-8 col-sm-6">
  46. <input type="text" class="input-text" id="nickname" name="nickname" value="{$data.nickname}"
  47. placeholder="昵称">
  48. </div>
  49. </div>
  50. <div class="row cl">
  51. <label class="form-label col-xs-4 col-sm-2">
  52. 姓名: </label>
  53. <div class="formControls col-xs-8 col-sm-6">
  54. <input type="text" class="input-text" id="truename" name="truename" value="{$data.truename}"
  55. placeholder="姓名">
  56. </div>
  57. </div>
  58. <div class="row cl">
  59. <label class="form-label col-xs-4 col-sm-2">邮箱:</label>
  60. <div class="formControls col-xs-4 col-sm-6">
  61. <input type="text" class="input-text" id="email" name="email" value="{$data.email}"
  62. autocomplete='email'>
  63. </div>
  64. </div>
  65. <div class="row cl">
  66. <label class="form-label col-xs-4 col-sm-2">
  67. <span class="c-red">*</span>角色:</label>
  68. <div class="formControls col-xs-4 col-sm-4">
  69. <span class="select-box" style="width:150px;">
  70. <select class="select" id="roleid" name="roleid">
  71. {foreach $dataRole as $k=>$op}
  72. <option value="{$k}" {eq name="data.roleid" value="$k" }selected{/eq}>{$op}</option>
  73. {/foreach}
  74. </select>
  75. </span>
  76. </div>
  77. </div>
  78. <div class="row cl">
  79. <label class="form-label col-xs-4 col-sm-2">
  80. 头像:</label>
  81. <div class="formControls col-xs-6 col-sm-4">
  82. <div style="width: 200px;height: 200px;">
  83. <a href="javascript:void(0);" onclick="uploadPicture()" >
  84. <img id="view-img" src="{$data.avatar ? $data.avatar : '/static/images/upload_picture.png'}" alt="头像" title="{$data.title_pic ? '更换' : '添加'}头像" style="max-width: 200px;max-height: 200px;">
  85. </a>
  86. </div>
  87. <input type="text" class="input-text" value="{$data.avatar}" name="avatar" id="picture" style="display: none;">
  88. </div>
  89. <label class="form-label col-xs-2 col-sm-2">
  90. <a class="btn btn-success radius" href="javascript:uploadPicture();">{$data.avatar ? '更换' : '添加'}头像</a></label>
  91. <div class="col-3"> </div>
  92. </div>
  93. <div class="row cl">
  94. <label class="form-label col-xs-4 col-sm-2">
  95. <span class="c-red"></span>状态:</label>
  96. <div class="formControls col-xs-8 col-sm-6">
  97. <div class="radio-box">
  98. <input type="radio" name="status" id="status-1" value="1" {$data==null || $data.status==1 ? 'checked' : ""}>
  99. <label for="typeId-1">启用</label>
  100. </div>
  101. <div class="radio-box">
  102. <input type="radio" name="status" id="status-2" value="2" {$data.status==2 ? 'checked' : ""}>
  103. <label for="status-2">禁用</label>
  104. </div>
  105. </div>
  106. </div>
  107. <div class="row cl">
  108. <label class="form-label col-xs-4 col-sm-2">备注:</label>
  109. <div class="formControls col-xs-8 col-sm-6">
  110. <textarea id="remark" name="remark" cols="" rows="" class="textarea" placeholder="备注...200个字符以内"
  111. dragonfly="true" onKeyUp="textarealength(this,200)">{$data.remark}</textarea>
  112. <p class="textarea-numberbar">
  113. <em class="textarea-length">0</em>/200
  114. </p>
  115. </div>
  116. </div>
  117. <div class="row cl">
  118. <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
  119. <input class="btn btn-success radius" type="button" id="form-save-button"
  120. value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
  121. <input class="btn btn-default radius" type="button" value="&nbsp;&nbsp;取消&nbsp;&nbsp;"
  122. onClick="layer_close();">
  123. </div>
  124. </div>
  125. </form>
  126. </article>
  127. <!--请在下方写此页面业务相关的脚本-->
  128. <script type="text/javascript">
  129. // 图片上传
  130. function uploadPicture() {
  131. layer.open({
  132. type: 2,
  133. area: ['700px', '500px'],
  134. fix: false, //不固定
  135. maxmin: true,
  136. shade: 0.4,
  137. title: '添加缩略图',
  138. content: '{:url("file_manager/uploadimg", ["_layer"=>true])}'
  139. });
  140. }
  141. $(function () {
  142. // 密码正则验证复杂度
  143. function checkPassword(password) {
  144. var res = pwdFormat6Mix(password);
  145. if (!res) {
  146. layer.msg('* 密码6位及以上, 至少包括字母和数字', {
  147. icon: 5,
  148. time: 1000
  149. });
  150. return false;
  151. } else {
  152. return true;
  153. }
  154. }
  155. // 确认密码
  156. function confirmPassword(password, repassword) {
  157. if (password != repassword) {
  158. layer.msg('两次密码不一致', {
  159. icon: 5,
  160. time: 1000
  161. });
  162. return false;
  163. } else {
  164. return true;
  165. }
  166. }
  167. $("#password").blur(function () {
  168. if (!isNull($("#password").val())) {
  169. return checkPassword($("#password").val());
  170. }
  171. })
  172. $("#repassword").blur(function () {
  173. return confirmPassword($("#password").val(), $("#repassword").val());
  174. })
  175. $("#form-save-button").click(function () {
  176. if (!$("#username").val() || !$("#roleid").val) {
  177. layer.msg('用户名 or 角色 不能为空!', {
  178. icon: 5,
  179. time: 1000
  180. });
  181. return false;
  182. }
  183. var password = $("#password").val();
  184. var repassword = $("#repassword").val();
  185. if (!isNull(password) && !checkPassword(password)) {
  186. return false;
  187. }
  188. if (!confirmPassword(password, repassword)) {
  189. return false;
  190. }
  191. var email = $("#email").val();
  192. if (!isNull(email) && testEmail(email) == false) {
  193. layer.msg('邮箱格式不正确', {
  194. icon: 5,
  195. time: 1000
  196. });
  197. return false;
  198. }
  199. if (getblen($("#remark").val()) > 200) {
  200. layer.msg('备注过长', {
  201. icon: 5,
  202. time: 1000
  203. });
  204. return false;
  205. }
  206. var data = $("#form-save").serializeArray();
  207. $.ajax({
  208. type: 'POST',
  209. url: '{:url("save")}',
  210. data: data,
  211. dataType: 'json',
  212. success: function (res) {
  213. // console.log(res);
  214. if (res.code = 0) {
  215. layer.msg(data.msg, {
  216. icon: 5,
  217. time: 1000
  218. });
  219. return false;
  220. } else {
  221. layer.msg(res.msg, { icon: 1 }, function () {
  222. parent.location.reload(); // 父页面刷新
  223. var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
  224. parent.layer.close(index);
  225. });
  226. }
  227. }
  228. })
  229. })
  230. })
  231. </script>
  232. <!--请在上方写此页面业务相关的脚本-->