qinyan 1 year ago
parent
commit
cadde11e86

+ 1 - 0
src/pages/share/Promotion/index.tsx

@@ -14,6 +14,7 @@ export default defineComponent(() => {
 
     editor.actions.on("initDesign:success", () => {
       const data = editor.store.designData;
+      document.title = data.title;
       WxSdk.setShareData({
         title: data.title,
         link: location.href,

+ 32 - 39
src/pages/website/Promotion2/components/PromotionItem.tsx

@@ -1,40 +1,37 @@
 import { css, cx } from "@linaria/core";
 import { IconMore } from "@queenjs/icons";
 import { Image, View } from "@queenjs/ui";
-import { Divider, Dropdown, Menu, Tag, Button } from "ant-design-vue";
+import { Dropdown, Menu } from "ant-design-vue";
 import dayjs from "dayjs";
 import { defineUI } from "queenjs";
-import { defineComponent } from "vue";
-import { any, string } from "vue-types";
-import { useQRCode } from "@vueuse/integrations/useQRCode";
-import { useClipboard } from "@vueuse/core";
+import { any } from "vue-types";
 
-const ShareBox = defineComponent({
-  props: {
-    id: string(),
-  },
+// const ShareBox = defineComponent({
+//   props: {
+//     id: string(),
+//   },
 
-  setup(props) {
-    let shareLink = location.origin + "/share.html?id=" + props.id;
-    if (location.host == "www.infish.cn") {
-      shareLink =
-        location.origin + "/projects/queenshow/share.html?id=" + props.id;
-    }
+//   setup(props) {
+//     let shareLink = location.origin + "/share.html?id=" + props.id;
+//     if (location.host == "www.infish.cn") {
+//       shareLink =
+//         location.origin + "/projects/queenshow/share.html?id=" + props.id;
+//     }
 
-    const qrUrl = useQRCode(shareLink);
-    const { copy, copied } = useClipboard();
+//     const qrUrl = useQRCode(shareLink);
+//     const { copy, copied } = useClipboard();
 
-    return () => (
-      <div class="p-20px bg-dark-500 text-center">
-        <img src={qrUrl.value} />
-        <div class="mb-20px"></div>
-        <Button onClick={() => copy(shareLink)} disabled={copied.value}>
-          {copied.value ? "已复制" : "复制链接"}
-        </Button>
-      </div>
-    );
-  },
-});
+//     return () => (
+//       <div class="p-20px bg-dark-500 text-center">
+//         <img src={qrUrl.value} />
+//         <div class="mb-20px"></div>
+//         <Button onClick={() => copy(shareLink)} disabled={copied.value}>
+//           {copied.value ? "已复制" : "复制链接"}
+//         </Button>
+//       </div>
+//     );
+//   },
+// });
 
 export default defineUI({
   props: {
@@ -67,15 +64,13 @@ export default defineUI({
                 编辑
               </div>
 
-              <Dropdown
-                overlay={<ShareBox id={record._id} />}
-                trigger="click"
-                placement="bottom"
+              <div
+                class="text-white icon_action w-60px leading-60px ml-10px cursor-pointer rounded-1/2 text-center"
+                onClick={() => emit("menu", "share")}
               >
-                <div class="text-white icon_action w-60px leading-60px ml-10px cursor-pointer rounded-1/2 text-center">
-                  预览
-                </div>
-              </Dropdown>
+                {/* 预览 */}
+                分享
+              </div>
             </div>
           </View>
           <div class="item_footer rounded-b-4px flex items-center justify-between p-15px">
@@ -93,9 +88,7 @@ export default defineUI({
               overlay={
                 <Menu class="w-90px">
                   {/* <Menu.Item>复制</Menu.Item> */}
-                  <Menu.Item onClick={() => emit("menu", "share")}>
-                    分享
-                  </Menu.Item>
+                  {/* <Menu.Item>分享</Menu.Item> */}
                   <Menu.Item>
                     <div onClick={() => emit("menu", "rename")}>重命名</div>
                   </Menu.Item>

+ 7 - 3
src/pages/website/Promotion2/components/ShareModal.tsx

@@ -27,7 +27,7 @@ export default defineComponent({
       return (
         <div class="flex items-start">
           <div>
-            <div class="scroll w-375px h-600px overflow-y-auto bg-light-50">
+            <div class="scrollbar w-375px h-600px pr-10px overflow-y-auto ">
               {slots.preview?.()}
             </div>
             <div class="mt-20px text-center">
@@ -37,7 +37,7 @@ export default defineComponent({
             </div>
           </div>
           <div class="flex-1 ml-40px">
-            <h3 class="mb-20px text-16px">设置</h3>
+            <h3 class="mb-20px text-16px">分享设置</h3>
 
             <div class="flex">
               <div class="relative">
@@ -57,7 +57,11 @@ export default defineComponent({
                   class="w-1/1"
                   defaultValue={record.title}
                   placeholder="请输入标题"
-                  onBlur={(e: any) => emit("update", { title: e.target.value })}
+                  onBlur={(e: any) => {
+                    const title = e.target.value;
+                    if (!title) return;
+                    emit("update", { title });
+                  }}
                 />
                 {/* <Input placeholder="请输入描述" class="mt-10px w-1/1" /> */}
               </div>

+ 5 - 2
src/pages/website/Promotion2/controller.tsx

@@ -15,6 +15,10 @@ export function createPromotinController(
   ctrl.createPromotion = resource.actions.createPromotion;
 
   function updateDesign(record: any, data: any) {
+    for (const [key, value] of Object.entries(data)) {
+      record[key] = value;
+    }
+
     const designData: any = Object.assign({}, { _id: record._id }, data);
     editor.https.saveDesign(designData);
   }
@@ -29,7 +33,6 @@ export function createPromotinController(
         onUpdate={(data) => updateDesign(record, data)}
         onChangeThumnb={async () => {
           const { file } = await resource.helper.uploadResource();
-          record.thumbnail = file.url;
           updateDesign(record, { thumbnail: file.url });
         }}
       >
@@ -38,7 +41,7 @@ export function createPromotinController(
         }}
       </ShareModal>,
       {
-        title: "分享设置",
+        title: "编辑分享",
         width: "1000px",
       }
     );