看到了吧,这就是主界面,首先咱们来看一下My Document的View部分。在看View以前,咱们先看一下Mode的设计。javascript
1css 2html 3java 4正则表达式 5json 6bootstrap 7api 8微信 9app 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 |
|
咱们设计了文件Schema,fileSchema,注意这里的sparse:true,意思是发散索引,即非汇集索引。
1 2 3 4 |
|
还有这里,咱们预约义一个方法,当更新fileModel的时候,会先更新lasteditdate,再更新其余字段,由于咱们更新的话,最后修改日期确定是当前时间,也不须要用户每次都去传,因此这里预约义仍是颇有用处的。
接下来就是文件组和文件子组,总共两级,文件组和包含文件和子组,子组只能包含文件,因此这里设置及的时候,fileGroup中有个subgroup的定义,注意这里的subgroup它不是一个引用ref,而是嵌入的文档,是一个总体,可是它对file是只是一个主键的引用。
最后咱们将这些定义好的model模块化公开出去。
1 2 3 4 5 6 7 8 9 |
|
接下来咱们先看一下View页面的定义。
1 2 3 4 5 6 7 8 9 |
|
在个人文档咱们包含了两个页面,dicview.jade和docedit.jade,看一下docview。
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 |
|
这个页面包含一个Owned Document和Shared Document,咱们看一下js部分。
1 2 3 4 5 6 7 8 9 10 11 |
|
页面load完成后,直接查询。
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 |
|
拼好查询json对象后,post到api去查询,而后根据返回的数据去构造kendoPager,最后咱们去构造文件列表,每一个文件在双击的时候,都会跳转到index界面读取文件的内容展现在kendospread sheet上。咱们看一下效果。
分页,点击2到第二页
分页是没有问题的,美观大方。OK,对于Shared Document的js代码,和上面的基本同样。
看上去只是多了个tooltip的说明,其实这个效果是bootstrap提供的,咱们只须要写以下的代码便可。
1 2 3 4 5 6 7 8 |
|
OK最后咱们看一下rest api。
1 2 3 |
|
根据url咱们知道方法在filemng.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 |
|
注意这里的查询,对于filename的模糊查询,用正则表达式。对于日期的查询,咱们用gte和lte,大于和小于。最后咱们先算出总数,再拿到分页的数据,将数据拼成json对象输出到客户端。
用robomongo查了一下,确实也是22条数据
共享的文件也只有2个
OK,今天就到这里,若是你们想要源码,估计要到实战15之后了,慢慢等吧。
结束语
免费学习更多精品课程,登陆乐搏学院官网http://h.learnbo.cn/
或关注咱们的官方微博微信,还有更多惊喜哦~
本文出自 “技术创造价值” 博客,请务必保留此出处http://leelei.blog.51cto.com/856755/1795164