一、功能实现 其他主要包括(开通工号、用户资料维护、票证下发、导出AR数据、导出LK数据、航班维护、密码修改)的功能模块。1.密码修改:见图1,是密码修改模块实现界面。
在输入原来密码,并且不正确时,见图2,会导致新的密码无法输入的情况,原来密码后面也会有相对应的提示(当密码正确时解开新密码锁定限制)
密码修改成功之时,会有提示。
技术点:当原密码输入,会自动触发密码校验,校验通过时,触发密码保存事件经典代码:(数据库密码判断)
密码模块总结:通过密码修改模块,让我对密码的理解有了更加深刻的印象,在经过原来密码认证的情况下,对数据库中【该用户】精确查询,修改用户密码,再此,对密码的保护措施中,运用到了AESEncry的密码加密程序,要将用户输入的新密码进行加密处理,与第二次密码比较,确认无误之后,方可进行密码修改操作。
二:表的关系
2.航班维护模块:如图1,为航班维护的功能大致
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200818145536510.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RvbWVkaXRhdGlvbg==,size_16,color_FFFFFF,t_70#pic_center)
存在对指定航班的查询,添加,修改,删除(1)当你点击图1中”查询“按钮时,指定的航班资料的信息就会进行筛选并展示。(2)当你点击图1中“添加航班”按钮时,会弹出对应的航班新增模态窗体,如图2
对于新增航班,要处理已经存在的数据选择(避免重复添加)导致数据混乱。(3)当你点击图1中”自动添加航班“按钮时,跳转到航班自主添加,填写数据,如图3
修改、删除:(同理可得)
//注释:行监听事件。layTable.on(‘row(tabFlight)’, function (obj) { obj.tr.addClass(‘layui-table-click’).siblings().removeClass(‘layui-table-click’);}3.导出AR/LK数据模块(AR:订单,LK:旅客)
(1)当你点击图1中”导出AR/LK数据“按钮时,将会将数据进行导出操作,导出的同时【判断……】,如图4
经典代码:
导出总结:上面描述内容有限,更多详情,请观看导出/导入专题。 4.票证下发模块
上图是票证下发模块的功能图,在选择对应的工号之后,填写下发票数,点击“下发票数”按钮即可完成对指定工号的可用票数,下发的票数用于对旅客的订票听提供必要的帮助下发成功之后,会有相对应的提示。
如图所示:
经典代码:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200818150026599.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RvbWVkaXRhdGlvbg==,size_16,color_FFFFFF,t_70#pic_center)
5.用户资料维护:对指定用户的资料进行相对应的管理,完成对应的指令,赋予不同的功能,实现多功能一体化发展 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200818150403492.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RvbWVkaXRhdGlvbg==,size_16,color_FFFFFF,t_70#pic_center)
I.如图所示,点击“导入用户”按钮,弹出来相对应的提示框,完成下载模板、选择模板、最后导入数据。在进行用户导入过程中,要对指定文件进行判断处理(对数据库已经存在的数据判断,以及用户名等……以及保持数据唯一性),避免数据混乱。
思路解剖:下载模板(导入的下载模板,判断文件是否存在,获取文件名称,返回文件),选择模板(打开文件对话框,选择并且输出数据【window.Open】), 导入用户(1、获取上传的文件;2、把文件转换为二进制数组;3、二进制数组转成内存流;4、利用NPOI把内存流中的数据读取成Excel5、使用NPOI读取数据)
II.如图所示,点击“作废”按钮,对选中的用户进行数据格式化,将数据回收,回收之后将无法在对该用户的任何功能进行操作【例如:登录该用户,对该用户进行业务处理……】
等同于“信息灰化”,不再利用。 III.点击“修改”按钮之时,对该用户的数据一一回填上去,让管理员选择数据(更改)。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200818150515918.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RvbWVkaXRhdGlvbg==,size_16,color_FFFFFF,t_70#pic_center)
思路解剖:数据回填,点击确认,进行重新判断数据(完整性),对密码不做严格要求,如有填写密码,要对密码进行AESE加密处理,方可保存到数据库,对图片也不做严格要求,如有上传,要将数据库中已经存在的图片信息替换(将对应用户的图片删除【在上传新的图片】保存)。
IV.删除,点击“删除”按钮,会第一时间提醒,将数据删除,也就是说,相当于【作废】,唯一不同之处就是,作废可以重新启用(方可继续使用),而删除就是将数据“粉碎化”,没了就是没了。通俗的说,作废是可以再生的垃圾,删除是不可再生的垃圾。对数据一一查询并且删除(remove) V.查看按钮经典代码:
function openUserPicture(picture) { //图片路径 var pictureUrl = '@Url.Content("~/Document/UserPricture/")' + picture; //图片【根据图片路径找出图片并且设置样式】 var img = '<img src="' + pictureUrl + '" style="max-width: 500px;max-height: 500px;">'; //因为点击图片区域要跳转到图片上传界面【会话框】 layer.open({ type: '1', title: false, closeBtn: 0, shadeClose: true,//点击遮罩层关闭弹窗 content: img //弹窗显示内容 }) } 思路:找到图片路径,将图片路径转换成img格式,并且用layer(弹出层).open({ 打开,对应的,要去除原来layer中存在的元素,例如:类型(type),标题(title),关闭按钮(closebtn),遮罩层关闭弹窗 (shadeClose)……}) Layer中的content【内容】要填写img格式的。
6.开通工号模块
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200818150638370.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RvbWVkaXRhdGlvbg==,size_16,color_FFFFFF,t_70#pic_center)
思路:与删除相对,如果你一不小心删除了不用删除的用户,想挽救一下,不用担心,这个就可以完成。填写数据,确认之前,判断数据的合理性,给予添加工号。 经典代码:(数据判断)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200818150658534.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RvbWVkaXRhdGlvbg==,size_16,color_FFFFFF,t_70#pic_center)
A模块模拟总结: 当然对数据库表与表之间的关系掌握程度也会得到一个提升,对自身的思维有了一定的拓展,知道面对复杂的事务处理,没有一定的思维逻辑是无法完成开发的。