最近美國又他媽的皮癢了,在南海找事,還說什麼中國必須接受南海仲裁結果,我去你大爺的,你覺得你是誰啊。說實話只要咱們要決一雌雄的勇氣,還管什麼華盛頓航母,佛吉尼亞潛艇,大不了你們一塊兒死,不,全世界一塊兒死。怎麼個死法,中國惹急了先給俄羅斯來幾顆核彈,而後俄羅斯反擊中國的同時,也會給歐洲扔幾顆核彈,給美國扔不少核彈,而後歐洲英法會給其餘國家扔核彈,美國給世界扔核彈,俄羅斯只給北冰洋扔就好了,中國給美國和太平洋扔就好了,這樣世界就不復存在了。mysql
今天咱們來看一下文件權限管理,這個實際上是對共享出去的文件的一個簡單的權限管理demo。在上節我寫過的界面中,能夠查詢本身共享出去的文件。ajax
勾選Shared,咱們查出本身共享出去的文件。或者咱們能夠經過點擊ToolBar上面的SHARE按鈕,實現共享文件。sql
1mongodb 2數據庫 3json 4api 5數組 6微信 7mvc 8 9 10 11 12 13 14 15 16 |
|
首先是找到選中的文件的_id,而後調用shareUpdate方法去共享。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
|
發送一個ajax請求,去修改傳入文件的共享屬性,看一下效果
先會彈出確認,點擊Yes,調用api file/share去修改共享屬性,看一下後臺。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
在後臺,先把json字符串轉化成js對象,而後用mongoose提供的update方法去批量更新數據。注意這裏的$in,實際上是和sqlServer中的in一個意思,$set意思是須要修改的屬性,你能夠在這裏寫多個屬性進行修改,並不必定只是一個isshared屬性,而後最後的multi:true,意思是更新多個doc。因此整個修改的意思就是找到_id在idArray中的file docs,而後將其isshared屬性所有修改成傳入的值。固然在這裏你也可使用mongoose中的findAndUpdate方法去作批量更新。
文件share好以後,咱們看一下共享文件權限設置界面。
查詢出數據後,每一個文件均可以設置權限,這裏很簡單的三個,要真作權限,仍是買吉日嘎啦的走火入魔權限管理系統好了,本身不要瞎折騰。OK,那麼這三個權限使咱們mongodb數據庫中配置的。
咱們在界面能夠選擇一個或者多個。
選擇完成後,點擊Save,若是不想修改了,點擊cancel,能夠回到初始狀態,咱們來看一下js代碼。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
|
你們注意isShared這一列,是個下拉列表,支持多選,而後在數據綁定完成之後,循環裏面的下拉列表,將其渲染成kendoMultiSelect,注意這裏的dataSource參數,若是authArray已經取到了,則使用,不然調用後臺api獲取。
1 2 3 4 5 6 7 8 |
|
若是在這裏直接使用每次請求的話,會存在不少問題,性能問題,界面渲染也會出現一些重複渲染的問題。由於你們的auth都是同樣的,因此咱們先取到再說。
1 2 3 4 |
|
OK,接下來咱們看一下Save功能,在grid的定義中,咱們能夠看到save調用的是updateFileAuth方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
根據當前行拿到id,再根據id拿到下拉選中的值,kendoMultiSelect的value方法返回的就是一個數組。
最後咱們將獲得的數組傳遞到api去修改權限,看一下後臺。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
在這裏咱們先將權限的id轉化成ObjectId,再根據傳入的文件id進行修改,ok,save就說完了。
再看一下cancel,其實就是將該行的權限id再賦給下拉列表。
1 2 3 4 5 6 7 8 9 10 11 |
|
ok,最後就是batch批量設置,勾選數據,點擊ToolBar上的BATCH SETUP,咱們先看頁面的代碼。
這裏的fileAuth_Window就是批量設置界面,在這裏你們發現了一個循環的寫法,不錯,這就是jade模板中的語法,相似於razor視圖引擎同樣。看到這樣的循環,咱們在後臺必須有代碼要給頁面這些值,相似於asp.NET mvc中頁面綁定的Model。
1 2 3 |
|
看到了吧,在向客戶端輸出頁面時,同時傳了一個對象,對象中的authArray的值爲doc。這樣的話,咱們就能夠在頁面直接使用這個變量authArray。
咱們選擇三個,點擊SETUP,AJAX調用後臺api批量設置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|
上面這段代碼有沒有很像C#中的委託呢?有點。最後咱們看一下後臺的批量設置api代碼。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
這樣就設置成功了,咱們來看一下效果。
好了,下節進入咱們的關鍵點,Excel在線保存,編輯。
結束語
免費學習更多精品課程,登陸樂搏學院官網http://h.learnbo.cn/
或關注咱們的官方微博微信,還有更多驚喜哦~
本文出自 「技術創造價值」 博客,請務必保留此出處http://leelei.blog.51cto.com/856755/1812777