最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Element UI 表格中實(shí)現(xiàn)搜索關(guān)鍵字高亮顯示功能

 更新時(shí)間:2025年06月24日 10:57:36   作者:劉 懟懟  
在數(shù)據(jù)展示類應(yīng)用中,搜索功能是提升用戶體驗(yàn)的關(guān)鍵模塊,而關(guān)鍵字高亮則能讓搜索結(jié)果更加直觀醒目,本文詳解如何在ElementUI中實(shí)現(xiàn)表格搜索與關(guān)鍵字高亮,結(jié)合樹形結(jié)構(gòu)遞歸處理及CSS樣式,提升數(shù)據(jù)可讀性與用戶體驗(yàn),感興趣的朋友跟隨小編一起看看吧

在數(shù)據(jù)展示類應(yīng)用中,搜索功能是提升用戶體驗(yàn)的關(guān)鍵模塊,而關(guān)鍵字高亮則能讓搜索結(jié)果更加直觀醒目。本文將詳細(xì)介紹如何在 Element UI 框架中實(shí)現(xiàn)表格數(shù)據(jù)的搜索與關(guān)鍵字高亮功能,并結(jié)合樹形表格的特性提供完整解決方案。

一、功能實(shí)現(xiàn)背景與核心需求

當(dāng)表格中存在大量數(shù)據(jù)時(shí),用戶需要通過搜索快速定位目標(biāo)內(nèi)容。關(guān)鍵字高亮的核心價(jià)值在于:

  • 明確標(biāo)識(shí)搜索結(jié)果的位置,減少用戶視覺掃描成本
  • 增強(qiáng)交互反饋,讓搜索操作更具即時(shí)性
  • 提升數(shù)據(jù)可讀性,尤其是在復(fù)雜表格結(jié)構(gòu)中

結(jié)合用戶提供的代碼,我們需要實(shí)現(xiàn)以下核心功能:

  1. 搜索輸入框的雙向綁定與事件監(jiān)聽
  2. 表格數(shù)據(jù)中指定列的關(guān)鍵字匹配
  3. 匹配文本的樣式高亮處理
  4. 樹形表格結(jié)構(gòu)下的遞歸高亮處理

二、核心代碼實(shí)現(xiàn)與解析

1. 搜索組件與表格結(jié)構(gòu)

首先看用戶提供的基礎(chǔ)代碼結(jié)構(gòu),搜索輸入框與表格的集成方式:

<el-form-item label="搜索內(nèi)容:">
  <el-input v-model="searchForm.searchContent" placeholder="請(qǐng)輸入搜索內(nèi)容"></el-input>
</el-form-item>
<div class="table-container">
  <el-table :data="visibleTableData" border style="width: 99%;" max-height="650px"
    :tree-props="{ children: 'details' }" row-key="id" @selection-change="handleSelectionChange">
    <!-- 表格列定義... -->
    <el-table-column align="center" label="資料內(nèi)容" prop="content">
      <template #default="scope">
        <span v-html="highlightText(scope.row.content, searchKeyword)"></span>
      </template>
    </el-table-column>
    <!-- 其他需要高亮的列... -->
  </el-table>
</div>

關(guān)鍵點(diǎn)解析

  • 通過 v-model 實(shí)現(xiàn)搜索輸入框與 searchForm.searchContent 的雙向綁定
  • 表格使用 :tree-props 配置樹形結(jié)構(gòu),支持父子節(jié)點(diǎn)嵌套
  • 需要高亮的列通過 v-html 渲染高亮后的文本,結(jié)合 highlightText 方法處理

2. 關(guān)鍵字高亮核心方法

下面是 highlightText 方法的完整實(shí)現(xiàn),建議添加到 Vue 實(shí)例的 methods 中:

