vue ant design 选中搜索数据高亮

<a-tree
          :tree-data="treeData"
          v-model="tree.checkedKeys"
          :expanded-keys="tree.expandedKeys"
          :replaceFields="tree.replaceFields"
          :checkable="tree.checkable"
          :checkStrictly="tree.checkStrictly"
          :disabled="tree.disabled"
          :auto-expand-parent="tree.autoExpandParent"
          @check="onCheck"
          @select="onSelect"
          @expand="onExpand"
        >
        <template slot="name" slot-scope="{name}">
          <span v-if="name.indexOf(tree.searchValue) > -1">
            {{name.substr(0, name.indexOf(tree.searchValue))}}
            <span style="color: #f50">{{tree.searchValue}}</span>
            {{name.substr(name.indexOf(tree.searchValue) + tree.searchValue.length)}}
          </span>
          <span v-else>{{name}}</span>
        </template>
        </a-tree>

方法中

data中数据构造
 tree: {
        searchValue: '',
        checkable: true,
        checkStrictly: false,
        autoExpandParent: true,
        disabled: false,
        checkedKeys: [],
        selectedKeys: [],
        expandedKeys: [],
        replaceFields: {
          key:'id',
          title:'name',
          value: 'id',
          children: 'childList'
        }
      },

给数据增加插槽
const scopedSlots = { title:'name' }--与插槽的name一致
this.treeData.forEach(item => {
        this.treescopedSlots(item, scopedSlots)
      })
--递归方法加插槽
treescopedSlots(item,scopedSlots){
      item.scopedSlots = scopedSlots;
        if(item.childList){
          item.childList.forEach(
            child=>{
            child.scopedSlots = scopedSlots
            if(item.childList){
              this.treescopedSlots(child,scopedSlots)
            }
          }
          )
        }
    },
posted @   小海葵  阅读(47)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示