FileMenu的组件和类型,数据归一化采用TitleButton数据类型.方便后续开发

This commit is contained in:
JackLee 2026-03-21 17:47:48 +08:00
parent ec59d56a27
commit a4a6528a36
25 changed files with 185 additions and 188 deletions

View File

@ -2,8 +2,10 @@ import { hilog } from '@kit.PerformanceAnalysisKit';
import { ExecuteCommand } from '../EventSubWindow/ExecuteCommand';
import { TitleButton } from "../LayoutInterface/Interface/ButtonInterface";
import { TitleModel } from "../LayoutInterface/Interface/ModelInterface";
import { TitleData } from '../LayoutInterface/Layout/TabContent';
import { TitleTabData } from '../LayoutInterface/Layout/TitleTabData';
import { mwInfo } from '../AppStorageV2Class';
import {BaseMenu } from './Menu';
import { BaseMenuData } from '../LayoutInterface/Interface/MenuInterface';
//按钮统一尺寸,该按钮为正方形,所以以主窗口宽为基准,长=高->正方形
let ebWidth=mwInfo.mainWindowWidth*0.02;
@ -23,7 +25,7 @@ export struct EventBtn {
//普通功能按钮调用的数据
@Param eventBtn: TitleButton | undefined = undefined;
//模块切换模块按钮数据
@Consumer('curtModel') curtModel: Array<TitleModel> | undefined = TitleData.mModels.get(0)
@Consumer('curtModel') curtModel: Array<TitleModel> | undefined = TitleTabData.mModels.get(0)
build() {
Column({ space: 2 }) {
@ -59,11 +61,11 @@ export struct EventBtn {
})
.onClick(() => {
if (this.eventBtn?.eEvent == 'Switch_Model_CAD') {
this.curtModel = TitleData.mModels.get(1)
this.curtModel = TitleTabData.mModels.get(1)
} else if (this.eventBtn?.eEvent == 'Switch_Model_CAM') {
this.curtModel = TitleData.mModels.get(2)
this.curtModel = TitleTabData.mModels.get(2)
} else if (this.eventBtn?.eEvent == 'Switch_Model_CAE') {
this.curtModel = TitleData.mModels.get(3)
this.curtModel = TitleTabData.mModels.get(3)
}
})
}
@ -90,24 +92,15 @@ export struct EventBtn {
export struct MenuBtn {
@Param menuBtn: Array<TitleButton> | undefined = undefined;
@Local curtIndex:number=0;
@Builder
EventMenu() {
Menu() {
ForEach(this.menuBtn, (item: TitleButton, index: number) => {
MenuItem({ startIcon: $r('app.media.' + item.eIcon), content: item.eName })
.onClick(()=>{
this.curtIndex=index;
ExecuteCommand(item as TitleButton);
}).size({height: ebWidth})
})
}.fontSize(20)
}
@Local argsMenu:BaseMenuData= {
aMenus: this.menuBtn as Array<TitleButton|Array<TitleButton>>,
aIndex: this.curtIndex
};
build() {
Column({ space: 0 }) {
if (this.menuBtn != undefined) {
Button()
.bindMenu(this.EventMenu)
.bindMenu(BaseMenu(this.argsMenu))
.width(ebWidth)
.height(ebHeigth)
.backgroundImage($r('app.media.' + this.menuBtn[this.curtIndex].eIcon))
@ -119,7 +112,7 @@ export struct MenuBtn {
})
Button()
.type(ButtonType.Normal)
.bindMenu(this.EventMenu)
.bindMenu(BaseMenu(this.argsMenu))
.width(ebWidth)
.height(edHeigth)
.backgroundImage($r('app.media.base_chevron_down'))
@ -142,16 +135,11 @@ export struct MenuBtn {
export struct SubColumnMenu {
@Param menus: Array<TitleButton>| undefined = undefined;
@Param icon:string='';
@Builder
EventMenu() {
Menu() {
ForEach(this.menus, (item: TitleButton, index: number) => {
MenuItem({ startIcon: $r('app.media.'+item.eIcon), content: item.eName })
.width('150')
.size({height: mwInfo.mainWindowWidth*0.02})
})
}.fontSize(20)
}
@Local curtIndex:number=0;
@Local argsMenu:BaseMenuData= {
aMenus: this.menus as Array<TitleButton|Array<TitleButton>>,
aIndex: this.curtIndex
};
build(){
Row(){
Button()
@ -165,7 +153,7 @@ export struct SubColumnMenu {
width: '90%', // 图片宽度占满按钮
height: '90%' // 图片高度占满按钮
})
.bindMenu(this.EventMenu())
.bindMenu(BaseMenu(this.argsMenu))
.type(ButtonType.Normal)
}
}

View File

@ -1,6 +1,5 @@
import { TitleButton } from "../LayoutInterface/Interface/ButtonInterface";
import {SwitchView} from "../LayoutInterface/Layout/SwitchView"
import { Popup } from "@kit.ArkUI";
//视图切换弹窗
@CustomDialog

View File

@ -1,6 +1,4 @@
//一个复合式折叠组件
@ComponentV2
export struct Expandable {
// 通过属性传入的标题和内容

View File

@ -1,25 +1,64 @@
import { TitleMenu } from "../LayoutInterface/Interface/MenuInterface";
import { TitleGroup } from "../LayoutInterface/Interface/GroupInterface";
import { TitleButton } from "../LayoutInterface/Interface/ButtonInterface";
import { ExecuteCommand } from "../EventSubWindow/ExecuteCommand";
import { mwInfo } from "../AppStorageV2Class";
import { BaseMenuData } from "../LayoutInterface/Interface/MenuInterface";
//按钮统一尺寸,该按钮为正方形,所以以主窗口宽为基准,长=高->正方形
let ebWidth=mwInfo.mainWindowWidth*0.02;
let ebHeigth=mwInfo.mainWindowWidth*0.02;
//不带Index的Menu
@Builder
export function BaseMenu(indexMenu:BaseMenuData) {
Menu() {
ForEach(indexMenu.aMenus, (item: TitleButton|Array<TitleButton>, index: number) => {
//如果是功能组则
if(Array.isArray(item)){
MenuItem({
startIcon: $r('app.media.' + item[0].eIcon),
content: item[0].eName,
builder: SubMenu(item)
})
}else{
MenuItem({ startIcon: $r('app.media.'+item.eIcon), content: item.eName })
.onClick(()=> {
indexMenu.aIndex = index;
ExecuteCommand(item as TitleButton);
})
.size({height: ebWidth})
}
})
}.fontSize(20)
}
@Builder
export function SubMenu(subMenu:Array<TitleButton>){
Menu() {
ForEach(subMenu, (subItem: TitleButton, index: number) => {
MenuItem({
startIcon: $r('app.media.' + subItem.eIcon),
content: subItem.eName,
})
.onClick(() => {
ExecuteCommand(subItem as TitleButton);
})
.size({ height: ebWidth })
})
}.fontSize(20)
}
//菜单按钮
//主要用于功能组操作菜单.文件下拉菜单等.
@ComponentV2
export struct GroupTextEventMenu {
@Param grpEvent: TitleGroup | undefined = undefined;
@Builder
GroupMenu(menus: Array<TitleMenu>) {
Menu() {
ForEach(menus, (item: TitleMenu, index: number) => {
MenuItem({ startIcon: $r('app.media.' + item.mIcon), content: item.mName })
.size({height: mwInfo.mainWindowWidth*0.02})
})
}.fontSize(20)
}
@Local argsMenu:BaseMenuData= {
aMenus: this.grpEvent?.grpMenu as Array<TitleButton|Array<TitleButton>>,
aIndex: 0
};
build() {
Row() {
if (this.grpEvent != undefined) {
@ -39,7 +78,7 @@ export struct GroupTextEventMenu {
width: '90%', // 图片宽度占满按钮
height: '90%' // 图片高度占满按钮
})
.bindMenu(this.GroupMenu(this.grpEvent.grpMenu))
.bindMenu(BaseMenu(this.argsMenu))
.backgroundColor(Color.Transparent)
}
}.align(Alignment.BottomEnd)

View File

@ -1,4 +1,3 @@
import { TitleMenu } from "./MenuInterface";
import { TitleButton } from "./ButtonInterface";
//功能组
@ -8,5 +7,5 @@ export interface TitleGroup{
//按钮列表
grpBtn:Array<TitleButton|Array<TitleButton>>
//功能组菜单
grpMenu:Array<TitleMenu>
grpMenu:Array<TitleButton>
}

View File

@ -1,3 +1,4 @@
import { TitleGroup } from "./GroupInterface";
import { TitleModel } from "./ModelInterface";
//Title配置
@ -5,7 +6,7 @@ export interface TitleInterface{
//Title配置ID名(唯一)
mId:string;
//基础模块
mFileModel:TitleModel
mFileModel:Array<Array<TitleGroup>>
//功能模块
mModels:Map<number,Array<TitleModel>>
}

View File

@ -1,7 +1,6 @@
export interface TitleMenu{
mName:string
mIcon:string
mTips:string
mPage:string
mEvent:string
import { TitleButton } from "./ButtonInterface"
export interface BaseMenuData {
aMenus: Array<TitleButton|Array<TitleButton>>
aIndex:number
}

View File

@ -1,10 +0,0 @@
import { TitleMenu } from "../Interface/MenuInterface";
//功能布局数据
export let ActionOption:Array<TitleMenu>=[
{mName:'增功能',mIcon:'',mPage:'',mTips:"",mEvent:''},
{mName:'编辑组',mIcon:'',mPage:'',mTips:"",mEvent:''},
{mName:'改图标',mIcon:'',mPage:'',mTips:"",mEvent:''},
{mName:'重命名',mIcon:'',mPage:'',mTips:"",mEvent:''},
{mName:'移动到',mIcon:'',mPage:'',mTips:"",mEvent:''}
]

View File

@ -1,12 +1,12 @@
import { TitleModel } from "./TabContent";
import {TitleMainPage} from './MainPage'
import { TitleModel } from "./TitleTabData";
import {TitleDefaultBars} from './TitleDefaultBars'
import {ModelType} from './ModelType'
import { GroupOption } from "./GroupOption";
import { GroupActionMenu } from "./GroupAction";
import { TitleGroup } from "../Interface/GroupInterface";
import { MatrixModel ,DevModel} from "./MatrixModel";
export let TitleCAD:Array<TitleModel>=[
TitleMainPage[0],
TitleDefaultBars[0],
{cmName:'建模',cmPage:'',cmTips:'',cmEvents: [
//数组表示非单个BtnEvent
[
@ -31,7 +31,7 @@ export let TitleCAD:Array<TitleModel>=[
{eModel:[ModelType.BASE],eName:"点集",eNamed:"",ePage:'',eIcon:"sketch_point_set",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"参考点云",eNamed:"",ePage:'',eIcon:"sketch_reference_point_cloud",eTips:"",eEvent:""}
]
],grpMenu:GroupOption}] as Array<TitleGroup>,
],grpMenu:GroupActionMenu}] as Array<TitleGroup>,
[{grpName:'基本',grpBtn:[
[
{eModel:[ModelType.BASE],eName:"拉伸",eNamed:"",ePage:'',eIcon:"modeling_extrude",eTips:"",eEvent:""},
@ -118,7 +118,7 @@ export let TitleCAD:Array<TitleModel>=[
{eModel:[ModelType.BASE],eName:"变距偏置面",eNamed:"",ePage:'',eIcon:"modeling_edit_body_face_offset_face_variable",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"大致偏置",eNamed:"",ePage:'',eIcon:"modeling_edit_body_face_rough_offset",eTips:"",eEvent:""}
]
],grpMenu:GroupOption}] as Array<TitleGroup>,
],grpMenu:GroupActionMenu}] as Array<TitleGroup>,
[{grpName:'同步建模',grpBtn:[
[
{eModel:[ModelType.BASE],eName:"移动",eNamed:"",ePage:'',eIcon:"modeling_edit_sync_build_move_face",eTips:"",eEvent:""},
@ -178,7 +178,7 @@ export let TitleCAD:Array<TitleModel>=[
{eModel:[ModelType.BASE],eName:"更新模型",eNamed:"",ePage:'',eIcon:"modeling_edit_sync_build_updatemodel",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"更新特征",eNamed:"",ePage:'',eIcon:"modeling_edit_sync_build_renew_feature",eTips:"",eEvent:""},
]
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]
]},
{cmName:'基本建模',cmPage:'',cmTips:'',cmEvents: [
@ -191,7 +191,7 @@ export let TitleCAD:Array<TitleModel>=[
{eModel:[ModelType.BASE],eName:"圆锥",eNamed:"",ePage:'',eIcon:"base_close_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"球",eNamed:"",ePage:'',eIcon:"base_import_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"管道",eNamed:"",ePage:'',eIcon:"base_export_file",eTips:"",eEvent:""}
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]
]},
{cmName:'曲线',cmPage:'',cmTips:'',cmEvents: [
@ -204,7 +204,7 @@ export let TitleCAD:Array<TitleModel>=[
{eModel:[ModelType.BASE],eName:"圆锥",eNamed:"",ePage:'',eIcon:"base_close_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"球",eNamed:"",ePage:'',eIcon:"base_import_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"管道",eNamed:"",ePage:'',eIcon:"base_export_file",eTips:"",eEvent:""}
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]
]},
{cmName:'同步建模',cmPage:'',cmTips:'',cmEvents: [
@ -217,7 +217,7 @@ export let TitleCAD:Array<TitleModel>=[
{eModel:[ModelType.BASE],eName:"圆锥",eNamed:"",ePage:'',eIcon:"base_close_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"球",eNamed:"",ePage:'',eIcon:"base_import_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"管道",eNamed:"",ePage:'',eIcon:"base_export_file",eTips:"",eEvent:""}
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]
]},
{cmName:'分析',cmPage:'',cmTips:'',cmEvents: [
@ -230,7 +230,7 @@ export let TitleCAD:Array<TitleModel>=[
{eModel:[ModelType.BASE],eName:"圆锥",eNamed:"",ePage:'',eIcon:"base_close_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"球",eNamed:"",ePage:'',eIcon:"base_import_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"管道",eNamed:"",ePage:'',eIcon:"base_export_file",eTips:"",eEvent:""}
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]
]},
{cmName:'显示',cmPage:'',cmTips:'',cmEvents: [
@ -243,7 +243,7 @@ export let TitleCAD:Array<TitleModel>=[
{eModel:[ModelType.BASE],eName:"圆锥",eNamed:"",ePage:'',eIcon:"base_close_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"球",eNamed:"",ePage:'',eIcon:"base_import_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"管道",eNamed:"",ePage:'',eIcon:"base_export_file",eTips:"",eEvent:""}
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]
]},
{cmName:'首选项',cmPage:'',cmTips:'',cmEvents: [
@ -256,7 +256,7 @@ export let TitleCAD:Array<TitleModel>=[
{eModel:[ModelType.BASE],eName:"圆锥",eNamed:"",ePage:'',eIcon:"base_close_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"球",eNamed:"",ePage:'',eIcon:"base_import_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"管道",eNamed:"",ePage:'',eIcon:"base_export_file",eTips:"",eEvent:""}
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]
]},
MatrixModel,

View File

@ -1,13 +1,13 @@
import { TitleModel } from "./TabContent";
import {TitleMainPage} from './MainPage'
import { TitleModel } from "./TitleTabData";
import {TitleDefaultBars} from './TitleDefaultBars'
import {ModelType} from './ModelType'
import { GroupOption } from "./GroupOption";
import { GroupActionMenu } from "./GroupAction";
import { TitleGroup } from "../Interface/GroupInterface";
import { MatrixModel ,DevModel} from "./MatrixModel";
import { TitleButton } from "../Interface/ButtonInterface";
export let TitleCAE:Array<TitleModel>=[
TitleMainPage[0],
TitleDefaultBars[0],
{cmName:'仿真',cmPage:'',cmTips:'',cmEvents: [
//数组表示非单个BtnEvent
[
@ -23,13 +23,13 @@ export let TitleCAE:Array<TitleModel>=[
] as Array<TitleButton>,
{eModel:[ModelType.BASE],eName:"选项",eNamed:"",ePage:'',eIcon:"base_open_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"帮助",eNamed:"",ePage:'',eIcon:"base_help_file",eTips:"",eEvent:""},
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]
]},
MatrixModel,
DevModel
]
export let TitleCAM:Array<TitleModel>=[TitleMainPage[0],
export let TitleCAM:Array<TitleModel>=[TitleDefaultBars[0],
{cmName:'仿真',cmPage:'',cmTips:'',cmEvents: [
//数组表示非单个BtnEvent
[
@ -45,7 +45,7 @@ export let TitleCAM:Array<TitleModel>=[TitleMainPage[0],
] as Array<TitleButton>,
{eModel:[ModelType.BASE],eName:"选项",eNamed:"",ePage:'',eIcon:"base_open_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"帮助",eNamed:"",ePage:'',eIcon:"base_help_file",eTips:"",eEvent:""},
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]
]},
MatrixModel,

View File

@ -1,13 +1,13 @@
import { TitleModel } from "./TabContent";
import {TitleMainPage} from './MainPage'
import { TitleModel } from "./TitleTabData";
import {TitleDefaultBars} from './TitleDefaultBars'
import {ModelType} from './ModelType'
import { GroupOption } from "./GroupOption";
import { GroupActionMenu } from "./GroupAction";
import { TitleGroup } from "../Interface/GroupInterface";
import { MatrixModel,DevModel } from "./MatrixModel";
import { TitleButton } from "../Interface/ButtonInterface";
export let TitleCAM:Array<TitleModel>=[
TitleMainPage[0],
TitleDefaultBars[0],
{cmName:'加工',cmPage:'',cmTips:'',cmEvents: [
//数组表示非单个BtnEvent
[
@ -24,7 +24,7 @@ export let TitleCAM:Array<TitleModel>=[
{eModel:[ModelType.BASE],eName:"新建工序",eNamed:"",ePage:'',eIcon:"base_import_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"新建刀具",eNamed:"",ePage:'',eIcon:"base_export_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"选项",eNamed:"",ePage:'',eIcon:"base_open_file",eTips:"",eEvent:""},
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]
]},
MatrixModel,

View File

@ -0,0 +1,9 @@
import { TitleButton } from "../Interface/ButtonInterface";
import { BaseMenuData } from "../Interface/MenuInterface";
import { TitleTabData } from "./TitleTabData";
//文件菜单数据初始化
export let FileMenuData:BaseMenuData= {
aMenus: TitleTabData.mFileModel[0][0].grpBtn,
aIndex: 0
};

View File

@ -1,16 +0,0 @@
import { TitleModel } from "../Interface/ModelInterface";
import { ModelType } from "./ModelType";
//文件模块布局数据
export let FileModel:TitleModel={cmName:"文件",cmPage:"",cmTips:"",cmEvents:[
{eModel:[ModelType.BASE],eName:"新建",eNamed:"",ePage:'',eIcon:"base_new_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"打开",eNamed:"",ePage:'',eIcon:"base_open_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"保存",eNamed:"",ePage:'',eIcon:"base_save_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"关闭",eNamed:"",ePage:'',eIcon:"base_close_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"导入",eNamed:"",ePage:'',eIcon:"base_import_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"导出",eNamed:"",ePage:'',eIcon:"base_export_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"首选项",eNamed:"",ePage:'',eIcon:"base_properties",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"工具",eNamed:"",ePage:'',eIcon:"base_tools",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"帮助",eNamed:"",ePage:'',eIcon:"base_help_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"退出",eNamed:"",ePage:'',eIcon:"base_exit_icon",eTips:"",eEvent:""},
]}

View File

@ -0,0 +1,9 @@
import { TitleButton } from "../Interface/ButtonInterface";
import { ModelType } from "./ModelType";
//功能主的操作功能布局数据
export let GroupActionMenu:Array<TitleButton>=[
{eModel:[ModelType.BASE],eName:"增加功能",eNamed:"",ePage:'',eIcon:"",eTips:"正三轴测图",eEvent:""},
{eModel:[ModelType.BASE],eName:"编辑功能组",eNamed:"",ePage:'',eIcon:"",eTips:"前视图",eEvent:""},
{eModel:[ModelType.BASE],eName:"删除功能组",eNamed:"",ePage:'',eIcon:"",eTips:"前视图",eEvent:""},
{eModel:[ModelType.BASE],eName:"移动功能组",eNamed:"",ePage:'',eIcon:"",eTips:"正等测图",eEvent:""}
]

View File

@ -1,9 +0,0 @@
import { TitleMenu } from "../Interface/MenuInterface";
//功能主的操作功能布局数据
export let GroupOption:Array<TitleMenu>=[
{mName:'增加功能',mIcon:'',mPage:'',mTips:"",mEvent:''},
{mName:'编辑功能组',mIcon:'',mPage:'',mTips:"",mEvent:''},
{mName:'删除功能组',mIcon:'',mPage:'',mTips:"",mEvent:''},
{mName:'移动功能组',mIcon:'',mPage:'',mTips:"",mEvent:''}
]

View File

@ -2,7 +2,7 @@ import { TitleButton } from "../Interface/ButtonInterface";
import { ModelType } from "./ModelType";
//视图选择布局数据
export let LayoutOption:Array<TitleButton>=[
export let LayoutSwitch:Array<TitleButton>=[
{eModel:[ModelType.BASE],eName:"图层设置",eNamed:"",ePage:'',eIcon:"layer_settings",eTips:"正三轴测图",eEvent:""},
{eModel:[ModelType.BASE],eName:"视图中可见图层",eNamed:"",ePage:'',eIcon:"layer_vis_in_view",eTips:"俯视图",eEvent:""},
{eModel:[ModelType.BASE],eName:"图层类别",eNamed:"",ePage:'',eIcon:"layer_category",eTips:"正等测图",eEvent:""},

View File

@ -1,29 +0,0 @@
import { TitleButton } from "../Interface/ButtonInterface";
import { TitleGroup } from "../Interface/GroupInterface";
import { DevModel, MatrixModel } from "./MatrixModel";
import { ModelType } from "./ModelType";
import { GroupOption } from "./GroupOption";
import { TitleModel } from "./TabContent";
import { FileModel } from "./FileModel";
//主页栏目布局数据
export let TitleMainPage:Array<TitleModel>=
[
{cmName:'主页',cmPage:'',cmTips:'',cmEvents: [[[{grpName:'文件功能组',grpBtn:[
{eModel:[ModelType.BASE],eName:"新建",eNamed:"",ePage:'',eIcon:"base_new_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"打开",eNamed:"",ePage:'',eIcon:"base_open_file",eTips:"",eEvent:""},
[
{eModel:[ModelType.BASE],eName:"保存",eNamed:"",ePage:'',eIcon:"base_save_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"另存为",eNamed:"",ePage:'',eIcon:"base_saveas_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"保存全部",eNamed:"",ePage:'',eIcon:"base_saveall_file",eTips:"",eEvent:""},
] as Array<TitleButton>,
{eModel:[ModelType.BASE],eName:"关闭",eNamed:"",ePage:'',eIcon:"base_close_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"导入",eNamed:"",ePage:'',eIcon:"base_import_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"导出",eNamed:"",ePage:'',eIcon:"base_export_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"选项",eNamed:"",ePage:'',eIcon:"base_properties",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"帮助",eNamed:"",ePage:'',eIcon:"base_help_file",eTips:"",eEvent:""},
],
grpMenu:GroupOption}] as Array<TitleGroup>]]},
MatrixModel,
DevModel
]

View File

@ -1,6 +1,6 @@
import { TitleGroup } from '../Interface/GroupInterface'
import {TitleModel} from '../Interface/ModelInterface'
import { GroupOption } from './GroupOption'
import { GroupActionMenu } from './GroupAction'
import { ModelType } from './ModelType'
//模块矩阵布局数据
@ -10,7 +10,7 @@ export let MatrixModel:TitleModel= {
{eModel:[ModelType.BASE],eName:"建模",eNamed:"",ePage:'',eIcon:"base_model_cad",eTips:"",eEvent:"Switch_Model_CAD"},
{eModel:[ModelType.BASE],eName:"加工",eNamed:"",ePage:'',eIcon:"base_model_cam",eTips:"",eEvent:"Switch_Model_CAM"},
{eModel:[ModelType.BASE],eName:"仿真",eNamed:"",ePage:'',eIcon:"base_model_cae",eTips:"",eEvent:"Switch_Model_CAE"},
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]]
}
//模块矩阵布局数据
@ -22,6 +22,6 @@ export let DevModel:TitleModel= {
{eModel:[ModelType.BASE],eName:"创建子窗体",eNamed:"",ePage:'pages/EventSubWindow/SWExtrude',eIcon:"base_new_file",eTips:"",eEvent:"Execute_CreateSubWindow"},
{eModel:[ModelType.BASE],eName:"关闭子窗体",eNamed:"",ePage:'pages/EventSubWindow/SWExtrude',eIcon:"base_new_file",eTips:"",eEvent:"Execute_ExitSubWindow"},
]
],grpMenu:GroupOption}] as Array<TitleGroup>
],grpMenu:GroupActionMenu}] as Array<TitleGroup>
]]
}

View File

@ -0,0 +1,10 @@
import { TitleButton } from "../Interface/ButtonInterface";
import { ModelType } from "./ModelType";
//功能布局数据
export let MenuAction:Array<TitleButton>=[
{eModel:[ModelType.BASE],eName:"增功能",eNamed:"",ePage:'',eIcon:"",eTips:"增功能",eEvent:""},
{eModel:[ModelType.BASE],eName:"编辑组",eNamed:"",ePage:'',eIcon:"",eTips:"编辑组",eEvent:""},
{eModel:[ModelType.BASE],eName:"改图标",eNamed:"",ePage:'',eIcon:"",eTips:"改图标",eEvent:""},
{eModel:[ModelType.BASE],eName:"重命名",eNamed:"",ePage:'',eIcon:"",eTips:"重命名",eEvent:""},
{eModel:[ModelType.BASE],eName:"移动到",eNamed:"",ePage:'',eIcon:"",eTips:"移动到",eEvent:""},
]

View File

@ -2,7 +2,7 @@ import { TitleButton } from "../Interface/ButtonInterface";
import { ModelType } from "./ModelType";
//拾取器过滤布局数据
export let SelectionMode:Array<TitleButton>=[
export let SelectionFilter:Array<TitleButton>=[
{eModel:[ModelType.BASE],eName:"实体特征",eNamed:"",ePage:'',eIcon:"",eTips:"正三轴测图",eEvent:""},
{eModel:[ModelType.BASE],eName:"曲线特征",eNamed:"",ePage:'',eIcon:"",eTips:"前视图",eEvent:""},
{eModel:[ModelType.BASE],eName:"加工特征",eNamed:"",ePage:'',eIcon:"",eTips:"前视图",eEvent:""},

View File

@ -0,0 +1,29 @@
import { TitleButton } from "../Interface/ButtonInterface";
import { TitleGroup } from "../Interface/GroupInterface";
import { DevModel, MatrixModel } from "./MatrixModel";
import { ModelType } from "./ModelType";
import { GroupActionMenu } from "./GroupAction";
import { TitleModel } from "./TitleTabData";
//主页栏目布局数据
export let TitleDefaultBars:Array<TitleModel>=
[
{cmName:'主页',cmPage:'',cmTips:'',cmEvents:
[[[{ grpName:'文件', grpBtn:
[
{eModel:[ModelType.BASE],eName:"新建",eNamed:"",ePage:'',eIcon:"base_new_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"打开",eNamed:"",ePage:'',eIcon:"base_open_file",eTips:"",eEvent:""},
[
{eModel:[ModelType.BASE],eName:"保存",eNamed:"",ePage:'',eIcon:"base_save_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"另存为",eNamed:"",ePage:'',eIcon:"base_saveas_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"保存全部",eNamed:"",ePage:'',eIcon:"base_saveall_file",eTips:"",eEvent:""},
] as Array<TitleButton>,
{eModel:[ModelType.BASE],eName:"关闭",eNamed:"",ePage:'',eIcon:"base_close_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"导入",eNamed:"",ePage:'',eIcon:"base_import_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"导出",eNamed:"",ePage:'',eIcon:"base_export_file",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"选项",eNamed:"",ePage:'',eIcon:"base_properties",eTips:"",eEvent:""},
{eModel:[ModelType.BASE],eName:"帮助",eNamed:"",ePage:'',eIcon:"base_help_file",eTips:"",eEvent:""},
], grpMenu:GroupActionMenu }] as Array<TitleGroup>]]},
MatrixModel,
DevModel
]

View File

@ -1,17 +1,17 @@
import { FileModel } from './FileModel'
import { TitleInterface } from '../Interface/Interface'
import { TitleModel } from '../Interface/ModelInterface'
import { TitleMainPage } from './MainPage'
import { TitleDefaultBars } from './TitleDefaultBars'
import {TitleCAD} from './CAD'
import {TitleCAM} from './CAM'
import {TitleCAE} from './CAE'
import { TitleGroup } from '../Interface/GroupInterface'
//Title栏得布局数据
export let TitleData:TitleInterface= {
export let TitleTabData:TitleInterface= {
mId:"0",
mFileModel:FileModel,
mFileModel:TitleDefaultBars[0].cmEvents[0] as Array<Array<TitleGroup>>,
mModels:new Map<number,Array<TitleModel>>([
[0,TitleMainPage],
[0,TitleDefaultBars],
[1,TitleCAD],
[2,TitleCAM],
[3,TitleCAE]

View File

@ -2,10 +2,10 @@ import { TextComboBox,TextInputComboBox } from "../CustomStyle/ComboBox";
import { TitleButton } from "../LayoutInterface/Interface/ButtonInterface";
import { ViewDialog } from "../CustomStyle/Dialog"
import { SwitchView } from "../LayoutInterface/Layout/SwitchView";
import {SelectionMode} from "../LayoutInterface/Layout/SelectionMode"
import {SelectionFilter} from "../LayoutInterface/Layout/SelectionFilter"
import {DisplayMode} from "../LayoutInterface/Layout/DisplayMode"
import { LayoutOption } from "../LayoutInterface/Layout/LayoutOption";
import { TitleData } from "../LayoutInterface/Layout/TabContent";
import { LayoutSwitch } from "../LayoutInterface/Layout/LayoutSwitch";
import { FileMenuData } from "../LayoutInterface/Layout/FileMenuData";
import { mwInfo } from "../AppStorageV2Class";
import { SubColumnMenu } from "../CustomStyle/Button";
@ -17,6 +17,7 @@ export struct TitleColumnSub {
@Local dX:number=0;
@Local dY:number=0;
@Local viewDialog:CustomDialogController|undefined=undefined;
//文件操作目录数据初始化
private ViewDialog(): CustomDialogController {
return new CustomDialogController({
@ -33,21 +34,21 @@ export struct TitleColumnSub {
build(){
Row({space:5}){
SubColumnMenu({menus:TitleData.mFileModel.cmEvents as Array<TitleButton>,icon:'base_shortcut_menu'})
SubColumnMenu({menus:FileMenuData.aMenus as Array<TitleButton>,icon:'base_shortcut_menu'})
.margin({ top:0, left: 5, bottom: 0, right: 0 })
Text('菜单')
.fontSize(20)
Text('|')
Text('拾取类型:')
.fontSize(20)
TextComboBox({menu:SelectionMode})
TextComboBox({menu:SelectionFilter})
.borderWidth(1)
.borderColor(Color.Grey)
.borderRadius(5)
Text('图层:')
.fontSize(20)
TextInputComboBox({menu:this.layerArray}).width('10%')
SubColumnMenu({menus:LayoutOption,icon:LayoutOption[0].eIcon})
SubColumnMenu({menus:LayoutSwitch,icon:LayoutSwitch[0].eIcon})
//视角弹窗
Button().onClick((event) => {
this.dX=event.windowX

View File

@ -1,14 +1,10 @@
import { hilog } from '@kit.PerformanceAnalysisKit';
import { ArrayList } from '@kit.ArkTS';
import { AddFormMenuItem } from '@ohos.arkui.advanced.FormMenu';
import { SceneResourceType } from '@kit.ArkGraphics3D';
//导入布局模块
import {TitleData, TitleModel} from '../LayoutInterface/Layout/TabContent'
import { TitleButton } from '../LayoutInterface/Interface/ButtonInterface'
import { TitleGroup } from '../LayoutInterface/Interface/GroupInterface'
import {TitleTabData, TitleModel} from '../LayoutInterface/Layout/TitleTabData'
import { FileMenuData } from "../LayoutInterface/Layout/FileMenuData";
import {TitleTabContent} from './TitleTabContent'
import { mwInfo } from '../AppStorageV2Class';
import { BaseMenu} from '../CustomStyle/Menu';
import { TitleButton } from '../LayoutInterface/Interface/ButtonInterface';
@Entry
@ComponentV2
@ -20,28 +16,18 @@ export struct TitleTab {
//TabBar默认焦点
@Local titleBarDefaultFocusIndex: number = 0;
//模块Bar栏
@Provider('curtModel') curtModel:Array<TitleModel>|undefined= TitleData.mModels.get(this.titleBarFocusIndex)
@Builder
FileMenu(menus: Array<TitleButton>) {
Menu() {
ForEach(menus, (item: TitleButton, index: number) => {
MenuItem({ startIcon: $r('app.media.'+item.eIcon), content: item.eName })
.size({height: mwInfo.mainWindowWidth*0.02})
})
}.fontSize(20)
}
@Provider('curtModel') curtModel:Array<TitleModel>|undefined= TitleTabData.mModels.get(this.titleBarFocusIndex)
build() {
Flex({ direction: FlexDirection.Column }){
Scroll() {
Row({space:0}) {
Button(TitleData.mFileModel.cmName)
Button((FileMenuData.aMenus[0] as TitleButton).eName)
.fontSize(16)
.fontColor(Color.Black)
.height(mwInfo.mainWindowHeight*0.025)
.width(mwInfo.mainWindowWidth*0.035)
.bindMenu(this.FileMenu(TitleData.mFileModel.cmEvents as Array<TitleButton>))
.bindMenu(BaseMenu(FileMenuData))
.type(ButtonType.Normal)
.backgroundColor('#f3f3f0')
@ -58,12 +44,6 @@ export struct TitleTab {
this.titleBarTabs.changeIndex(index);
this.titleBarFocusIndex = index;
})
.onAxisEvent((event?: AxisEvent) => {
if (event?.hasAxis(AxisType.VERTICAL_AXIS)) {
this.titleBarTabs.changeIndex(index);
this.titleBarFocusIndex = index;
}
})
})
}
}

View File

@ -3,7 +3,7 @@ import { TitleButton} from '../LayoutInterface/Interface/ButtonInterface';
import { TitleGroup} from '../LayoutInterface/Interface/GroupInterface';
import {GroupTextEventMenu} from '../CustomStyle/Menu'
import {EventBtn,MenuBtn} from '../CustomStyle/Button'
import { TitleModel } from '../LayoutInterface/Layout/TabContent';
import { TitleModel } from '../LayoutInterface/Layout/TitleTabData';
import { mwInfo } from '../AppStorageV2Class';
@ComponentV2