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

vue+iview?Table表格多選切換分頁保持勾選狀態(tài)

 更新時(shí)間:2022年07月06日 08:03:15   作者:LBJsagiri  
這篇文章主要為大家詳細(xì)介紹了vue+iview?Table表格多選切換分頁保持勾選狀態(tài),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了vue+iview Table表格多選切換分頁保持勾選狀態(tài)的具體代碼,供大家參考,具體內(nèi)容如下

第一種情況(配合后端做選中數(shù)據(jù)處理)

定義三個(gè)參數(shù),是否為全選(isSelectAll)、不是全選時(shí)選擇的數(shù)據(jù)(selectObject: [])、反選數(shù)據(jù)(unSelectObject:[])

HTML

<Alert show-icon v-show="openTip">
?? ??? ??? ? ? ? ? ? ? ? ?已選擇
? ? ? ? ? ? ? <span class="select-count" v-if="isSelectAll">{{ total-unSelectObject.length }}</span> 項(xiàng)
? ? ? ? ? ? ? <span class="select-count" v-if="!isSelectAll">{{ selectObject.length }}</span> 項(xiàng)
? ? ? ? ? ? ? <a class="select-clear" @click="clearSelectAll">清空</a>
? ? ? ? ? ? ? <span class="button">
? ? ? ? ? ? ? ? <Button @click="onSelectAll" type="primary">全選</Button>
? ? ? ? ? ? ? </span>
? ? ? ? ? ? ? <span class="button">
? ? ? ? ? ? ? ? <Button @click="selectAllcancel" type="primary">取消全選</Button>
? ? ? ? ? ? ? </span>
? ? ? ? ? ? </Alert>
? ? ? ? ? ? <Table
? ? ? ? ? ? ? :loading="loading"
? ? ? ? ? ? ? border
? ? ? ? ? ? ? :columns="columns"
? ? ? ? ? ? ? :data="data"
? ? ? ? ? ? ? @on-select-all="selectAll"
? ? ? ? ? ? ? @on-select-all-cancel="cancelAll"
? ? ? ? ? ? ? @on-select="TableSelectRow"
? ? ? ? ? ? ? @on-select-cancel="TableSelectCancelRow"
? ? ? ? ? ? >
? ? ? ? ? ? </Table>
? ? ? ? ? ? <Row type="flex" justify="end" class="page">
? ? ? ? ? ? ? <Page
? ? ? ? ? ? ? ? :current="searchForm.pageIndex"
? ? ? ? ? ? ? ? :total="total"
? ? ? ? ? ? ? ? :page-size="searchForm.pageSize"
? ? ? ? ? ? ? ? @on-change="changePage"
? ? ? ? ? ? ? ? @on-page-size-change="changePageSize"
? ? ? ? ? ? ? ? :page-size-opts="[10, 20, 50]"
? ? ? ? ? ? ? ? size="small"
? ? ? ? ? ? ? ? show-total
? ? ? ? ? ? ? ? show-elevator
? ? ? ? ? ? ? ? show-sizer
? ? ? ></Page>
</Row>

data

data: [],
isSelectAll: false,
condition: '',
selectObject: [],
unSelectObject: [],
selectEquipsIds: '0',

JS

