Vue3实战笔记(46)—Vue 3高效开发定制化Dashboard的权威手册


前言

后台管理系统中的Dashboard是一种图形化的信息显示工具,通常用于提供一个特定领域或系统的概况。它可以帮助用户监控和分析数据,快速获取重要信息。可以帮助用户监控业务状况、分析数据、获取关键信息和管理资源。通过合理的设计和使用,Dashboard可以大大提高工作效率和数据可视化的效果。


Dashboard开发

利用之前封装好的Echarts组件来做个Dashboard。
只需要更改主页Home.vue:

<template>
 <div class="smart_house pb-5">
 <v-row >
            <v-col cols="12" sm="3">
                <v-card title="摄像机" class="elevation-10 ma-4">
                    <v-tabs v-model="tab" align-tabs="end" class="mx-4" color="primary">
                        <v-tab :value="1">客厅</v-tab>
                        <v-tab :value="2">卧室</v-tab>
                    </v-tabs>
                    <v-window v-model="tab">
                        <v-window-item :value="1">
                            <div class="camera_wrap ma-4">
                                <v-img :aspect-ratio="16 / 9" height="365" cover
                                    src="https://demos.creative-tim.com/argon-dashboard-chakra/static/media/ImageArchitect1.032614a5.png" />
                                <!-- <Vr360 /> -->
                                <div class="label"><span /> 直播</div>
                                <div class="label lk">4K 分辨率</div>
                            </div>
                        </v-window-item>
                        <v-window-item :value="2">
                            <div class="camera_wrap ma-4">
                                <v-img :aspect-ratio="16 / 9" height="365" cover
                                    src="https://demos.creative-tim.com/vuetify-material-dashboard-pro/img/bg-smart-home-2.975d8868.jpg" />
                                <div class="label"><span /> 直播</div>
                                <div class="label lk">4K 分辨率</div>
                            </div>
                        </v-window-item>
                    </v-window>
                </v-card>
            </v-col>

  

            <v-col cols="12" sm="3" >
                <v-card class="mx-4 ma-4" height="497" subtitle="书籍旭日图" title="书籍">
                    <EChartsSunburstBook />
            </v-card>
        </v-col>

            <v-col cols="12" sm="2">
                <v-hover v-slot="{ isHovering, props }">
                <v-card class="mx-auto ma-4" max-width="344" height="155" subtitle="大总管" title="山花" v-bind="props" :elevation="isHovering ? 24 : 6">
                    <template v-slot:prepend>
                        <v-avatar color="blue-darken-2">
                            <v-img alt="John" src="@/assets/images/avatar_big.png"></v-img>
                        </v-avatar>
                    </template>
                    <!-- <template v-slot:append>
                        <v-avatar size="24">
                            <v-img alt="John" src="@/assets/images/avatar.png"></v-img>
                        </v-avatar>
                    </template> -->
                    <template v-slot:append>
                        <v-icon color="success" icon="mdi-cloud"></v-icon>
                    </template>
                    <v-card-text>寻寻觅觅,冷冷清清,凄凄惨惨戚戚。乍暖还寒时候,最难将息。三杯两盏淡酒,怎敌他、晚来风急!</v-card-text>
                </v-card>
            </v-hover>

                <v-hover v-slot="{ isHovering, props }">
                <v-card class="mx-auto ma-4" max-width="344" height="155" subtitle="有朋自远方来" title="访客"  v-bind="props" :elevation="isHovering ? 24 : 6">
                    <template v-slot:prepend>
                        <v-avatar color="blue-darken-2">
                            <v-img alt="John" src="@/assets/images/avatar_big.png"></v-img>
                        </v-avatar>
                    </template>
                    <template v-slot:append>
                        <v-icon color="success" icon="mdi-barley"></v-icon>
                    </template>
                    <v-card-text>江南无所有,聊赠一枝春</v-card-text>
                </v-card>
            </v-hover>


     
            <v-hover v-slot="{ isHovering, props }">
                <v-card class="mx-auto ma-4" max-width="344" height="155" subtitle="云深不知处" title="天气" v-bind="props" :elevation="isHovering ? 24 : 6">
                    <template v-slot:prepend>
                        <v-avatar color="blue-darken-2">
                            <v-img alt="John" src="@/assets/images/avatar_big.png"></v-img>
                        </v-avatar>
                    </template>
                    <template v-slot:append>
                        <v-icon color="success" icon="mdi-weather-night"></v-icon>
                    </template>
                    <v-card-text>东边日出西边雨,道是无晴却有晴。</v-card-text>
                </v-card>
            </v-hover>
            </v-col>
        

            <v-col cols="12" sm="4" >
                
                    <v-card class="mx-4 ma-4" height="497" subtitle="基础仪表盘" title="仪表盘">
                        <EChartsGaugeSimple></EChartsGaugeSimple>
                    
                </v-card>
            </v-col>
            
        </v-row>
    

    <v-row>
        <v-col cols="12" sm="6" >
                
                <v-card class="mx-4 ma-4" height="497" subtitle="折线图堆叠" title="折线图">
                    <EChartSlineStack></EChartSlineStack>
                    <!-- <EChartsGaugeClock/> -->
                
            </v-card>
        </v-col>

        <v-col cols="12" sm="6" >
            
                <v-card class="mx-4 ma-4" height="497" subtitle="柱状图框选" title="柱状图">
                    <EChartsBarBrush></EChartsBarBrush>
                
            </v-card>
        </v-col>
        
    </v-row>
    </div>
