在上一期我们讲到了图书管理系统数据库的设计思路,这期我们就讲讲第一个模块的功能实现。
这一期就讲第一个模块:用户信息维护表格查询和数据新增。
表格查询如下:

 var layer, layuiTable;var tabUser;//表格渲染layui.use(['layer', 'table'], function () {layer = layui.layer;layuiTable = layui.table;tabUser = layuiTable.render({elem: '#User',page: true,page: {limit: 5,limits:[5,10,15,20],},data: [],cols: [[{ title: '序号', align: 'center', type: 'numbers' },{ title: '修改', align: 'center', templet: customOp,width:60 },{ title: '删除', align: 'center', templet: customOptwo, width: 60 },{ title: '用户姓名', field: 'userName', align: 'center' },{ title: '身份证号', field: 'idCard', align: 'center', width: 158 },{ title: '电话号码', field: 'telephone', align: 'center' },{ title: '地址', field: 'address', align: 'center' },{ title: '邮箱地址', field: 'e_mail', align: 'center', width: 153 },{ title: '账号', field: 'account', align: 'center', width: 100 },{ title: '密码', field: 'password', align: 'center' },{ title: '角色', field: 'roleName', align: 'center' },{ title: '注册时间', field: 'foundTimeStr', align: 'center' },{ title: '有效否', field: 'effective', align: 'center', width: 60 },]]})tabuserSearch();});//表格查询function tabuserSearch() {var search = $("#search").val(); tabUser.reload({url: "/BaseInfor/User/userSearchInfor",where: {search: search,},page: {curr: 1}});}//角色下拉框绑定      createOption("Getrole", "role");

控制器部分的方法:

#region  表格查询public ActionResult userSearchInfor(LayuiTablePage layuitablepage, int? roleID, string search,string foundTime){//连表查询出所有的年级信息var list = (from tbuser in myModal.UserInforjoin tbrole in myModal.RoleInfor on tbuser.roleID equals tbrole.roleIDwhere tbuser.effective == true && tbuser.roleID != 3 //有效用户并且不是超级管理员orderby tbuser.userIDselect new userVo{userID = tbuser.userID,//用户IDuserName = tbuser.userName,//用户名idCard = tbuser.idCard,//身份证号password=tbuser.password,//密码address=tbuser.address,//地址account=tbuser.account,//账号telephone=tbuser.telephone,//电话号码effective=tbuser.effective,e_mail=tbuser.e_mail,//邮箱地址foundTime=tbuser.foundTime,//注册时间roleID=tbuser.roleID,//角色IDroleName=tbrole.roleName,//角色名称foundTimeStr = tbuser.foundTime.ToString(),//支付时间(字符串)});//条件if (roleID != null && roleID > 0){list = list.Where(m => m.roleID == roleID);}//模糊搜索的条件if (!string.IsNullOrEmpty(search)){search = search.Trim();//去空格//模糊查询list = list.Where(m => m.userName.Contains(search) || m.idCard.Contains(search) || m.address.Contains(search)|| m.account.Contains(search) || m.telephone.Contains(search) || m.e_mail.Contains(search) || m.roleName.Contains(search));}//判断是否选择时间段if (!string.IsNullOrEmpty(foundTime)){foundTime = foundTime.Replace(" - ", "~");string[] strs = foundTime.Split('~');//根据 " - "分割字符串if (strs.Length == 2){DateTime dtStart = Convert.ToDateTime(strs[0]);DateTime dtEnd = Convert.ToDateTime(strs[1]);list = list.Where(o => o.foundTime >= dtStart && o.foundTime <= dtEnd);}}//数据的总条数var row = list.Count();List<userVo> user = list.OrderBy(o => o.userID).Skip(layuitablepage.GetstartIndex()).Take(layuitablepage.limit).ToList();LayuiTableData<userVo> layuitableData = new LayuiTableData<userVo>();layuitableData.count = row;layuitableData.data = user;return Json(layuitableData, JsonRequestBehavior.AllowGet);}#endregion