// 全選
onSelectAll() {
this.isSelectAll = true
this.getDataList()
? ? },
?? ?//取消全選
? ? selectAllcancel() {
? ? ? this.isSelectAll = false
? ? ? this.selectEquipsIds = '0'
? ? ? this.getDataList()
? ? },
?? ?//全選當(dāng)前頁
? ? selectAll() {
? ? ? if (this.isSelectAll) {
? ? ? ? for (let i = this.data.length - 1; i >= 0; i--) {
? ? ? ? ? var _index = this.unSelectObject.indexOf(this.data[i].id)
? ? ? ? ? if (_index != -1) {
? ? ? ? ? ? this.unSelectObject.splice(_index, 1)
? ? ? ? ? }
? ? ? ? }
? ? ? ? console.log(this.unSelectObject)
? ? ? } else {
? ? ? ? for (let i = this.data.length - 1; i >= 0; i--) {
? ? ? ? ? this.selectObject.push(this.data[i].id)
? ? ? ? }
? ? ? ? console.log(this.selectObject)
? ? ? }
? ? },
? ? // 取消當(dāng)前頁
? ? cancelAll() {
? ? ? if (this.isSelectAll) {
? ? ? ? for (let i = this.data.length - 1; i >= 0; i--) {
? ? ? ? ? this.unSelectObject.push(this.data[i].id)
? ? ? ? }
? ? ? ? ?console.log(this.unSelectObject)
? ? ? } else {
? ? ? ? for (let i = this.data.length - 1; i >= 0; i--) {
? ? ? ? ? var _index = this.selectObject.indexOf(this.data[i].id)
? ? ? ? ? if (_index != -1) {
? ? ? ? ? ? this.selectObject.splice(_index, 1)
? ? ? ? ? }
? ? ? ? }
? ? ? ? console.log(this.selectObject)
? ? ? }
? ? },
? ? // 選中一行
? ? TableSelectRow(selection, row) {
? ? ? if (this.isSelectAll) {
? ? ? ? var _index = this.unSelectObject.indexOf(row.id)
? ? ? ? if (_index != -1) {
? ? ? ? ? this.unSelectObject.splice(_index, 1)
? ? ? ? ? console.log(this.unSelectObject)
? ? ? ? }
? ? ? } else {
? ? ? ? if (!this.selectObject.includes(row.id)) {
? ? ? ? ? this.selectObject.push(row.id)
? ? ? ? ? console.log(this.selectObject)
? ? ? ? }
? ? ? }
? ? },
? ? // 取消選中一行
? ? TableSelectCancelRow(selection, row) {
? ? ? if (this.isSelectAll) {
? ? ? ? this.unSelectObject.push(row.id)
? ? ? } else {
? ? ? ? var _index = this.selectObject.indexOf(row.id)
? ? ? ? if (_index != -1) {
? ? ? ? ? this.selectObject.splice(_index, 1)
? ? ? ? ? console.log(this.selectObject)
? ? ? ? }
? ? ? }
? ? },
? ? // 判斷是否選中
? ? sortData() {
? ? ? if (this.isSelectAll) {
? ? ? ? for (let i = this.data.length - 1; i >= 0; i--) {
? ? ? ? ? if (!this.unSelectObject.includes(this.data[i].id)) {
? ? ? ? ? ? this.data[i]._checked = true
? ? ? ? ? }
? ? ? ? }
? ? ? } else {
? ? ? ? if (this.selectObject.length) {
? ? ? ? ? this.data.forEach((ele) => {
? ? ? ? ? ? if (this.selectObject.includes(ele.id)) ele._checked = true
? ? ? ? ? })
? ? ? ? }
? ? ? }
? ? },
?? ?getDataList() {
? ? ? // 多條件搜索用戶列表
? ? ? this.loading = true
? ? ? api().then((res) => {
? ? ? ? this.loading = false
? ? ? ? if (res.success) {
? ? ? ? ? this.data = res.result?.records
? ? ? ? ? this.sortData() ?//分頁時(shí)保留選中狀態(tài)
? ? ? ? ? if (this.data.length == 0 && this.searchForm.pageIndex > 1) {
? ? ? ? ? ? this.searchForm.pageIndex -= 1
? ? ? ? ? ? this.getDataList()
? ? ? ? ? }
? ? ? ? }
? ? ? })
},

實(shí)現(xiàn)效果

全選效果

單獨(dú)選擇效果

整頁全選選擇效果

整頁全選+單選

第二種情況(只給后端傳需要傳的數(shù)據(jù))

定義一個(gè)參數(shù),已選數(shù)據(jù)(selectObject:[])

HTML

