1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import { Pen } from '@meta2d/core';
- import { reactive } from 'vue';
- export enum SelectionMode {
- File,
- Pen,
- Pens,
- }
- const selections = reactive<{
- mode: SelectionMode;
- pen?: Pen;
- pens?: Pen[];
- }>({
- // 选中对象类型:0 - 画布;1 - 单个图元;2 - 多选
- mode: SelectionMode.File,
- pen: undefined,
- pens: undefined,
- });
- export const useSelection = () => {
- const select = (pens?: Pen[]) => {
- if (!pens || !pens.length) {
- selections.mode = SelectionMode.File;
- selections.pen = undefined;
- selections.pens = undefined;
- return;
- }
- if (pens.length > 1) {
- selections.mode = SelectionMode.Pens;
- selections.pen = undefined;
- selections.pens = pens;
- } else {
- selections.mode = SelectionMode.Pen;
- selections.pen = pens[0];
- selections.pens = undefined;
- }
- };
- return {
- selections,
- select,
- };
- };
|