• 新增功能 编辑功能 数据回填 显示详情不准确的三种修复方式 控制统一弹窗 删除功能 表单校验


    el-tree组件配合插槽完成主体布局

    1. <el-tree
    2. :data="list"
    3. :default-expand-all="true"
    4. >
    5. <!-- 作用域插槽 data拿到的是每一个子节点的对象 -->
    6. <!--
    7. #default === slot-scope
    8. 什么时候用到作用域插槽?父组件中如果想使用子组件中的数据进行自定义内容的渲染 (类似于table 单元格数据渲染)
    9. -->
    10. <template #default="{ data }">
    11. <el-row
    12. type="flex"
    13. justify="space-between"
    14. align="middle"
    15. style="height: 40px; width: 100%;"
    16. >
    17. <el-col :span="20">
    18. <span>{{ data.name }}</span>
    19. </el-col>
    20. <el-col :span="4">
    21. <el-row type="flex" justify="end">
    22. <!-- 两个内容 -->
    23. <el-col>{{ data.manager }}</el-col>
    24. <el-col>
    25. <!-- 下拉菜单 element -->
    26. <el-dropdown>
    27. <span> 操作<i class="el-icon-arrow-down" /> </span>
    28. <!-- 下拉菜单 -->
    29. <el-dropdown-menu slot="dropdown">
    30. <el-dropdown-item>添加子部门</el-dropdown-item>
    31. <el-dropdown-item>编辑部门</el-dropdown-item>
    32. <el-dropdown-item>删除部门</el-dropdown-item>
    33. </el-dropdown-menu>
    34. </el-dropdown>
    35. </el-col>
    36. </el-row>
    37. </el-col>
    38. </el-row>
    39. </template>
    40. </el-tree>

    el-tree的基本使用

    1. 树形组件依赖一份结构为树形嵌套的数据结构

    2. data 中默认 label 为节点标签的文字,children 为子节点 (可以通过 props 修改默认配置 )  

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. // 依赖一份树形数据
    6. list: [{
    7. name: '财务部',
    8. manager: '刘备'
    9. children: [
    10. {
    11. name: '财务核算部',
    12. manager: '张飞'
    13. },
    14. {
    15. name: '税务核算部',
    16. manager: '关羽'
    17. }
    18. ]
    19. }]
    20. }
    21. }
    22. }
    23. </script>

    扁平化数据处理树形结构

    续新增弹层的实现完善

    新增和编辑为一个弹窗

    新增状态 处理新增和编辑弹窗状态 

    父组件的代码

    1. 补充数据项isEdit,来标识当前是否处于编辑状态

      1. 点击添加时,这个值是false

      2. 点击编辑时,这个值是true

    2. 把这个数据项传递给子组件

    给编辑部门添加事件 弹窗获取id 传给子组件   

    在子组件中 根据id获取单个部门信息 实现数据回填

     做数据回填时,由于form已经做了v-model双向绑定,所以,这里直接赋值:this.form = res.data,这样数据就回填了。

    图解

    组织架构-编辑数据-保存更新

    图解

    在src\api\departments.js中,添加一个用于更新部门数据的接口

    1. 封装更新接口

    2. 调用接口,保存数据;

    3. 保存成功之后,通知父组件:关闭弹层,更新数据;

    4. 补充doEdit 操作

    async为微任务

    微任务 =>dom加载 => 宏任务

    加$nextTick或setTimeout 将微任务转宏任务

    表单重新加载 重新获取数据

    方法一 

    在关闭弹层时,把子组件销毁

    方法二  通过给组件添加ref    $nextTick回调函数中调用请求时间

    方法三

    通过给id 添加事件监听 监听id变化

    删除部门

    优化删除

    给取消按钮增加关闭弹层功能

    表单校验

  • 相关阅读:
    C++ 字面量
    Android TextView富文本SpannableStringBuilder的使用详解
    大数据-之LibrA数据库系统告警处理(ALM-25004 LdapServer数据同步异常)
    Linux启动过程详解 Xmind导图笔记
    10Gb每秒!SM4的单核“心”!海泰携手海量数据安全“闪”护
    CentOS 7 下 Ruby 环境搭建(编译安装)
    vue前端项目如何配置后端项目的请求地址
    一台PoE交换机可以为多少个设备提供供电?
    Java多商户新零售超市外卖商品系统
    unity工程参照以及评价
  • 原文地址:https://blog.csdn.net/weixin_68531033/article/details/125385705