Ver código fonte

fix: 兼容安卓

lvkun996 1 ano atrás
pai
commit
93c4bf4211

+ 16 - 0
src/utils/index.ts

@@ -224,3 +224,19 @@ export function shareToWechat(image: string, title: string, scene: 0 | 1, descri
 
 
 
+// 判断当前环境是否在APP的webview中
+export function getIsApp() {
+  const ua = window.navigator.userAgent.toLowerCase();
+  // @ts-ignore
+  if (ua.match(/MicroMessenger/i) == "micromessenger") {
+    // 微信浏览器中
+    // window.sessionStorage.setItem("isApp", "0");
+    return false;
+  } else {
+    // APP的webview中
+    // window.sessionStorage.setItem("isApp", "1");
+    return true;
+  }
+}
+
+

+ 107 - 107
src/views/customize/SingleReport.vue

@@ -134,113 +134,113 @@ const showConfirm = ref(false);
 
 const singleRecord = computed<ISingleRecord>(() => {
   return customizeStore.singleRecord;
-  // return  {
-  //       "recordId": "1782591626363899905",
-  //       "babyId": "1382262152722042882",
-  //       "sendReport": 0,
-  //       "recordDate": "2024-04-23",
-  //       "teacherName": "雷lEi\uD83C\uDF88",
-  //       "babyNames": [
-  //           "王凯昊"
-  //       ],
-  //       "joinSemester": 1,
-  //       "sceneName": "区域活动",
-  //       "story": {
-  //           "images": [
-  //               "https://app-resources-luojigou.luojigou.vip/3649ac71b59e4fb1b8c025928c70e37e"
-  //           ],
-  //           "videos": ['https://app-resources-luojigou.luojigou.vip/3649ac71b59e4fb1b8c025928c70e37e'],
-  //           "content": ""
-  //       },
-  //       "domainList": [
-  //           {
-  //               "domainName": "逻辑思维通用领域",
-  //               "abilityList": [
-  //                   {
-  //                       "abilityName": "批判思维能力",
-  //                       "description": {
-  //                           "growth": "S1.在成人的帮助下,幼儿能够模仿其他学生的作品(例:运用自己喜欢的相似的材料)。",
-  //                           "behave": "看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
-  //                           "behaviours": [],
-  //                           "example": "无",
-  //                           "tactics": "【环创】:\n1.创作机会和条件,支持幼儿自发的艺术表现和创造。\n2.为幼儿提供丰富的便于幼儿取放的材料、工具或物品。\n【师幼】:\n1.和幼儿一起发现并感受周边事物的特征。\n2.倾听幼儿的所见所想,鼓励幼儿大胆表达。",
-  //                           "education": "1.家长可以和幼儿一起玩串珠的游戏,家长示范,幼儿模仿。\n2.家长可以和幼儿一起进行阅读绘本,一起模仿绘本里动物或者人物的动作、声音和表情等。"
-  //                       },
-  //                       "descriptionExtra": {
-  //                           "growth": "",
-  //                           "behave": "2024年04月23日,在来来来,王凯昊、朱婷、陈树炎、李佩、雷晴、刘雯雯、孙艺洲、钱小豪、宝宝、田甜小朋友正在来来来活动。\n看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
-  //                           "behaviours": [],
-  //                           "example": "",
-  //                           "tactics": "来来来12345",
-  //                           "education": ""
-  //                       }
-  //                   },
-  //                   {
-  //                       "abilityName": "很强大的学习能力",
-  //                       "description": {
-  //                           "growth": "S1.在成人的帮助下,幼儿能够模仿其他学生的作品(例:运用自己喜欢的相似的材料)。",
-  //                           "behave": "看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
-  //                           "behaviours": [],
-  //                           "example": "无",
-  //                           "tactics": "【环创】:\n1.创作机会和条件,支持幼儿自发的艺术表现和创造。\n2.为幼儿提供丰富的便于幼儿取放的材料、工具或物品。\n【师幼】:\n1.和幼儿一起发现并感受周边事物的特征。\n2.倾听幼儿的所见所想,鼓励幼儿大胆表达。",
-  //                           "education": "1.家长可以和幼儿一起玩串珠的游戏,家长示范,幼儿模仿。\n2.家长可以和幼儿一起进行阅读绘本,一起模仿绘本里动物或者人物的动作、声音和表情等。"
-  //                       },
-  //                       "descriptionExtra": {
-  //                           "growth": "",
-  //                           "behave": "2024年04月23日,在来来来,王凯昊、朱婷、陈树炎、李佩、雷晴、刘雯雯、孙艺洲、钱小豪、宝宝、田甜小朋友正在来来来活动。\n看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
-  //                           "behaviours": [],
-  //                           "example": "",
-  //                           "tactics": "来来来12345",
-  //                           "education": ""
-  //                       }
-  //                   },
-  //               ]
-  //           },
-  //           {
-  //               "domainName": "科学探索通用领域",
-  //               "abilityList": [
-  //                   {
-  //                       "abilityName": "科学探索能力",
-  //                       "description": {
-  //                           "growth": "S1.在成人的帮助下,幼儿能够模仿其他学生的作品(例:运用自己喜欢的相似的材料)。",
-  //                           "behave": "看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
-  //                           "behaviours": [],
-  //                           "example": "无",
-  //                           "tactics": "【环创】:\n1.创作机会和条件,支持幼儿自发的艺术表现和创造。\n2.为幼儿提供丰富的便于幼儿取放的材料、工具或物品。\n【师幼】:\n1.和幼儿一起发现并感受周边事物的特征。\n2.倾听幼儿的所见所想,鼓励幼儿大胆表达。",
-  //                           "education": "1.家长可以和幼儿一起玩串珠的游戏,家长示范,幼儿模仿。\n2.家长可以和幼儿一起进行阅读绘本,一起模仿绘本里动物或者人物的动作、声音和表情等。"
-  //                       },
-  //                       "descriptionExtra": {
-  //                           "growth": "",
-  //                           "behave": "2024年04月23日,在来来来,王凯昊、朱婷、陈树炎、李佩、雷晴、刘雯雯、孙艺洲、钱小豪、宝宝、田甜小朋友正在来来来活动。\n看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
-  //                           "behaviours": [],
-  //                           "example": "",
-  //                           "tactics": "来来来12345",
-  //                           "education": ""
-  //                       }
-  //                   },
-  //                   {
-  //                       "abilityName": "超级无敌的学习能力",
-  //                       "description": {
-  //                           "growth": "S1.在成人的帮助下,幼儿能够模仿其他学生的作品(例:运用自己喜欢的相似的材料)。",
-  //                           "behave": "看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
-  //                           "behaviours": [],
-  //                           "example": "无",
-  //                           "tactics": "【环创】:\n1.创作机会和条件,支持幼儿自发的艺术表现和创造。\n2.为幼儿提供丰富的便于幼儿取放的材料、工具或物品。\n【师幼】:\n1.和幼儿一起发现并感受周边事物的特征。\n2.倾听幼儿的所见所想,鼓励幼儿大胆表达。",
-  //                           "education": "1.家长可以和幼儿一起玩串珠的游戏,家长示范,幼儿模仿。\n2.家长可以和幼儿一起进行阅读绘本,一起模仿绘本里动物或者人物的动作、声音和表情等。"
-  //                       },
-  //                       "descriptionExtra": {
-  //                           "growth": "",
-  //                           "behave": "2024年04月23日,在来来来,王凯昊、朱婷、陈树炎、李佩、雷晴、刘雯雯、孙艺洲、钱小豪、宝宝、田甜小朋友正在来来来活动。\n看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
-  //                           "behaviours": [],
-  //                           "example": "",
-  //                           "tactics": "来来来12345",
-  //                           "education": ""
-  //                       }
-  //                   },
-  //               ]
-  //           },
-  //       ]
-  // }
+  return  {
+        "recordId": "1782591626363899905",
+        "babyId": "1382262152722042882",
+        "sendReport": 0,
+        "recordDate": "2024-04-23",
+        "teacherName": "雷lEi\uD83C\uDF88",
+        "babyNames": [
+            "王凯昊"
+        ],
+        "joinSemester": 1,
+        "sceneName": "区域活动",
+        "story": {
+            "images": [
+                "https://app-resources-luojigou.luojigou.vip/3649ac71b59e4fb1b8c025928c70e37e"
+            ],
+            "videos": ['https://app-resources-luojigou.luojigou.vip/3649ac71b59e4fb1b8c025928c70e37e'],
+            "content": ""
+        },
+        "domainList": [
+            {
+                "domainName": "逻辑思维通用领域",
+                "abilityList": [
+                    {
+                        "abilityName": "批判思维能力",
+                        "description": {
+                            "growth": "S1.在成人的帮助下,幼儿能够模仿其他学生的作品(例:运用自己喜欢的相似的材料)。",
+                            "behave": "看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
+                            "behaviours": [],
+                            "example": "无",
+                            "tactics": "【环创】:\n1.创作机会和条件,支持幼儿自发的艺术表现和创造。\n2.为幼儿提供丰富的便于幼儿取放的材料、工具或物品。\n【师幼】:\n1.和幼儿一起发现并感受周边事物的特征。\n2.倾听幼儿的所见所想,鼓励幼儿大胆表达。",
+                            "education": "1.家长可以和幼儿一起玩串珠的游戏,家长示范,幼儿模仿。\n2.家长可以和幼儿一起进行阅读绘本,一起模仿绘本里动物或者人物的动作、声音和表情等。"
+                        },
+                        "descriptionExtra": {
+                            "growth": "",
+                            "behave": "2024年04月23日,在来来来,王凯昊、朱婷、陈树炎、李佩、雷晴、刘雯雯、孙艺洲、钱小豪、宝宝、田甜小朋友正在来来来活动。\n看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
+                            "behaviours": [],
+                            "example": "",
+                            "tactics": "来来来12345",
+                            "education": ""
+                        }
+                    },
+                    {
+                        "abilityName": "很强大的学习能力",
+                        "description": {
+                            "growth": "S1.在成人的帮助下,幼儿能够模仿其他学生的作品(例:运用自己喜欢的相似的材料)。",
+                            "behave": "看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
+                            "behaviours": [],
+                            "example": "无",
+                            "tactics": "【环创】:\n1.创作机会和条件,支持幼儿自发的艺术表现和创造。\n2.为幼儿提供丰富的便于幼儿取放的材料、工具或物品。\n【师幼】:\n1.和幼儿一起发现并感受周边事物的特征。\n2.倾听幼儿的所见所想,鼓励幼儿大胆表达。",
+                            "education": "1.家长可以和幼儿一起玩串珠的游戏,家长示范,幼儿模仿。\n2.家长可以和幼儿一起进行阅读绘本,一起模仿绘本里动物或者人物的动作、声音和表情等。"
+                        },
+                        "descriptionExtra": {
+                            "growth": "",
+                            "behave": "2024年04月23日,在来来来,王凯昊、朱婷、陈树炎、李佩、雷晴、刘雯雯、孙艺洲、钱小豪、宝宝、田甜小朋友正在来来来活动。\n看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
+                            "behaviours": [],
+                            "example": "",
+                            "tactics": "来来来12345",
+                            "education": ""
+                        }
+                    },
+                ]
+            },
+            {
+                "domainName": "科学探索通用领域",
+                "abilityList": [
+                    {
+                        "abilityName": "科学探索能力",
+                        "description": {
+                            "growth": "S1.在成人的帮助下,幼儿能够模仿其他学生的作品(例:运用自己喜欢的相似的材料)。",
+                            "behave": "看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
+                            "behaviours": [],
+                            "example": "无",
+                            "tactics": "【环创】:\n1.创作机会和条件,支持幼儿自发的艺术表现和创造。\n2.为幼儿提供丰富的便于幼儿取放的材料、工具或物品。\n【师幼】:\n1.和幼儿一起发现并感受周边事物的特征。\n2.倾听幼儿的所见所想,鼓励幼儿大胆表达。",
+                            "education": "1.家长可以和幼儿一起玩串珠的游戏,家长示范,幼儿模仿。\n2.家长可以和幼儿一起进行阅读绘本,一起模仿绘本里动物或者人物的动作、声音和表情等。"
+                        },
+                        "descriptionExtra": {
+                            "growth": "",
+                            "behave": "2024年04月23日,在来来来,王凯昊、朱婷、陈树炎、李佩、雷晴、刘雯雯、孙艺洲、钱小豪、宝宝、田甜小朋友正在来来来活动。\n看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
+                            "behaviours": [],
+                            "example": "",
+                            "tactics": "来来来12345",
+                            "education": ""
+                        }
+                    },
+                    {
+                        "abilityName": "超级无敌的学习能力",
+                        "description": {
+                            "growth": "S1.在成人的帮助下,幼儿能够模仿其他学生的作品(例:运用自己喜欢的相似的材料)。",
+                            "behave": "看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
+                            "behaviours": [],
+                            "example": "无",
+                            "tactics": "【环创】:\n1.创作机会和条件,支持幼儿自发的艺术表现和创造。\n2.为幼儿提供丰富的便于幼儿取放的材料、工具或物品。\n【师幼】:\n1.和幼儿一起发现并感受周边事物的特征。\n2.倾听幼儿的所见所想,鼓励幼儿大胆表达。",
+                            "education": "1.家长可以和幼儿一起玩串珠的游戏,家长示范,幼儿模仿。\n2.家长可以和幼儿一起进行阅读绘本,一起模仿绘本里动物或者人物的动作、声音和表情等。"
+                        },
+                        "descriptionExtra": {
+                            "growth": "",
+                            "behave": "2024年04月23日,在来来来,王凯昊、朱婷、陈树炎、李佩、雷晴、刘雯雯、孙艺洲、钱小豪、宝宝、田甜小朋友正在来来来活动。\n看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
+                            "behaviours": [],
+                            "example": "",
+                            "tactics": "来来来12345",
+                            "education": ""
+                        }
+                    },
+                ]
+            },
+        ]
+  }
 });
 
 const isImages = computed(() => {

+ 62 - 46
src/views/customize/components/HeaderPart.vue

@@ -28,7 +28,7 @@
         {{ singleRecord.joinSemester === 1 ? "已加入报告" : "加入报告" }}
       </div>
       <!-- 导出table 只有单次的行为记录才有 -->
-      <div v-if="props.exportWord"  class="header-modal-item flex-center" @click="exportWord">
+      <div v-if="props.exportWord && (getIsApp() || getMobileOperatingSystem() === 'iOS')"  class="header-modal-item flex-center" @click="exportWord">
         导出文件
       </div>
     </div>
@@ -46,6 +46,7 @@ import { computed, onUnmounted, ref, watch } from "vue";
 import { ISingleRecord } from "@/types/customize";
 import ShareModal from "@/views/customize/components/ShareModal.vue";
 import exprotWord from '@/views/test.vue'
+import { getIsApp } from "@/utils/index.js";
 
 const customizeStore = useCustomizeStore();
 
@@ -61,57 +62,72 @@ const shareShow = ref(false);
 
 const singleRecord = computed<ISingleRecord>(() => {
   return customizeStore.singleRecord;
-  // return {
-  //       "recordId": "1782591626363899905",
-  //       "babyId": "1382262152722042882",
-  //       "sendReport": 0,
-  //       "recordDate": "2024-04-23",
-  //       "teacherName": "雷lEi\uD83C\uDF88",
-  //       "babyNames": [
-  //           "王凯昊"
-  //       ],
-  //       "joinSemester": 1,
-  //       "sceneName": "区域活动",
-  //       "story": {
-  //           "images": [
-  //               "https://app-resources-luojigou.luojigou.vip/3649ac71b59e4fb1b8c025928c70e37e"
-  //           ],
-  //           "videos": ["https://app-resources-luojigou.luojigou.vip/3649ac71b59e4fb1b8c025928c70e37e"],
-  //           "content": ""
-  //       },
-  //       "domainList": [
-  //           {
-  //               "domainName": "逻辑思维通用领域",
-  //               "abilityList": [
-  //                   {
-  //                       "abilityName": "批判思维能力",
-  //                       "description": {
-  //                           "growth": "S1.在成人的帮助下,幼儿能够模仿其他学生的作品(例:运用自己喜欢的相似的材料)。",
-  //                           "behave": "看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
-  //                           "behaviours": [],
-  //                           "example": "无",
-  //                           "tactics": "【环创】:\n1.创作机会和条件,支持幼儿自发的艺术表现和创造。\n2.为幼儿提供丰富的便于幼儿取放的材料、工具或物品。\n【师幼】:\n1.和幼儿一起发现并感受周边事物的特征。\n2.倾听幼儿的所见所想,鼓励幼儿大胆表达。",
-  //                           "education": "1.家长可以和幼儿一起玩串珠的游戏,家长示范,幼儿模仿。\n2.家长可以和幼儿一起进行阅读绘本,一起模仿绘本里动物或者人物的动作、声音和表情等。"
-  //                       },
-  //                       "descriptionExtra": {
-  //                           "growth": "",
-  //                           "behave": "2024年04月23日,在来来来,王凯昊、朱婷、陈树炎、李佩、雷晴、刘雯雯、孙艺洲、钱小豪、宝宝、田甜小朋友正在来来来活动。\n看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
-  //                           "behaviours": [],
-  //                           "example": "",
-  //                           "tactics": "来来来12345",
-  //                           "education": ""
-  //                       }
-  //                   }
-  //               ]
-  //           }
-  //       ]
-  // }
+  return {
+        "recordId": "1782591626363899905",
+        "babyId": "1382262152722042882",
+        "sendReport": 0,
+        "recordDate": "2024-04-23",
+        "teacherName": "雷lEi\uD83C\uDF88",
+        "babyNames": [
+            "王凯昊"
+        ],
+        "joinSemester": 1,
+        "sceneName": "区域活动",
+        "story": {
+            "images": [
+                "https://app-resources-luojigou.luojigou.vip/3649ac71b59e4fb1b8c025928c70e37e"
+            ],
+            "videos": ["https://app-resources-luojigou.luojigou.vip/3649ac71b59e4fb1b8c025928c70e37e"],
+            "content": ""
+        },
+        "domainList": [
+            {
+                "domainName": "逻辑思维通用领域",
+                "abilityList": [
+                    {
+                        "abilityName": "批判思维能力",
+                        "description": {
+                            "growth": "S1.在成人的帮助下,幼儿能够模仿其他学生的作品(例:运用自己喜欢的相似的材料)。",
+                            "behave": "看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
+                            "behaviours": [],
+                            "example": "无",
+                            "tactics": "【环创】:\n1.创作机会和条件,支持幼儿自发的艺术表现和创造。\n2.为幼儿提供丰富的便于幼儿取放的材料、工具或物品。\n【师幼】:\n1.和幼儿一起发现并感受周边事物的特征。\n2.倾听幼儿的所见所想,鼓励幼儿大胆表达。",
+                            "education": "1.家长可以和幼儿一起玩串珠的游戏,家长示范,幼儿模仿。\n2.家长可以和幼儿一起进行阅读绘本,一起模仿绘本里动物或者人物的动作、声音和表情等。"
+                        },
+                        "descriptionExtra": {
+                            "growth": "",
+                            "behave": "2024年04月23日,在来来来,王凯昊、朱婷、陈树炎、李佩、雷晴、刘雯雯、孙艺洲、钱小豪、宝宝、田甜小朋友正在来来来活动。\n看到其他小朋友在画上贴贴纸,他也会找喜欢的贴纸。",
+                            "behaviours": [],
+                            "example": "",
+                            "tactics": "来来来12345",
+                            "education": ""
+                        }
+                    }
+                ]
+            }
+        ]
+  }
 });
 
 const reportImg = computed(() => {
   return singleRecord.value.joinSemester === 1 ? getImageUrl("joined_report") : getImageUrl("add_report");
 });
 
+function getMobileOperatingSystem() {
+  // @ts-ignore
+    var userAgent = navigator.userAgent || navigator.vendor || window.opera;
+
+    // @ts-ignore
+    if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
+        return 'iOS';
+    }
+    // 检查Android设备
+    else if (/android/i.test(userAgent)) {
+        return 'Android';
+    }
+    return 'unknown';
+}
+
 watch(isShow, (val) => {
   if (val) {
     setTimeout(() => {

+ 50 - 2
src/views/test.vue

@@ -17,6 +17,8 @@ import ImageModule  from 'docxtemplater-image-module-free'
 //@ts-ignore
 import QRCode from 'qrcode'
 
+import { getIsApp, callAppFc } from '@/utils/index'
+
 const termplateDocxPath = new URL('./termplate.docx', import.meta.url).href
 
 let file = ref(null);
@@ -58,15 +60,61 @@ const  exportWordDocx = async  (tempDocxPath: any, dataObj: any, fileName: any)
         
         doc.resolveData( {...dataObj, storyVideos} ).then(() => {
             doc.render()
-            const out = doc.getZip().generate({
+            const out: Blob = doc.getZip().generate({
                 type: 'blob',
                 mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
             })
-            saveAs(out, fileName)
+            console.log('out:', out);
+
+            if (!getIsApp() || getMobileOperatingSystem() === 'iOS') {
+              // renderAsync(file, file.value!);
+              saveAs(out, fileName)
+            } else {
+              blobToBase64(out, (result) => {
+                callAppFc('saveFile', {fileName: fileName + new Date().getTime() + '.docx', data: result, callback: () => { }})
+              })
+            }
         }).catch(err => console.log('errorsss', err))
     })
 }
 
+// function isWeChatBrowser() {
+//   const userAgent = navigator.userAgent.toLowerCase();
+//   return false;
+// }
+
+function getMobileOperatingSystem() {
+  // @ts-ignore
+    var userAgent = navigator.userAgent || navigator.vendor || window.opera;
+
+    // @ts-ignore
+    if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
+        return 'iOS';
+    }
+    // 检查Android设备
+    else if (/android/i.test(userAgent)) {
+        return 'Android';
+    }
+    return 'unknown';
+}
+
+function blobToBase64(blob: Blob, callback: (result: string | ArrayBuffer | null) => void) {
+    const reader = new FileReader();
+    reader.onloadend = function() {
+        // 将读取到的结果作为Base64字符串传递给回调函数
+        callback(reader.result);
+    };
+    // 将Blob对象读取为Data URL格式 (base64)
+    reader.readAsDataURL(blob);
+}
+
+// 示例用法
+// const blob = new Blob(["Hello, world!"], { type: 'text/plain' });
+
+// blobToBase64(blob);
+
+
+
 //要填充的数据
 //通常请求后端接口获得
 const dataObj = {