<div class="table-div">?
?? ??? ??? ?<Table :columns="columns"?
?? ??? ??? ??? ?:data="tableList"?
?? ??? ??? ??? ?@on-select-all="selectAll"?
?? ??? ??? ??? ?@on-select-all-cancel="cancelAll"?
?? ??? ??? ??? ?@on-select="TableSelectRow"?
?? ??? ??? ??? ?@on-select-cancel="TableSelectCancelRow" />
?? ??? ?</div>
?? ??? ?<Row type="flex" justify="end" class="page">
? ? ? ? ? ? ? <Page
? ? ? ? ? ? ? ? :current="searchForm.pageIndex"
? ? ? ? ? ? ? ? :total="total"
? ? ? ? ? ? ? ? :page-size="searchForm.pageSize"
? ? ? ? ? ? ? ? @on-change="changePage"
? ? ? ? ? ? ? ? @on-page-size-change="changePageSize"
? ? ? ? ? ? ? ? :page-size-opts="[10, 20, 50]"
? ? ? ? ? ? ? ? size="small"
? ? ? ? ? ? ? ? show-total
? ? ? ? ? ? ? ? show-elevator
? ? ? ? ? ? ? ? show-sizer
? ? ? ></Page>
</Row>

data

data: [],
selectObject: [],

JS

//判斷是否選中?
sortData() {
? ? ? ? if (this.selectEquipsIds.length) {
?? ??? ??? ??? ??? ?this.tableList.forEach(ele => {
?? ??? ??? ??? ??? ??? ?if (this.selectEquipsIds.includes(ele.id)) ele._checked = true;
?? ??? ??? ??? ??? ?})
?? ??? ??? ??? ?}
?? ??? ??? ?},
?? ??? ??? ?// 選中一行
?? ??? ??? ?TableSelectRow(selection, row) {
?? ??? ??? ??? ?if (!this.selectEquipsIds.includes(row.id)) {
?? ??? ??? ??? ??? ?this.selectEquipsIds.push(row.id);
?? ??? ??? ??? ??? ??
?? ??? ??? ??? ?}
?? ??? ??? ?},
?? ??? ??? ?// 取消選中一行
?? ??? ??? ?TableSelectCancelRow(selection, row) {
?? ??? ??? ??? ?var _index = this.selectEquipsIds.indexOf(row.id);
?? ??? ??? ??? ?if (_index != -1) {
?? ??? ??? ??? ??? ?this.selectEquipsIds.splice(_index, 1);
?? ??? ??? ??? ??? ??
?? ??? ??? ??? ?}
?? ??? ??? ?},
?? ??? ??? ?// 選中所有
?? ??? ??? ?selectAll() {
?? ??? ??? ??? ?for (let i = this.tableList.length - 1; i >= 0; i--) {
?? ??? ??? ??? ??? ?this.TableSelectRow(null, this.tableList[i]);
?? ??? ??? ??? ?}
?? ??? ??? ?},
?? ??? ??? ?// 取消選中所有
?? ??? ??? ?cancelAll() {
?? ??? ??? ??? ?for (let i = this.tableList.length - 1; i >= 0; i--) {
?? ??? ??? ??? ??? ?this.TableSelectCancelRow(null, this.tableList[i]);
?? ??? ??? ??? ?}
?? ??? ??? ?},
?? ??? ??? ?// 翻頁查詢
?? ??? ??? ?onChange(param) {
?? ??? ??? ??? ?this.page.PageIndex = param;
?? ??? ??? ??? ?this.getDataList();
?? ??? ??? ?},
?? ??? ??? ?// 選擇分頁數(shù)
?? ??? ??? ?onPageSizeChange(param) {
?? ??? ??? ??? ?this.page.PageSize = param;
?? ??? ??? ??? ?this.getDataList();
?? ??? ??? ?},
?? ??? ??? ?// 查詢表格數(shù)據(jù)?
?? ??? ??? ?getDataList() {
?? ??? ? ? ? ?// 多條件搜索用戶列表
?? ??? ? ? ? ?this.loading = true
?? ??? ? ? ? ?api().then((res) => {
?? ??? ? ? ? ? ?this.loading = false
?? ??? ? ? ? ? ?if (res.success) {
?? ??? ? ? ? ? ? ?this.data = res.result?.records
?? ??? ? ? ? ? ? ?this.sortData()
?? ??? ? ? ? ? ? ?// this.total = res.result.total
?? ??? ? ? ? ? ? ?if (this.data.length == 0 && this.searchForm.pageIndex > 1) {
?? ??? ? ? ? ? ? ? ?this.searchForm.pageIndex -= 1
?? ??? ? ? ? ? ? ? ?this.getDataList()
?? ??? ? ? ? ? ? ?}
?? ??? ? ? ? ? ?}
?? ??? ? ? ? ?})
?? ??? ? ? ?},
},

