🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 前言 本文主要介绍 http://10.0.16.26:1042/guest/1/51305/510770/1?sign=test&t=1 ,地址中各个参数的含义以及项目中对应的代码解释。 ## 路由匹配 ### 匹配原则 在封装的web框架中,路由定义有两种,一种是config/routes.js, ``` module.exports = { 'get /':"index.showHome", 'post /login':'index.getDate' } ``` 另一种是直接在控制器中定义全局的路由的meta ``` module.exports.meta ={ getDate:{ url:'/login', methods:['post'], bodyParser:true } } ``` 备注:模块说明地址:[https://npm.taobao.org/package/kk-koa-framework](https://npm.taobao.org/package/kk-koa-framework) ### 匹配结果 #### 控制层在/src/controller/standard.js 匹配到的为live,路由为:/:identity/:userId/:lessonId/:periodId/:partId,其中identity为变量,代表身份,为guest的时候只能看到课件,为teacher的时候,可以看到互动白板,使用的视图为index,主要内容:改变语言;websocket的连接纠正;过滤视频列表 其中identify的有效值,teacher/student/guest,会定义在window.system.identify;guest的时候没有工具栏,学生的时候显示部分工具,老师显示全部工具栏,翻页的时候显示全部。 第二个参数为lesson ID,也就是51305; 第三个参数为课时id,也就是510770; 第四个参数为partid,为1 ; #### /index.js 另外也会进入到/index.js 中,匹配到的为index,路由为/:periodId,使用的视图为vroom,主要内容,返回libs的资源包。 ## 页面 页面在views/index.pug中,其中div的关键属性data-entry-class="Main" 代表了白鹭引擎的入口是整个白板项目src项目Main.ts。 其中有个方法是控制是否显示控制板的, ``` // 控制system中的控制面板的值改变 window.showControlPanel = function(flag){ if(window.system){ window.system.controlPanel = flag } } // online/vroom直播中 根据等级和是否是学生 去执行window.showControlPanel方法,改变window.system.controlPanel 的值。 if(this.isLv2 && this.isStudent){ LessonAgoraSubject.next({ type:"controlState", v:0 }) window.showControlPanel(0) } ```