You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.6 KiB

import { PropType } from "vue-demi";
import { DefineProps, DefineEmits } from "../../../types";
export const NATIVE_PROPS = {
/** 矩形边线颜色 */
color: { type: String, default: "#0000ff" },
/** 矩形边线的宽度,以像素为单位 */
weight: { type: Number, default: 3 },
/** 矩形边线的透明度范围0-1 之间) */
opacity: { type: Number, default: 0.5 },
/** 矩形边线的样式solid或dashed */
lineStyle: { type: String as PropType<"solid" | "dashed">, default: "solid" },
/** 矩形填充颜色。当参数为空时,折线覆盖物将没有填充效果 */
fillColor: { type: String, default: "#0000ff" },
/** 矩形填充的透明度范围0-1 之间) */
fillOpacity: { type: Number, default: 0.2 }
};
export const EXTRA_PROPS = {
/** 启用/禁用编辑功能 */
edit: { type: Boolean, default: false },
/** 矩形地理范围 */
bounds: { type: Array as unknown as PropType<VT.Bounds>, default: () => [] },
/** 是否可见 */
visible: { type: Boolean, default: true },
/** 自定义属性 */
extData: { type: undefined as unknown as PropType<any> }
};
export const NATIVE_EVENTS: T.RectangleEvents = {
click: () => true,
dblclick: () => true,
mousedown: () => true,
mouseup: () => true,
mouseout: () => true,
mouseover: () => true,
remove: () => true
};
export const EXTRA_EVENTS = {
init: (e: T.Rectangle) => e instanceof T.Rectangle
};
export const PROPS = { ...NATIVE_PROPS, ...EXTRA_PROPS };
export const EVENTS = { ...NATIVE_EVENTS, ...EXTRA_EVENTS };
export type Props = DefineProps<typeof PROPS>;
export type Emit = DefineEmits<typeof EVENTS>;