Michael Wang пре 4 година
родитељ
комит
2c9d4e7fd7
1 измењених фајлова са 19 додато и 3 уклоњено
  1. 19 3
      src/components/QmDialog.vue

+ 19 - 3
src/components/QmDialog.vue

@@ -27,7 +27,7 @@
 
 <script lang="ts">
 import { store } from "@/features/mark/store";
-import { defineComponent, reactive, ref } from "vue";
+import { defineComponent, onUnmounted, reactive, ref } from "vue";
 import { CloseOutlined } from "@ant-design/icons-vue";
 
 export default defineComponent({
@@ -38,7 +38,7 @@ export default defineComponent({
     width: { type: String, default: "30%" },
     height: { type: String, default: "30%" },
   },
-  setup({ top, width, height }) {
+  setup({ top, width, height, title }) {
     const close = () => {
       store.setting.uiSetting["answer.paper.modal"] = false;
     };
@@ -50,6 +50,13 @@ export default defineComponent({
       height,
     });
 
+    const savedStyle = JSON.parse(
+      sessionStorage.getItem("dialog-" + title) ?? ""
+    );
+    if (savedStyle?.top) positionStyle.top = savedStyle?.top;
+    if (savedStyle?.left) positionStyle.left = savedStyle?.left;
+    if (savedStyle?.width) positionStyle.width = savedStyle?.width;
+    if (savedStyle?.height) positionStyle.height = savedStyle?.height;
     const mouseHandler = ref((null as unknown) as HTMLHeadElement);
     const resizeHandler = ref((null as unknown) as HTMLDivElement);
 
@@ -96,9 +103,9 @@ export default defineComponent({
     const handleResizeMouseMove = (e: MouseEvent) => {
       // console.log(e);
       // console.log("mouse move");
+      // @ts-ignore
       const dialog = e.target.parentElement as HTMLDivElement;
       // console.log(dialog);
-      const { clientX, clientY } = e;
       const newXRatio =
         parseFloat(getComputedStyle(dialog).width) + e.movementX;
       const newYRatio =
@@ -123,6 +130,15 @@ export default defineComponent({
       resizeHandler.value.removeEventListener("mouseout", handleResizeMouseOut);
     };
 
+    onUnmounted(() => {
+      if (title) {
+        sessionStorage.setItem(
+          "dialog-" + title,
+          JSON.stringify(positionStyle)
+        );
+      }
+    });
+
     return {
       close,
       positionStyle,