国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用ElementUI的el-tab+vxe-table表格+復(fù)選框選擇

這篇具有很好參考價值的文章主要介紹了使用ElementUI的el-tab+vxe-table表格+復(fù)選框選擇。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

效果:使用ElementUI的el-tab+vxe-table表格+復(fù)選框選擇,elementui,vxe-table

功能:首先進(jìn)來是全部清空的狀態(tài)的

  1. 點(diǎn)擊左邊選擇不同項右邊會實時發(fā)送接口獲取數(shù)據(jù)填充表格

  2. 復(fù)選的內(nèi)容可以保留顯示,比如A的1勾選后切換到B再切換回來A的1仍然是勾選狀態(tài)

說實話官網(wǎng)的setCheckboxRow方法我實現(xiàn)不了,這里就是純蠢蠢的辦法實現(xiàn),在這里做個記錄,能用咱就用著,有更好的辦法就下次一定

適用el-tabs來實現(xiàn)該樣式,關(guān)鍵點(diǎn)是:checkbox-config="{ checkField: 'checked', checkRowKey: 'checked' }"這個配置 ,vxe-table表格會根據(jù)checked的狀態(tài)來判斷是否給勾選狀態(tài)

(我加了checkField這個后會默認(rèn)給每個行添加字段checked,如果表格的數(shù)據(jù)沒有這一項只需要在獲取第一個表格數(shù)據(jù)的時候手動添加checked這個屬性,例如后面我在init函數(shù)中加的)

<el-tabs tab-position="left" @tab-click="handleClick">
	<el-tab-pane v-for="(item, index)  in tabs" :key="item.testItemCode" :label="item.testGroupName">
      <vxe-table :ref="'table' + index" :data="testItemData" auto-resize align="center"  :checkbox-config="{ trigger: 'row', checkField: 'checked', checkRowKey: 'checked' }" @checkbox-all="selectAllEvent" @checkbox-change="selectChangeEvent">
		<vxe-table-column type="checkbox" width="50">
		<vxe-table-column type="checkbox" width="50"></vxe-table-column>
      	<vxe-table-column type="seq" title="序號" width="50"></vxe-table-column>
    	<vxe-table-column field="testItemName" title="測試項"></vxe-table-column>
     	<vxe-table-column field="testItemCode" title="測試項編碼"></vxe-table-column>
     	<vxe-table-column field="testTypeName" title="測試類型"></vxe-table-column>
  	  </vxe-table>
	</el-tab-pane>
