• vue.js实现科室无限层选中和回显


    一、效果展示:

    • 展示可选层级

    • 查看选中的值 

    二、实现:

     

    1. "相关科室:" prop="orgId">
    2. <el-cascader
    3. popper-class="cascader-my"
    4. :options="orgOptions"
    5. :show-all-levels="false"
    6. v-model="orgList"
    7. :props="props"
    8. @change="changeOrg"
    9. collapse-tags
    10. placeholder="请选择"
    11. filterable
    12. >el-cascader>
    13. //-------------相关变量定义-------------
    14. rgOptions: [],
    15. orgList: [], // 选中的科室数据
    16. props: {
    17. children: 'childList',
    18. label: 'orgName',
    19. value: 'orgId',
    20. multiple: true,
    21. emitPath: false,
    22. expandTrigger: 'hover'
    23. }
    24. //-------------相关方法--------------
    25. // 初始化科室
    26. initOrgInfo() {
    27. xxx().then((res) => {
    28. if (res.code === 200) {
    29. this.orgOptions = res.result
    30. } else {
    31. this.$message.error(res.message)
    32. }
    33. })
    34. },
    35. // 科室选中
    36. changeOrg(val) {
    37. if (val && val.length > 0) {
    38. const orgArr = this.findOrgIdInNestedList(val, this.orgOptions)
    39. this.form.orgId = orgArr.join() || ''
    40. }
    41. },
    42. // 科室无限层级迭代
    43. findOrgIdInNestedList(targetIds, orgOptions) {
    44. const deptData = []
    45. function searchOrg(options, targetId) {
    46. options.forEach((org) => {
    47. if (org.orgId === targetId) {
    48. deptData.push(org.orgId)
    49. } else if (org.childList && org.childList.length > 0) {
    50. searchOrg(org.childList, targetId)
    51. }
    52. })
    53. }
    54. targetIds.forEach((i) => {
    55. searchOrg(orgOptions, i)
    56. })
    57. return deptData
    58. },
  • 相关阅读:
    shiro设置url过滤配置详解
    实验3 7段数码管译码器动态显示
    大数据之Spark案例实操完整使用(第六章)
    【C语言】指针的入门详细介绍
    React Router 关键知识点回顾
    C++ ASIO 实现异步套接字管理
    unity的脚本执行顺序问题
    Spring Boot + Vue的网上商城之商品分类
    动态规划-矩阵连乘
    强化学习基础
  • 原文地址:https://blog.csdn.net/weixin_47978760/article/details/134246768