[关闭]
@Belinda 2016-01-11T06:45:49.000000Z 字数 12438 阅读 1140

mobile-front

前端结构


功能:用户注册审批流程

用户选择角色后注册,填写相关信息,点击提交,注册相关信息,注册成功,则存储用户的相关token,判断用户状态,若用户邮件激活成功,直接进入注册邮件激活界面。若用户没有邮件认证,进入邮件激活页面,用户激活后进入到审批流程。获得用户审批状态,如果用户还没有提交过材料,进入到认证界面,传入参数(approval,及user),不同的角色有不同的审批流程,创业者需要经过,手机-名片-身份证-产品信息-领域-天使信息。投资人,天使,FA则需要经过,手机-名片-头像-领域-基金类型-常驻城市。

需要经历的控制器有:
1. roleSlectCtrl
2. SignupCtrl-(api 服务 Auth)
3. ApprovalCtrl

功能:投资人主面板

  1. 投资人收件箱


    1. 投资人可以在收件箱中查看个人收件箱中的项目以及机构收件箱中的项目
    2. 在机构项目中可以进行转发和感兴趣处理,点击转发可以转发机构中的同事,点击感兴趣可以把项目添加到自己的感兴趣列表(具体逻辑后端处理),拉起邮件模版,激活其它状态的使用
    3. 点击 header 中的tag健,可以进行个人和机构收件邮箱切换
    4. 投资人自己的收件箱中,有三种列表,待处理列表,感兴趣列表,稍后处理列表,对应于投资人的收到项目的“默认待处理“,”感兴趣“,”稍后处理“状态,投资人对项目不感兴趣时,项目放到投资人右侧边栏的归档项目列表。

投资人项目列表对应的控制器有

  1. forwradEmail.coffee
  2. forwradMate.coffee
  3. investorIndex.coffee
  4. investorMarket.coffee
  5. investorProjectList.coffee
  6. investorProjects.coffee
  7. investorRegist.coffee
  8. investorVerifyCtrl.coffee

控制器

1.investor index

变量说明:
1. listType 用来控制是投资人个人还是机构
2. selectedMenu 用来控制左侧栏,目录。
2. unreadCount 消息中心未读条数
3. user.grade 用户的资料完整度

  1. 进入 investorIndex控制器,首先初始化listTypeselectedMenu 变量,如果路由中没有指定的 $state.current?.data?.type ,则把 listType 设置成 investor,表示的是当前是投资人列表
  2. 然判断ionic的版本,版本低于 1.2 的则进行处理
  3. 初始化投资人主面板的函数,主要是goto方法,用于跳转到其它功能页面,如个人资料,机构资料
  4. $rootScope,向上广播 system:listenUnreadCount事件,监听事件system:unreadCount,如果有这个事件,更新未读消息的条数
  5. 判断用户的 localStorage 是否有参数 updateLog_1207,若无,则代表没有更新提示,打开更行的弹窗,提示新功能
investorProjectsCtrl

变量说明
1. activeListIndex 当前列表,用来控制项目列表状态,当前列表是待处理,感兴趣还是稍后处理

列表嵌套在 ion-slide-box 中,点击相应的tag 激活refreshList 方法

  1. 进入 InvestorProjectsCtrl控制器,初始化 变量 activeListIndex ,使得进入列表获得的是待处理列表
  2. 定义lists数组变量,
  3. refreshList,用于广播事件 'projectList:refresh',并把当前对应的lists内容传递下去
  4. 监听事件 $ionicView.enter ,即当进入视图时,广播 'projectList:refresh' 事件,并把当前激活的列表参数传递下去
  5. 监听 '$ionicView.loaded' 视图加载完成之后,禁用滑动事件

InvestorOrgProjectsCtrl

投资人主面板中点击 机构跳转到机构路由

1.进入控制器,控制器监听 '$ionicView.enter'事件,视图进入时,广播事件 'projectList:refresh',不传数据

项目列表通用的指令 InvestorProjectListCtrl (投资人主面板项目列表)zlProjectList

