3582aed5a80e342d0c2a4ce4d0c452f4.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. <?php if (!defined('THINK_PATH')) exit(); /*a:3:{s:79:"D:\phpStudy\WWW\layui_admin\public/../application/admin\view\user\useredit.html";i:1542248814;s:69:"D:\phpStudy\WWW\layui_admin\application\admin\view\public\header.html";i:1542340311;s:69:"D:\phpStudy\WWW\layui_admin\application\admin\view\public\footer.html";i:1542617006;}*/ ?>
  2. <!DOCTYPE html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="UTF-8">
  6. <title><?php echo config('WEB_SITE_TITLE'); ?></title>
  7. <meta name="renderer" content="webkit">
  8. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
  10. <link rel="stylesheet" href="/static/admin/js/layui/css/layui.css" >
  11. <link rel="stylesheet" href="/static/admin/css/admin.css" >
  12. <link rel="stylesheet" href="/static/admin/css/plugins/viewer/viewer.css"><!--viewer图片查看器-->
  13. <link rel="stylesheet" href="/static/admin/css/font-awesome.min.css"><!--fontAwesome图标库-->
  14. <link rel="stylesheet" href="/static/admin/css/plugins/cropper/ImgCropping.css" ><!--图片裁剪组件-->
  15. <link rel="stylesheet" href="/static/admin/css/plugins/cropper/cropper.min.css" ><!--图片裁剪组件-->
  16. <!--<link rel="stylesheet" href="/static/admin/css/plugins/animate/animate.min.css" >-->
  17. <link rel="stylesheet" href="/static/admin/js/plugins/zTree/zTreeStyle.css" ><!--zTree组件-->
  18. <link rel="stylesheet" href="/static/admin/css/plugins/formSelects/formSelects-v4.css" ><!--select多选组件-->
  19. <link rel="stylesheet" href="/static/admin/js/plugins/webuploader/webuploader.css" ><!--webUploader上传组件-->
  20. <link rel="stylesheet" href="/static/admin/js/plugins/webuploader/style.css" ><!--webUploader上传组件-->
  21. <link rel="stylesheet" href="/static/admin/js/plugins/wx-audio/wx-audio.css" ><!--音频播放器组件-->
  22. <link rel="stylesheet" href="/static/admin/css/plugins/toastr/toastr.css" ><!--toastr通知组件-->
  23. <style>
  24. /*layui滚动条自适应*/
  25. /*.layui-body{overflow-y: scroll;}*/
  26. /*body{overflow-y: scroll;}*/
  27. /*灯箱图片*/
  28. /*.closeP{width:60px;height:60px;text-align: center;line-height: 70px;border-radius:30px;background:rgba(0,0,0,0.5);font-size: 25px;position: fixed;top:-23px;right:-20px;color: #ccc;cursor: pointer;}*/
  29. /*.cha{position:relative;top:1px;right:8px;}*/
  30. /*.closeP:hover{color: white}*/
  31. /*.showP{width: 100%;height: 100vh;background: rgba(0,0,0,0.5);text-align: center;position: fixed;top: 0;left: 0;z-index: 1000;}*/
  32. /*图标*/
  33. /*#chooseicon {margin:20px;}*/
  34. /*#chooseicon ul { margin:5px 0 0 0;}*/
  35. /*#chooseicon ul li{width:41px;height:41px;line-height:41px;border:1px solid #e7e7e7;padding:1px;margin:1px;text-align: center;font-size:18px;float: left;}*/
  36. /*#chooseicon ul li:hover{border:1px solid #2c3e50;cursor:pointer;}*/
  37. /* 输入框添加蓝色边框效果,阴影边框效果 */
  38. /*.layui-input:focus,*/
  39. /*.layui-textarea:focus {*/
  40. /*border-color: rgba(91, 192, 222, 0.8) !important;*/
  41. /*-webkit-box-shadow: 0 0 5px rgba(91, 192, 222, .5);*/
  42. /*-moz-box-shadow: 0 0 5px rgba(91, 192, 222, .5);*/
  43. /*box-shadow: 0 0 5px rgba(91, 192, 222, .5);*/
  44. /*}*/
  45. /*.layui-input:hover,*/
  46. /*.layui-textarea:hover {*/
  47. /*border-color: rgba(91, 192, 222, 0.8) !important;*/
  48. /*-webkit-box-shadow: 0 0 5px rgba(91, 192, 222, .5);*/
  49. /*-moz-box-shadow: 0 0 5px rgba(91, 192, 222, .5);*/
  50. /*box-shadow: 0 0 5px rgba(91, 192, 222, .5);*/
  51. /*}*/
  52. /*!* 表单验证失败红色边框效果,阴影效果 *!*/
  53. /*.layui-form-danger, .layui-form-danger:focus, .layui-form-danger:hover{*/
  54. /*border-color: rgba(255,87,34, .8) !important;*/
  55. /*-webkit-box-shadow: 0 0 5px rgba(255,87,34, .5);*/
  56. /*-moz-box-shadow: 0 0 5px rgba(255,87,34, .5);*/
  57. /*box-shadow: 0 0 5px rgba(255,87,34, .5);*/
  58. /*}*/
  59. </style>
  60. </head>
  61. <body class="gray-bg">
  62. <div class="layui-fluid layui-col-md12">
  63. <div class="layui-card">
  64. <div class="layui-card-body layui-form">
  65. <div class="layui-row layui-col-space10 layui-form-item ">
  66. <input type="hidden" name="id" value="<?php echo $user['id']; ?>">
  67. <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
  68. <label class="layui-form-label">名称</label>
  69. <div class="layui-input-block">
  70. <input type="text" name="username" lay-verify="required|username" placeholder="管理员名称" class="layui-input " value="<?php echo $user['username']; ?>">
  71. </div>
  72. </div>
  73. <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
  74. <label class="layui-form-label">角色</label>
  75. <div class="layui-input-block">
  76. <select name="groupid" lay-verify="required" lay-search="">
  77. <option value="">请选择角色</option>
  78. <?php if(!empty($role)): if(is_array($role) || $role instanceof \think\Collection || $role instanceof \think\Paginator): if( count($role)==0 ) : echo "" ;else: foreach($role as $key=>$vo): ?>
  79. <option value="<?php echo $vo['id']; ?>" <?php if($user['groupid'] == $vo['id']): ?>selected<?php endif; ?>><?php echo $vo['title']; ?></option>
  80. <?php endforeach; endif; else: echo "" ;endif; endif; ?>
  81. </select>
  82. </div>
  83. </div>
  84. <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
  85. <label class="layui-form-label">头像</label>
  86. <div class="layui-input-block">
  87. <input type="hidden" id="data_photo" name="portrait" lay-verify="headCrop" value="<?php echo $user['portrait']; ?>">
  88. <div id="fileList" class="uploader-list" style="float:right"></div>
  89. <div style="float:left" class="layui-btn" onclick="wk.layer_show1('上传头像',$('#headCrop'),700);">选择头像</div>
  90. <img id="img_data" class="layui-circle layui-head-img" src="<?php echo $user['portrait']; ?>" onerror="this.src='/static/admin/images/head_default.gif'"/>
  91. </div>
  92. </div>
  93. <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
  94. <label class="layui-form-label">密码</label>
  95. <div class="layui-input-block">
  96. <input type="password" name="password" lay-verify="pass" placeholder="不修改请留空" class="layui-input">
  97. </div>
  98. </div>
  99. <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
  100. <label class="layui-form-label">真实姓名</label>
  101. <div class="layui-input-block">
  102. <input type="text" name="real_name" lay-verify="required|realname" placeholder="管理员真实姓名" class="layui-input" value="<?php echo $user['real_name']; ?>">
  103. </div>
  104. </div>
  105. <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
  106. <label class="layui-form-label">联系方式</label>
  107. <div class="layui-input-block">
  108. <input type="text" name="phone" placeholder="管理员联系方式" lay-verify="required|phone" class="layui-input " value="<?php echo $user['phone']; ?>">
  109. </div>
  110. </div>
  111. <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
  112. <div class="layui-input-block">
  113. <button class="layui-btn" lay-submit="" lay-filter="component-form-element">保存
  114. </button>
  115. <button class="layui-btn layui-btn-primary" onclick="wk.layer_close('close')">关闭</button>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. </div>
  121. </div>
  122. <div id="headCrop" style="display:none">
  123. <div class="tailoring-content-one">
  124. <label title="选择图片" for="chooseImg" class="layui-btn">
  125. <input type="file" accept="image/jpg,image/jpeg,image/png" name="file" id="chooseImg" class="hidden" onchange="selectImg(this)"><i class="fa fa-cloud-upload"></i>
  126. 选择图片
  127. </label>
  128. </div>
  129. <div class="ibox-content">
  130. <div class="tailoring-content">
  131. <div class="tailoring-content-two">
  132. <div class="tailoring-box-parcel" style="text-align: center">
  133. <img id="tailoringImg">
  134. <span class="word" style="position:relative;top:50%;font-size:14px;color: #c2c2c2">仅支持JPG、JPEG、PNG格式的图片文件</span><br>
  135. <!--<span class="size" style="position:relative;top:50%;font-size:16px">文件不能大于2MB</span>-->
  136. </div>
  137. <div class="preview-box-parcel">
  138. <!--<p>图片预览:</p>-->
  139. <div class="square previewImg"></div>
  140. <div class="circular previewImg"></div>
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. <div class="modal-footer">
  146. <span class="layui-btn cropper-reset-btn" style="float:left">复位</span>
  147. <span class="layui-btn zoomIn" style="float:left">放大</span>
  148. <span class="layui-btn zoomOut" style="float:left">缩小</span>
  149. <span class="layui-btn cropper-rotate-btn" style="float:left">旋转</span>
  150. <span class="layui-btn cropper-scaleX-btn" style="float:left">换向</span>
  151. <span class="layui-btn " id="sureCut"><i class="fa fa-save"></i> 保存</span>
  152. <span class="layui-btn layui-btn-primary" onclick="layer.closeAll()"><i class="fa fa-close"></i> 关闭</span>
  153. </div>
  154. </div>
  155. <script src="/static/admin/js/jquery.min.js"></script>
  156. <script src="/static/admin/js/layui/layui.js"></script>
  157. <script src="/static/admin/js/plugins/viewer/viewer.js"></script><!--viewer图片查看器-->
  158. <script src="/static/admin/js/Icon.js"></script><!--fontAwesome图标库-->
  159. <script src="/static/admin/js/wk.js"></script><!--封装方法-->
  160. <script src="/static/admin/js/common.js"></script><!--全局监听ajax-->
  161. <script src="/static/admin/js/plugins/cropper/cropper.min.js"></script><!--图片裁剪组件-->
  162. <script src="/static/admin/js/plugins/zTree/jquery.ztree.core-3.5.js"></script><!--zTree组件-->
  163. <script src="/static/admin/js/plugins/zTree/jquery.ztree.excheck-3.5.js"></script><!--zTree选择组件-->
  164. <!--<script src="/static/admin/js/plugins/zTree/jquery.ztree.exedit-3.5.js"></script>--><!--zTree编辑组件-->
  165. <script src="/static/admin/js/plugins/webuploader/webuploader.js"></script><!--webUploader上传组件-->
  166. <script src="/static/admin/js/plugins/wangEditor-3.1.1/release/wangEditor.js" ></script><!--wangEditor编辑器-->
  167. <script src="/static/admin/js/plugins/wx-audio/wx-audio.js" ></script><!--音频播放器组件-->
  168. <script src="/static/admin/js/plugins/clipboard/clipboard.js" ></script><!--粘贴板组件-->
  169. <script src="/static/admin/js/plugins/jqprint/jQuery.print.js" ></script><!--打印组件-->
  170. <script src="/static/admin/js/plugins/toastr/toastr.js" ></script><!--toastr通知组件-->
  171. <script src="/static/admin/js/plugins/ueditor/ueditor.config.js" ></script><!--百度富文本-->
  172. <script src="/static/admin/js/plugins/ueditor/ueditor.all.js" ></script><!--百度富文本-->
  173. <script>
  174. layui.config({
  175. base: '/src/' //静态资源所在路径
  176. }).extend({
  177. index: 'lib/index' //主入口模块
  178. , formSelects: 'formSelects-v4'
  179. , dropdown: 'dropdown'
  180. }).use(['index','dropdown','formSelects']),function(){
  181. var formSelects = layui.formSelects
  182. };
  183. </script>
  184. <script>
  185. toastr.options = {
  186. "newestOnTop": false, //新的toastr会显示在旧的toastr前面
  187. "preventDuplicates": false, //重复内容的提示框只出现一次
  188. "target": "body", // 默认为'body', 设置toastr的目标容器
  189. "closeButton": true,//关闭按钮
  190. "debug": false,//调试模式
  191. "progressBar": true,//进度条
  192. "closeOnHover": true,//hover关闭
  193. "positionClass": "toast-bottom-right",//toastr显示位置
  194. "showDuration": "400",//显示的时间
  195. "hideDuration": "100",//消失的时间
  196. "timeOut": "7000",//停留的时间
  197. "extendedTimeOut": "100",//控制时间
  198. "showEasing": "swing",//显示时的动画缓冲方式
  199. "hideEasing": "linear",//消失时的动画缓冲方式
  200. "showMethod": "layui-anim layui-anim-up",//显示时的动画方式
  201. "hideMethod": "layui-anim layui-anim-fadeout",//消失时的动画方式
  202. }
  203. //view初始化查看图片
  204. $(function(){
  205. $('.layui-append-img,.layui-circle').viewer({
  206. url: 'data-original',
  207. });
  208. })
  209. //关闭自动填充
  210. $('input').attr('autocomplete',"off");
  211. // //图片灯箱
  212. // function imgDisplay(obj) {
  213. // var src = $(obj).attr("src");
  214. // var imgHtml = '<div class="showP"><img src=' + src + ' style="margin-top: 120px;height:50%;margin-bottom:120px;" /><p class="closeP" onclick="closePicture(this)"><span class="cha">×</span></p></div>'
  215. // $('body').append(imgHtml);
  216. // }
  217. //
  218. // //关闭图片灯箱
  219. // function closePicture(obj) {
  220. // $(obj).parent("div").remove();
  221. // }
  222. //tips框
  223. $('#offAll').on('mouseover', function(){
  224. var that = this;
  225. layer.tips('<span style="color:#686B6D;"><i class="fa fa-info-circle"></i> 若未勾选默认禁用全部</span>', that,{tips: [2, '#F2F2F2'],time: 10000});
  226. });
  227. //tips框
  228. $('#onAll').on('mouseover', function(){
  229. var that = this;
  230. layer.tips('<span style="color:#686B6D;"><i class="fa fa-info-circle"></i> 若未勾选默认启用全部</span>', that,{tips: [2, '#F2F2F2',''],time: 10000});
  231. });
  232. //tips框
  233. $('#excel').on('mouseover', function(){
  234. var that = this;
  235. layer.tips('<span style="color:#686B6D;"><i class="fa fa-info-circle"></i> 导出筛选完成数据</span>', that,{tips: [2, '#F2F2F2',''],time: 10000});
  236. });
  237. //关闭tips框
  238. $('#offAll,#onAll,#export,#excel').on('mouseout', function(){
  239. layer.closeAll('tips');
  240. });
  241. //layui公共操作
  242. layui.use(['form','table'], function() {
  243. var form = layui.form
  244. ,table = layui.table
  245. //重置搜索框
  246. $('#empty').on('click', function () {
  247. $('.layui-input').val('');
  248. // $(".search").trigger("chosen:updated");
  249. $('select').each(function (i, j) {
  250. $(j).find("option:selected").attr("selected", false);
  251. form.render('select')
  252. })
  253. });
  254. //表格排序
  255. table.on('sort(LAY-table-manage)', function(obj){
  256. table.reload('LAY-table', {
  257. initSort: obj //记录初始排序,如果不设的话,将无法标记表头的排序状态
  258. ,where: { //请求参数
  259. field: obj.field //排序字段
  260. ,order: obj.type //排序方式
  261. }
  262. });
  263. });
  264. //监听搜索
  265. form.on('submit(LAY-search)', function (data) {
  266. //执行重载
  267. table.reload('LAY-table', {
  268. page: {
  269. curr: 1 //重新从第 1 页开始
  270. }
  271. ,where: data.field
  272. });
  273. });
  274. //地区三级联动
  275. form.on('select(province)', function(data){
  276. getArea("province",data.value);
  277. });
  278. form.on('select(city)', function(data){
  279. getArea("city",data.value);
  280. });
  281. function getArea(type,id){
  282. $.ajax({
  283. url:"<?php echo url('admin/Base/place'); ?>",
  284. dataType:"json",
  285. data:'id='+id,
  286. type:'post',
  287. success:function(res){
  288. var opt = null;
  289. $.each(res.msg,function(key,vo){
  290. opt = opt+"<option value="+vo.district_id+">"+vo.district+"</option>";
  291. })
  292. if(type=="province"){
  293. $("#city").empty();
  294. $("#city").append('<option value="">---- 请选择市 ----</option>');
  295. $("#district").empty();
  296. $("#district").append('<option value="">---- 请选择区 ----</option>');
  297. $("#city").append(opt);
  298. }else if(type == "city"){
  299. $("#district").empty();
  300. $("#district").append('<option value="">---- 请选择区 ----</option>');
  301. $("#district").append(opt);
  302. }
  303. form.render('select');
  304. }
  305. })
  306. }
  307. });
  308. </script>
  309. <script type="text/javascript" src="/static/admin/js/plugins/cropper/Crop.js"></script>
  310. <script>
  311. //裁剪后的处理
  312. $("#sureCut").on("click",function () {
  313. if ($("#tailoringImg").attr("src") == null ){
  314. layer.msg('请先选择头像',{anim:6})
  315. }else{
  316. var cas = $('#tailoringImg').cropper('getCroppedCanvas');//获取被裁剪后的canvas
  317. var base64url = cas.toDataURL('image/png'); //转换为base64地址形式
  318. $("#img_data").attr('src',base64url).show();
  319. $('#data_photo').val(base64url);
  320. //关闭裁剪框
  321. layer.closeAll();
  322. }
  323. });
  324. </script>
  325. <script>
  326. layui.use(['form'], function() {
  327. var form = layui.form;
  328. form.verify({
  329. username:function(value,item){
  330. if(!/^[\S]{2,10}$/.test(value)){
  331. return '名称必须2到10字符,且不能出现空格';
  332. }
  333. var checkResult = "";
  334. $.ajax({
  335. url:"<?php echo url('User/checkName'); ?>",
  336. type:'post',
  337. data:"username="+value +'&id='+ $('input[name=id]').val(),
  338. async: false,//必须同步
  339. success:function(res){
  340. if(res.code == 100){
  341. checkResult = "该名称已存在";
  342. }
  343. }
  344. })
  345. return checkResult;
  346. }
  347. ,pass:function(value,item){
  348. if(value != "" && !/^[\S]{6,16}$/.test(value)){
  349. return '密码必须6到16位,且不能出现空格';
  350. }
  351. }
  352. ,realname:[/^[\S]{2,10}$/,'真实姓名必须2到10字符,且不能出现空格']
  353. });
  354. form.on('submit(component-form-element)', function (data) {
  355. $('.layui-btn').addClass('layui-disabled').attr('disabled','disabled');
  356. $.ajax({
  357. url:"<?php echo url('userEdit'); ?>",
  358. type:'post',
  359. dataType:'json',
  360. data:data.field,
  361. success:function(res){
  362. if (res.code == 200) {
  363. if(res.data == 100){
  364. wk.success(res.msg,'',"<?php echo url('admin/Login/loginOut'); ?>");
  365. }else{
  366. if (res.type == "have") {
  367. wk.success(res.msg,'top.location.reload()');
  368. } else {
  369. wk.success(res.msg,'wk.layer_close()')
  370. }
  371. }
  372. } else {
  373. wk.error(res.msg,'$(".layui-btn").removeClass(\'layui-disabled\').removeAttr(\'disabled\')');
  374. }
  375. }
  376. })
  377. });
  378. });
  379. </script>
  380. </body>
  381. </html>