HomeChannelUtils.ets
2.98 KB
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
76
77
78
79
80
81
82
83
84
85
86
87
import { BottomNavDTO, NavigationBodyDTO, TopNavDTO } from 'wdBean/Index';
import { EmitterEventId, EmitterUtils, StringUtils } from 'wdKit/Index';
import { WDRouterPage } from '../router/WDRouterPage';
import { WDRouterRule } from '../router/WDRouterRule';
/**
* 首页、频道相关跳转、处理
*/
export class HomeChannelUtils {
private bottomNavData: NavigationBodyDTO | null = null
setBottomNavData(bottomNavData: NavigationBodyDTO) {
this.bottomNavData = bottomNavData
}
/**
* 切换到指定频道
*
* @param channelId 频道id【顶导id】
* @param pageId 目标页面id
*/
jumpChannelTab(channelId: string, pageId: string, pageName?: string) {
// 1、首页所有展示频道遍历,找到目标频道
// 2、频道管理里的,非我的频道所有列表遍历,找到目标频道 【这步去掉,和this.bottomNavData重复了】
// 3、一级频道【1、2里找到目标】->【切换底导、切换频道/新增临时频道】
// 4、二级频道【1、2里都没有找到目标】->【跳转栏目页面-ColumnPageComponent】
// 1. 遍历查找目标channel
if (this.bottomNavData == null || this.bottomNavData.bottomNavList == null ||
this.bottomNavData.bottomNavList.length <= 0) {
this.jumpColumn(channelId, pageId)
return
}
let bean = new AssignChannelParam()
bean.channelId = channelId
bean.pageId = pageId ? pageId : ''
let bottomNavList = this.bottomNavData.bottomNavList
for (let i = 0; i < bottomNavList.length; i++) {
let bottomNavDTO: BottomNavDTO = bottomNavList[i]
let channelList = bottomNavDTO.topNavChannelList
if (channelList == null || channelList.length <= 0) {
continue
}
for (let j = 0; j < channelList.length; j++) {
let topNavDTO: TopNavDTO = channelList[j]
if (topNavDTO.channelId.toString() === channelId) {
bean.pageId = topNavDTO.pageId.toString()
bean.bottomNavId = bottomNavDTO.id.toString()
break
}
}
}
if (StringUtils.isEmpty(bean.bottomNavId)) {
this.jumpColumn(channelId, pageId, pageName)
} else {
this.jumpHomeChannel(bean)
}
}
jumpColumn(channelId: string, pageId: string, pageName?: string) {
let params: AssignChannelParam = new AssignChannelParam()
params.pageId = pageId
params.channelId = channelId
params.pageName = pageName || ''
WDRouterRule.jumpWithPage(WDRouterPage.columnPage, params)
}
jumpHomeChannel(param: AssignChannelParam) {
// 跳转首页
WDRouterRule.jumpWithPage(WDRouterPage.mainPage, undefined, true)
// 通知切换频道
EmitterUtils.sendEvent(EmitterEventId.JUMP_HOME_CHANNEL, JSON.stringify(param))
}
}
@Observed
export class AssignChannelParam {
pageId: string = '';
channelId: string = '';
bottomNavId: string = '';
// 跳转专题/二级栏目用到
pageName: string = ''
}
let homeChannelUtils = new HomeChannelUtils();
export default homeChannelUtils as HomeChannelUtils;