Browse Source

Merge branch 'dev' of http://124.70.149.18:10880/lianghj/queenshow into dev

lianghongjie 1 year ago
parent
commit
a941928c0f

+ 2 - 2
src/modules/editor/components/CompUI/basicUI/Transfer/index.tsx

@@ -26,9 +26,9 @@ export const Transfer = defineComponent({
     });
 
     return () => {
-      const comp = store.currComp;
+      const comp = transferCtrl.currComp;
       const toolbarOpts =
-        CompToolbars[store.currComp.compKey] || CompToolbars.default;
+        CompToolbars[transferCtrl.currComp.compKey] || CompToolbars.default;
 
       // const showTransfer =
       //   store.isEditComp || store.pageCompIds.includes(comp.id);

+ 6 - 3
src/modules/editor/components/CompUI/basicUI/View.tsx

@@ -47,10 +47,13 @@ export const View = defineComponent({
         
           {
             store.isEditMode && isStreamCard && <div class="hudop">
-              <IconMove class="draganchor" />
-              <IconDelete />
+              {
+                store.streamCardIds.length > 1 &&  <IconMove class="draganchor" />
+              }
+              {
+                 store.streamCardIds.length > 1 && <IconDelete onClick={()=>actions.removeStreamCard(props.compId) }/>
+              }
               <IconAdd onClick={()=>actions.addCompToDesign("Container")} />
-
             </div>
           }
           

+ 9 - 1
src/modules/editor/components/Viewport/Content/index.tsx

@@ -1,7 +1,7 @@
 import { DesignComp } from "@/modules/editor/objects/DesignTemp/DesignComp";
 import { css } from "@linaria/core";
 import { defineUI } from "queenjs";
-import { onUnmounted, reactive } from "vue";
+import { onUnmounted, reactive, onMounted , ref} from "vue";
 import { Container, Draggable } from "vue-dndrop";
 import { useEditor } from "../../..";
 import { HotKeyCtrl } from "../../../controllers/HotKeyCtrl";
@@ -25,11 +25,18 @@ export default defineUI({
     });
 
     const NotFoundComp = () => <div>无效的组件</div>;
+    const flagRef = ref();
 
     return () => {
       const pageRoot = helper.findRootComp();
       if (!pageRoot) return;
       const streamCardIndex = store.streamCardIds.indexOf(store.currStreamCardId)
+      if (!flagRef.value ) {
+        flagRef.value = true;
+        setTimeout(() => {
+          actions.onViewReady();
+        }, 0);
+      }
 
       return (
         <div class="scrollbar overflow-y-auto h-1/1">
@@ -57,6 +64,7 @@ export default defineUI({
                         {children}
                       </Container>
                       {store.currCompId &&
+                       store.currStreamCardId &&
                         store.currCompId !== "root" &&
                         !store.textEditingState &&
                         store.currCompId !== store.currStreamCardId && 

+ 19 - 0
src/modules/editor/module/actions/edit.ts

@@ -13,6 +13,7 @@ export const editActions = EditorModule.action({
     }
 
     if (compKey == "Container") {
+      index = this.store.streamCardIds.indexOf(this.store.currStreamCardId) + 1
       const compId = await this.store.insertDesignContent(compKey, index);
       this.actions.pickComp(compId);
       return;
@@ -68,6 +69,24 @@ export const editActions = EditorModule.action({
     }
   },
 
+  async removeStreamCard(compId: string) {
+    
+    await queenApi.showConfirm({title:"删除", content:"确认删除当前内容?"})
+
+    if (this.store.streamCardIds.length < 2) {
+      return;
+    }
+    let nextCard = this.store.currStreamCardId;
+    if (compId == this.store.currStreamCardId) {
+        const i = this.store.streamCardIds.indexOf(compId)
+        nextCard = this.store.streamCardIds[i+1]
+        if (!nextCard) {
+          nextCard = this.store.streamCardIds[i-1]
+        }
+    } 
+    this.store.deleteComp(compId);
+    this.store.setCurrComp(nextCard);
+  },
   // 移动组件顺序
   moveComp(selIndex: number, targetIndex: number) {
     if (selIndex === targetIndex) return;

+ 4 - 0
src/modules/editor/module/actions/init.ts

@@ -28,4 +28,8 @@ export const initActions = EditorModule.action({
   switchMode(v: EditorMode) {
     this.store.setMode(v);
   },
+
+  onViewReady() {
+    this.store.currStreamCardId = this.store.streamCardIds[0];
+  }
 });

+ 1 - 11
src/modules/editor/module/stores/index.ts

@@ -78,8 +78,8 @@ export const store = EditorModule.store({
       return compId;
     },
     setCurrComp(compId: string) {
-      this.store.currCompId = compId;
       this.store.currStreamCardId = "";
+      this.store.currCompId = compId;
 
       const find = (objs: string[], id: string): boolean => {
         if (!objs || objs.length < 1) return false;
@@ -114,12 +114,6 @@ export const store = EditorModule.store({
           break;
         }
       }
-      console.log(
-        "streamCard=>",
-        this.store.currStreamCardId,
-        "compId=>",
-        this.store.currCompId
-      );
     },
 
     deleteComp(compId: string) {
@@ -150,10 +144,6 @@ export const store = EditorModule.store({
       const { pageCompIds } = this.store;
       const [selComp] = pageCompIds.splice(selIndex, 1);
       pageCompIds.splice(targetIndex, 0, selComp);
-
-      // const currStreamCardId = this.store.currStreamCardId;
-      // this.store.setCurrComp("")
-      // this.store.currStreamCardId = currStreamCardId;
     },
     setTextEditingState(state: boolean) {
       this.store.textEditingState = state;

+ 1 - 2
src/modules/editor/objects/DesignTemp/index.ts

@@ -1,5 +1,5 @@
 import { DesignComp } from "./DesignComp";
-import { dataTransform } from "./versions/0.0.1";
+import { dataTransform } from "./versions/1.0.0";
 
 export class DesignTemp {
   version?: string;
@@ -18,7 +18,6 @@ export class DesignTemp {
     Object.entries(this.compMap).forEach(([key, value]) => {
       this.compMap[key] = new DesignComp(value);
     });
-
     // 初始化DesignComp的pid
     Object.values(this.compMap).forEach((comp) => {
       if (comp.children.default) {

+ 60 - 0
src/modules/editor/objects/DesignTemp/versions/1.0.0.ts

@@ -0,0 +1,60 @@
+import { CompUI } from "@/modules/editor/components/CompUI";
+import { addCacheToMap } from "@/modules/editor/components/CompUI/defines/createCompId";
+import { set } from "lodash";
+import { DesignComp } from "../DesignComp";
+
+export function dataTransform(data: any) {
+  if (data.version == "1.0.0") {
+    return data;
+  }
+  data.version = "1.0.0";
+  if (!data.compMap) {
+    data.compMap = {
+        root: CompUI.Page.createComp({
+            id: "root",
+            compKey: "Page",
+            layout: data.pageStyle,
+            children: {
+              default: [],
+            },
+          })
+    }
+    const card = CompUI.Page.createComp({
+        compKey: "Container",
+        children: {
+          default: []
+        },
+        layout: {
+            size: [750, 700],
+            background: {
+              color: "#ffffff",
+            },
+        },
+    });
+    data.compMap[card.id] = card;
+    data.compMap.root.children.default = [card.id]
+    return data
+  }
+
+  data.compMap || (data.compMap = {});
+  const compMap: Record<string, DesignComp> = data.compMap;
+
+  const childrens = compMap.root.children.default || []
+
+  const roots = []
+  for (const item of childrens) {
+    let card = compMap[item]
+    if (card.compKey != "Container" ) {
+        card = CompUI.Page.createComp({
+            compKey: "Container",
+            children: {
+              default: [card.id]
+            },
+        });
+        compMap[card.id] = card;
+    }
+    roots.push( card.id );
+  }
+  compMap.root.children.default = roots;
+  return data;
+}