指令变量
1. list 项目列表
2. relay_from 存储转发信息变量
3. partner 存储创业者的天使或则FA信息,即推荐人信息
4. 嵌套的指令 zl-project-item
5. firstTimeLoad 控制用户是否是第一次登录,如果是,则引导其去完善资料,若不是,则没有项目时,现实暂无项目的提示

  1. 当控制器实例化时,实例化参数列表,listpagertypescope,limit,from_market,orderBy,这些参数都是再获取 BPRelation 时要用到的
  2. 定义方法 showProductDetail 显示project详情,判断设备是否是手机,来控制ionic 的翻页动画,通过 $state.go ,跳转到 productDetail 路由
  3. 定于 showAdviser 方法 ,显示推荐人和转发人详情,通过 profileFacade,来传递相应的参数,并跳到详情页,判断设备是否是手机,来控制ionic 的翻页动画
  4. 定义方法 gotoInvestorProfile通过 profileFacade,来传递相应的参数,并跳到详情页,判断设备是否是手机,来控制ionic 的翻页动画
  5. 定义 _judgeFirstTimeLoad 方法,判断是否为初次加载
  6. 定义 fetchBpRelations 方法,将刚进入控制器的参数封装到 params 对象中,通过接口获得最新的 BPRelation,判断获取的数量是否在限制内,如果不是,则通过定义的alert 方法 给出提示
  7. 自定义 alert 方法
  8. 监听事件 projectList:refresh 如果没有传递进来的参数,或则传进来的参数和控制器初始化的参数一致,执行下一层判断,若没有控制器的 list 参数为 null 向下广播 'scroll.refreshStart' 事件,否则直接刷新
  9. 判断如果路由参数中有 autoInit 参数,执行刷新函数,
  10. 执行判断用户是否是第一次登录函数

投资人智能匹配

需要注意的是,投资人智能匹配功能中,只有投资人的待处理列表(全部)的进入项目详情的函数是在 investorMarketCtrl 中定义的,其它的是在 zl--project-list 指令中的控制器定义的

变量
1. activeListIndex 控制列表状态,是待处理列表,感兴趣列表,还是稍后处理列表
2. orderBy 控制排序的顺序

  1. 进入控制器,首先初始化参数,activeListIndex,默认为待处理列表。showPopbar = false,默认为收起下拉列表,LISTS 数组,第一组市场没有BPRelation走不同的接口,设为空对象。
  2. 定义方法,showProjectDetail,带参数跳转到 相应项目到项目详情,判断是否是手机设备,如果是,则控制页面跳转的动画
  3. 定义列表刷新函数 refreshList ,如果是待处理列表,则广播事件 'marketPool:smartRefresh',否则广播事件 'projectList:refresh',并把参数传递下去
  4. 定义切换列表标签函数 onTapTab ,如果已经在待处理列表中,点击待处理(全部),则@showPopbar = !@showPopbar控制选择排序的下拉菜单的展开和收起,如果不在待处理列表,点击待处理(全部),则跳转到待处理,如果是跳转到其它列表,则将变量 @activeListIndex 置为相应的索引,切换到相应的列表,收起待处理中的下拉菜单
  5. 定义设置排序方式函数,如果选择的排序和原来的排序一样则排序不变 return,否则变更排序方式,广播事件 marketPool:triggerPullToRefresh
  6. 监听事件 $ionicView.enter ,刚进入视图,如果是待处理列表,则广播 事件 marketPool:smartRefresh 否则广播事件 projectList:refresh,并把相应的列表数据传递下去
  7. 监听事件,$ionicView.loaded,如果视图载入成功,则关闭 ionic 的幻灯片滑动功能

项目详情

