@Belinda
2016-01-11T06:45:49.000000Z
字数 12438
阅读 1140
前端结构
用户选择角色后注册,填写相关信息,点击提交,注册相关信息,注册成功,则存储用户的相关token,判断用户状态,若用户邮件激活成功,直接进入注册邮件激活界面。若用户没有邮件认证,进入邮件激活页面,用户激活后进入到审批流程。获得用户审批状态,如果用户还没有提交过材料,进入到认证界面,传入参数(approval,及user),不同的角色有不同的审批流程,创业者需要经过,手机-名片-身份证-产品信息-领域-天使信息。投资人,天使,FA则需要经过,手机-名片-头像-领域-基金类型-常驻城市。
需要经历的控制器有:
1. roleSlectCtrl
2. SignupCtrl-(api 服务 Auth)
3. ApprovalCtrl
- 投资人可以在收件箱中查看个人收件箱中的项目以及机构收件箱中的项目
- 在机构项目中可以进行转发和感兴趣处理,点击转发可以转发机构中的同事,点击感兴趣可以把项目添加到自己的感兴趣列表(具体逻辑后端处理),拉起邮件模版,激活其它状态的使用
- 点击 header 中的tag健,可以进行个人和机构收件邮箱切换
- 投资人自己的收件箱中,有三种列表,待处理列表,感兴趣列表,稍后处理列表,对应于投资人的收到项目的“默认待处理“,”感兴趣“,”稍后处理“状态,投资人对项目不感兴趣时,项目放到投资人右侧边栏的归档项目列表。
变量说明:
1. listType 用来控制是投资人个人还是机构
2. selectedMenu 用来控制左侧栏,目录。
2. unreadCount 消息中心未读条数
3. user.grade 用户的资料完整度
investorIndex
控制器,首先初始化listType
和 selectedMenu
变量,如果路由中没有指定的 $state.current?.data?.type
,则把 listType
设置成 investor
,表示的是当前是投资人列表ionic
的版本,版本低于 1.2 的则进行处理$rootScope
,向上广播 system:listenUnreadCount
事件,监听事件system:unreadCount
,如果有这个事件,更新未读消息的条数localStorage
是否有参数 updateLog_1207
,若无,则代表没有更新提示,打开更行的弹窗,提示新功能变量说明
1.activeListIndex
当前列表,用来控制项目列表状态,当前列表是待处理,感兴趣还是稍后处理
列表嵌套在 ion-slide-box
中,点击相应的tag 激活refreshList 方法
InvestorProjectsCtrl
控制器,初始化 变量 activeListIndex
,使得进入列表获得的是待处理列表lists
数组变量,refreshList
,用于广播事件 'projectList:refresh'
,并把当前对应的lists
内容传递下去$ionicView.enter
,即当进入视图时,广播 'projectList:refresh'
事件,并把当前激活的列表参数传递下去'$ionicView.loaded'
视图加载完成之后,禁用滑动事件InvestorOrgProjectsCtrl
投资人主面板中点击
机构
跳转到机构路由
1.进入控制器,控制器监听 '$ionicView.enter'
事件,视图进入时,广播事件 'projectList:refresh'
,不传数据
InvestorProjectListCtrl
(投资人主面板项目列表)zlProjectList
指令变量
1.list
项目列表
2.relay_from
存储转发信息变量
3.partner
存储创业者的天使或则FA信息,即推荐人信息
4. 嵌套的指令zl-project-item
5.firstTimeLoad
控制用户是否是第一次登录,如果是,则引导其去完善资料,若不是,则没有项目时,现实暂无项目的提示
list
,pager
,type
,scope
,limit
,from_market
,orderBy
,这些参数都是再获取 BPRelation
时要用到的showProductDetail
显示project
详情,判断设备是否是手机,来控制ionic
的翻页动画,通过 $state.go
,跳转到 productDetail
路由showAdviser
方法 ,显示推荐人和转发人详情,通过 profileFacade
,来传递相应的参数,并跳到详情页,判断设备是否是手机,来控制ionic
的翻页动画gotoInvestorProfile
通过 profileFacade,来传递相应的参数,并跳到详情页,判断设备是否是手机,来控制ionic
的翻页动画_judgeFirstTimeLoad
方法,判断是否为初次加载fetchBpRelations
方法,将刚进入控制器的参数封装到 params
对象中,通过接口获得最新的 BPRelation
,判断获取的数量是否在限制内,如果不是,则通过定义的aler
t 方法 给出提示alert
方法projectList:refresh
如果没有传递进来的参数,或则传进来的参数和控制器初始化的参数一致,执行下一层判断,若没有控制器的 list
参数为 null
向下广播 'scroll.refreshStart'
事件,否则直接刷新autoInit
参数,执行刷新函数,需要注意的是,投资人智能匹配功能中,只有投资人的待处理列表(全部)的进入项目详情的函数是在 investorMarketCtrl 中定义的,其它的是在 zl--project-list 指令中的控制器定义的
变量
1.activeListIndex
控制列表状态,是待处理列表,感兴趣列表,还是稍后处理列表
2.orderBy
控制排序的顺序
activeListIndex
,默认为待处理列表。showPopbar = false
,默认为收起下拉列表,LISTS
数组,第一组市场没有BPRelation走不同的接口,设为空对象。showProjectDetail
,带参数跳转到 相应项目到项目详情,判断是否是手机设备,如果是,则控制页面跳转的动画refreshList
,如果是待处理列表,则广播事件 'marketPool:smartRefresh'
,否则广播事件 'projectList:refresh'
,并把参数传递下去onTapTab
,如果已经在待处理列表中,点击待处理(全部),则@showPopbar = !@showPopbar
控制选择排序的下拉菜单的展开和收起,如果不在待处理列表,点击待处理(全部),则跳转到待处理,如果是跳转到其它列表,则将变量 @activeListIndex
置为相应的索引,切换到相应的列表,收起待处理中的下拉菜单return
,否则变更排序方式,广播事件 marketPool:triggerPullToRefresh
$ionicView.enter
,刚进入视图,如果是待处理列表,则广播 事件 marketPool:smartRefresh
否则广播事件 projectList:refresh
,并把相应的列表数据传递下去$ionicView.loaded
,如果视图载入成功,则关闭 ionic
的幻灯片滑动功能变量
1.showHandleBar
用来控制右上角感兴趣邮件icon
,以及底部的操作键的(感兴趣,不感兴趣,待处理)的显示和隐藏
2.aasm_state
用来控制对投资人对项目的态度(感兴趣还是不感兴趣)
3.user.grade
资料完整度,用来显示用户资料的完整度
4.showEdi
t 用来控制是否显示底部的“编辑我的项目的btn”
5. 底部的handlebar
是通过另一个控制器来控制的
currentResource = null
,用来判断是创业者还是他的合作伙伴(天使或则fa)编辑的资料,采用不同的保存方式保存。id
等于 路由传来的 id,以及初始化 $scope.template 和 $scope.title
数据,用来控制当前控制器控制的是 项目资料,联系方式,项目介绍,编辑我的项目,的模版(这些只有在有权限编辑的时候才会有用),初始化配置参数和配置函数,配置参数在路由有数据传递过的时候等于传过来的参数,没有传递参数时,等于 false,初始化函数,监听事件 "requestGetRelation"
,如果监听到则调用函数 _requestGetRelation
_init
初始化项目资料和relation
的方法,判断角色。如果不是投资人调用productInit()
函数初始化项目信息,如果是投资人,则判断是不是从market
跳转过来如果是,则调用 productInit()
函数,调用成功,再调用markAsRead()
方法,如果不是从market
中跳转过来的则调用_getRelation()
方法,获取最新的relation
token
准备就绪,调用_init
初始化项目资料和relation
"$ionicView.beforeEnter"
,当视图将要进入的那一刻,执行(如果视图进入的方向是返回,并且是投资人的角色,则直接返回,不做任何处理。如果不满足上面的条件,则更新当前的currentRelation
,和marketView
,向下广播事件“productHandlerBar”
,并把当前的relation
数据传递下去,调用_init()
初始化项目资料和relation
)_requestGetRelation()
方法,如果有传入数据,则currentRelation
和 product
重新赋值,否则调用_getRelation
方法,获取最新的relation
_getRelation()
方法,刷新投资人和创业者的最新关系,也就是获取最新的relation
。首先判断是否有传入id
,或则能拿到当前的 currentRelation.id
,如果没有 id
,则返回,如果有id
,则调用 BPRelation
接口,获取最新的 relation
,和项目信息,并向下广播事件 “productHandlerBar”
,闯入最新的relation
数据_loadProduct()
加载项目资料,调用Product
接口,获取最新的项目信息,向上广播事件“loading:hide”
,如果调用接口出错,则按照出错的状态码来进行不同的处理_loadProductVersion()
加载协作后的项目资料,如果当前是协作者在编辑资料,则获取协作者的id
。若获取id
失败则直接返回,否则调用 ProductVersion
接口,获取最新的project_versions
的资料,若没有project_version
则调用ProductVersion
接口的 save
方法,向上广播事件 loading:hide
,获取最新的 product
和 project_version_id
productInit()
方法,如果没有传参,则向上广播事件 "loading:show, "正在加载详情..."
,如果是创业编辑资料,调用_loadProduct()
方法,如果是写作者编辑资料调用_loadProductVersion()
方法getPid()
的方法,如果是协作者编辑资料,返回 .product_version_id
,否则有product_id
返回 product_id
,没有返回 me
scrollTop
方法,把把手为“productScroll”
的内容回滚到顶部callReplyEmailModal
方法,如果投资人不是在感兴趣的情况下点击的,则弹出提示,‘感兴趣后才可以回复哦’
返回,否则向上广播事件"loading:show", "正在初始化邮件模板..."
,调用Investor
接口,获取投资人信息,调用EmailSender
服务,调出回复邮件弹窗,回复邮件成功则,alert 回复邮件成功
。通过 BPRelation
获取最新的relation
,editProduct
方法,将编辑状态取反,alert
“下方为呈现在投资人面前的效果”showBaseInfo()
判断用户设备,进入 productDetailInner
路由,根据传入的type
来确定编辑哪个页面,加载哪个模版edit()
跳转到productEdit
路由,传入相应的参数gotoBP()
,根据路由传递的参数来确定 currentState
变量,判断当前角色是否是投资人,如果是免责判断是否是从market 中跳转过来的,再根据不同的跳转方式去获取BP信息,如果不是投资人,则通过product
获取BP。如果BP转话的图片数组thumbs
长度如果是0,则向上广播事件"errorloading:show", "您的 BP 正在加密处理中,请稍候再试"
getPid()
获取当前编辑人员的id,调用currentResource
接口保存图片,alert “修改LOGO成功”
createBPRelation()
函数,(marketView的很可能还没有bp_relation,project_id
,当investor
进行操作前需要先创建bp_relation.
)createProjectHistory()
方法,获得创建的relation
的investor_id
,和project_history_id
,调用 BPRelation
接口的save 方法,创建relation,成功后把最新的 currentRelation
赋值,并向下广播事件 'productHandlerBar'
,并床底最新的值。createProjectHistory
,方法,调用ProductHistory
接口的save方法,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. 更具不同的路由加载不同的内容模版
已发送匹配请求
,关闭弹窗项目关系
进入消息中心可以查看私信列表和系统消息,点击“私信”和“系统消息”的tab,进行消息的切换。在私信列表中,点击私信列表的item,进入私信详情,点击系统消息,进入系统消息列表
1. noticeCtrl.currentType 消息中心在私信还是系统消息页面
2. refreshNow() 刷新私信和系统消息
3. noticeCtrl.notifications 系统消息列表
4. item.unread_message_count 未读消息数目
5. noticeCtrl.mailDetail(item) 进入私信详情方法
6. noticeCtrl.messageList 私信列表
NoticeCenterIndexCtrl、
创业者主面板
进入主面板,默认进入项目直投,获取投资人反馈,以及进入“我的项目”和“选择投递投资人”,左侧边栏,项目直投,天使协作,FA协作,智能匹配,消息中心。右侧边栏可以进入“融资资料”,“投资人列表”,设置
1. leftToggle 左侧边栏切换函数
2. 消息中心 未读消息
3. rightToggle 右侧边栏函数
4. user.grade 资料完整度
StartupIndexCtrl