OpenCAX/entry/src/main/ets/pages/TitleTabLayout/TitleTabContent.ets
JackLee 6e51b8ba36 重构布局.独立文件菜单.
应用模块独立为公共模块.方便模块切换.
未开发:需要对装饰器重新定义.
2026-03-05 17:17:40 +08:00

65 lines
2.6 KiB
Plaintext

import { hilog } from '@kit.PerformanceAnalysisKit';
import { BaseMenu, BtnEvent, GroupEvent } from '../LayoutData/TitleInterface';
import {GroupTextEventMenu} from '../CustomStyle/StyleMenu'
import {EventButton,EventBtnMenu} from '../CustomStyle/StyleButton'
@ComponentV2
export struct TitleTabContent {
@Param tabLayout:Array<Array<BtnEvent|Array<GroupEvent>|Array<BtnEvent>>>=[];
build() {
//垂直布局展示多行
Column({ space: 0 }) {
//迭代生成行容器
ForEach(this.tabLayout, (row_items: Array<BtnEvent|Array<GroupEvent>|Array<BtnEvent>>, index: number) => {
//行的按钮组容器
Row(){
ForEach(row_items, (row_item: BtnEvent|Array<GroupEvent>|Array<BtnEvent>, index: number) => {
//首先判断是否为数组.如果不为数组者为BtnEvent
if(!Array.isArray(row_item)){
//单按钮
EventButton({btn:row_item})
}else if(row_item instanceof Array<GroupEvent>){
//功能组,迭代多个功能组
ForEach(row_item, (group_item: GroupEvent, index: number) =>{
Column({ space: 5 }){
Row({ space: 1 }){
ForEach(group_item.grpBtn, (btn_item: BtnEvent|Array<BtnEvent>, index: number) =>{
//如果是数组则为菜单按钮否则为单功能按钮
if(Array.isArray(btn_item)){
EventBtnMenu({btnMenus:btn_item})
}else{
EventButton({btn:btn_item})
}
})
}.margin({ top: 1,left:1,bottom:1,right:1})
//功能组名
GroupTextEventMenu({grpName:group_item.grpName,grpMenus:group_item.grpMenu})
}.borderWidth(1)
.borderColor(Color.Grey)
})
}else{
//菜单按钮
Column(){
Button((row_item as Array<BtnEvent>)[0].eName)
.height('95%')
.width('50')
.padding('1')
.type(ButtonType.Normal)
Button()
.height('5%')
.width('50')
.padding('1')
.type(ButtonType.Normal)
//.bindMenu(this.BtnMenu((row_item as Array<BtnEvent>)))
}
}
})
}
.width('100%')
.align(Alignment.BottomEnd)
.borderColor(Color.Gray)
})
}.margin({ top: 1,left:1,bottom:1,right:1})
}
}