mirror of
				https://github.com/KevinMidboe/vue-js-modal.git
				synced 2025-10-29 18:00:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <div id="__nuxt">
 | |
|     <nuxt-loading ref="loading"></nuxt-loading>
 | |
|     <component v-if="layout" :is="layout"></component>
 | |
|   </div>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| import NuxtLoading from './components/nuxt-loading.vue'
 | |
| 
 | |
| 
 | |
| let layouts = {
 | |
| 
 | |
|   "_default": () => import('/Users/yev/Projects/vue/vue-js-modal/demo/server/node_modules/nuxt/dist/app/layouts/default.vue'  /* webpackChunkName: "layouts/default" */)
 | |
| 
 | |
| }
 | |
| 
 | |
| export default {
 | |
|   head: {"meta":[],"link":[],"style":[],"script":[]},
 | |
|   data: () => ({
 | |
|     layout: null,
 | |
|     layoutName: ''
 | |
|   }),
 | |
|   
 | |
|   mounted () {
 | |
|     this.$loading = this.$refs.loading
 | |
|     this.$nuxt.$loading = this.$loading
 | |
|   },
 | |
|   
 | |
|   methods: {
 | |
|     setLayout (layout) {
 | |
|       if (!layout || !layouts['_' + layout]) layout = 'default'
 | |
|       this.layoutName = layout
 | |
|       let _layout = '_' + layout
 | |
|       this.layout = layouts[_layout]
 | |
|       return this.layout
 | |
|     },
 | |
|     loadLayout (layout) {
 | |
|       if (!layout || !layouts['_' + layout]) layout = 'default'
 | |
|       let _layout = '_' + layout
 | |
|       if (typeof layouts[_layout] !== 'function') {
 | |
|         return Promise.resolve(layouts[_layout])
 | |
|       }
 | |
|       return layouts[_layout]()
 | |
|       .then((Component) => {
 | |
|         layouts[_layout] = Component
 | |
|         return layouts[_layout]
 | |
|       })
 | |
|       .catch((e) => {
 | |
|         if (this.$nuxt) {
 | |
|           return this.$nuxt.error({ statusCode: 500, message: e.message })
 | |
|         }
 | |
|         console.error(e)
 | |
|       })
 | |
|     }
 | |
|   },
 | |
|   components: {
 | |
|     NuxtLoading
 | |
|   }
 | |
| }
 | |
| </script>
 | |
| 
 |