变量
1.showHandleBar 用来控制右上角感兴趣邮件icon ,以及底部的操作键的(感兴趣,不感兴趣,待处理)的显示和隐藏
2. aasm_state 用来控制对投资人对项目的态度(感兴趣还是不感兴趣)
3. user.grade 资料完整度,用来显示用户资料的完整度
4. showEdit 用来控制是否显示底部的“编辑我的项目的btn”
5. 底部的 handlebar是通过另一个控制器来控制的

  1. 进入控制器,先初始化数据currentResource = null ,用来判断是创业者还是他的合作伙伴(天使或则fa)编辑的资料,采用不同的保存方式保存。
  2. 定义初始化数据的方法,项目id 等于 路由传来的 id,以及初始化 $scope.template 和 $scope.title 数据,用来控制当前控制器控制的是 项目资料,联系方式,项目介绍,编辑我的项目,的模版(这些只有在有权限编辑的时候才会有用),初始化配置参数和配置函数,配置参数在路由有数据传递过的时候等于传过来的参数,没有传递参数时,等于 false,初始化函数,监听事件 "requestGetRelation" ,如果监听到则调用函数 _requestGetRelation
  3. 定义函数 _init 初始化项目资料和relation 的方法,判断角色。如果不是投资人调用productInit()函数初始化项目信息,如果是投资人,则判断是不是从market 跳转过来如果是,则调用 productInit()函数,调用成功,再调用markAsRead()方法,如果不是从market 中跳转过来的则调用_getRelation()方法,获取最新的relation
  4. token准备就绪,调用_init初始化项目资料和relation
  5. 监听事件 "$ionicView.beforeEnter" ,当视图将要进入的那一刻,执行(如果视图进入的方向是返回,并且是投资人的角色,则直接返回,不做任何处理。如果不满足上面的条件,则更新当前的currentRelation ,和marketView,向下广播事件“productHandlerBar”,并把当前的relation数据传递下去,调用_init() 初始化项目资料和relation
  6. 定义_requestGetRelation() 方法,如果有传入数据,则currentRelationproduct 重新赋值,否则调用_getRelation方法,获取最新的relation
  7. 定于 _getRelation()方法,刷新投资人和创业者的最新关系,也就是获取最新的relation。首先判断是否有传入id,或则能拿到当前的 currentRelation.id,如果没有 id ,则返回,如果有id,则调用 BPRelation 接口,获取最新的 relation ,和项目信息,并向下广播事件 “productHandlerBar”,闯入最新的relation 数据
  8. 定义函数 _loadProduct()加载项目资料,调用Product接口,获取最新的项目信息,向上广播事件“loading:hide”,如果调用接口出错,则按照出错的状态码来进行不同的处理
  9. 定义_loadProductVersion()加载协作后的项目资料,如果当前是协作者在编辑资料,则获取协作者的id。若获取id 失败则直接返回,否则调用 ProductVersion 接口,获取最新的project_versions的资料,若没有project_version则调用ProductVersion 接口的 save方法,向上广播事件 loading:hide,获取最新的 productproject_version_id
  10. 定义 productInit()方法,如果没有传参,则向上广播事件 "loading:show, "正在加载详情...",如果是创业编辑资料,调用_loadProduct()方法,如果是写作者编辑资料调用_loadProductVersion()方法
  11. 定义getPid()的方法,如果是协作者编辑资料,返回 .product_version_id,否则有product_id返回 product_id,没有返回 me
  12. 定义scrollTop 方法,把把手为“productScroll”的内容回滚到顶部
  13. 定义 callReplyEmailModal 方法,如果投资人不是在感兴趣的情况下点击的,则弹出提示,‘感兴趣后才可以回复哦’返回,否则向上广播事件"loading:show", "正在初始化邮件模板...",调用Investor 接口,获取投资人信息,调用EmailSender 服务,调出回复邮件弹窗,回复邮件成功则,alert 回复邮件成功。通过 BPRelation获取最新的relation
  14. (旧方法,现在没有用到)定义editProduct 方法,将编辑状态取反,alert“下方为呈现在投资人面前的效果”
  15. 定义编辑二级页面函数showBaseInfo() 判断用户设备,进入 productDetailInner 路由,根据传入的type 来确定编辑哪个页面,加载哪个模版
  16. 定义资料编辑三级页面函数edit() 跳转到productEdit 路由,传入相应的参数
  17. 定义预览BP函数 gotoBP(),根据路由传递的参数来确定 currentState变量,判断当前角色是否是投资人,如果是免责判断是否是从market 中跳转过来的,再根据不同的跳转方式去获取BP信息,如果不是投资人,则通过product 获取BP。如果BP转话的图片数组thumbs 长度如果是0,则向上广播事件"errorloading:show", "您的 BP 正在加密处理中,请稍候再试"
  18. 定义保存头像函数,调用 getPid() 获取当前编辑人员的id,调用currentResource接口保存图片,alert “修改LOGO成功”
  19. 定义createBPRelation()函数,(marketView的很可能还没有bp_relation,project_id,当investor进行操作前需要先创建bp_relation.
  20. 当所有的异步都成功返回时,调用 createProjectHistory() 方法,获得创建的relationinvestor_id,和project_history_id,调用 BPRelation 接口的save 方法,创建relation,成功后把最新的 currentRelation 赋值,并向下广播事件 'productHandlerBar' ,并床底最新的值。
  21. 定义 createProjectHistory ,方法,调用ProductHistory接口的save方法,
  22. 定义markAsRead方法,调用Investor接口的me 方法,获取投资人自己的个人信息,再调用Product的read接口,传入项目id 和自己的id,如果保存,则根据状态码,alert 提示'您没有权限查看此项目',回到跳转的起始页面

天使主面板

天使主面板在有协作项目时显示项目信息,及项目的协作记录,在没有协作项目的情况下,显示“和我的项目匹配,县级匹配我的项目”,左侧边栏,显示协作项目列表(列表可以上拉刷新,下拉刷新),消息中心,并提供了搜索项目的功能,右侧边栏显示我的资料,投资人列表,设置
变量
1. left.width 左侧边栏的宽度
2. left.WIDTH 左侧边栏的宽度常量
3. left 控制器 PartnerLeftSideMenuCtrl 的别名
4. left.portfolioSearch 搜索的输入变量
5. left.initPortfolioSearch(event) 项目搜索 blur 调用的函数
7. left.getPortfolios() 项目搜索 change 调用的函数
8. leftToggle('addProducts')" 点击我的项目+icon,调用的函数
9. left.searchingPortfolio 控制我的项目+ icon 的显隐,当搜索项目的时候+ icon 隐藏
10. productList 左侧边栏项目列表
11. doRefresh() 下拉项目列表调用刷新函数
12. loadMore() 上拉项目列表调用刷新函数
13. listType 但前主面板所处的面板
14. unreadCount 未读的私信消息
15. rightToggle('profile'),有侧边栏功能切换调用的函数
16. user.grade 资料完整度
17. title 主面板的标题
18. 更具不同的路由加载不同的内容模版

AddProductCtrl

  1. 定义独立作用域
  2. 初始化独立作用域的变量email
  3. 定义 inviteStartupModal 方法,打开弹窗,定义关闭弹窗的函数
  4. 定义表单验证的函数initForm()
  5. 定义 sendInvite()处理邀请创始人逻辑。如果表单验证通过,打开确定框,如果是确定则调用 PendingUser 接口的save函数,若save函数调用成功,则调用 PartnerRelation接口 ,更新 PartnerRelation 关系,alert 发送成功,向上广播 已发送匹配请求,关闭弹窗

PartnerLeftSideMenuCtrl

  1. 定义常量 this.WIDTH ,没有宽度值时,显示的宽度
  2. 定义函数 initPortfolioSearch ,如果是移动设备,则设置一贞 的延时,获取屏幕宽度,赋值给 fullWidth 变量
    ,调用 updateSideMenuWidth(fullWidth),200毫秒后,将searchingPortfolio 设为 true ,隐藏+ icon。
  3. 定义resetPortfolioSearch 方法,调用 recoverSideMenuWidth() 方法
  4. 定义 updateSideMenuWidth 方法,判断是否是移动设备,然后使用 ionic 未暴露的方法,延长 侧边栏的宽度
  5. 定义 recoverSideMenuWidth 方法,判断是否是移动设备,如果是,则将 searchingPortfolio 置为 false,显示添加项目icon ,调用 updateSideMenuWidth 方法,把左侧边栏的宽度减到初始值。
  6. 定义 portfolioSearchBlur 方法,如果输入框还是focus 状态,则将输入框的内容置空,调用recoverSideMenuWidth() 方法恢复,侧边栏的宽度
  7. 定义 getPortfolios 函数,初始化相关参数,调用getRelationData 的方法,获取最新的项目关系
  8. 定义 portfolioScroll 函数,控制侧边栏项目列表的滚动事件

PartnerIndexCtrl 天使/FA主面板的控制器

  1. 初始化 productListPager,和 currentViewRelation 变量
  2. 向上广播事件 "system:listenUnreadCount"
  3. 判断用户设备,如果是pc,则侧边栏的拖动事件置为false
  4. 将 unreadCount置为0,监听事件'system:unreadCount',若有传入数据,则将data 赋值给 unreadCount
  5. 定义 getRelationData 方法,用来刷新协作项目列表,调用PartnerRelation接口,传入参数,调用get 方法,如果成功获取了值,并且协作项目长度不止为0,加载项目列表,并自动跳转到最后一个保存过的项目,向下广播事件 croll.infiniteScrollComplete,如果调用接口出错,则向下广播事件‘scroll.infiniteScrollComplete’
  6. 定义 relationTimer 函数,每15秒,调用一次PartnerRelation函数,获取最新的协作项目列表的资料
  7. 监听事件 "system:logout",如果监听到事件,则停止轮循。
  8. 定义 initRelation 方法,获取天使与创业者的绑定关系数据,向上广播事件,"loading:show","正在获取协作项目数据...",调用 getRelationData 接口,如果有协作项目的资料,则给相应参数赋值,如果没有,则跳转到 partner.addProducts 路由,如果调用接口失败,则向上广播事件‘loading:hide’,根据报错的状态码,进行相应的处理,如果状态码是404,则向下广播事件'scroll.infiniteScrollComplete',将 productList 置空,跳转到添加项目路由
  9. 监听事件 acceptRelation,若天使点击 接受匹配,则调用getRelationData()函数
  10. 监听事件 "rejectRelation" ,若天使点击拒绝匹配,则调用initRelation() 方法,
  11. 监听事件"inviteRelation",若天使发出邀请,则调用 getRelationData()
  12. 定义 doRefresh 方法,调用 initRelation() 函数
  13. 定于 loadMore 方法,如果当前项目列表没有项目,则向下广播事件 scroll.infiniteScrollComplete ,否则调用 initRelation 函数,传入下一页参数,获取下一页项目信息
  14. 定义 loadProductInfo 函数,若果有传入当前项目信息,则给listType和title 赋值,确定侧边栏当前项目和主面板的标题给 currentViewRelation 对象赋值,清除缓存,进入点击项目的协作主面板
  15. 定义 showProductInfo 函数,调用loadProductInfo函数,如果是移动设备则关闭侧边栏
  16. 初始化协作主面板的标题为“项目协作”
  17. 定义 leftToggle 方法,控制侧边栏的跳转以及主面板的标题
  18. 定义 rightToggle 方法,控制右侧边栏的跳转和主面板的标题,如果是移动设备,则跳转的方向为前进,跳转成功则关闭右侧边栏
  19. 定义 IntroOptions 方法,控制新手引导

  20. 当 token 就绪后调用 $scope.IntroOptions 方法,判断是否是移动端,进入新手引导,调用initRelation()初始化relation,如果不是移动设备,则直接调用initRelation()方法,初始化relation
  21. 监听侧边栏打开的百分比,判断新手引导的步骤

PortfolioDetailCtrl

  1. 进入 ctrl,先初始化 relation ,type 等于当前用户的角色,cooperations 等于 []
  2. 获取协作项目的信息,出初始化 relation 的状态
  3. 初始化协作,调用 Cooperation 接口,获取 cooperations 协作信息 向上广播 "loading:hide" 事件,向下广播 'scroll.infiniteScrollComplete' 和 'scroll.refreshComplete' 事件
  4. 当token 就绪时,就向上广播 "loading:show","正在加载协作数据..." 事件,获取协作id actor_startup_id,调用 initCooperation 方法,初始化协作信息
  5. 定义变量 refreshRelationTimer 为 null,判断和协作项目的状态,定时5s,刷新 relation 协作关系
  6. 定义 preSend 方法,拟发送投资人方法,初始化相关参数,调用BPsender 接口方法,发送项目资料,如果调用成功,则刷新协作信息
  7. 定义 accept 方法,确定接受匹配,调出弹窗,如果用户确定接受匹配,则初始化相关参数。调用 PartnerRelation 接口,更新 relation 信息,向上广播 acceptRelation 事件,alert "已成功匹配,解锁协作功能!"
  8. 定义 reject 方法,确定拒绝匹配,初始化相关参数,调用 PartnerRelation 接口,的 update 方法,更新 relation 协作信息,向上广播事件 "rejectRelation" 并且 alert 已忽略请求
  9. 定义 refreshNow 方法,调用 refreshRelation 方法 和 initCooperation 方法,调用成功,则向下广播事件 'scroll.refreshComplete'
  10. 定义 $scope.loadMore 方法,如果有下一页,则调用 initCooperation 获取更多协作信息,向下广播事件 'scroll.infiniteScrollComplete'
  11. 定义 refreshRelation 方法,调用 PartnerRelation 接口,获取最新的协作信息,如果协作状态不是“待接受”,则停止轮循
  12. 监听事件,"cooperation.confirmed",如果确认协作,则根据传入的 id 刷新协作关系
  13. 定义 adviserRoel 方法,如果推荐角色是天使或则是FA,则按角色返回文案,否则返回 “portfolio”
  14. 定义 partnerNameOrStartupName 方法,如果参数的关系有 startup 变量分,则返回协作人员(天使/FA)的姓名,否则返回创业者的项目名称
  15. 定义 angelOrFa 方法,根据传入的参数的变量来返回协作人员的角色(angel/fa)
  16. 定义 viewProductProfile 方法(不能编辑),如果用户的设备是 移动设备,则确定跳转到下一页面的方向为 “前进”,跳转至项目详情
  17. 定义 toProductDetail 方法(可以编辑),如果用户的设备是 移动设备,则确定跳转到下一页面的方向为 “前进”,跳转至项目详情

消息中心

进入消息中心可以查看私信列表和系统消息,点击“私信”和“系统消息”的tab,进行消息的切换。在私信列表中,点击私信列表的item,进入私信详情,点击系统消息,进入系统消息列表
1. noticeCtrl.currentType 消息中心在私信还是系统消息页面
2. refreshNow() 刷新私信和系统消息
3. noticeCtrl.notifications 系统消息列表
4. item.unread_message_count 未读消息数目
5. noticeCtrl.mailDetail(item) 进入私信详情方法
6. noticeCtrl.messageList 私信列表

NoticeCenterIndexCtrl、

  1. 初始化 _inboxPager 和 _noticePager
  2. 定义 init()初始化方法,
    1. 定义@changeMessageType 方法,用来切换消息中心展示的是“系统消息”还是“私信”,
    2. 定义@refreshNow,判断但前页面的状态是私信则调用 _getInboxes() 方法,如果是系统消息,则调用 _getNotifications()
    3. 定义 @mailDetail 方法,进入私信详情页面
    4. 定义 @loadMore 方法,如果当前页不是私信列表的最后一页,则调用_getInboxes,否则向下广播事件 scroll.infiniteScrollComplete ,同理,如果是系统消息,并且不是最后一页,则调用 _getNotifications 方法,如果是最后一页,则向下广播事件scroll.infiniteScrollComplete
    5. 定义 systemMessage ,进入消息列表(现在这个方法已经不用)
    6. 监听事件 '$ionicView.beforeEnter',在刚将要进入视图的前一秒,如果token 就绪,则调用 @refreshNow() 方法刷新消息中心内容
    7. 调用 @refreshNow("inbox") 方法,刷新私信列表,初始化@currentType ,默认显示私信列表
    8. 定义 _getInboxes 方法,调用 Inbox 接口,如果获取值,则将获取的私信分页的信息 赋值给_inboxPager ,向下广播 scroll.refreshComplete 事件 和 scroll.infiniteScrollComplete 事件,获取私信列表的数据 @messageList,判断每条消息是这个私信会话的发起者,还是接收者,如果我是发送者,则列表显示(接受者)对方,如果我是会话的接受者,则私信列表显示发起者(对方)
    9. 定义 _getNotifications 方法,调用ZlNotification 接口,将返回的分页信息赋值给 _noticePager ,向下广播 scroll.refreshComplete 事件 和 scroll.infiniteScrollComplete 事件,将获取的系统消息存在 @notifications ,遍历 @notifications ,是否都已读,调用 _setNotificationsRead() 方法
    10. 定义 _setNotificationsRead 方法,将消息设置成已读,并将状态通过 ZlNotification 更新

创业者主面板

进入主面板,默认进入项目直投,获取投资人反馈,以及进入“我的项目”和“选择投递投资人”,左侧边栏,项目直投,天使协作,FA协作,智能匹配,消息中心。右侧边栏可以进入“融资资料”,“投资人列表”,设置
1. leftToggle 左侧边栏切换函数
2. 消息中心 未读消息
3. rightToggle 右侧边栏函数
4. user.grade 资料完整度

StartupIndexCtrl

  1. 初始化数据,title 为项目直投
  2. 向上广播 “system:listenUnreadCount” 事件
  3. 判断用户设备,如果用户是用 pc 打开设备,则不允许用户拖拽打开侧边栏
  4. 监听事件 'system:unreadCount',如果监听到,则更新用户的未读消息
  5. 定义 rightToggle,右侧边切换函数,判断用户设备,如果是手机设备,则进入下个页面的动画为“前进”,判断 '$scope.rightSide != rightSidebar' ,如果成立则 调用 Adapter 接口,将rightSideBar 赋值给rightSide ,根据传入的参数,跳转到相应的路由
  6. 定义左抽屉切换 leftToggle 函数,设置跳转到动画为none,根据参数跳转到相应的路由,关闭左侧边栏
  7. 定义新手引导列表
  8. 定义 _startIntro 函数,如果用户在这个设备中第一次打开我们的应用,则启动新手引导,并设置 "startup_guide_first" 为 true
  9. 如果用户在新版本发布后第一次打开app,则弹出 新功能简介弹窗,调用新手引导函数,否则直接调用新手引导函数
  10. 定义 _openRatio 函数,监听抽屉是否打开
  11. 如果左侧被打开,调用左侧引导,右侧被打开,调用右侧引导
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注