|
@@ -27,4 +27,97 @@ function init() {
|
|
|
document.addEventListener("touchmove", touchHandler, true);
|
|
|
document.addEventListener("touchend", touchHandler, true);
|
|
|
document.addEventListener("touchcancel", touchHandler, true);
|
|
|
+
|
|
|
+
|
|
|
+ HTMLElement.prototype.__defineGetter__("ondblclick", function () {
|
|
|
+ return this.doubleTap;
|
|
|
+ });
|
|
|
+
|
|
|
+ HTMLElement.prototype.__defineSetter__("ondblclick", function (fun) {
|
|
|
+ this.doubleTap = fun;
|
|
|
+ $(this).on("doubleTap", fun)
|
|
|
+ });
|
|
|
+ var eventlstener = HTMLElement.prototype.addEventListener;
|
|
|
+
|
|
|
+ HTMLElement.prototype.addEventListener = function (type, fun, op) {
|
|
|
+ if (type == "click") {
|
|
|
+ eventlstener.call(this, type, function (e) {
|
|
|
+ if (!this.startTime) {
|
|
|
+ this.startTime = new Date().getTime();
|
|
|
+ fun.call(this);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ const time = new Date().getTime() - this.startTime;
|
|
|
+ this.startTime = new Date().getTime();
|
|
|
+ if (time > 200) {
|
|
|
+ fun.call(this);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ e.detail = 2;
|
|
|
+ fun.call(this);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }, op);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ eventlstener.apply(this, arguments);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // handleClick = (e: MouseEvent) => {
|
|
|
+ // // 节点拖拽进画布之后,不触发click事件相关emit
|
|
|
+ // // 点拖拽进画布没有触发mousedown事件,没有startTime,用这个值做区分
|
|
|
+ // if (!this.startTime) return;
|
|
|
+ // const time = new Date().getTime() - this.startTime;
|
|
|
+ // if (time > 200) return; // 事件大于200ms,认为是拖拽, 不触发click事件。
|
|
|
+ // const { model, graphModel } = this.props;
|
|
|
+ // // 节点数据,多为事件对象数据抛出
|
|
|
+ // const nodeData = model.getData();
|
|
|
+ // const position = graphModel.getPointByClient({
|
|
|
+ // x: e.clientX,
|
|
|
+ // y: e.clientY,
|
|
|
+ // });
|
|
|
+
|
|
|
+ // const eventOptions: EventArgs = {
|
|
|
+ // data: nodeData,
|
|
|
+ // e,
|
|
|
+ // position,
|
|
|
+ // isSelected: false,
|
|
|
+ // isMultiple: false,
|
|
|
+ // };
|
|
|
+
|
|
|
+ // const isRightClick = e.button === 2;
|
|
|
+ // // 这里 IE 11不能正确显示
|
|
|
+ // const isDoubleClick = e.detail === 2;
|
|
|
+
|
|
|
+ // // 判断是否有右击,如果有右击则取消点击事件触发
|
|
|
+ // if (isRightClick) return;
|
|
|
+
|
|
|
+ // const { editConfigModel } = graphModel;
|
|
|
+ // // 在multipleSelect tool禁用的情况下,允许取消选中节点
|
|
|
+ // const isMultiple = isMultipleSelect(e, editConfigModel);
|
|
|
+ // eventOptions.isMultiple = isMultiple;
|
|
|
+ // if (model.isSelected && !isDoubleClick && isMultiple) {
|
|
|
+ // eventOptions.isSelected = false;
|
|
|
+ // model.setSelected(false);
|
|
|
+ // } else {
|
|
|
+ // graphModel.selectNodeById(model.id, isMultiple);
|
|
|
+ // eventOptions.isSelected = true;
|
|
|
+ // this.toFront();
|
|
|
+ // }
|
|
|
+
|
|
|
+ // // 不是双击的,默认都是单击
|
|
|
+ // if (isDoubleClick) {
|
|
|
+ // if (editConfigModel.nodeTextEdit && model.text.editable) {
|
|
|
+ // model.setSelected(false);
|
|
|
+ // graphModel.setElementStateById(model.id, ElementState.TEXT_EDIT);
|
|
|
+ // }
|
|
|
+ // graphModel.eventCenter.emit(EventType.NODE_DBCLICK, eventOptions);
|
|
|
+ // } else {
|
|
|
+ // graphModel.eventCenter.emit(EventType.ELEMENT_CLICK, eventOptions);
|
|
|
+ // graphModel.eventCenter.emit(EventType.NODE_CLICK, eventOptions);
|
|
|
+ // }
|
|
|
+ // };
|
|
|
}
|