|
@@ -1,9 +1,10 @@
|
|
|
-import {uiType, UIType, VectorType} from "@/hook/useGraphic";
|
|
|
+import {uiType, UIType, VectorType, graphicState} from "@/hook/useGraphic";
|
|
|
import {
|
|
|
findMenuByAttr,
|
|
|
generateByMenus as generateByMenusRaw,
|
|
|
generateMixMenus as generateMixMenusRaw
|
|
|
} from '@/utils/menus'
|
|
|
+import Message from "@/components/base/components/message/message.vue";
|
|
|
|
|
|
export enum Mode {
|
|
|
Road,
|
|
@@ -26,6 +27,7 @@ export const UITypeExtend = {
|
|
|
export type MenuRaw = {
|
|
|
key: string,
|
|
|
text: string,
|
|
|
+ onClick?: (data: MenuRaw) => void,
|
|
|
icon?: string,
|
|
|
children?: MenusRaw
|
|
|
extend?: MenusRaw
|
|
@@ -76,8 +78,28 @@ export const measureMenusRaw = [
|
|
|
{ key: UIType.MeasureLine, text: "基准线" },
|
|
|
{ key: UIType.MeasurePoint, text: "基准点" },
|
|
|
{ key: UIType.MeasureFree, text: "自由测量" },
|
|
|
- { key: UIType.MeasureCartesianMethod, text: "直角定位法" },
|
|
|
- { key: UIType.MeasureComprehensiveMethod, text: "综合定位法" },
|
|
|
+ {
|
|
|
+ key: UIType.AngleLocationMode,
|
|
|
+ text: "直角定位法",
|
|
|
+ onClick(data) {
|
|
|
+ if (graphicState.value.canAllLocationMode) {
|
|
|
+ uiType.change(data.key)
|
|
|
+ } else {
|
|
|
+ Message.success({ msg: "请添加基准线及基准点后再执行此操作", time: 3000 })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ key: UIType.AllLocationMode,
|
|
|
+ text: "综合定位法",
|
|
|
+ onClick(data) {
|
|
|
+ if (graphicState.value.canAllLocationMode) {
|
|
|
+ uiType.change(data.key)
|
|
|
+ } else {
|
|
|
+ Message.success({ msg: "请添加基准线及基准点后再执行此操作", time: 3000 })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
]
|
|
|
|
|
|
export const mainMenusRaw: MenusRaw = [
|
|
@@ -155,8 +177,8 @@ export const focusMenuRaw : { [key in string]: MenusRaw } = {
|
|
|
|
|
|
]
|
|
|
},
|
|
|
- { key: UIType.AddControlPoint, text: "加控制点" },
|
|
|
- { key: UIType.MinusControlPoint, text: "减控制点" },
|
|
|
+ { key: UIType.AddCrossPoint, text: "加控制点" },
|
|
|
+ { key: UIType.MinusCrossPoint, text: "减控制点" },
|
|
|
{ key: UIType.Copy, text: "复制" },
|
|
|
{ key: UIType.Delete, text: "删除" }
|
|
|
],
|
|
@@ -166,8 +188,8 @@ export const focusMenuRaw : { [key in string]: MenusRaw } = {
|
|
|
{ key: UIType.AddNarrowRoad, text: "加窄路" },
|
|
|
{ key: UIType.AddLane, text: "加车道" },
|
|
|
{ key: UIType.DelLane, text: "减车道" },
|
|
|
- { key: UIType.AddControlPoint, text: "加控制点" },
|
|
|
- { key: UIType.MinusControlPoint, text: "减控制点" },
|
|
|
+ { key: UIType.AddCrossPoint, text: "加控制点" },
|
|
|
+ { key: UIType.MinusCrossPoint, text: "减控制点" },
|
|
|
{ key: UIType.Copy, text: "复制" },
|
|
|
{ key: UIType.Delete, text: "删除" }
|
|
|
],
|
|
@@ -196,6 +218,12 @@ export const generateMixMenus = <T extends {}, K extends keyof MenuRaw>(
|
|
|
childKey,
|
|
|
generateFn,
|
|
|
mainMenus,
|
|
|
- menu => uiType.change(menu.key as any),
|
|
|
+ menu => {
|
|
|
+ if (menu.onClick) {
|
|
|
+ menu.onClick(menu)
|
|
|
+ } else {
|
|
|
+ uiType.change(menu.key as any)
|
|
|
+ }
|
|
|
+ },
|
|
|
() => uiType.current
|
|
|
);
|