methods: {
  // 關(guān)鍵字高亮處理方法
  highlightText(text, keyword) {
    // 處理空值或非字符串類型
    if (!text || typeof text !== 'string') return text;
    if (!keyword || typeof keyword !== 'string') return text;
    // 轉(zhuǎn)義正則表達(dá)式特殊字符
    const escapedKeyword = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
    // 創(chuàng)建不區(qū)分大小寫的全局匹配正則
    const regex = new RegExp(escapedKeyword, 'gi');
    // 使用span包裹匹配內(nèi)容并添加高亮樣式
    return text.replace(regex, (match) => {
      return `<span class="highlight">${match}</span>`;
    });
  },
  // 搜索事件處理
  handleSearch() {
    // 獲取搜索關(guān)鍵字
    this.searchKeyword = this.searchForm.searchContent.trim();
    // 執(zhí)行搜索過濾(此處需根據(jù)實(shí)際數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn))
    this.filterTableData();
  },
  // 表格數(shù)據(jù)過濾方法
  filterTableData() {
    if (!this.searchKeyword) {
      // 清空搜索時(shí)顯示全部數(shù)據(jù)
      this.visibleTableData = [...this.originalTableData];
      return;
    }
    // 遞歸過濾樹形表格數(shù)據(jù)(示例邏輯,需根據(jù)實(shí)際數(shù)據(jù)結(jié)構(gòu)調(diào)整)
    this.visibleTableData = this.originalTableData.filter(item => {
      return this.checkRowMatch(item, this.searchKeyword);
    });
  },
  // 檢查行數(shù)據(jù)是否匹配搜索條件
  checkRowMatch(row, keyword) {
    // 檢查當(dāng)前行需要高亮的字段
    const fields = ['content', 'projectName', 'form', 'receiverName'];
    for (const field of fields) {
      if (row[field] && row[field].toString().includes(keyword)) {
        return true;
      }
    }
    // 遞歸檢查子節(jié)點(diǎn)
    if (row.details && row.details.length > 0) {
      for (const child of row.details) {
        if (this.checkRowMatch(child, keyword)) {
          return true;
        }
      }
    }
    return false;
  }
}

3. 高亮樣式定制

為了讓高亮效果更明顯,需要在 CSS 中添加高亮樣式:

.highlight {
  background-color: #ffeb3b; /* 黃色背景,可自定義 */
  color: #333;
  font-weight: 500;
  padding: 0 2px;
  border-radius: 2px;
}

三、總結(jié)與擴(kuò)展方向

通過上述方法,我們實(shí)現(xiàn)了 Element UI 表格中的關(guān)鍵字高亮功能,核心在于利用正則表達(dá)式替換匹配文本,并結(jié)合樹形結(jié)構(gòu)的遞歸處理。

