init : 初始化仓库

This commit is contained in:
2024-08-18 22:21:18 +08:00
commit 934b3b7b74
366 changed files with 55148 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
/**
* @author: clay
* @data: 2019/07/16
* @description: edit mode: 键盘事件的交互,主要是删除节点和连线(记录删除前后的数据,用于【撤销】和【重做】)
*/
// 用来获取调用此js的vue组件实例this
let vm = null;
const sendThis = (_this) => {
vm = _this;
};
export default {
sendThis, // 暴露函数
name: "keyup-event-edit",
options: {
getEvents() {
return {
"keyup": "onKeyup",
"keydown": "onKeydown",
};
},
onKeyup(event) {
let graph = vm.getGraph();
let selectedNodes = graph.findAllByState("node", "selected");
let selectedEdges = graph.findAllByState("edge", "selected");
//按住键盘delete-46删除功能
if (event.keyCode === 46 && (selectedNodes.length > 0 || selectedEdges.length > 0)) {
// ************** 记录【删除】前的数据状态 start **************
let historyData = JSON.stringify(graph.save());
let key = `graph_history_${vm.getHistoryIndex()}`;
vm.addHistoryData(key, historyData);
// ************** 记录【删除】前的数据状态 end **************
// 开始删除
selectedNodes.forEach(item=>graph.removeItem(item))
selectedEdges.forEach(item=>graph.removeItem(item))
// ************** 记录【删除】后的数据状态 start **************
// 如果当前点过【撤销】了,拖拽节点后将取消【重做】功能
// 重置undoCount【删除】后的数据状态给(当前所在historyIndex + 1),且清空这个时间点之后的记录
if (vm.getUndoCount() > 0) {
vm.editHistoryIndex( vm.getHistoryIndex() - vm.getUndoCount()); // 此时的historyIndex应当更新为【撤销】后所在的索引位置
for (let i = 1; i <= vm.getUndoCount(); i++) {
let key = `graph_history_${vm.getHistoryIndex() + i}`;
vm.removeHistoryData(key);
}
vm.editUndoCount(0);
}
// 记录【删除】后的数据状态
const index=vm.getHistoryIndex()+ 1;
vm.editHistoryIndex(index);
key = `graph_history_${index}`;
let currentData = JSON.stringify(graph.save());
vm.addHistoryData(key, currentData);
// ************** 记录【删除】后的数据状态 end **************
} else if (event.keyCode == 17) {//ctrl键将状态传给父组件在clickErNode里面编写功能按住ctrl滚动后放大缩小ER图
vm.editClickCtrl(false)//松开则为false
}
},
onKeydown(event) {
if (event.keyCode == 17) {//ctrl键
vm.editClickCtrl(true)//为true时一直按着ctrl以实现滚轮放大缩小功能
}
}
}
};