Vue-element-admin 导出json和导入json文件的方法

 更新时间:2023年06月25日 15:11:42   作者:ogenes  
这篇文章主要介绍了Vue-element-admin导出json和导入json文件,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

应用场景:

有一个菜单管理的功能,主要用来跟管理后台的菜单对应,方便后台菜单权限控制。 每次新加功能菜单都需要开发人员在后台手动输入,在测试环境操作完待发布时又要到生产环境操作一遍,非常繁琐。

为了简化操作流程,计划做一个导出再导入的功能,基于适用人群和数据特征,觉得json文件比较适合。 开发人员只需要在配置一次,发布时从测试环境导出json文件,再导入到生成即可。

image-20230425143731100

安装file-saver

➜  permission git:(feature/init) npm install file-saver --save

或者直接在 package.json 中添加

"file-saver": "^2.0.5",

导出

onclick: (item) => {
  this.exportMenu(item)
},
  ………………
		exportMenu(row) {
      const filename = row?.menuName || 'unknown';
      const data = JSON.stringify(this.generalExportData(row));//格式化导出的数据,转成JSON字符串
      const blob = new Blob([data], { type: '' });
      FileSaver.saveAs(blob, filename +'.json');
    },
      //递归格式化,用来处理要导出的json对象
    generalExportData(item) {
      const menu = {
        parent: item.parent,
        type: item.type,
        name: item.name,
        title: item.title,
        icon: item.icon,
        path: item.path
      }
      if (item.children) {
        menu.children = [];
        item.children.forEach(child => {
          menu.children.push(this.generalExportData(child))
        })
      }
      return menu;
    },

image-20230425144032736

导入

    <el-upload
        v-permission="['MenuAdd']"
        :limit="1"
        action="https://jsonplaceholder.typicode.com/posts/"
        ref="upload"
        accept=".json"
        :file-list="fileList"
        :show-file-list="false"
        :on-change="importMenu"
      >
        <el-button
          v-loading="uploadLoading"
          v-no-more-click
          class="el-icon-upload"
          type="primary"
        >
          {{ $trans_btn('import') }}
        </el-button>
      </el-upload>	
		importMenu(file) {
      let reader = new FileReader();
      reader.readAsText(file.raw);
      reader.onload = (e) => {
        this.uploadLoading = true;
        const menu = JSON.parse(e.target.result);//转成JSON对象
        //提交给后端处理
        importMenu({systemId: this.systemId, menu: menu}).then((res) => {
          if (res.code > 0) {
            this.$message.error(res.msg)
          } else {
            this.$message.success(this.$trans('msg.success'));
            this.saveSuccess();//处理成功要重新渲染列表
          }
          this.uploadLoading = false
        }).catch((e) => {
          console.log(e);
          this.uploadLoading = false
        });
      };
    },

到此这篇关于Vue-element-admin 导出json和导入json文件的文章就介绍到这了,更多相关Vue-element-admin 导出json内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue 项目中的this.$get,this.$post等$的用法案例详解

    vue 项目中的this.$get,this.$post等$的用法案例详解

    vue.js的插件应该暴露一个install方法。这个方法的第一个参数是vue构造器,第二个参数是一个可选的选项对象,首页要安装axios,本文结合案例代码给大家详细讲解vue 中的this.$get,this.$post等$的用法,一起学习下吧
    2022-12-12
  • vue组件父子间通信之综合练习(聊天室)

    vue组件父子间通信之综合练习(聊天室)

    这篇文章主要为大家详细介绍了vue组件父子间通信之综合练习聊天室制作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Vue3+Antd实现弹框显示内容并加入复制按钮

    Vue3+Antd实现弹框显示内容并加入复制按钮

    这篇文章主要介绍了Vue3+Antd实现弹框显示内容并加入复制按钮,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • react里组件通信的几种方式小结

    react里组件通信的几种方式小结

    本文主要介绍了react里组件通信的几种方式小结,包含了5种方式,主要是props传递,回调函数作为props,Context,Redux或MobX,refs,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • Vue组件如何自动按需引入详析

    Vue组件如何自动按需引入详析

    刚学vue时候对于全局组件和局部组件有点懵,不知道什么时候用全局,什么时候用局部,下面这篇文章主要给大家介绍了关于Vue组件如何自动按需引入的相关资料,需要的朋友可以参考下
    2021-12-12
  • 浅谈Vue Element中Select下拉框选取值的问题

    浅谈Vue Element中Select下拉框选取值的问题

    下面小编就为大家分享一篇浅谈Vue Element中Select下拉框选取值的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Vue实现美团app的影院推荐选座功能【推荐】

    Vue实现美团app的影院推荐选座功能【推荐】

    大家都经常使用美团app买电影票,很多朋友不知道她的功能是怎么实现的,作为我程序员一枚对它的算法很好奇,今天小编就把基于Vue实现美团app的影院推荐选座功能分享到脚本之家平台,感兴趣的朋友一起看看吧
    2018-08-08
  • Vue实现选择城市功能

    Vue实现选择城市功能

    这篇文章主要介绍了Vue实现选择城市功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-05-05
  • vant 中van-list的用法说明

    vant 中van-list的用法说明

    这篇文章主要介绍了vant 中van-list的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Vue前端中展示监控摄像头视频流完整的配置和实现方案

    Vue前端中展示监控摄像头视频流完整的配置和实现方案

    在Vue框架中实现播放监控视频流,是一个涉及前端技术和后端服务的综合性任务,这篇文章主要介绍了Vue前端中展示监控摄像头视频流完整的配置和实现方案的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-06-06

最新评论