到此這篇關(guān)于Element UI 表格中實(shí)現(xiàn)搜索關(guān)鍵字高亮顯示功能的文章就介紹到這了,更多相關(guān)Element UI 搜索關(guān)鍵字高亮內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue和relation-graph庫打造高質(zhì)量的關(guān)系圖應(yīng)用程序

    Vue和relation-graph庫打造高質(zhì)量的關(guān)系圖應(yīng)用程序

    這篇文章主要介紹了Vue和relation-graph庫打造高質(zhì)量的關(guān)系圖應(yīng)用程序,在這篇文章中,我們深入探討了如何使用Vue和relation-graph高效打造關(guān)系圖,我們?cè)敿?xì)介紹了數(shù)據(jù)準(zhǔn)備、關(guān)系映射、點(diǎn)擊事件等關(guān)鍵步驟,需要的朋友可以參考下
    2023-09-09
  • vue 項(xiàng)目代碼拆分的方案

    vue 項(xiàng)目代碼拆分的方案

    這篇文章主要介紹了vue 項(xiàng)目代碼拆分的方案,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-03-03
  • 腳手架vue-cli工程webpack的作用和特點(diǎn)

    腳手架vue-cli工程webpack的作用和特點(diǎn)

    webpack是一個(gè)模塊打包的工具,它的作用是把互相依賴的模塊處理成靜態(tài)資源。這篇文章主要介紹了vue-cli工程webpack的作用和特點(diǎn),需要的朋友可以參考下
    2018-09-09
  • Vue項(xiàng)目pdf(base64)轉(zhuǎn)圖片遇到的問題及解決方法

    Vue項(xiàng)目pdf(base64)轉(zhuǎn)圖片遇到的問題及解決方法

    這篇文章主要介紹了Vue項(xiàng)目pdf(base64)轉(zhuǎn)圖片遇到的問題及解決方法,需要的朋友可以參考下
    2018-10-10
  • Vue實(shí)現(xiàn)頁面刷新跳轉(zhuǎn)到當(dāng)前頁面功能

    Vue實(shí)現(xiàn)頁面刷新跳轉(zhuǎn)到當(dāng)前頁面功能

    在Vue.js應(yīng)用開發(fā)中,有時(shí)候我們需要實(shí)現(xiàn)頁面的刷新或跳轉(zhuǎn)到當(dāng)前頁面的功能,這種需求在某些特定場(chǎng)景下非常有用,本文將詳細(xì)介紹如何在Vue中實(shí)現(xiàn)頁面刷新和跳轉(zhuǎn)到當(dāng)前頁面的功能,并提供多個(gè)示例和使用技巧,需要的朋友可以參考下
    2024-10-10
  • SpringBoot結(jié)合Vue3實(shí)現(xiàn)簡(jiǎn)單的前后端交互

    SpringBoot結(jié)合Vue3實(shí)現(xiàn)簡(jiǎn)單的前后端交互

    本文主要介紹了SpringBoot結(jié)合Vue3實(shí)現(xiàn)簡(jiǎn)單的前后端交互,結(jié)合實(shí)際案例,說明了如何實(shí)現(xiàn)前后端數(shù)據(jù)的交互,具有一定的?參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • vue實(shí)現(xiàn)GitHub的第三方授權(quán)方法示例

    vue實(shí)現(xiàn)GitHub的第三方授權(quán)方法示例

    本文主要介紹了vue實(shí)現(xiàn)GitHub的第三方授權(quán),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • axios的interceptors多次執(zhí)行問題解決

    axios的interceptors多次執(zhí)行問題解決

    這篇文章主要為大家介紹了axios中interceptors多次執(zhí)行問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Vue項(xiàng)目npm run dev啟動(dòng)失敗的6個(gè)常見原因(附解決方案)

    Vue項(xiàng)目npm run dev啟動(dòng)失敗的6個(gè)常見原因(附解決方案)

    Vue 項(xiàng)目啟動(dòng)是前端開發(fā)的基礎(chǔ)操作,但很多新手(甚至有經(jīng)驗(yàn)的開發(fā)者)都會(huì)遇到npm run dev(或?npm run serve)啟動(dòng)失敗的問題,下面就來介紹一下失敗的原因及解決方案,感興趣的可以了解一下
    2026-01-01
  • 詳解Vue 單文件組件的三種寫法

    詳解Vue 單文件組件的三種寫法

    這篇文章主要介紹了詳解Vue 單文件組件的三種寫法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評(píng)論

湘乡市| 青冈县| 财经| 尚义县| 兖州市| 民和| 鹿邑县| 陆河县| 张家界市| 延吉市| 泾阳县| 兰州市| 临沧市| 蒲城县| 府谷县| 兴宁市| 绥滨县| 武功县| 开化县| 淳化县| 临沂市| 苏尼特右旗| 长顺县| 沾化县| 聂拉木县| 安龙县| 平和县| 共和县| 桐柏县| 越西县| 论坛| 芜湖县| 汝州市| 莱阳市| 东兴市| 周至县| 芦山县| 恩施市| 寿宁县| 呼伦贝尔市| 称多县|