</el-tabs>        
  • 在Init初始化的時候就都給一個默認(rèn)的屬性checked = false,每次點(diǎn)擊勾選的時候就把它存起來,取消勾選就把這一項刪除,這里用curSelectedList來存儲選中項的
  • tab-click點(diǎn)擊事件中也就是切換tab時發(fā)送不同的請求獲取表格數(shù)據(jù),如果該數(shù)據(jù)在curSelectedList中的話我們就把他的``checked屬性設(shè)置為true`,就實現(xiàn)了選中的狀態(tài)
  • 最后確認(rèn)的時候就把curSelectedList的數(shù)據(jù)傳出去就好了,也就是選中的項
// 頁面剛進(jìn)來的時候就獲取第一組數(shù)據(jù)
 init() {
       this.tabs = this.testGroupNameList
       this.getTestItemData(this.tabs[0].testGroupCode)
 },
// 獲取測試項
async getTestItemData(testGroupCode) {
     this.testItemData = await getItemCodesOfGroup({
          testNo: this.testNo,
          testGroupCode,
          entityCode: this.entityCode
     })
     //??上面的就是獲取數(shù)據(jù),這里比較關(guān)鍵,不寫的話進(jìn)來第一次就會勾選不了
     this.testItemData.forEach(i => i.checked = false)
},  
async handleClick(tab) {
            // 先通過左邊的選擇獲取相應(yīng)的表格數(shù)據(jù),這里也是獲取數(shù)據(jù)
            await this.getTestItemData(this.tabs.find(v => v.testGroupName == tab.label).testGroupCode)
            //?? 這里比較關(guān)鍵,如果在已選擇的列表內(nèi),就設(shè)置為選中狀態(tài)
            if (this.curSelectedList.length) {
                this.testItemData.forEach(item => {
                    this.curSelectedList.forEach(item2 => {
                        if (item.testItemName == item2.testItemName) {
                            item.checked = true
                        }
                    })
                })
            }
        },
// 復(fù)選框事件
 selectChangeEvent(selection) {
            // 選中時保存選中項
      if (selection.checked) {
           this.curSelectedList.push(selection.row)
           this.curSelectedList = this.unique(this.curSelectedList, 'testItemName')
     } else {
          // 取消時刪除選中項
          this.curSelectedList = this.curSelectedList.filter(item => item.testItemName != selection.row.testItemName)
      }
},
     // vxe復(fù)選框當(dāng)前頁全選中方法
 selectAllEvent(selection) {
            // 選中時保存選中項
       if (selection.checked) {
           this.curSelectedList.push(...selection.records)
           this.curSelectedList = this.unique(this.curSelectedList, 'testItemName')
     } else {
                // 取消時刪除選中項
      selection.$table.tableData.forEach(item => {
          this.curSelectedList = this.curSelectedList.filter(item2 => item2.testItemName != item.testItemName)
         })
    }
},  
// 通過testItemName去重函數(shù) ,testItemCode不是唯一的
unique(arr, attr) {
     const map = new Map()
     const result = []
     for (const item of arr) {
          if (!map.has(item[attr])) {
               map.set(item[attr], true)
               result.push(item)
          }
     }
     return result
},  
// 確認(rèn)選擇測試項,這里就是把當(dāng)前選中項傳給父組件的
doChoose() {
     this.curSelectedList = this.unique(this.curSelectedList, 'testItemName')
     this.$emit('getTestItemList', this.curSelectedList)
     this.closeDialog()
 },

肯定有更簡單的方法,也有更加簡潔的方法,我這個就比較冗余然后就是為了實現(xiàn)功能,大家僅供參考文章來源地址http://www.zghlxwxcb.cn/news/detail-798372.html

到了這里,關(guān)于使用ElementUI的el-tab+vxe-table表格+復(fù)選框選擇的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vxe-table 小眾但功能齊全的vue表格組件

    vxe-table 小眾但功能齊全的vue表格組件

    一個基于 vue 的 PC 端表格組件,除了一般表格支持的增刪改查、排序、篩選、對比、樹形結(jié)構(gòu)、數(shù)據(jù)分頁等,它還支持虛擬滾動、懶加載、打印導(dǎo)出、虛擬列表、虛擬滾動、模態(tài)窗口、自定義模板、渲染器、賊靈活的配置項、擴(kuò)展接口等,特別是能支持類似excel表格操作方式

    2024年02月08日
    瀏覽(24)
  • vxe-table中<vxe-grid>組件中表格數(shù)據(jù)排序問題sort-change

    vxe-table中<vxe-grid>組件中表格數(shù)據(jù)排序問題sort-change

    問題描述,首先使用vxe-grid虛擬列表為了同時渲染大批量數(shù)據(jù)的,但是從iview ui里的table和element ui 里table都是只能渲染少量數(shù)據(jù),達(dá)不到大批量數(shù)據(jù)渲染,所以改用vxe-grid。 但是有個排序的問題在iview ui和element ui 里table都不會存在排序混亂的問題,而vxe-grid里的排序會有問題,

    2024年02月16日
    瀏覽(36)
  • elementUI如何給el-tabs/el-tab-pane添加圖標(biāo)

    elementUI如何給el-tabs/el-tab-pane添加圖標(biāo)

    原始的el-tabs 添加圖標(biāo)后的樣式 ps:紅色是因為添加了額外的css 在此不做描述 html部分的代碼 給 el-tabs 添加 stretch 屬性,使得tabs平鋪滿整個頁面; 通過 v-if 控制選中時圖標(biāo)的顏色更改(其實就是換個圖標(biāo)); style部分的代碼 由于用的是自定義的圖標(biāo),所以需要在background中引

    2024年02月13日
    瀏覽(30)
  • elementui的el-tabs標(biāo)簽頁樣式修改

    elementui的el-tabs標(biāo)簽頁樣式修改

    1.去掉下劃線 效果: ? 代碼: 2.改變下劃線顏色 效果: ? ?代碼: 3.改變選中文字/鼠標(biāo)滑過時文字顏色 效果: ?代碼: 4.設(shè)置未選中時文字顏色 效果: ? 代碼:

    2024年02月11日
    瀏覽(31)
  • 前端基礎(chǔ)(Element、vxe-table組件庫的使用)

    前端基礎(chǔ)(Element、vxe-table組件庫的使用)

    前言:在前端項目中,實際上,會用到組件庫里的很多組件,本博客主要介紹Element、vxe-table這兩個組件如何使用。 目錄 Element 引入element 使用組件的步驟 使用對話框的示例代碼 效果展示? vxe-table 引入vxe-table 成果展示 總結(jié) 官網(wǎng)地址 Button 按鈕 | Element Plus (element-plus.org) 在m

    2024年02月10日
    瀏覽(56)
  • Thinkphp 6 + Vue 2 + ElementUI + Vxe-table 前后端分離的,一鍵生成代碼和API接口的,通用后臺管理系統(tǒng) 快速開發(fā)框架,開發(fā)小程序和APP的推薦框架!

    Thinkphp 6 + Vue 2 + ElementUI + Vxe-table 前后端分離的,一鍵生成代碼和API接口的,通用后臺管理系統(tǒng) 快速開發(fā)框架,開發(fā)小程序和APP的推薦框架! RdsAdmin是一款PHP語言開發(fā)的,基于Thinkphp 6 + Vue 2 + ElementUI + Vxe-table 等開源框架精心打造的,前后端分離的,一鍵生成功能菜單的,快速

    2024年02月14日
    瀏覽(30)
  • vxe-table中樹形結(jié)構(gòu)

    vxe-table中樹形結(jié)構(gòu)

    如圖,同事讓幫忙實現(xiàn)一個需求 ?從二級樹節(jié)點(diǎn)開始,同時選中的只能有一個二級樹節(jié)點(diǎn),選中的二級樹節(jié)點(diǎn)之下的子節(jié)點(diǎn)都可以被選中。否則不能被選中 直接上代碼 需要注意的是,文中樹狀圖傳遞的數(shù)據(jù)是打平的數(shù)據(jù),設(shè)置代碼是下圖,而不是樹狀圖!! ?上述的這一點(diǎn)非常

    2024年02月10日
    瀏覽(32)
  • 關(guān)于vxe-table全局引入的問題

    關(guān)于vxe-table全局引入的問題

    主要講解一下vxe-table全局引入然后使用碰到的問題 0:vxe-table的官網(wǎng)地址 1:基本環(huán)境 (1):vue版本為3.x以上(我的是3.2.13) (2): 依賴庫:xe-utils 注意:這篇博客的是vue3的腳手架搭建的,如果需要看低版本,請點(diǎn)擊這里 2:使用npm安裝 3:package.json文件里面就會有以下內(nèi)

    2024年02月11日
    瀏覽(26)
  • element UI el-tabs組件使用

    element UI el-tabs組件使用

    使用 Elemenet UI 框架中的?el-tabs 組件 平時在做項目時,tab切換效果幾乎是必不可少的,下來整理一個最近做的一個小功能:el-tabs ?? 說明: v-model:當(dāng)前選中項 :tab-position:tab欄顯示方向 @tab-click:切換tab欄的事件 JS:

    2024年02月11日
    瀏覽(24)
  • vue最強(qiáng)table vxe-table 虛擬滾動列表 前端導(dǎo)出

    vue最強(qiáng)table vxe-table 虛擬滾動列表 前端導(dǎo)出

    最近遇到個問題。后臺一次性返回2萬條列表數(shù)據(jù)。 并且需求要求所有數(shù)據(jù)必須全部展示,不能做假分頁(不能優(yōu)化了)。 這些數(shù)據(jù)的直接來源就是CS客戶端。 他們做CS客戶端就是一次性加載幾萬條數(shù)據(jù)不分頁(說這是客戶的要求)。 我體驗了一把CS客戶端,數(shù)萬條數(shù)據(jù)放在

    2024年02月12日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包