Browse Source

文字添加缩放

liwei 1 year ago
parent
commit
55d53e5405

+ 4 - 4
src/modules/editor/components/CompUI/basicUI/Transfer/select.tsx

@@ -97,7 +97,7 @@ export const SelectTransfer = defineComponent({
             <>
               
               {
-                !isTextEdit &&  <div
+                <div
                   class={[resizeStyle, scaleBottomRightStyle]}
                   style={{ transform: transferStyle.matrixInvert }}
                   id="scaleBottomright"
@@ -105,7 +105,7 @@ export const SelectTransfer = defineComponent({
               }
 
                 {
-                  !isTextEdit &&   <div
+                    <div
                     class={[resizeStyle, scaleBottomLeftStyle]}
                     style={{ transform: transferStyle.matrixInvert }}
                     id="scaleBottomleft"
@@ -113,14 +113,14 @@ export const SelectTransfer = defineComponent({
                 }
 
               {
-                  !isTextEdit &&<div
+                  <div
                   class={[resizeStyle, scaleTopLeftStyle]}
                   style={{ transform: transferStyle.matrixInvert }}
                   id="scaleTopleft"
                 />
               }
               {
-                  !isTextEdit && <div
+                <div
                   class={[resizeStyle, scaleTopRightStyle]}
                   style={{ transform: transferStyle.matrixInvert }}
                   id="scaleTopright"

+ 30 - 10
src/modules/editor/controllers/SelectCtrl/index.ts

@@ -15,8 +15,8 @@ import { indexOf } from "lodash";
 const MODE_SEL_RECT = 1;
 const MODE_MOVING = 2;
 const MODE_ROTATE = 3;
-const MODE_SCALE = 4;
-
+const MODE_SCALE_WIDTH = 4;
+const MODE_SCALE_SCALE = 5;
 const MODE_NONE = 0;
 
 export class SelectCtrl extends ModuleControl<EditorModule> {
@@ -190,7 +190,13 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
     } else if (this._mouseDownFlag.indexOf("move") > -1) {
       this._state = MODE_MOVING;
     } else if (this._mouseDownFlag.indexOf("scale") > -1) {
-      this._state = MODE_SCALE;
+      this._state = MODE_SCALE_WIDTH;
+      if (this.store.selected.length == 1 && this.store.currComp.compKey == "Text") {//拖拽的是文本
+          const scaleFlags = ["scaleBottomright", "scaleBottomleft", "scaleTopleft", "scaleTopright"]
+          if (scaleFlags.indexOf(this._mouseDownFlag) > -1 ) {
+            this._state = MODE_SCALE_SCALE;
+          }
+      }
     }
 
     this._movePreClientX = this._downClientX;
@@ -356,7 +362,8 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
       case MODE_ROTATE:
         this.rotateMousemove(e);
         break;
-      case MODE_SCALE:
+      case MODE_SCALE_WIDTH:
+      case MODE_SCALE_SCALE:
         this.scaleMousemove(e);
     }
 
@@ -403,7 +410,7 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
 
     if (this._state == MODE_ROTATE) {
       this.rotateMouseUp(e);
-    } else if (this._state == MODE_SCALE) {
+    } else if (this._state == MODE_SCALE_WIDTH || this._state == MODE_SCALE_SCALE) {
       this.scaleMouseUp(e);
     } else if (this._state == MODE_MOVING) {
       this.moveMouseUp(e, isClick);
@@ -829,8 +836,12 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
       if (i == -1) {
         this.lastScale.x = dtaScale * this.initScale.x;
         this.lastScale.y = dtaScale * this.initScale.y;
-        // objContainer.scale(this.lastScale.x, this.lastScale.y);
-        objContainer.scaleSize(this.lastScale.x, this.lastScale.y);
+
+        if (this._state == MODE_SCALE_SCALE) {
+          objContainer.scale(this.lastScale.x, this.lastScale.y);
+        } else {
+          objContainer.scaleSize(this.lastScale.x, this.lastScale.y);
+        }
       } else if (i == 0 || i == 1) {
         this.lastScale.x = dtaScale * this.initScale.x;
         // objContainer.scaleX(this.lastScale.x);
@@ -854,13 +865,18 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
 
       const history = this.controls.historyCtrl.history;
       this.objContainer?.setPivot(0);
+      const scaleMode = this._state;
 
       history.record({
         undo: () => {
           console.log("undo ");
-
+         
           this.objContainer?.setPivot(scaleIndex);
-          this.objContainer?.scaleSize(preScale.x, preScale.y);
+          if (scaleMode == MODE_SCALE_WIDTH) {
+            this.objContainer?.scaleSize(preScale.x, preScale.y);
+          } else {
+            this.objContainer?.scale(preScale.x, preScale.y);
+          }
           this.objContainer?.setPivot(0);
           this.objContainer?.updateCompState();
 
@@ -870,7 +886,11 @@ export class SelectCtrl extends ModuleControl<EditorModule> {
         redo: () => {
           console.log("redo ");
           this.objContainer?.setPivot(scaleIndex);
-          this.objContainer?.scaleSize(lastScale.x, lastScale.y);
+          if (scaleMode == MODE_SCALE_WIDTH) {
+            this.objContainer?.scaleSize(lastScale.x, lastScale.y);
+          } else {
+            this.objContainer?.scale(lastScale.x, lastScale.y);
+          }
           this.objContainer?.setPivot(0);
           this.objContainer?.updateCompState();
           this.upgateGizmoStyle();