• 基于 vue-element-template 框架添加 tagsview


    需求

    vue-element-template 是一个基础模板,默认没有 tagsview。所以要手动添加。如果想先知道 vue-element-template 框架如何使用可参考《vue-element-template 框架嵌入 vue2.x 项目中

    下载


    参考最全面的集成方案框架 vue-element-admin ,拷贝和修改相关文件到你的项目中。

    嵌入

    步骤一

    复制如下文件或文件夹

    1. \src\layout\components\TagsView
    2. \src\store\modules\tagsView.js

    步骤二

    修改文件 \src\layout\components\AppMain.vue。

    1. <template>
    2. <section class="app-main">
    3. <transition name="fade-transform" mode="out-in">
    4. <keep-alive :include="cachedViews">
    5. <router-view :key="key" />
    6. keep-alive>
    7. transition>
    8. section>
    9. template>

    添加计算属性 cachedViews。

    1. computed: {
    2. cachedViews() {
    3. return this.$store.state.tagsView.cachedViews
    4. },
    5. key() {
    6. return this.$route.path
    7. }
    8. }

    修改 css,如下代码直接拷贝覆盖。

    步骤三

    修改文件 \src\layout\index.vue。

    1. <template>
    2. <div :class="classObj" class="app-wrapper">
    3. <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside" />
    4. <sidebar class="sidebar-container" />
    5. <div class="main-container">
    6. <div :class="{'fixed-header':fixedHeader}">
    7. <navbar />
    8. <tags-view/>
    9. div>
    10. <app-main />
    11. div>
    12. div>
    13. template>

    添加 TagsView 组件的引用。

    import { Navbar, Sidebar, AppMain, TagsView } from './components'
    1. components: {
    2. Navbar,
    3. Sidebar,
    4. AppMain,
    5. TagsView
    6. },

    步骤四

    修改文件 \src\layout\components\index.js,导出 TagsView。

    export { default as TagsView } from './TagsView/index.vue'

    步骤五

    修改文件 \src\store\getters.js,添加属性 visitedViews 和 cachedViews。

    1. visitedViews: state => state.tagsView.visitedViews,
    2. cachedViews: state => state.tagsView.cachedViews

    步骤六

    修改文件 \src\store\index.js,导出 tagsview 相关信息。

    import tagsView from './modules/tagsView'
    1. const store = new Vuex.Store({
    2. modules: {
    3. app,
    4. settings,
    5. tagsView,// 新增
    6. user
    7. },
    8. getters
    9. })

    步骤七

    修改文件 \src\layout\components\TagsView\index.vue,屏蔽计算属性routes,因为暂时没用上权限。

    1. computed: {
    2. visitedViews() {
    3. return this.$store.state.tagsView.visitedViews
    4. },
    5. // routes() {// 屏蔽权限,否则报错
    6. // return this.$store.state.permission.routes
    7. // }
    8. },

    首次加载没有 tags-view,因为方法 filterAffixTags 报错 routes。修改方法 initTags。

    1. initTags() {
    2. if(this.routes) {
    3. const affixTags = this.affixTags = this.filterAffixTags(this.routes)
    4. for (const tag of affixTags) {
    5. // Must have tag name
    6. if (tag.name) {
    7. this.$store.dispatch('tagsView/addVisitedView', tag)
    8. }
    9. }
    10. }
    11. },

    效果

  • 相关阅读:
    Linux0.12内核源码解读(2)-Bootsect.S
    五金机电行业供应商智慧管理平台解决方案:优化供应链管理,带动企业业绩增长
    概率论-古典概型
    win11 电脑 使用 python 连接USB 海康工业相机 运行示例程序 BasicDemo.py 并添加连续捕捉图像(可以自己合成视频)的两个按钮
    镇雄县赤水源品区域公用品牌介绍——中国赤水河源 好品世界珍享
    Ansible自动化运维、ZABBIX监控
    代码随想录算法训练营第六十天| LeetCode 739 每日温度、LeetCode 496 下一个更大元素 I
    六、01【Java 多线程】之重温操作系统
    Python大数据之linux学习总结——day08_hive04
    2022全国中职网络安全比赛正式赛题
  • 原文地址:https://blog.csdn.net/sinat_31213021/article/details/125989988