OpenCAX/entry/src/main/ets/pages/TitleTabLayout/TitleTabContent.ets

85 lines
3.1 KiB
Plaintext

import { hilog } from '@kit.PerformanceAnalysisKit';
import { TitleButton} from '../LayoutInterface/Interface/ButtonInterface';
import { TitleGroup} from '../LayoutInterface/Interface/GroupInterface';
import {GroupTextEventMenu,MenuBtn} from '../CustomStyle/Menu'
import {EventBtn,SwitchModelBtn} from '../CustomStyle/Button'
import { TitleModel } from '../LayoutInterface/Layout/TabContent';
@ComponentV2
export struct TitleTabContent {
@Param curtLayout:TitleModel|undefined=undefined;
@Builder
BtnMenu(item:Array<TitleButton>){
MenuBtn({menuBtn:item})
}
@Builder
BtnEvent(item: TitleButton){
EventBtn({eventBtn:item})
}
@Builder
BtnSwitchMode(item: TitleButton){
SwitchModelBtn({eventBtn:item})
}
build() {
//垂直布局展示多行
Column({ space: 0 }) {
//迭代生成行容器
ForEach(this.curtLayout?.cmEvents, (row_items: Array<TitleButton|Array<TitleGroup>|Array<TitleButton>>, mIndex: number) => {
//行的按钮组容器
Row(){
ForEach(row_items, (row_item: TitleButton|Array<TitleGroup>|Array<TitleButton>, index: number) => {
if(!Array.isArray(row_item)){//TitleButton
//单按钮
EventBtn({eventBtn:row_item})
}else if(row_item instanceof Array<TitleGroup>){ //Array<TitleGroup>
//功能组,迭代多个功能组
ForEach(row_item, (group_item: TitleGroup, index: number) =>{
Column({ space: 5 }){
Row({ space: 1 }){
ForEach(group_item.grpBtn, (btn_item: TitleButton|Array<TitleButton>, index: number) =>{
if(this.curtLayout?.cmName=='应用模块'){
if(Array.isArray(btn_item)){
this.BtnMenu(btn_item)
}else{
this.BtnSwitchMode(btn_item)
}
}else{
if(Array.isArray(btn_item)){
this.BtnMenu(btn_item)
}else{
this.BtnEvent(btn_item)
}
}
})
}.margin({ top: 1,left:1,bottom:1,right:1})
//功能组名
GroupTextEventMenu({grpEvent:group_item})
}.borderWidth(1)
.borderColor(Color.Grey)
})
}else{
//菜单按钮
Column(){
Button((row_item as Array<TitleButton>)[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})
}
}