<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>编辑用户</title> <link rel="stylesheet" href="/static/layui/css/layui.css"> <link rel="stylesheet" href="/static/css/style.css"> </head> <body> <div class="layui-fluid"> <div class="layui-card"> <div class="layui-card-body"> <form class="layui-form" lay-filter="userForm"> <input type="hidden" name="id"> <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="username" required lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">邮箱</label> <div class="layui-input-block"> <input type="text" name="email" required lay-verify="required|email" placeholder="请输入邮箱" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">角色</label> <div class="layui-input-block"> <select name="role" required lay-verify="required"> <option value="user">普通用户</option> <option value="admin">管理员</option> </select> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="userSubmit">保存</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form> </div> </div> </div> <script src="/static/layui/layui.js"></script> <script> layui.use(['form', 'layer'], function(){ var form = layui.form; var layer = layui.layer; var $ = layui.$; // 获取用户ID var userId = location.search.match(/id=(\d+)/); if (userId) { userId = userId[1]; // 加载用户数据 fetch('/api/users/' + userId, { headers: { 'Authorization': 'Bearer ' + localStorage.getItem('token') } }) .then(response => response.json()) .then(data => { if (data.error) { layer.msg(data.error); return; } // 填充表单 form.val('userForm', { 'id': data.id, 'username': data.username, 'email': data.email, 'role': data.role }); }) .catch(error => { layer.msg('加载用户数据失败:' + error.message); }); } // 表单提交 form.on('submit(userSubmit)', function(data){ var field = data.field; var url = userId ? '/api/users/' + userId : '/api/users'; var method = userId ? 'PUT' : 'POST'; fetch(url, { method: method, headers: { 'Authorization': 'Bearer ' + localStorage.getItem('token'), 'Content-Type': 'application/json' }, body: JSON.stringify(field) }) .then(response => response.json()) .then(result => { if (result.error) { layer.msg(result.error); return; } layer.msg('保存成功'); // 如果是在弹窗中,则关闭弹窗并刷新父页面的表格 var index = parent.layer.getFrameIndex(window.name); if (index) { parent.layui.table.reload('user-table'); parent.layer.close(index); } }) .catch(error => { layer.msg('保存失败:' + error.message); }); return false; }); }); </script> </body> </html>