基于ruby on rails的企业汇报系统

企业汇报系统基础功能实现:

1)添加单个企业展示

2)在企业下可以添加 层级,可以无限叠加

3)每个层级下可以展示汇报文档点击单个文档标题 可以查看文档内容


1/确定数据库表,即单个企业的基本展示信息

1)company公司部门层级表,应有的属性name,pre.id

2)doc文档信息表,应有的属性title,content,com_id

3)user用户信息表,应有的属性name,password,type,com_id

4)operation_log操作记录表,应有的属性有time,desc,user_id

注意:

        ·命名一定要有意义,让自己一目了然;

       ·字段的数据类型,如publish_timestring

       ·后期添加字段,$railsgmigration add_some_to_docs,rb文件add_column:docs,:p_user, :integer

      ·直接对数据库进行基本数据操作,如deletefrom docs; insert into docs(title) value('ss')

2/在企业下实现层级的无限叠加

1)company_controller.rbindex接收id赋值给@pre_id

2)company/index.html.erb:表格显示部门信息,有下属部门/删除/更新/新增部门基本操作

3/每个层级下可以展示汇报文档点击单个文档标题可以查看文档内容

1)doc_controller.rbnewDoc表里查询com_idid值参数的记录,并赋值给docs

2)doc/new.html.erb:表格显示部门文档信息,有基本操作内容,通过页面链接找到方法,再到对应页面展示

4/文档批注审核

1)doc/new.html.erbhref="/doc/toexamine?id=<%=doc.id%>"将文档的id作为参数传到方法

2)doc_controller.rbtoexamineDoc表里查询id为”id”的数据,并赋值给@doc

3)doc/toexamine.html.erb:输入审批内容后,提交,触发动作examine

4doc_controller.rbexamineDoc表里查询id为”id”的数据,并赋值给@doc,在User表里查询id为”user_id”的数据,并赋值给@user,在Company表里查询id

@doc.com_id@user.com_id的数据,判断@doc@user的级别,有权限则修改文档状态,将部门com_id作为参数传到方法new,展示部门文档状况,否则将文档

doc.id作为参数传到方法nopermission

5doc_controller.rbnopermission接收。调用nopermission.html.erb显示sorryno…

5/汇报或者用户的软删除,可以进行恢复

1)doc/new.html.erbhref="/doc/recovery?id=<%=doc.id%>",将文档的id作为参数传到方法

2)doc_controller.rbdelete3Doc表里查询id为”id”的数据,并赋值给@doc,取出@doccom_id并赋值给@com_id,更改文档状态为0即不可用,调用save

存,将部门com_id作为参数传到方法new

3)文档恢复同上,更改文档状态为1即可用

6/用户的操作日志

1)user_controller.rbindex调用index.html.erb页面,登录触发login动作

2)user_controller.rbloginUser表里查询name为“name”password为”password”的数据,并存入@user,若数据为空,则返回登录页面,否则将@user的第一条

数据的user.id存入Hash对象session,其键名为user_id

3)doc_controller.rb:定义方法savelog,保存时间,操作描述,用户id,并在每一次操作后调用该方法

4)company/index.html.erbhref="/operationlog/index"调用operationlog模型的index方法

5)operation_controller.rbindexOperation表里查询user_idsession[:user_id]的第一条数据,并存入@oplog

6)operationlog/index.html.erb:表格显示操作日志

7/权限管理

doc_controller.rb:定义方法haspermission(com_id)

8/查看某个部门下得文档+(N多条件同时条件可选的),比如发布时间审核时间审核状态

@docs=Doc.where("p_time <=?",q_time) .where(:examine_status=>[:examine_status])

.where("examine_time<= ?",e_time)

 注:不需要传递id参数

9/对一个部门或者企业下面的所有的汇报,出报表最好能出chart

1)Echarts:实例应用:ahttp://echarts.baidu.com/doc/start.html bhttp://echarts.baidu.com/doc/example/bar1.html

2)jquery学习



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值