| | |
| | | <template> |
| | | <div> |
| | | <el-row> |
| | | <el-col v-for="item in homeData" :span="item.span"> |
| | | <component :is="item.currentComponent" :key="item.component"></component> |
| | | <el-col v-for="item in homeData" :span="item.span" :xs="24"> |
| | | <component :height="height*item.height" :is="item.component" :key="item.component" :title="item.title" :icon="item.icon"></component> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import UndoTaskPortlet from './components/UndoTaskPortlet.vue'; |
| | | import taskPortlet from './components/taskPortlet.vue'; |
| | | import test from './components/test.vue'; |
| | | export default { |
| | | name: "workIndex", |
| | | components:{}, |
| | | components:{UndoTaskPortlet,taskPortlet,test}, |
| | | data(){ |
| | | return { |
| | | height:document.body.clientHeight-115, |
| | | homeData:[{ |
| | | component:'UndoTaskPortlet', |
| | | span:24 |
| | | height:0.4, |
| | | span:16 |
| | | },{ |
| | | component:'taskPortlet', |
| | | height:0.3, |
| | | span:5 |
| | | },{ |
| | | component:'test', |
| | | height:0.6, |
| | | span:12 |
| | | }] |
| | | } |
| | | }, |
| | |
| | | }, |
| | | methods:{ |
| | | initData() { |
| | | this.homeData.map(item => { |
| | | this.loadCompoent(item); |
| | | return item; |
| | | }) |
| | | }, |
| | | loadCompoent(item){ |
| | | // 动态导入组件 |
| | | import(`@/views/wel/components/${item.component}.vue`).then((module) => { |
| | | // 成功导入后,将组件注册到Vue实例中 |
| | | item.currentComponent = module.default; |
| | | }).catch((error) => { |
| | | // 处理导入失败的情况 |
| | | console.log('组件加载失败:', error); |
| | | }); |
| | | }, |
| | | } |
| | | } |