以上均已實(shí)測(cè)可用。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue自定義依賴引入的最佳實(shí)踐記錄

    Vue自定義依賴引入的最佳實(shí)踐記錄

    在現(xiàn)代前端開發(fā)中,自定義引入依賴是提升開發(fā)效率的關(guān)鍵,unplugin-auto-import插件可以幫助開發(fā)者自動(dòng)引入JS模塊,包括本地編寫的工具方法和第三方庫,通過簡單的配置,開發(fā)者可以實(shí)現(xiàn)Vue基本庫、本地文件以及第三方插件的自動(dòng)引入
    2024-10-10
  • 淺析vue3項(xiàng)目中自定義指令的運(yùn)用

    淺析vue3項(xiàng)目中自定義指令的運(yùn)用

    自定義指令是一種在Vue應(yīng)用程序中擴(kuò)展HTML標(biāo)簽的能力,通過自定義指令,我們可以直接在模板中使用指令名,下面我們就來看看項(xiàng)目中具體如何使用自定義指令的吧
    2023-08-08
  • vue環(huán)形進(jìn)度條組件實(shí)例應(yīng)用

    vue環(huán)形進(jìn)度條組件實(shí)例應(yīng)用

    在本文中我們給大家分享了關(guān)于vue環(huán)形進(jìn)度條組件的使用方法以及實(shí)例代碼,需要的朋友們跟著測(cè)試下吧。
    2018-10-10
  • Vue?仿QQ左滑刪除組件功能

    Vue?仿QQ左滑刪除組件功能

    前幾天朋友在做vue項(xiàng)目開發(fā)時(shí),有人反映?IOS?上面的滑動(dòng)點(diǎn)擊有點(diǎn)問題,讓我們來幫忙解決,于是我就重寫了代碼,下面把vue仿qq左滑刪除組件功能分享到腳本之家平臺(tái),需要的朋友參考下吧
    2018-03-03
  • vue上傳文件formData上傳的解決全流程

    vue上傳文件formData上傳的解決全流程

    這篇文章主要介紹了vue上傳文件formData上傳的解決全流程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue項(xiàng)目打包發(fā)布后接口報(bào)405錯(cuò)誤的解決

    vue項(xiàng)目打包發(fā)布后接口報(bào)405錯(cuò)誤的解決

    這篇文章主要介紹了vue項(xiàng)目打包發(fā)布后接口報(bào)405錯(cuò)誤的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue自定義全局共用函數(shù)詳解

    vue自定義全局共用函數(shù)詳解

    今天小編就為大家分享一篇vue自定義全局共用函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • ElementUI中el-tree節(jié)點(diǎn)的操作的實(shí)現(xiàn)

    ElementUI中el-tree節(jié)點(diǎn)的操作的實(shí)現(xiàn)

    這篇文章主要介紹了ElementUI中el-tree節(jié)點(diǎn)的操作的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Vue使用v-viewer實(shí)現(xiàn)圖片預(yù)覽

    Vue使用v-viewer實(shí)現(xiàn)圖片預(yù)覽

    這篇文章主要為大家詳細(xì)介紹了Vue使用v-viewer實(shí)現(xiàn)圖片預(yù)覽,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • vue-class-setup?編寫?class?風(fēng)格組合式API

    vue-class-setup?編寫?class?風(fēng)格組合式API

    這篇文章主要為大家介紹了vue-class-setup?編寫?class?風(fēng)格組合式API,支持Vue2和Vue3,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評(píng)論

富蕴县| 乐昌市| 赤城县| 泸定县| 安泽县| 汤阴县| 水富县| 礼泉县| 嘉兴市| 株洲市| 北海市| 秭归县| 苍溪县| 织金县| 文山县| 石泉县| 平利县| 方城县| 永城市| 晋城| 商洛市| 恩施市| 隆回县| 濮阳市| 肇州县| 武安市| 浏阳市| 吕梁市| 安宁市| 泰州市| 葵青区| 武胜县| 桐柏县| 高雄县| 芦山县| 安国市| 昆明市| 容城县| 新宁县| 文安县| 大渡口区|