基於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學習



發佈了33 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章