设计报告
设计报告
题目:通讯录管理系统姓名:
完成时间:
1.功能需求
设计“通讯录管理系统”使其具有插入、删除、修改、显示、查询等功能。需求如下:
(1)数据包括人名和电话号码和E-mail地址
(2)可对记录的姓名、电话进行修改
(3)可增加或删除记录
(4)可显示所有保存的记录
(5)可按人名或电话号码进行搜索
2.项目设计
(1)设计思路
Php+mysql+apache+layui2.0
(2)程序功能模块图
(3)主函数流程图
(4)各功能模块运行截图
(5)程序源代码
namespace app\index\controller;
use think\Controller;
use think\Db;
use think\facade\Request;
class Index extends Controller
{
public function index()
{
if( Request::instance()->isPost() ) { //post 方式, 获取数据
$page = input('post.page.page',1,'intval');
$limit = input('post.limit',10,'intval');
$searchKey = input('post.searchKey','');
$searchValue = input('post.searchValue','');
$where = [];
($searchKey && $searchValue) ? ($where[$searchKey] = trim($searchValue)) : $where = [];
$mail_list = Db::table('mail_list')->where($where)->page($page,$limit)->select();
apiJson($mail_list);
} else { //一般get 请求, 展示页面
return $this->fetch();
}
}
/*
* 添加用户
*/
public function add()
{
if ( Request::instance()->isPost() ) {
$name = input('https://www.360docs.net/doc/573763836.html,/s','');
$work_address = input('post.work_address/s','');
$mobile = input('post.mobile/s','');
$email = input('post.email/s','');
$name || apiJson('', 1, '缺少参数姓名');
$work_address || apiJson('', 1, '缺少参数工作地址');
$mobile || apiJson('', 1, '缺少参数电话号码');
$email || apiJson('', 1, '缺少参数邮箱地址');
$data = [
'name' => $name,
'work_address' => $work_address,
'mobile' => $mobile,
'email' => $email,
'c_time' => time()
];
$res = Db::table('mail_list') ->insert($data);
$res || apiJson('', 1, '添加失败');
apiJson('', 0, '添加成功');
} else {
return $this->fetch();
}
}
/**
* 修改用户信息
*/
public function update()
{
if ( Request::instance()->isPost() ) {
$id = input('post.id/d',0);
$name = input('https://www.360docs.net/doc/573763836.html,/s','');
$work_address = input('post.work_address/s','');
$mobile = input('post.mobile/s','');
$email = input('post.email/s','');
$id || apiJson('', 1, '缺少参数');
$name || apiJson('', 1, '缺少参数姓名');
$work_address || apiJson('', 1, '缺少参数工作地址');
$mobile || apiJson('', 1, '缺少参数电话号码');
$email || apiJson('', 1, '缺少参数邮箱地址');
$data = [
'name' => $name,
'work_address' => $work_address,
'mobile' => $mobile,
'email' => $email,
'u_time' => time()
];
$res = Db::table('mail_list') ->where(['id'=>$id])->update($data);
$res || apiJson('', 1, '修改失败');
apiJson('', 0, '修改成功');
} else {
return apiJson('',1,'没有参数');
}
}
/**
* 删除用户信息
*/
public function del()
{
$id = input('https://www.360docs.net/doc/573763836.html,erId/d', 0);
$id || apiJson('', 1, '缺少参数');
Db::startTrans();
try{
Db::table('mail_list')->find($id);
Db::table('mail_list')->delete($id);
Db::commit();
}catch (\Exception $e){
Db::rollback();
apiJson('', 1, '删除失败');
};
apiJson('', 0, '删除成功');
}
}
Index.html
{include file="public/header" /}
lay-text="正常|锁定" {{d.islock==0?'checked':''}}/>
https://www.360docs.net/doc/573763836.html,e(['layer', 'form', 'table', 'util', 'admin', 'formSelects'], function () {
var $ = layui.jquery;
var layer = https://www.360docs.net/doc/573763836.html,yer;
var form = layui.form;
var table = layui.table;
var util = layui.util;
var admin = layui.admin;
var formSelects = layui.formSelects;
// 渲染表格
var insTb = table.render({
elem: '#userTable',
url: '{:url('index/index')}',
method: 'post', //如果无需自定义HTTP类型,可不加该参数
page: true,
cellMinWidth: 100,
cols: [[
{field: 'id', title: '编号'},
{field: 'name', title: '姓名'},
{field: 'work_address', title: '工作单位'},
{field: 'mobile', title: '电话号码'},
{field: 'email', title: '邮箱'},
{align: 'center', toolbar: '#tableBar', title: '操作', minWidth: 200} ]]
});
// 添加
$('#btnAdd').click(function () {
showEditModel();
});
// 搜索
$('#btnSearch').click(function () {
var key = $('#sltKey').val();
var value = $('#edtSearch').val();
if (value && !key) {
layer.msg('请选择搜索条件', {icon: 2});
}
insTb.reload({where: {searchKey: key, searchValue: value ,page: {page: 1 }}});
});
// 工具条点击事件
table.on('tool(userTable)', function (obj) {
var data = obj.data;
var layEvent = obj.event;
if (layEvent === 'edit') { // 修改
showEditModel(data);
} else if (layEvent === 'del') { // 删除
doDel(data.id, https://www.360docs.net/doc/573763836.html,);
}
});
// 显示表单弹窗
function showEditModel(mUser) {
admin.open({
type: 1,
title: (mUser ? '修改' : '添加') + '用户',
content: $('#modelUser').html(),
success: function (layero, dIndex) {
$(layero).children('.layui-layer-content').css('overflow', 'visible');
var url = mUser ? '{:url('index/update')}' : '{:url('index/add')}';
// 回显数据
var roleIds = new Array();
if (mUser) {
//$('input[name="name"]').attr('readonly', 'readonly');
form.val('modelUserForm', mUser);
} else {
form.render('radio');
}
formSelects.render('roleId', {init: roleIds});
// 表单提交事件
form.on('submit(modelUserSubmit)', function (data) {
//data.field.roleIds = formSelects.value('roleId', 'valStr');
layer.load(2);
$.post(url, data.field, function (res) {
layer.closeAll('loading');
if (res.code == 0) {
layer.close(dIndex);
layer.msg(res.msg, {icon: 1});
insTb.reload();
} else if(res.code == 2) {
top.location.href = location.href;
} else {
layer.msg(res.msg, {icon: 2});
}
}, 'json');
return false;
});
}
});
}
// 删除
function doDel(userId, nickName) {
https://www.360docs.net/doc/573763836.html,yer.confirm('确定要删除“' + nickName + '”吗?', {
skin: 'layui-layer-admin'
}, function (i) {
https://www.360docs.net/doc/573763836.html,yer.close(i);
layer.load(2);
$.post('{:url('index/del')}', {
userId: userId
}, function (res) {
layer.closeAll('loading');
if (res.code == 0) {
layer.msg(res.msg, {icon: 1});
insTb.reload();
} else if(res.code == 2) {
top.location.href = location.href;
} else {
layer.msg(res.msg, {icon: 2});
}
}, 'json');
});
}
// 修改用户锁定状态
form.on('switch(ckState)', function (obj) {
layer.load(2);
$.post('{:url('admin/lock')}', {
userId: obj.elem.value,
state: obj.elem.checked ? 0 : 1
}, function (res) {
layer.closeAll('loading');
if ( res.code == 1 ) {
layer.msg(res.msg, {icon: 2});
} else if(res.code == 2) {
top.location.href = location.href;
} else if( res.code == 0 ) {
layer.msg(res.msg, {icon: 1});
$(obj.elem).prop('checked', obj.elem.checked);
form.render('checkbox');
}
}, 'json');
});
//设置权限
function setAuth() {
}
});