新增部分:(注:本人给它做了拓展,添加了图片)

   //新增模态窗口function openModal() {//修改标题$("#modalTitle").text("新增图书馆信息");//重置表单$("#userform")[0].reset();//清空input标签$("#upImage").val(null);//手动修改userID$("#userID").val(0);//移除src属性$("#studentPicture").removeAttr("src");//打开模态窗口$("#addModal").modal('show');}//新增操作和保存修改操作function saveForm() {//通过序列化获取参数var formArr = $("#userform").serializeArray();console.log(formArr);//文件上传表单var upFormData = new FormData();//把参数Array转换为Objvar formData = {};for (var key in formArr) {formData[formArr[key].name] = formArr[key].value;upFormData.append(formArr[key].name, formArr[key].value);}//把文件数据添加到upFormData.append("upImage", $("#upImage").get(0).files[0]);//数据验证if (formData.userName == undefined || formData.userName == "") {layer.alert("请输入用户名");return;}if (formData.idCard == undefined || formData.idCard == "" || idCardNo(formData.idCard) == false) {layer.alert("请输入正确的身份证号");return;}if (formData.telephone == undefined || formData.telephone == "" || !/^1[3-9][0-9]{9}$/.test(formData.telephone)) {layer.alert("请输入正确的电话号码");return;}if (formData.address == undefined || formData.address == "") {layer.alert("请输入家庭住址");return;}if (formData.e_mail == undefined || formData.e_mail == "") {layer.alert("请输入邮箱地址");return;}if (formData.account == undefined || formData.account == "") {layer.alert("请输入正确的电话号码");return;}if (formData.password == undefined || formData.password == "") {layer.alert("请输入正确的电话号码");return;}if (formData.roleID == undefined || formData.roleID == "") {layer.alert("请输入正确的电话号码");return;}var url = "/BaseInfor/User/addInfor";if (formData.userID != undefined && formData.userID != "" && formData.userID > 0) {url = "/BaseInfor/User/saveamendInfor";}//开启加载层var layerIndex = layer.load();//表单提交$.ajax({type: 'post',url: url,contentType: false,processData: false,data: upFormData,success: function (jsonMsg) {layer.close(layerIndex);layer.alert(jsonMsg.Text);if (jsonMsg.State) {tabuserSearch();//刷新表格$("#addModal").modal("hide");//关闭模态框}}})}

控制器新增方法:

#region   新增信息public ActionResult addInfor(UserInfor user,HttpPostedFileBase upImage){ReturnJson msg = new ReturnJson();//数据验证if (!string.IsNullOrEmpty(user.userName)){if (IdCardHelper.CheckIdCard(user.idCard)){if (!string.IsNullOrEmpty(user.address)){if(Regex.IsMatch(user.telephone, "^0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[89])[0-9]{8}$")){if (Regex.IsMatch(user.e_mail, "^([a-zA-Z]|[0-9])(\\w|\\-)+@[a-zA-Z0-9]+\\.([a-zA-Z]{2,4})$")){if (!string.IsNullOrEmpty(user.account)){if (user.roleID > 0){#region 图片//检查存放的目录是否存在if (!System.IO.Directory.Exists(Server.MapPath("~/Document/Pictrue/"))){//创建目录System.IO.Directory.CreateDirectory(Server.MapPath("~/Document/Pictrue/"));}//判断文件是否上传if (upImage != null || upImage.ContentLength > 0){//获取文件扩展名string strName = Path.GetExtension(upImage.FileName);//生成一个新的文件名string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + "_" + Guid.NewGuid().ToString() + strName;//文件路径string filePath = Server.MapPath("~/Document/Pictrue/") + fileName;//将上传的文件保存到指定的路径下面upImage.SaveAs(filePath);//将文件名保存到photoName字段中user.photoName = fileName;}//保存到数据库 二进制数组大小就文件大小byte[] imageBytes = new byte[upImage.ContentLength];//读取流到二进制数组 byte数组 ,开始位置,结束位置upImage.InputStream.Read(imageBytes, 0, upImage.ContentLength);//保存到对象user.photo = imageBytes;#endregion//去空格user.idCard = user.idCard.Trim();user.telephone = user.telephone.Trim();user.e_mail = user.e_mail.Trim();user.account = user.account.Trim();//检查重复int repeat = myModal.UserInfor.Count(a => a.idCard == user.idCard || a.telephone == user.telephone|| a.e_mail == user.e_mail || a.account == user.account);if (repeat == 0){user.foundTime = DateTime.Now;user.effective = true;//保存到数据库myModal.UserInfor.Add(user);if (myModal.SaveChanges() > 0){msg.State = true;msg.Text = "新增成功";}else{msg.Text = "新增失败";}}else{msg.Text = "该信息已存在";}}else{msg.Text = "请选择用户角色";}}else{msg.Text = "账号不能为空";}}else{msg.Text = "请输入正确的邮箱地址";}}else{msg.Text = "请输入正确的电话号码";}}else{msg.Text = "请输入家庭住址";}}else{msg.Text = "请输入正确的身份证号";}}else{msg.Text = "请输入用户名";}return Json(msg, JsonRequestBehavior.AllowGet);}#endregion

