vue.js基于ElementUI封装了CRUD的弹框组件

 更新时间:2022年07月04日 11:17:41   作者:​ OrzR3   ​  
这篇文章主要介绍了vue.js基于ElementUI封装了CRUD的弹框组件,问咋会给你围绕主题展开详细的内容介绍,感兴趣的小伙伴可以参考一下

前言

代码写得不好,为什么不封装一下呢,如果用的是ElementUI框架,也可以在此基础上进行二次封装。譬如说,这个用来对列表数据进行增删改查的弹框。

开始封装

原本只是个小功能,但是别的模块也需要用到。

我的想法就是,把弹框标题,table表头,必填字节,接口请求路径,增删改查CRUD,等等,放在一个json对象里面。通过父组件向子组件传参的方式,展示不同内容,调用不同的接口。

极大提高了代码的复用性。

json对象如下所示

  // 示例:
    let example = {
      // 弹框标题
      popTitle: "编辑主题",
      // table
      columnList: [
        {
          prop: "themeName",
          label: "主题名称",
        },
        {
          prop: "themeDescribe",
          label: "主题描述",
        },
      ],
      // 必填的字段
      requiredKeys: ["themeName"],
      tableData: this.themeList,
      // 主键,默认为id
      idKey: "id",
      // 删除的参数名称,默认为ids
      deleteKey: "ids",
      // 批量的参数名称,默认为ids
      batchDeleteKey: "ids",
      // 接口请求路径,增删改查CRUD
      interfaceUrl: {
        add: "/target/addTheme",
        edit: "/target/updateTheme",
        delete: "/target/deleteTheme",
        // 批量删除
        batchDelete: "/target/deleteTheme",
        list: "/target/themelist",
      },
    };

table表头作为列表传入,数据结构如下

 columnList: [
    {
      prop: "themeName",
      label: "主题名称",
    },
    {
      prop: "themeDescribe",
      label: "主题描述",
    },
],

在子组件中循环渲染出表头

<el-table-column
  v-for="(item, index) in columnList"
  :key="index"
  :show-overflow-tooltip="item.showOverflowTooltip || true"
  :align="item.align || 'center'"
  :header-align="item.headerAlign || item.align || 'center'"
  :label="item.label"
  :width="item.width"
>
  <template slot-scope="scope">
    <span v-if="scope.row.statusBtn === false">{{ scope.row[item.prop] }}</span>
    <el-input
      v-else-if="scope.row.statusBtn === true"
      v-model="scope.row[item.prop]"
      size="mini"
    />
  </template>
</el-table-column>

在父组件中调用

<!-- 编辑主题的弹框 -->
<edit-table-modal
  ref="editTableModal"
  :visible.sync="editTableModal.show"
  :tableObject="themeTableObject"
  v-if="editTableModal.show"
  @ok="editTableFunction"
/>

到此这篇关于vue.js基于ElementUI封装了CRUD的弹框组件的文章就介绍到这了,更多相关 ElementUI封装CRUD内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中v-if和v-for一起使用的弊端及解决办法(同时使用 v-if 和 v-for不推荐)

    vue中v-if和v-for一起使用的弊端及解决办法(同时使用 v-if 和 v-for不

    当 v-if 和 v-for 同时存在于一个元素上的时候,v-if 会首先被执行,这篇文章主要介绍了vue中v-if和v-for一起使用的弊端及解决办法,需要的朋友可以参考下
    2023-07-07
  • vue开发中后台系统复杂表单优化技巧

    vue开发中后台系统复杂表单优化技巧

    这篇文章主要为大家介绍了vue开发中后台系统复杂表单的优化技巧,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 详解如何在Electron中存取本地文件

    详解如何在Electron中存取本地文件

    在Electron 中,存取本地文件,有很多种办法,本文介绍最常用的一种办法, 通过 Electron 框架提供的能力,和 Node.js 的 fs 文件管理模块实现本地文件的存取,需要的小伙伴可以参考下
    2023-11-11
  • element Dropdown组件意想不到的坑

    element Dropdown组件意想不到的坑

    本文主要介绍了element Dropdown组件意想不到的坑,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Vue导入excel文件的两种方式(form表单和el-upload)

    Vue导入excel文件的两种方式(form表单和el-upload)

    最近开发遇到一个点击导入按钮让excel文件数据导入的需求,下面这篇文章主要给大家介绍了关于Vue导入excel文件的两种方式,分别是form表单和el-upload两种方法,需要的朋友可以参考下
    2022-11-11
  • vue使用websocket及封装过程

    vue使用websocket及封装过程

    这篇文章主要介绍了vue使用websocket及封装过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • vue3使用拖拽组件draggable.next的保姆级教程

    vue3使用拖拽组件draggable.next的保姆级教程

    做项目的时候遇到了一个需求,拖拽按钮到指定位置,添加一个输入框,这篇文章主要给大家介绍了关于vue3使用拖拽组件draggable.next的保姆级教程,需要的朋友可以参考下
    2023-06-06
  • Vue-Element-Admin集成自己的接口实现登录跳转

    Vue-Element-Admin集成自己的接口实现登录跳转

    关于这个Vue-element-admin中的流程可能对于新的同学不是很友好,所以本文将结合实例代码,介绍Vue-Element-Admin集成自己的接口实现登录跳转,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Vue 进阶之路(三)

    Vue 进阶之路(三)

    这篇文章主要介绍了Vue 进阶之路,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • vue使用i18n实现国际化的方法详解

    vue使用i18n实现国际化的方法详解

    这篇文章主要给大家介绍了关于vue使用i18n如何实现国际化的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09

最新评论