1
0
mirror of synced 2025-11-06 04:21:02 +08:00

Compare commits

...

5 Commits

Author SHA1 Message Date
roymondchen
28d5ad4573 v1.0.0-rc.4 2022-05-31 12:07:38 +08:00
roymondchen
8656f48714 fix(editor): 右键菜单,mac触摸板上容易在菜单出现的时候触发当前鼠标位置的按钮 2022-05-31 11:55:40 +08:00
roymondchen
166904b18f feat(stage): 增加对齐线 2022-05-31 11:41:32 +08:00
roymondchen
77f36965d8 fix(editor): 右键菜单粘贴的组件位置不对 2022-05-30 21:13:15 +08:00
roymondchen
64798b21c6 fix(editor): 复制页面,页面名称重新生成 2022-05-30 20:55:59 +08:00
30 changed files with 102 additions and 71 deletions

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"npmClient": "npm",
"packages": [
"packages/*",

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"name": "@tmagic/core",
"sideEffects": [
"dist/*"
@@ -33,7 +33,7 @@
"vue"
],
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.4",
"events": "^3.3.0"
},
"devDependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/editor",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"name": "@tmagic/editor",
"sideEffects": [
"dist/*",
@@ -45,11 +45,11 @@
"dependencies": {
"@babel/core": "^7.18.0",
"@element-plus/icons": "0.0.11",
"@tmagic/core": "^1.0.0-rc.3",
"@tmagic/form": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/stage": "^1.0.0-rc.3",
"@tmagic/utils": "^1.0.0-rc.3",
"@tmagic/core": "^1.0.0-rc.4",
"@tmagic/form": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/stage": "^1.0.0-rc.4",
"@tmagic/utils": "^1.0.0-rc.4",
"buffer": "^6.0.3",
"color": "^3.1.3",
"element-plus": "^2.2.0",

View File

@@ -1,5 +1,5 @@
<template>
<div v-if="menuData.length" v-show="visible" class="magic-editor-content-menu" ref="menu" :style="menuStyle">
<div v-if="menuData.length && visible" class="magic-editor-content-menu" ref="menu" :style="menuStyle">
<div>
<tool-button
v-for="(item, index) in menuData"

View File

@@ -69,8 +69,20 @@ export default defineComponent({
text: '粘贴',
display: () => canPaste.value,
handler: () => {
const top = menu.value?.$el.offsetTop || 0;
const left = menu.value?.$el.offsetLeft || 0;
const stage = editorService?.get<StageCore>('stage');
const rect = menu.value?.$el.getBoundingClientRect();
const parentRect = stage?.container?.getBoundingClientRect();
let left = (rect?.left || 0) - (parentRect?.left || 0);
let top = (rect?.top || 0) - (parentRect?.top || 0);
if (node.value?.items && stage) {
const parentEl = stage.renderer.contentWindow?.document.getElementById(`${node.value.id}`);
const parentElRect = parentEl?.getBoundingClientRect();
left = left - (parentElRect?.left || 0);
top = top - (parentElRect?.top || 0);
}
editorService?.paste({ left, top });
},
},

View File

@@ -91,7 +91,7 @@ const doAction = async (
* editorService.afterAdd();
* }
*
* 调用时的参数会透传到before方法的参数中, 然后before的return 会作为原方法的参数和after的参数after最后一个参数则是原方法的return值;
* 调用时的参数会透传到before方法的参数中, 然后before的return 会作为原方法的参数和after的参数after一个参数则是原方法的return值;
* 如需终止后续方法调用可以return new Error();
*
* 方法2

View File

@@ -33,6 +33,7 @@ import {
change2Fixed,
COPY_STORAGE_KEY,
Fixed2Other,
generatePageNameByApp,
getNodeIndex,
initPosition,
isFixed,
@@ -502,6 +503,10 @@ class Editor extends BaseService {
};
}
if (isPage(config)) {
config.name = generatePageNameByApp(this.get('root'));
}
return await this.add(config);
}

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/form",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"name": "@tmagic/form",
"sideEffects": [
"dist/*",
@@ -35,7 +35,7 @@
},
"dependencies": {
"@element-plus/icons": "0.0.11",
"@tmagic/utils": "^1.0.0-rc.3",
"@tmagic/utils": "^1.0.0-rc.4",
"element-plus": "^2.2.0",
"lodash-es": "^4.17.21",
"moment": "^2.29.2",

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"name": "@tmagic/schema",
"sideEffects": false,
"main": "dist/tmagic-schema.umd.js",

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"name": "@tmagic/stage",
"sideEffects": [
"dist/*"
@@ -27,9 +27,9 @@
},
"dependencies": {
"@scena/guides": "^0.17.0",
"@tmagic/core": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/utils": "^1.0.0-rc.3",
"@tmagic/core": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/utils": "^1.0.0-rc.4",
"events": "^3.3.0",
"lodash-es": "^4.17.21",
"moveable": "^0.29.4",

View File

@@ -25,7 +25,7 @@ import MoveableHelper from 'moveable-helper';
import { DRAG_EL_ID_PREFIX, GHOST_EL_ID_PREFIX, GuidesType, Mode } from './const';
import StageCore from './StageCore';
import type { Offset, Runtime, SortEventData, StageDragResizeConfig } from './types';
import type { Offset, SortEventData, StageDragResizeConfig } from './types';
import { getAbsolutePosition, getGuideLineFromCache, getMode, getOffset } from './util';
/** 拖动状态 */
@@ -166,11 +166,38 @@ export default class StageDragResize extends EventEmitter {
this.updateDragEl(el);
this.setElementGuidelines(el);
this.moveableOptions = this.getOptions({
target: this.dragEl,
});
}
private setElementGuidelines(el: HTMLElement) {
const nodes = el.parentElement?.children || [];
this.elementGuidelines.forEach((node) => {
node.remove();
});
this.elementGuidelines = [];
if (this.mode === Mode.ABSOLUTE) {
const frame = document.createDocumentFragment();
for (const node of nodes) {
const { width, height } = node.getBoundingClientRect();
if (node === el) continue;
const { left, top } = getOffset(node as HTMLElement);
const elementGuideline = document.createElement('div');
elementGuideline.style.cssText = `position: absolute;width: ${width}px;height: ${height}px;top: ${top}px;left: ${left}px`;
this.elementGuidelines.push(elementGuideline);
frame.append(elementGuideline);
}
this.container.append(frame);
}
}
private initMoveable() {
this.moveable?.destroy();
@@ -288,19 +315,6 @@ export default class StageDragResize extends EventEmitter {
});
}
private getSnapElements(runtime: Runtime, el?: HTMLElement): HTMLElement[] {
const { renderer, mask } = this.core;
const getSnapElements =
runtime?.getSnapElements ||
(() => {
const doc = renderer.contentWindow?.document;
return doc ? Array.from(doc.querySelectorAll('[id]')) : [];
});
return getSnapElements(el).filter(
(element) => element !== this.target && !this.target?.contains(element) && element !== mask.page,
);
}
private sort(): void {
if (!this.target || !this.ghostEl) throw new Error('未知错误');
const { top } = this.ghostEl.getBoundingClientRect();

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/table",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"name": "@tmagic/table",
"sideEffects": [
"dist/*"
@@ -30,7 +30,7 @@
"url": "https://github.com/Tencent/tmagic-editor.git"
},
"dependencies": {
"@tmagic/form": "^1.0.0-rc.3",
"@tmagic/form": "^1.0.0-rc.4",
"element-plus": "^2.2.0",
"lodash-es": "^4.17.21",
"vue": "^3.2.0"

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/ui-react",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/ui-react",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"main": "src/index.ts",
"engines": {
"node": ">=14"
@@ -13,7 +13,7 @@
"react:build": "tsc && vite build"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.4",
"qrcode": "^1.5.0",
"react": "^17.0.0",
"react-dom": "^17.0.0"

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/ui-vue2",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"name": "@tmagic/ui-vue2",
"main": "src/index.ts",
"scripts": {
@@ -13,10 +13,10 @@
"url": "https://github.com/Tencent/tmagic-editor.git"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.4",
"@vue/composition-api": "1.0.5",
"vue": "^2.6.14",
"qrcode": "^1.5.0"
"qrcode": "^1.5.0",
"vue": "^2.6.14"
},
"peerDependencies": {
"@vue/composition-api": "1.0.5",

View File

@@ -1,6 +1,6 @@
{
"name": "@tmagic/ui",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"name": "@tmagic/ui",
"main": "src/index.ts",
"engines": {
@@ -11,7 +11,7 @@
"url": "https://github.com/Tencent/tmagic-editor.git"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.4",
"delegate": "^3.2.0",
"qrcode": "^1.5.0",
"tiny-emitter": "^2.1.0",

View File

@@ -1,5 +1,5 @@
{
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"name": "@tmagic/utils",
"main": "dist/tmagic-utils.umd.js",
"module": "dist/tmagic-utils.es.js",
@@ -24,7 +24,7 @@
"url": "https://github.com/Tencent/tmagic-editor.git"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.4",
"moment": "^2.29.2"
},
"devDependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "tmagic-playground",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "tmagic-playground",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"private": true,
"scripts": {
"dev": "vite --mode vue3",
@@ -11,11 +11,11 @@
},
"dependencies": {
"@element-plus/icons": "0.0.11",
"@tmagic/editor": "^1.0.0-rc.3",
"@tmagic/form": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/stage": "^1.0.0-rc.3",
"@tmagic/utils": "^1.0.0-rc.3",
"@tmagic/editor": "^1.0.0-rc.4",
"@tmagic/form": "^1.0.0-rc.4",
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/stage": "^1.0.0-rc.4",
"@tmagic/utils": "^1.0.0-rc.4",
"element-plus": "^2.2.0",
"monaco-editor": "^0.32.1",
"serialize-javascript": "^6.0.0",

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-react",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-react",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"private": true,
"scripts": {
"dev:react": "npm run build && npm run serve",
@@ -9,8 +9,8 @@
"serve": "vite preview --port 8076"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/stage": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/stage": "^1.0.0-rc.4",
"react": "^17.0.2",
"react-dom": "^17.0.2"
},

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-vue2",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-vue2",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"private": true,
"scripts": {
"dev:vue2": "npm run build && npm run serve",
@@ -9,8 +9,8 @@
"serve": "vite preview --port 8077"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/stage": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/stage": "^1.0.0-rc.4",
"@vue/composition-api": "1.0.5",
"vue": "^2.6.14"
},

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-vue3",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "runtime-vue3",
"version": "1.0.0-rc.3",
"version": "1.0.0-rc.4",
"private": true,
"scripts": {
"dev": "npm run build && npm run serve",
@@ -9,8 +9,8 @@
"serve": "vite preview --port 8078"
},
"dependencies": {
"@tmagic/schema": "^1.0.0-rc.3",
"@tmagic/stage": "^1.0.0-rc.3",
"@tmagic/schema": "^1.0.0-rc.4",
"@tmagic/stage": "^1.0.0-rc.4",
"axios": "^0.25.0",
"vue": "^3.2.0"
},