想做一个线上待办清单引发的思考 - Node开发

启动服务
打开VS
久违的动作
幸好自己还没有忘记

领导有个习惯,每次都会把部门的待办事项用excel列出来,然后邮件发送给下属并抄送给上级,便于跟进工作事项,任务列表一更改然后再发送一遍邮件,这种管理方式没什么问题,但是这种操作方式实在是低效。

我决定做一个简单的线上待办清单,领导添加待办事项,下属可以更改状态,还有一个最关键的功能就是发送邮件功能,一键发送待办清单给下属并抄送上级领导,在传统企业里邮件真是必不可少的。

1. 数据库准备

动手开发前先把数据库创建了,由于上次学习了ORM模块,不用再在数据库里操作SQL语句了,直接上代码写上数据表的结构以及一些初始数据的导入代码。具体示例可以参照: 初步使用sequelize模块 - Node实战

2. 前端页面折腾

数据库结构搞定之后,开始折腾前端页面的设计,也不想重新写页面了,直接copy之前项目的代码,短短半个小时,前端页面就搞定了,如下图:「PS. 结果后面又调了两天,醉了」

前端表格使用的bootstrap table制作,与后台数据库的交互直接使用Ajax异步处理,现在先编写获取数据的API,简单如下:

// find: 获取table的数据
router.get('/bootstrapTable', function (req, res, next) {
  todolist.findAll({
    order: [['id', 'desc']]
  }).then(function (r) {
    res.send(r);
  });
});

一并写完增删改查,前台页面就可以简单的调用API就能实现一些功能了,例如添加列表功能,更改列表以及删除列表。

3. 清单编辑功能

最近几次开发都是使用Bootstrap Table来展现列表,这块也是最折腾时间的地方,每次写这个表格,总是有一堆奇奇怪怪的想法想要去实现,没有一个整体的规划,功能来回调整,于是在这上面浪费很多时间。这次主要折腾了字段编辑功能,以及更改列表功能。

更改表单的功能有两种方式:一是使用modal弹出表单的方式;另一种是行内编辑的方式;modal弹出表单的方式会添加大量的js脚本,后期管理起来非常的不方便。而行内编辑的方式,虽然不用写大量的代码,但是功能上就比较单一了。

总体来说,两种方式都不是挺理想,我觉得我应该学习一些新的技术了,例如Vue。后来还是选择了modal弹出编辑的方式,功能做了一半,我突然就想,为什么要有更改功能呢?,总是用开发者的思维去做产品肯定不行,开发者认为增删改查是最基本的功能点,而用户在用产品的时候,其实并不一样,用户关心的是功能点,我做这个产品,面对的用户是谁?我得好好想想再动手......

4. 邮件功能

起初想着,在每条列表的后面加上一个操作功能-发邮件,使用简单的mailto:lupeng@xxx.com链接,来触发系统默认邮件客户端来发送邮件。


后来仔细考虑了一下实际使用场景,放弃了这种方式,平常使用的时候,基本上都是表格所有的内容一并发送,来达到提醒的作用,而非督促完成每一条任务清单。另外,发送邮件最好能真正意义上的一键发送,需要省掉中间弹出邮件客户端的环节。

想明白实际的使用场景后,那么邮件的功能就需要更深入一点,需要引入邮件模块,取代使用客户端的作用。

开发过程中的一些想法,作参考,希望能给你一些启示,项目地址:https://github.com/pengloo53/info


Comments
Write a Comment