Toggle navigation
Toggle navigation
This project
Loading...
Sign in
developOne
/
harmonyPool
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
yuzhilin
2024-04-08 11:07:17 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
6571d9d3f59dd1143e8a8590b9b2a75d1ae9edc3
6571d9d3
1 parent
8e4fe0f1
底部tab 切换展现bug修复
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
137 additions
and
24 deletions
sight_harmony/features/wdComponent/oh-package-lock.json5
sight_harmony/features/wdComponent/src/main/ets/components/page/TopNavigationComponent.ets
sight_harmony/features/wdComponent/oh-package-lock.json5
View file @
6571d9d
{
"lockfileVersion"
:
1
,
"meta"
:
{
"stableOrder"
:
true
},
"lockfileVersion"
:
3
,
"ATTENTION"
:
"THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY."
,
"specifiers"
:
{},
"packages"
:
{}
"specifiers"
:
{
"@ohos/axios@^2.1.1"
:
"@ohos/axios@2.2.0"
,
"wdBean@../wdBean"
:
"wdBean@../wdBean"
,
"wdConstant@../../commons/wdConstant"
:
"wdConstant@../../commons/wdConstant"
,
"wdJsBridge@../../commons/wdJsBridge"
:
"wdJsBridge@../../commons/wdJsBridge"
,
"wdKit@../../commons/wdKit"
:
"wdKit@../../commons/wdKit"
,
"wdLogin@../wdLogin"
:
"wdLogin@../wdLogin"
,
"wdNetwork@../../commons/wdNetwork"
:
"wdNetwork@../../commons/wdNetwork"
,
"wdPlayer@../wdPlayer"
:
"wdPlayer@../wdPlayer"
,
"wdRouter@../../commons/wdRouter"
:
"wdRouter@../../commons/wdRouter"
,
"wdWebComponent@../../commons/wdWebComponent"
:
"wdWebComponent@../../commons/wdWebComponent"
},
"packages"
:
{
"@ohos/axios@2.2.0"
:
{
"name"
:
"@ohos/axios"
,
"integrity"
:
"sha512-v1QBWk6DfcN8wUW3D0ieFbHTR1taSI5cOgxp5l6B5cegXuNYhSc8ggKlAIXe6h/14LsfM+NW0ZGfSXcNEIM5yA=="
,
"resolved"
:
"https://repo.harmonyos.com/ohpm/@ohos/axios/-/axios-2.2.0.har"
,
"registryType"
:
"ohpm"
},
"wdBean@../wdBean"
:
{
"name"
:
"wdbean"
,
"resolved"
:
"../wdBean"
,
"registryType"
:
"local"
},
"wdConstant@../../commons/wdConstant"
:
{
"name"
:
"wdconstant"
,
"resolved"
:
"../../commons/wdConstant"
,
"registryType"
:
"local"
},
"wdJsBridge@../../commons/wdJsBridge"
:
{
"name"
:
"wdjsbridge"
,
"resolved"
:
"../../commons/wdJsBridge"
,
"registryType"
:
"local"
},
"wdKit@../../commons/wdKit"
:
{
"name"
:
"wdkit"
,
"resolved"
:
"../../commons/wdKit"
,
"registryType"
:
"local"
},
"wdLogin@../wdLogin"
:
{
"name"
:
"wdlogin"
,
"resolved"
:
"../wdLogin"
,
"registryType"
:
"local"
,
"dependencies"
:
{
"wdConstant"
:
"file:../../commons/wdConstant"
,
"wdKit"
:
"file:../../commons/wdKit"
,
"wdWebComponent"
:
"file:../../commons/wdWebComponent"
,
"wdBean"
:
"file:../../features/wdBean"
,
"wdRouter"
:
"file:../../commons/wdRouter"
,
"wdNetwork"
:
"file:../../commons/wdNetwork"
}
},
"wdNetwork@../../commons/wdNetwork"
:
{
"name"
:
"wdnetwork"
,
"resolved"
:
"../../commons/wdNetwork"
,
"registryType"
:
"local"
,
"dependencies"
:
{
"wdConstant"
:
"file:../wdConstant"
,
"wdKit"
:
"file:../wdKit"
,
"@ohos/axios"
:
"^2.1.1"
}
},
"wdPlayer@../wdPlayer"
:
{
"name"
:
"wdplayer"
,
"resolved"
:
"../wdPlayer"
,
"registryType"
:
"local"
,
"dependencies"
:
{
"wdKit"
:
"file:../../commons/wdKit"
}
},
"wdRouter@../../commons/wdRouter"
:
{
"name"
:
"wdrouter"
,
"resolved"
:
"../../commons/wdRouter"
,
"registryType"
:
"local"
,
"dependencies"
:
{
"wdKit"
:
"file:../wdKit"
,
"wdBean"
:
"file:../../features/wdBean"
}
},
"wdWebComponent@../../commons/wdWebComponent"
:
{
"name"
:
"wdwebcomponent"
,
"resolved"
:
"../../commons/wdWebComponent"
,
"registryType"
:
"local"
,
"dependencies"
:
{
"wdConstant"
:
"file:../wdConstant"
,
"wdKit"
:
"file:../wdKit"
,
"wdJsBridge"
:
"file:../wdJsBridge"
,
"wdBean"
:
"file:../../features/wdBean"
,
"wdRouter"
:
"file:../wdRouter"
}
}
}
}
\ No newline at end of file
...
...
sight_harmony/features/wdComponent/src/main/ets/components/page/TopNavigationComponent.ets
View file @
6571d9d
...
...
@@ -6,6 +6,7 @@ import { ChannelSubscriptionLayout } from './ChannelSubscriptionLayout'
const TAG = 'TopNavigationComponent';
PersistentStorage.persistProp('channelIds', '');
/**
* 顶部页签导航栏/顶导
*/
...
...
@@ -18,8 +19,10 @@ export struct TopNavigationComponent {
// 顶导数据
@State @Watch('onTopNavigationDataUpdated') topNavList: TopNavDTO[] = []
@State compList: LazyDataSource<CompDTO> = new LazyDataSource();
//我的频道id缓存列表
@State channelIds: number[] = []
//我的频道id列表
@State @Watch('onChannelIdsUpdate') channelIds: number[] = []
//本地缓存频道id列表
@StorageProp('channelIds') storageChannelIds: string = ''
// 我的频道列表
@State myChannelList: TopNavDTO[] = []
// 更多频道列表
...
...
@@ -30,6 +33,8 @@ export struct TopNavigationComponent {
//处理接口顶导数据
topNavListHandle() {
let _channelIds: number [] = []
let _myChannelList : TopNavDTO [] = []
let defaultMyChannelList: TopNavDTO[] = []
let handledTopNavList = [...this.topNavList]
handledTopNavList.sort((a, b) => {
...
...
@@ -40,6 +45,7 @@ export struct TopNavigationComponent {
defaultMyChannelList.push(item);
}
})
defaultMyChannelList.forEach(item => {
item.myChannel = '1'
if (item.defaultPermitted === 1) {
...
...
@@ -50,7 +56,6 @@ export struct TopNavigationComponent {
handledTopNavList.splice(index, 1)
}
})
handledTopNavList.unshift(...defaultMyChannelList)
handledTopNavList.forEach((item, index) => {
if (item.channelType === 2) {
...
...
@@ -66,9 +71,10 @@ export struct TopNavigationComponent {
}
}
//频道分类
if (item.myChannel === '1') {
this.myChannelList.push(item)
this.channelIds.push(item.channelId)
_myChannelList.push(item)
_channelIds.push(item.channelId)
}
if (item.moreChannel === '1') {
this.moreChannelList.push(item)
...
...
@@ -76,10 +82,13 @@ export struct TopNavigationComponent {
if (item.localChannel === '1') {
this.localChannelList.push(item)
}
})
this.channelIds = _channelIds
this.myChannelList = _myChannelList
}
isBroadcast
(item: TopNavDTO) {
isBroadcast(item: TopNavDTO) {
return item.name === '播报'
}
...
...
@@ -170,13 +179,14 @@ export struct TopNavigationComponent {
.width('100%')
.height(40)
.visibility(this._currentNavIndex == 0 ? Visibility.Visible : Visibility.None)
// 频道分类list
Stack({ alignContent: Alignment.TopEnd }) {
Tabs({ controller: this.tabsController }) {
ForEach(this.
myChannel
List, (navItem: TopNavDTO, index: number) => {
ForEach(this.
_currentNavIndex === 0 ? this.myChannelList : this.topNav
List, (navItem: TopNavDTO, index: number) => {
TabContent() {
if(!this.isBroadcast(navItem)) {
if
(!this.isBroadcast(navItem)) {
PageComponent({
currentTopNavSelectedIndex: $currentTopNavSelectedIndex,
navIndex: index,
...
...
@@ -193,7 +203,7 @@ export struct TopNavigationComponent {
.vertical(false)
.onChange((index: number) => {
Logger.info(TAG, `onChange index : ${index}`);
if(!this.isBroadcast(this.myChannelList[index])) {
if
(!this.isBroadcast(this.myChannelList[index])) {
this.currentTopNavSelectedIndex = index;
} else {
// 跳转到播报页面
...
...
@@ -208,17 +218,20 @@ export struct TopNavigationComponent {
this.tabsController.changeIndex(this.currentTopNavSelectedIndex)
}
})
// 分类列表最右侧频道设置
ChannelSubscriptionLayout({
currentTopNavSelectedIndex: $currentTopNavSelectedIndex,
myChannelList: $myChannelList,
moreChannelList: $moreChannelList,
localChannelList: $localChannelList,
channelIds: $channelIds,
changeTab: (index) => {
this.tabsController.changeIndex(index)
}
})
if(this._currentNavIndex === 0){
ChannelSubscriptionLayout({
currentTopNavSelectedIndex: $currentTopNavSelectedIndex,
myChannelList: $myChannelList,
moreChannelList: $moreChannelList,
localChannelList: $localChannelList,
channelIds: $channelIds,
changeTab: (index) => {
this.tabsController.changeIndex(index)
}
})
}
}
}
...
...
@@ -257,8 +270,15 @@ export struct TopNavigationComponent {
}
aboutToAppear() {
this.topNavListHandle()
Logger.info(TAG, `aboutToAppear this.topNavList : ${JSON.stringify(this.topNavList)}`);
if(this._currentNavIndex === 0){
this.topNavListHandle()
}
}
onChannelIdsUpdate() {
AppStorage.set('channelIds', this.channelIds.join(','))
console.log(`PersistentStorage channelIds: ${this.channelIds}`)
console.log(`PersistentStorage aboutToAppear: ${this.storageChannelIds}`)
}
onTopNavigationDataUpdated() {
...
...
Please
register
or
login
to post a comment