mirror of
				https://github.com/Tencent/tmagic-editor.git
				synced 2025-11-04 02:28:04 +08:00 
			
		
		
		
	fix(editor): 修复优化性能引起的问题,支持回退撤销对代码关系的更新
This commit is contained in:
		
							parent
							
								
									8102aaeb12
								
							
						
					
					
						commit
						010918198a
					
				@ -87,7 +87,7 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts" setup name="MEditorCodeBlockList">
 | 
			
		||||
import { computed, inject, onMounted, reactive, ref, watch } from 'vue';
 | 
			
		||||
import { computed, inject, reactive, ref, watch } from 'vue';
 | 
			
		||||
import { Close, Edit, Link, View } from '@element-plus/icons-vue';
 | 
			
		||||
import { cloneDeep, forIn, isEmpty } from 'lodash-es';
 | 
			
		||||
 | 
			
		||||
@ -152,10 +152,13 @@ const refreshCodeList = async () => {
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
onMounted(() => {
 | 
			
		||||
  services?.codeBlockService.refreshAllRelations();
 | 
			
		||||
  refreshCodeList();
 | 
			
		||||
});
 | 
			
		||||
watch(
 | 
			
		||||
  () => services?.editorService.get('root'),
 | 
			
		||||
  () => {
 | 
			
		||||
    services?.codeBlockService.refreshAllRelations();
 | 
			
		||||
    refreshCodeList();
 | 
			
		||||
  },
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
watch(
 | 
			
		||||
  [() => services?.codeBlockService.getCodeDslSync(), () => services?.codeBlockService.getCombineInfo()],
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@
 | 
			
		||||
import { reactive } from 'vue';
 | 
			
		||||
import { cloneDeep, forIn, isEmpty, keys, omit, pick, union } from 'lodash-es';
 | 
			
		||||
 | 
			
		||||
import { CodeBlockContent, CodeBlockDSL, HookType, Id, MNode } from '@tmagic/schema';
 | 
			
		||||
import { CodeBlockContent, CodeBlockDSL, HookType, Id, MNode, MPage } from '@tmagic/schema';
 | 
			
		||||
 | 
			
		||||
import editorService from '../services/editor';
 | 
			
		||||
import type { CodeRelation, CodeState, HookData } from '../type';
 | 
			
		||||
@ -251,6 +251,12 @@ class CodeBlock extends BaseService {
 | 
			
		||||
        this.state.relations = this.deleteNodeRelation(node, this.state.relations);
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
    // 监听历史记录,历史快照为页面整体,需要深层遍历更新
 | 
			
		||||
    editorService.on('history-change', (page: MPage) => {
 | 
			
		||||
      const relations: CodeRelation = {};
 | 
			
		||||
      this.getNodeRelation(page, relations, true);
 | 
			
		||||
      this.state.relations = relations;
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
 | 
			
		||||
@ -886,6 +886,7 @@ class Editor extends BaseService {
 | 
			
		||||
      await this.select(value.nodeId);
 | 
			
		||||
      this.get('stage')?.select(value.nodeId);
 | 
			
		||||
    }, 0);
 | 
			
		||||
    this.emit('history-change', value.data);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private async toggleFixedPosition(dist: MNode, src: MNode, root: MApp) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user