设计报告题目:通讯录管理系统姓名:完成时间:1.功能需求设计“通讯录管理系统”使其具有插入、删除、修改、显示、查询等功能。
需求如下:(1)数据包括人名和电话号码和E-mail地址(2)可对记录的姓名、电话进行修改(3)可增加或删除记录(4)可显示所有保存的记录(5)可按人名或电话号码进行搜索2.项目设计(1)设计思路Php+mysql+apache+layui2.0(2)程序功能模块图(3)主函数流程图(4)各功能模块运行截图(5)程序源代码<?phpnamespace 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('/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('/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('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" /}<!-- 正文开始--><fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;"><legend>通讯录管理</legend></fieldset><div class="layui-fluid"><div class="layui-card"><div class="layui-card-body"><div class="layui-form toolbar"><div class="layui-form-item"><div class="layui-inline"><select id="sltKey"><option value="">请选择搜索条件</option><option value="name">姓名</option><option value="mobile">电话</option></select></div><div class="layui-inline"><input id="edtSearch" class="layui-input" type="text" placeholder="输入关键字"/></div><div class="layui-inline"><button id="btnSearch" class="layui-btn icon-btn"><iclass="layui-icon"></i>搜索</button><button id="btnAdd" class="layui-btn icon-btn"><iclass="layui-icon"></i>添加</button></div></div></div><table class="layui-table" id="userTable" lay-filter="userTable"></table> </div></div></div><!-- 表格操作列--><script type="text/html" id="tableBar"><a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></script><!-- 表格状态列--><script type="text/html" id="tableState"><input type="checkbox" lay-filter="ckState" value="{{d.id}}" lay-skin="switch"lay-text="正常|锁定" {{d.islock==0?'checked':''}}/></script><!-- 表单弹窗--><script type="text/html" id="modelUser"><form id="modelUserForm" lay-filter="modelUserForm" class="layui-form model-form"> <input name="id" type="hidden"/><div class="layui-form-item"><label class="layui-form-label">姓名</label><div class="layui-input-block"><input name="name" placeholder="请输入姓名" type="text" class="layui-input" maxlength="20"lay-verType="tips" lay-verify="required" required/></div></div><div class="layui-form-item"><label class="layui-form-label">工作单位</label><div class="layui-input-block"><input name="work_address" placeholder="请输入工作单位" type="text" class="layui-input" maxlength="20"lay-verType="tips" lay-verify="required" required/></div></div><div class="layui-form-item"><label class="layui-form-label">电话号码</label><div class="layui-input-block"><input name="mobile" placeholder="请输入电话号码" type="text"class="layui-input" maxlength="20"lay-verType="tips" lay-verify="required" required/></div></div><div class="layui-form-item"><label class="layui-form-label">邮箱</label><div class="layui-input-block"><input name="email" placeholder="请输入邮箱" type="text" class="layui-input" maxlength="20"lay-verType="tips" lay-verify="required" required/></div></div><div class="layui-form-item text-right"><button class="layui-btn layui-btn-primary" type="button" tw-event="closePageDialog">取消</button><button class="layui-btn" lay-filter="modelUserSubmit" lay-submit>保存</button> </div></form></script><!-- js部分--><script type="text/javascript" src="/static/admin/libs/layui/layui.js"></script><script type="text/javascript" src="/static/admin/js/common.js?v=311"></script><script>e(['layer', 'form', 'table', 'util', 'admin', 'formSelects'], function () {var $ = layui.jquery;var layer = 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, );}});// 显示表单弹窗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) {yer.confirm('确定要删除“' + nickName + '”吗?', {skin: 'layui-layer-admin'}, function (i) {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() {}});</script></body></html>。