Browse Source

url传参修改

黄琪勇 1 month ago
parent
commit
e5843e16d6
3 changed files with 23 additions and 7 deletions
  1. 3 0
      src/App.vue
  2. 19 5
      src/queryParams/index.ts
  3. 1 2
      src/store/pptWork.ts

+ 3 - 0
src/App.vue

@@ -7,6 +7,9 @@
 <script lang="ts" setup>
 import { ElConfigProvider } from "element-plus"
 import zhCn from "element-plus/es/locale/lang/zh-cn"
+import { initQueryParams } from "@/queryParams"
+
+initQueryParams()
 </script>
 
 <style lang="scss"></style>

+ 19 - 5
src/queryParams/index.ts

@@ -16,12 +16,26 @@ const queryParams = reactive<queryParamsType>({
 })
 
 export function initQueryParams() {
-  const query = router.currentRoute.value.query
-  queryParams.hideFullScreen = !!query.hideFullScreen
-  query.fromType && (queryParams.fromType = query.fromType as any)
-  query.lessonCoursewareKnowledgeId && (queryParams.lessonCoursewareKnowledgeId = query.lessonCoursewareKnowledgeId as any)
-  query.instrumentId && (queryParams.instrumentId = query.instrumentId as any)
+  const paramsFromUrl = getParamsFromUrl()
+  if (paramsFromUrl) {
+    const hideFullScreen = !!paramsFromUrl.get("hideFullScreen")
+    const fromType = paramsFromUrl.get("fromType")
+    const lessonCoursewareKnowledgeId = paramsFromUrl.get("lessonCoursewareKnowledgeId")
+    const instrumentId = paramsFromUrl.get("instrumentId")
+    queryParams.hideFullScreen = hideFullScreen
+    fromType && (queryParams.fromType = fromType as any)
+    lessonCoursewareKnowledgeId && (queryParams.lessonCoursewareKnowledgeId = lessonCoursewareKnowledgeId as any)
+    instrumentId && (queryParams.instrumentId = instrumentId as any)
+  }
   console.log(queryParams, "携带参数")
 }
 
+function getParamsFromUrl() {
+  const fullUrl = window.location.href
+  const queryIndex = fullUrl.indexOf("?")
+  if (queryIndex === -1) return undefined
+  const queryString = fullUrl.slice(queryIndex + 1)
+  const params = new URLSearchParams(queryString)
+  return params
+}
 export default queryParams

+ 1 - 2
src/store/pptWork.ts

@@ -9,14 +9,13 @@ import fileUpload from "@/utils/oss-file-upload"
 import { ElMessage } from "element-plus"
 import { toBlob } from "html-to-image"
 import { useSlidesStore } from "@/store"
-import queryParams, { initQueryParams } from "@/queryParams"
+import queryParams from "@/queryParams"
 import router from "@/router"
 
 type pptWork = { id: string; coverImg: string; jsonUrl: string; isSave: boolean }
 
 const useStore = defineStore("pptWork", {
   state: (): pptWork => {
-    initQueryParams()
     const route = useRoute()
     return {
       id: route.query.id as string,