Skip to content

Latest commit

 

History

History
75 lines (61 loc) · 2.66 KB

3.md

File metadata and controls

75 lines (61 loc) · 2.66 KB

是时候展示复制粘贴的魅力了

前面完成了mod模块的基础页面,这一章主要是基于mod写好的代码,来实现部门、角色、用户模块.
展现复制粘贴在一个有规范的代码中,发挥重大作用的魅力.

tag: 0.3.2

后端

涉及文件

account/controllers/user.py

代码

主要做了两个事.


在get_users方法中,排除超级管理员用户,也就是超级管理员在用户列表中不可见.


在get_user_info方法中,给admin用户增加返回mods.

mods = ['mod', 'department', 'role', 'user']

因为接下来我们要写部门、角色、用户的前端页面了.

前端

涉及文件

src/api/user.js
src/api/system/user/url.js
src/api/system/user/index.js
src/store/modules/user.js
src/views/system/user/index.vue
src/views/system/user/components/ObjDialog/index.vue
src/router/modules/system.js
src/views/system/department/index.vue
src/views/system/department/components/ObjDialog/index.vue
src/views/system/role/index.vue
src/views/system/role/components/ObjDialog/index.vue

概念

添加一个模块功能需要涉及几个地方.
在apis下面管理对接的接口.
在views下面管理展示的页面.
在router下面管理路由规则.

代码

src/api/user.js、src/api/system/user/index.js、src/api/system/user/url.js、src/store/modules/user.js:
直接复制src/api/mod目录,粘贴后重命名成src/api/user.
将复制过来的文件中mod替代成user、Mod替换成User.
将src/api/user.js中内容,复制到src/api/user/index.js中,并根据现在的方式修改.
修改src/store/modules/user.js引用上述相关接口的位置.
删除src/api/user.js文件.


src/views/system/user/index.vue、src/views/system/user/components/ObjDialog/index.vue:
直接复制src/views/mod目录,粘贴后重命名成src/views/user.
将复制过来的文件中mod替代成user、Mod替换成User.
按用户所需信息,修改对应字段.
src/router/modules/system.js中添加user路由(直接复制mod的修改).


部门和角色与上面用户的操作相同,通过复制粘贴,修改来完成.

总结

复制粘贴是一门技术,并不丢人.
丢人的是复制粘贴无用的代码.
有人可能会说,这代码其实可以再抽象一下,就可以直接通过传参来完成了.
但是我认为已经没有必要了,不同功能页面随时可能会修改的不一样.
前期只是通过现在这种手段快速出东西而已,后期变化可能会很大.
现在相当于在画草图,也就是北北画画的开始.