{"version":3,"file":"index.73c81144.mjs","sources":["../../../../pages/index.vue"],"sourcesContent":["<template>\n  <NuxtLayout>\n    <div class=\"page-index\">\n      <div\n        class=\"component_layout\"\n        v-for=\"element in componentList\"\n        :key=\"element.id\"\n      >\n        <index-banner v-if=\"element.type === 'banner'\" :componentInfo=\"element\" />\n        <index-course v-if=\"element.type === 'course'\" :component-info=\"element\"></index-course>\n        <index-grade v-if=\"element.type === 'grade'\" :component-info=\"element\"></index-grade>\n        <index-teacher\n          v-if=\"element.type === 'teacher'\"\n          :componentInfo=\"element\"\n        />\n        <index-news v-if=\"element.type === 'news'\" :componentInfo=\"element\" />\n        <index-ad v-if=\"element.type === 'ad'\" :componentInfo=\"element\" />\n        <index-patch-ad\n          v-if=\"element.type === 'patchAd'\"\n          :componentInfo=\"element\"\n        />\n      </div>\n    </div>\n  </NuxtLayout>\n</template>\n<script setup>\nimport { getComponentList, getComponentData } from \"@/api/layouts\";\nimport cookie from '@/utils/cookies'\nimport config from \"../config\";\nimport {shopDataInfo} from \"../api/system\";\nimport { useUserStore } from '~/stores/user'\nconst route = useRoute()\nconst router = useRouter()\n\n\nconst store = useUserStore()\nconst { setToken, getUserView } = store\nconst { data: shopData } = await useAsyncData(\"course\", async (ctx) => {\n  let url = ''\n  if(config.url){\n    url = config.url\n  }else{\n    url = window.location.host\n  }\n  return await shopDataInfo({domain: url});\n});\n\nlet cookieData = cookie.getShop()\nuseHead({\n  meta:[{charset:'utf-8'},{\n    hid: 'keywords',\n    name: 'keywords',\n    content: shopData.keywords || cookieData.shopName\n  },\n    {\n      hid: 'description',\n      name: 'description',\n      content: shopData.shopIntroduce || cookieData.shopName\n    }],\n  title: computed(() => `${ cookieData.shopName}`),\n})\n\nconst opts = reactive({\n  componentEnum: {\n    1: { name: \"banner\", listName: \"detailList\" },\n    2: { name: \"course\", listName: \"courseList\" },\n    3: { name: \"grade\", listName: \"classroomList\" },\n    4: { name: \"teacher\", listName: \"teacherList\" },\n    5: { name: \"news\", listName: \"articleList\" },\n    6: { name: \"ad\", listName: \"detailList\" },\n    7: { name: \"patchAd\", listName: \"detailList\" },\n  },\n});\nconst componentList = ref([]);\nconst getTemplate = async () => {\n  const result = await getComponentList();\n  componentList.value = result.map((item) => {\n    const cp = {\n      type: opts.componentEnum[item.componentType].name,\n      id: item.id,\n      componentType: item.componentType,\n      config: item,\n      data: [],\n    };\n    return cp;\n  });\n  let count = 0;\n  return new Promise((resolve) => {\n    componentList.value.forEach(async (item) => {\n      try {\n        const res = await getComponentData({ id: item.id });\n        item.data = res[opts.componentEnum[item.componentType].listName] || [];\n        item.navList = res.navList || [];\n      } catch (err) {\n        // console.log(err);\n      }\n      count++;\n      if (count === componentList.value.length) {\n        resolve(componentList.value);\n      }\n    });\n  });\n};\nonMounted(async () => {\n  getTemplate();\n  if (route.query.token) {\n    setToken(route.query.token)\n    router.replace(route.path)\n  }\n});\n</script>\n<style lang=\"scss\" scoped>\n\n</style>\n\n"],"names":["route","useRoute","router","useRouter","store","useUserStore","setToken","getUserView","data","shopData","__temp","__restore","_withAsyncContext","async","useAsyncData","ctx","url","config","window","location","host","shopDataInfo","domain","cookieData","cookie","getShop","useHead","meta","charset","hid","name","content","keywords","shopName","shopIntroduce","title","computed","opts","reactive","componentEnum","listName","componentList","ref","onMounted","result","getComponentList","value","map","item","type","componentType","id","count","Promise","resolve","forEach","res","getComponentData","navList","err","length","query","token","replace","path"],"mappings":"gXA+BA,MAAAA,EAAAC,IACAC,EAAAC,IAGAC,EAAAC,KACAC,SAAAA,EAAAC,YAAAA,GAAAH,GACAI,KAAAC,KAAiCC,EAAAC,GAAAC,GAAAC,SAAAC,EAAA,UAAAD,MAAAE,IACjC,IAAAC,EAAA,GAMA,OAJAA,EADAC,EAAAD,IACAC,EAAAD,IAEAE,OAAAC,SAAAC,WAEAC,EAAA,CAAAC,OAAAN,GAAA,GACA,kCAEA,IAAAO,EAAAC,EAAAC,UACAC,EAAA,CACAC,KAAA,CAAA,CAAAC,QAAA,SAAA,CACAC,IAAA,WACAC,KAAA,WACAC,QAAAtB,EAAAuB,UAAAT,EAAAU,UAEA,CACAJ,IAAA,cACAC,KAAA,cACAC,QAAAtB,EAAAyB,eAAAX,EAAAU,WAEAE,MAAAC,GAAA,IAAA,GAAAb,EAAAU,eAGA,MAAAI,EAAAC,EAAA,CACAC,cAAA,CACA,EAAA,CAAAT,KAAA,SAAAU,SAAA,cACA,EAAA,CAAAV,KAAA,SAAAU,SAAA,cACA,EAAA,CAAAV,KAAA,QAAAU,SAAA,iBACA,EAAA,CAAAV,KAAA,UAAAU,SAAA,eACA,EAAA,CAAAV,KAAA,OAAAU,SAAA,eACA,EAAA,CAAAV,KAAA,KAAAU,SAAA,cACA,EAAA,CAAAV,KAAA,UAAAU,SAAA,iBAGAC,EAAAC,EAAA,WA8BAC,GAAA9B,UA7BAA,WACA,MAAA+B,QAAAC,IACAJ,EAAAK,MAAAF,EAAAG,KAAAC,IACA,CACAC,KAAAZ,EAAAE,cAAAS,EAAAE,eAAApB,KACAqB,GAAAH,EAAAG,GACAD,cAAAF,EAAAE,cACAjC,OAAA+B,EACAxC,KAAA,OAIA,IAAA4C,EAAA,EACA,IAAAC,SAAAC,IACAb,EAAAK,MAAAS,SAAA1C,MAAAmC,IACA,IACA,MAAAQ,QAAAC,EAAA,CAAAN,GAAAH,EAAAG,KACAH,EAAAxC,KAAAgD,EAAAnB,EAAAE,cAAAS,EAAAE,eAAAV,WAAA,GACAQ,EAAAU,QAAAF,EAAAE,SAAA,EAGA,OAFAC,GAEA,CACAP,IACAA,IAAAX,EAAAK,MAAAc,QACAN,EAAAb,EAAAK,MACA,GACA,GACA,KAIA9C,EAAA6D,MAAAC,QACAxD,EAAAN,EAAA6D,MAAAC,OACA5D,EAAA6D,QAAA/D,EAAAgE,MACA"}