OpenCAX/entry/src/main/ets/pages/CustomStyle/StyleButton.ets
JackLee 76c8dfd86e 1-增加子功能栏
2-增加前端选择过滤器
3-增加图层设置
4-增加视图选择
5-增加坐标轴设置
6-增加显示模式
2026-03-11 21:02:14 +08:00

72 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;
@Local iconState:boolean=false;
@Builder
EventMenu(){
Menu() {
ForEach(this.menuBtn, (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)
}
}
}