@@ -37,9 +37,10 @@ import DOMUtils from "@/utils/DOMUtils";
37
37
import RenderQueue from "@/modules/render/RenderQueue" ;
38
38
import IStageUndo from "@/types/IStageUndo" ;
39
39
import StageUndo from "@/modules/stage/StageUndo" ;
40
- import { CommandTypes } from "@/types/ICommand" ;
40
+ import { CommandTypes , ICommandElementObject , IRemovedCommandElementObject } from "@/types/ICommand" ;
41
41
import ElementsAddedCommand from "@/modules/command/ElementsAddedCommand" ;
42
- import ElementsUpdatedCommand from "../command/ElementsUpdatedCommand" ;
42
+ import ElementsUpdatedCommand from "@/modules/command/ElementsUpdatedCommand" ;
43
+ import ElementsRemovedCommand from "@/modules/command/ElementsRemovedCommand" ;
43
44
44
45
export default class StageShield extends DrawerBase implements IStageShield , IStageAlignFuncs {
45
46
// 当前正在使用的创作工具
@@ -882,8 +883,8 @@ export default class StageShield extends DrawerBase implements IStageShield, ISt
882
883
const command = new ElementsUpdatedCommand (
883
884
{
884
885
type : CommandTypes . ElementsUpdated ,
885
- dataList : await Promise . all ( selectedElements . map ( element => element . toOriginalTranslateJson ( ) ) ) ,
886
- rDataList : await Promise . all ( selectedElements . map ( element => element . toTranslateJson ( ) ) ) ,
886
+ dataList : await Promise . all ( selectedElements . map ( async element => ( { model : await element . toOriginalTranslateJson ( ) } ) as ICommandElementObject ) ) ,
887
+ rDataList : await Promise . all ( selectedElements . map ( async element => ( { model : await element . toTranslateJson ( ) } ) as ICommandElementObject ) ) ,
887
888
} ,
888
889
this . store ,
889
890
) ;
@@ -993,7 +994,7 @@ export default class StageShield extends DrawerBase implements IStageShield, ISt
993
994
const command = new ElementsAddedCommand (
994
995
{
995
996
type : CommandTypes . ElementsAdded ,
996
- dataList : await Promise . all ( provisionalElements . map ( element => element . toJson ( ) ) ) ,
997
+ dataList : await Promise . all ( provisionalElements . map ( async element => ( { model : await element . toJson ( ) } ) as ICommandElementObject ) ) ,
997
998
} ,
998
999
this . store ,
999
1000
) ;
@@ -1316,22 +1317,23 @@ export default class StageShield extends DrawerBase implements IStageShield, ISt
1316
1317
}
1317
1318
1318
1319
/**
1319
- * 删除选中组件
1320
+ * 处理选中组件删除
1320
1321
*/
1321
- deleteSelectElements ( ) : void {
1322
+ async _handleSelectsDelete ( ) : Promise < void > {
1322
1323
if ( this . store . isSelectedEmpty ) {
1323
1324
return ;
1324
1325
}
1326
+ const command = new ElementsRemovedCommand (
1327
+ {
1328
+ type : CommandTypes . ElementsRemoved ,
1329
+ dataList : await Promise . all ( this . store . selectedElements . map ( async element => ( { model : await element . toJson ( ) } ) as IRemovedCommandElementObject ) ) ,
1330
+ } ,
1331
+ this . store ,
1332
+ ) ;
1333
+ this . undo . undoStack . push ( command ) ;
1325
1334
this . store . deleteSelects ( ) ;
1326
1335
}
1327
1336
1328
- /**
1329
- * 处理选中组件删除
1330
- */
1331
- _handleSelectsDelete ( ) : void {
1332
- this . deleteSelectElements ( ) ;
1333
- }
1334
-
1335
1337
/**
1336
1338
* 选中所有组件
1337
1339
*/
0 commit comments