最后让我们来看看效果
表格查询

新增数据

以上就是我们今天所讲的内容,让我们下期再见。

图书管理系统之用户信息维护相关推荐

  1. 图书管理系统-用户信息维护-查询

    控制器代码: #region查询 publicActionResult selectUser(LayuiTablePage layuiTablePage, string searchTxt, int? ...

  2. 库存管理系统(用户信息的增删改查)

    视图层 package com.hyg.view;import java.util.List; import java.util.Scanner;import com.hyg.model.User; ...

  3. C#图书管理系统之用户登陆界面实现(一)

    使用MVC思想,大题目录结构如下 设计表 数据库连接工具类 using System; using System.Collections.Generic; using System.Data.SqlC ...

  4. 【JAVA项目实战】【图书管理系统】用户查询功能【Servlet】+【Jsp】+【Mysql】

  5. 【JAVA项目实战】【图书管理系统】用户删除功能【Servlet】+【JQuery】+【Mysql】

  6. 【JAVA项目实战】【图书管理系统】用户更新功能【Servlet】+【Ajax】+【Mysql】

  7. 【JAVA项目实战】【图书管理系统】用户添加功能【Servlet】+【Jsp】+【Mysql】

  8. python 用户信息管理系统【各个函数剖析 + 完整代码 零基础适用篇】

    这个用户管理系统小白也能轻松掌握,只用了函数,用户信息只有两个:姓名(账号)和密码,采用字典存放数据,字典的键即为姓名,值为密码,功能分为两大部分,第一部分为用户的登录和注册,第二部分为管理员对信息的 ...

  9. 图书管理系统---用户模块

    开发工具与关键技术:开发工具vs, 撰写时间:2021年10月19日 图: 用户信息维护:图书信息维护用于查看用户的信息,这个用户信息维护包含了查询.新增.修改.删除的功能,如果需要查询表中账号信息可 ...

最新文章

  1. 【转】从3个科技公司里学到的57条经验
  2. Elasticsearch未授权访问+Kibana任意操作
  3. 使用Fiori elements技术开发的ui5应用,方便大家参考
  4. Android 系统权限
  5. java管理员登录_idea实现管理员登录javaweb
  6. 解决ubuntu中vi不能正常使用方向键与退格键的问题 - 部分按键无法正常使用 按键乱码...
  7. esp8266 rtos 开发环境 ubuntu_esp8266/32~资源帖[持续更新]
  8. JS 打印 data数据_小程序导出数据到excel表
  9. 奇怪,Python有的函数调用需要两对括号?(2)
  10. python字符串驼峰转换_驼峰风格字符串转换为下滑线风格字符串
  11. javascript getBoundingClientRect()获取元素四个边相对于窗口或文档的位置
  12. SpringMVC实现ajax上传图片实时预览
  13. 【干货分享】如何使用英文字体做出高逼格的杂志封面
  14. ubuntu中非常好用的PDF软件—okular
  15. 计算机音乐数字乐谱周杰伦,周杰伦的歌《安静》的数字乐谱是什么??
  16. vue 中引入阿里云的云盾防水墙
  17. 在计算机中添加用户时提示拒绝访问,教你怎么解决打印机拒绝访问问题
  18. python 抓取上交所、深交所互动版块的投资者提问(散户评论)
  19. windows11系统下vone客户端连接服务器失败,请确认网络连接是否正常解决方案
  20. 《缠中说禅108课》1:不会赢钱的经济人,只是废人

热门文章

  1. ei拼音的四个声调对应的字_幼儿园学前班拼音教案:复习 ei 以及四声调
  2. html 拓扑图 开源,GitHub - pylixm/zJTopo: 开源拓扑图工具类jTopo的扩展,jtopo是一个不错的拓扑图,基于html5 canvas,功能强大...
  3. 打破微信扫码进群限制,我用webot社群助手是怎么办到的?
  4. springMVC+jquery实现图片上传
  5. 62-Mybatis高级介绍
  6. 支持DoH的DNS服务器,使用 Docker 自建支持 DoH、DoT 的 DNS 服务器
  7. html5 自动格式化,VSCode插件JS-CSS-HTML Formatter自动格式化代码
  8. 美团java面试_2020年美团Java一面,美团面经面试流程面试题整理
  9. 七代处理器装win7_7代cpu能装win7旗舰版吗?七代处理器 不能装win7的解决方法
  10. ASM和AAM的一些代码资源