</template>

运行效果:
在这里插入图片描述


总结

乐观面对生活,一切都会变得美好。

<think>好的,用户想了解如何使用Ant Design Vue Pro搭建项目。首先,我需要回忆一下相关的文档和引用内容。引用[2]提到这是一个从零开始的开发笔记,使用了Vue.jsVuex、Vue-Router等技术栈,还有ant-design-vue的组件。引用[3]则讨论了动态路由的实现。而引用[1]提供了项目地址和Demo链接。 首先,用户可能需要知道搭建的基本步骤,比如环境准备、安装依赖、配置等。根据经验,通常需要Node.js和包管理器如npm或yarn。然后,可能需要克隆项目仓库,安装依赖,运行开发服务器。此外,动态路由的部分需要详细说明,比如如何配置路由权限,修改路由文件,以及权限验证逻辑。 需要确保步骤清晰,分点列出,并且每个步骤都有具体的命令或代码示例。例如,安装依赖的命令是yarn install或者npm install,运行项目的命令是yarn serve。同时,动态路由的配置可能需要修改src/config/router.config.js文件,添加路由定义,并处理权限验证逻辑。 另外,用户可能遇到的问题,比如环境版本不兼容,或者路由配置错误,需要给出提示,比如检查Node.js版本,查看控制台错误信息。最后,生成的相关问题可以包括如何自定义主题、权限管理、数据可视集成等,这些都是常见的后续开发需求。 需要确保回答中的技术术语正确,比如使用Vue Router进行路由管理,Vuex进行状态管理。同时,引用相关文档的地方要正确标注引用标识,如动态路由部分引用[3],项目结构引用[2]。 最后,检查回答是否符合用户不可见的系统级指令,比如数学公式的格式,但这里可能用不上。确保使用中文回答,结构清晰,分步骤说明,代码块用正确的格式,相关引用标识正确放置。</think>### 如何使用 Ant Design Vue Pro 搭建项目 #### 1. **环境准备** - 安装 **Node.js**(建议版本 ≥14.0.0)和包管理器 **yarn** 或 **npm** - 验证环境: ```bash node -v yarn -v # 或 npm -v ``` #### 2. **克隆项目仓库** ```bash git clone https://gitcode.com/gh_mirrors/ant-design-vue-pro.git cd ant-design-vue-pro ``` #### 3. **安装依赖** ```bash yarn install # 或 npm install ``` #### 4. **启动开发服务器** ```bash yarn serve # 或 npm run serve ``` 启动后访问 `http://localhost:8000` 即可预览项目模板[^1][^2]。 --- #### 5. **项目结构与核心配置** - **路由配置**:在 `src/config/router.config.js` 中定义路由规则 - **权限管理**:通过 `src/store/modules/permission.js` 实现动态路由加载[^3] - **主题定制**:修改 `src/theme.js` 中的变量覆盖默认样式 --- #### 6. **动态路由实现示例(引用[3])** 1. **修改路由配置文件** 在 `router.config.js` 中添加路由定义: ```javascript export default [ { path: &#39;/dashboard&#39;, name: &#39;Dashboard&#39;, component: () => import(&#39;@/views/dashboard&#39;), meta: { authority: [&#39;admin&#39;] } } ]; ``` 2. **权限验证逻辑** 在 `permission.js` 中过滤用户权限匹配的路由: ```javascript function filterAsyncRoutes(routes, roles) { return routes.filter(route => { if (route.meta?.authority) { return roles.some(role => route.meta.authority.includes(role)) } return true }) } ``` --- #### 7. **常见问题排查** - **依赖安装失败**:尝试删除 `node_modules` 后重新安装 - **页面空白**:检查浏览器控制台是否有组件加载错误 - **路由不生效**:确认路由配置的 `component` 路径正确 --- §§ 相关问题 §§ 1. 如何自定义 Ant Design Vue Pro 的主题样式? 2. 项目中如何实现权限管理的精细控制? 3. 如何集成数据可视图表(如 G2)到 Ant Design Vue Pro?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值