OpenCAX/entry/src/main/ets/pages/CustomStyle/StyleButton.ets

71 lines
2.2 KiB
Plaintext

import { hilog } from '@kit.PerformanceAnalysisKit';
import { TitleButton } from "../LayoutInterface/Interface/TitleButtonInterface";
import { TitleModel} from "../LayoutInterface/Interface/TitleModelInterface";
import { TitleData } from '../LayoutInterface/Layout/TitleTabContent';
//单一功能按钮
@ComponentV2
export struct EventBtn {
@Param eventBtn:TitleButton|undefined=undefined;
@Param modelType:number|undefined=0;
@Consumer('curtModel') curtModel:Array<TitleModel>|undefined= TitleData.mModels.get(0)
build() {
Column({ space: 2 }) {
if(this.eventBtn!=undefined){
if(this.modelType==1){
Image($r('app.media.' + this.eventBtn.eIcon))
.width('45vp')
.height('35vp')
.objectFit(ImageFit.Contain)
.onClick(()=>{
if(this.eventBtn?.eEvent=='Switch_Model_CAD'){
this.curtModel=TitleData.mModels.get(1)
}else if(this.eventBtn?.eEvent=='Switch_Model_CAM'){
this.curtModel=TitleData.mModels.get(2)
}else if(this.eventBtn?.eEvent=='Switch_Model_CAE'){
this.curtModel=TitleData.mModels.get(3)
}
})
}else{
Image($r('app.media.' + this.eventBtn.eIcon))
.width('45vp')
.height('35vp')
.objectFit(ImageFit.Contain)
}
Text(this.eventBtn.eName)
.fontSize('10fp')
.width('45vp')
.height('10vp')
.textAlign(TextAlign.Center)
}
}
.height('50vp')
.width('50vp')
.padding('1vp')
}
}
//菜单目录按钮
//功能目录菜单,主要用于针对单一按钮多个功能形式
@ComponentV2
export struct MenuBtn {
@Param menuBtn: Array<TitleButton>|undefined=undefined;
@Builder
EventMenu(_btnMenus:Array<TitleButton>){
Menu() {
ForEach(_btnMenus, (item: TitleButton, index: number) => {
MenuItem({ startIcon: $r('app.media.'+item.eIcon), content: item.eName })
.width('150')
.margin({ top: 0, left: 0, bottom: 0, right: 0
})
})
}
}
build() {
if(this.menuBtn!=undefined){
EventBtn({eventBtn:this.menuBtn[0]}).bindMenu(this.EventMenu(this.menuBtn))
}
}
}