index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>我们的68-英雄管理</title>
<link rel="stylesheet" href="./libs/bootstrap/css/bootstrap.min.css" />
<style>
.panel {
width: 900px;
margin: 10px auto;
}
.table img {
width: 40px;
height: 40px;
}
</style>
</head>
<body>
<div class="container">
<div class="panel panel-primary">
<div class="panel-heading">英雄列表管理</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<div class="input-group">
<input type="text" id="hname" class="form-control" placeholder="输入英雄信息..." autocomplete="true" />
<span class="input-group-btn">
<button class="btn btn-default" id="btn_search" type="button">搜索</button>
</span>
</div>
</div>
<div class="col-lg-3 col-lg-offset-3">
<button type="button" class="btn btn-success openDialog" data-toggle="modal" data-target="#addHeroModal">添加英雄</button>
</div>
</div>
</div>
<table class="table">
<thead>
<tr>
<th>编号</th>
<th>英雄名称</th>
<th>英雄性别</th>
<th>头像</th>
<th>操作区</th>
</tr>
</thead>
<tbody id="tbody"></tbody>
</table>
</div>
</div>
<div class="modal fade" id="addHeroModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myModalLabel">添加英雄</h4>
</div>
<div class="modal-body">
<form class="form-horizontal" id="addForm">
<div class="form-group">
<label for="heroName" class="col-sm-2 control-label">英雄名称</label>
<div class="col-sm-10">
<input type="text" name="name" class="form-control" id="heroNameinput" placeholder="请输入英雄名称" />
</div>
</div>
<div class="form-group">
<label for="heroGender" class="col-sm-2 control-label">英雄性别</label>
<div class="col-sm-10">
<select class="form-control" id="heroGenderselect" name="gender">
<option>男</option>
<option>女</option>
</select>
</div>
</div>
</form>
</div>
<div class="modal-footer">
<input type="button" class="btn btn-success btnAdd" data-dismiss="modal" value="提交" />
<button type="button" class="btn btn-default btnCancel">取消</button>
</div>
</div>
</div>
</div>
<div class="modal fade" id="uploadModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="myModalLabel">上传头像</h4>
</div>
<div class="modal-body">
<form id="formImg"></form>
<input type="file" name="" id="myimg" />
</form>
</div>
<div class="modal-footer">
<input type="button" class="btn btn-success btnUploadImg" data-dismiss="modal" value="提交" />
<button type="button" class="btn btn-default btnCancelUpload">取消</button>
</div>
</div>
</div>
</div>
<script src="./libs/jquery/jquery.min.js"></script>
<script src="./libs/bootstrap/js/bootstrap.min.js"></script>
<script src="./js/index.js"></script>
</body>
</html>
index.js
$(function () {
function init(userKey) {
$.ajax({
url: 'http://127.0.0.1:3001/getHeroList',
type: 'get',
data: { heroName: userKey },
success: res => {
console.log(res);
if (res.code === 200) {
let html = '';
$.each(res.data, function (index, value) {
html += `
<tr>
<td>${index + 1}</td>
<td>${value.name}</td>
<td>${value.gender}</td>
<td>
<img src="${value.img}" alt="" />
</td>
<td>
<button type="button" class="btn btn-info btnUp" myId="${value.id}">上传头像</button>
<button type="button" class="btn btn-warning btnDel" id = "${value.id}">删除</button>
</td>
</tr>
`;
});
$('#tbody').html(html);
$('#hname').focus();
$('#hname').val('');
}
},
});
}
init();
$('#btn_search').on('click', () => {
let userKey = $('#hname').val().trim();
init(userKey);
});
$(document).on('keydown', e => {
if (e.keyCode === 13) $('#btn_search').trigger('click');
});
$('.btnAdd').on('click', () => {
let name = $('#heroNameinput').val().trim();
let gender = $('#heroGenderselect').val().trim();
if (name === '') alert('请输入英雄名称');
$.ajax({
type: 'post',
url: 'http://127.0.0.1:3001/addHero',
data: { name, gender },
success: res => {
console.log(res);
if (res.msg === '添加成功') {
alert(res.msg);
init();
$('#heroNameinput').val('');
$('#heroGenderselect').val('男');
}
},
});
});
$('#tbody').on('click', '.btnDel', function () {
if (confirm('请问是否真的需要删除')) {
let id = $(this).prop('id');
$.ajax({
type: 'get',
url: 'http://127.0.0.1:3001/delHeroById',
data: { id: id },
success: res => {
console.log(res);
alert(res.msg);
init();
},
});
}
});
let heroId = undefined;
$('#tbody').on('click', '.btnUp', function () {
$('#uploadModal').modal('show');
heroId = $(this).attr('myId');
});
$('.btnUploadImg').on('click', () => {
let myfile = $('#myimg')[0].files[0];
let formdata = new FormData();
formdata.append('file_data', myfile);
$.ajax({
type: 'post',
url: 'http://127.0.0.1:3001/uploadFile',
data: formdata,
contentType: false,
processData: false,
success: res => {
console.log(res);
$.ajax({
type: 'post',
url: 'http://127.0.0.1:3001/updateHero',
data: { id: heroId, img: res.src },
success: res => {
console.log(res);
init();
},
});
},
});
});
});
index.html - 渲染页面改进,模板引擎
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>我们的67</title>
<link rel="stylesheet" href="./libs/bootstrap/css/bootstrap.min.css" />
<style>
.panel {
width: 900px;
margin: 10px auto;
}
.table img {
width: 40px;
height: 40px;
}
</style>
</head>
<body>
<div class="container">
<div class="panel panel-primary">
<div class="panel-heading">英雄列表管理</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<div class="input-group">
<input type="text" id="hname" class="form-control" placeholder="输入英雄信息..." autocomplete="true" />
<span class="input-group-btn">
<button class="btn btn-default" id="btn_search" type="button">搜索</button>
</span>
</div>
</div>
<div class="col-lg-3 col-lg-offset-3">
<button type="button" class="btn btn-success openDialog">添加英雄</button>
</div>
</div>
</div>
<table class="table">
<thead>
<tr>
<th>编号</th>
<th>英雄名称</th>
<th>英雄性别</th>
<th>头像</th>
<th>操作区</th>
</tr>
</thead>
<tbody id="tbody"></tbody>
</table>
</div>
</div>
<script type="text/template" id="heroListTemp">
{{each data v i}}
<tr>
<td>{{i + 1}}</td>
<td>{{v.name}}</td>
<td>{{v.gender}}</td>
<td>
<img src="{{v.img}}" alt="" />
</td>
<td>
<button type="button" class="btn btn-danger">删除</button>
</td>
</tr>
{{/each}}
</script>
<script src="./libs/jquery/jquery.min.js"></script>
<script src="./libs/bootstrap/js/bootstrap.min.js"></script>
<script src="./libs/template-web.js"></script>
</body>
<script>
$(function () {
function init() {
let userKey = $('#hname').val().trim();
console.log(userKey);
$.ajax({
type: 'get',
url: 'http://127.0.0.1:3001/getHeroList',
data: { heroName: userKey },
success: res => {
console.log(res);
let html = template('heroListTemp', res);
$('#tbody').html(html);
},
});
}
init();
});
</script>
</html>