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

Vue+Element實(shí)現(xiàn)表格單元格編輯

 更新時(shí)間:2022年04月12日 10:43:51   作者:TYicor  
這篇文章主要為大家詳細(xì)介紹了Vue+Element實(shí)現(xiàn)表格單元格編輯,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

Element的表格組件并沒(méi)有給出明確的點(diǎn)擊單個(gè)單元格進(jìn)行的編輯的方案,我仔細(xì)閱讀了官方的文檔后,發(fā)現(xiàn)這個(gè)操作還是可以實(shí)現(xiàn)的。

實(shí)現(xiàn)原理

1、利用Table組件的cell-click屬性,可以獲取當(dāng)前點(diǎn)擊的單元格列對(duì)應(yīng)的Dom元素。
2、清空所有的名為current-cell的class屬性。
3、為當(dāng)前獲取的單元格Dom動(dòng)態(tài)添加名為current-cell的class屬性。
4、控制單元格的input標(biāo)簽的顯示隱藏就能實(shí)現(xiàn)表格的編輯功能。

代碼實(shí)現(xiàn)

<template>
? <div class="tableDiv">
? ? <el-table :data="tableData" highlight-current-row @cell-click="cellClick">
? ? ? <el-table-column
? ? ? ? v-for="(item, index) in tableColumn"
? ? ? ? :key="index"
? ? ? ? :prop="item.prop"
? ? ? ? :label="item.label"
? ? ? ? :width="item.width"
? ? ? >
? ? ? ? <template slot-scope="scope">
? ? ? ? ? <el-input
? ? ? ? ? ? v-if="item.edit"
? ? ? ? ? ? size="small"
? ? ? ? ? ? ref="tableInput"
? ? ? ? ? ? v-model="scope.row[item.prop]"
? ? ? ? ? ? @blur="removeClass"
? ? ? ? ? ? @change="handleEdit(item.prop, scope.$index, scope.row)"
? ? ? ? ? ></el-input>
? ? ? ? ? <span>{{ scope.row[item.prop] }}</span>
? ? ? ? </template>
? ? ? ? <el-table-column
? ? ? ? ? v-for="(itemchild, indexchild) in item.children"
? ? ? ? ? :key="indexchild"
? ? ? ? ? :prop="itemchild.prop"
? ? ? ? ? :label="itemchild.label"
? ? ? ? ? :width="itemchild.width"
? ? ? ? >
? ? ? ? ? <template slot-scope="scope">
? ? ? ? ? ? <el-input
? ? ? ? ? ? ? v-if="itemchild.edit"
? ? ? ? ? ? ? size="small"
? ? ? ? ? ? ? ref="tableInput"
? ? ? ? ? ? ? v-model="scope.row[itemchild.prop]"
? ? ? ? ? ? ? @blur="removeClass"
? ? ? ? ? ? ? @change="handleEdit(itemchild.prop, scope.$index, scope.row)"
? ? ? ? ? ? ></el-input>
? ? ? ? ? ? <span>{{ scope.row[itemchild.prop] }}</span>
? ? ? ? ? </template>
? ? ? ? </el-table-column>
? ? ? </el-table-column>
? ? </el-table>
? </div>
</template>

<script>
import { Column, tableData } from "./tableColumn";
export default {
? data() {
? ? return {
? ? ? tableData: tableData,
? ? ? tableColumn: Column
? ? };
? },
? methods: {
? ? handleEdit() {},
? ? cellClick(row, column, cell, event) {
? ? ? for(let i=0;i<document.getElementsByClassName('current-cell').length;i++){
? ? ? ? document.getElementsByClassName('current-cell')[i].classList.remove('current-cell');
? ? ? }
? ? ? cell.classList.add("current-cell");
? ? },
? ? removeClass(){
? ? ? document.getElementsByClassName('current-cell')[0].classList.remove('current-cell');
? ? }
? }
};
</script>
<style scoped>
.tableDiv .el-input {
? display: none;
}
.current-cell .el-input {
? display: block;
}
.current-cell .el-input + span {
? display: none;
}
</style>

tableColumn.js文件

const Column = [
? ? { label: '項(xiàng)目名稱(chēng)', prop: 'itemName', width: '300', key: '100' },
? ? { label: '項(xiàng)目編碼', prop: 'itemCode', width: '150', key: '200' },
? ? { label: '單位', prop: 'compName', width: '150', key: '300', edit: true },
? ? {
? ? ? ? label: '費(fèi)用', prop: '', width: '450', align: 'center', key: '400', children: [
? ? ? ? ? ? { label: '人工費(fèi)', prop: 'staff', width: '150', key: '401', edit: true },
? ? ? ? ? ? { label: '資料費(fèi)', prop: 'material', width: '150', key: '402', edit: true },
? ? ? ? ? ? { label: '場(chǎng)地費(fèi)', prop: 'site', width: '150', key: '403' }
? ? ? ? ]
? ? }
];
const tableData = [
? ? { itemName: "北京水立方", itemCode: "1351157698", compName: "北京", staff: "100", material: "84547", site: "6544", sort: 1 },
? ? { itemName: "北京水立方", itemCode: "1351157698", compName: "北京", staff: "100", material: "84547", site: "6544", sort: 2 },
? ? { itemName: "北京水立方", itemCode: "1351157698", compName: "北京", staff: "100", material: "84547", site: "6544", sort: 3 },
? ? { itemName: "北京水立方", itemCode: "1351157698", compName: "北京", staff: "100", material: "84547", site: "6544", sort: 4 },
? ? { itemName: "北京水立方", itemCode: "1351157698", compName: "北京", staff: "100", material: "84547", site: "6544", sort: 5 },
? ? { itemName: "北京水立方", itemCode: "1351157698", compName: "北京", staff: "100", material: "84547", site: "6544", sort: 6 },
? ? { itemName: "北京水立方", itemCode: "1351157698", compName: "北京", staff: "100", material: "84547", site: "6544", sort: 7 },
? ? { itemName: "北京水立方", itemCode: "1351157698", compName: "北京", staff: "100", material: "84547", site: "6544", sort: 8 },
? ? { itemName: "北京水立方", itemCode: "1351157698", compName: "北京", staff: "100", material: "84547", site: "6544", sort: 9 },
? ? { itemName: "北京水立方", itemCode: "1351157698", compName: "北京", staff: "100", material: "84547", site: "6544", sort: 10 }
]
export {
? ? Column, tableData
}

注意:注意相應(yīng)的樣式不能少,非常重要?。?!

頁(yè)面效果:

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

相關(guān)文章

  • vue中4個(gè)自定義指令講解及實(shí)例用法

    vue中4個(gè)自定義指令講解及實(shí)例用法

    在本篇文章里小編給大家整理了一篇關(guān)于vue中4個(gè)自定義指令講解及實(shí)例用法,有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-12-12
  • 關(guān)于element同時(shí)使用Drawer和Dialog出現(xiàn)多個(gè)遮罩問(wèn)題

    關(guān)于element同時(shí)使用Drawer和Dialog出現(xiàn)多個(gè)遮罩問(wèn)題

    這篇文章主要介紹了關(guān)于element同時(shí)使用Drawer和Dialog出現(xiàn)多個(gè)遮罩問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • vue項(xiàng)目實(shí)現(xiàn)局部全屏完整代碼

    vue項(xiàng)目實(shí)現(xiàn)局部全屏完整代碼

    最近需要做一個(gè)全屏功能,所以這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目實(shí)現(xiàn)局部全屏的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • Ant Design Upload 文件上傳功能的實(shí)現(xiàn)

    Ant Design Upload 文件上傳功能的實(shí)現(xiàn)

    這篇文章主要介紹了Ant Design Upload 文件上傳功能的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vsCode一鍵生成vue模板

    vsCode一鍵生成vue模板

    之前關(guān)于vsCode一鍵生成vue模,最近需要回顧,就順便發(fā)到隨筆上了,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • vue-cli3 引入 font-awesome的操作

    vue-cli3 引入 font-awesome的操作

    這篇文章主要介紹了vue-cli3 引入 font-awesome的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • Vue+Vux項(xiàng)目實(shí)踐完整代碼

    Vue+Vux項(xiàng)目實(shí)踐完整代碼

    本文給大家分享一段詳細(xì)的代碼給大家介紹Vue+Vux項(xiàng)目實(shí)踐思路,需要的朋友可以參考下
    2017-11-11
  • 解決vue中post方式提交數(shù)據(jù)后臺(tái)無(wú)法接收的問(wèn)題

    解決vue中post方式提交數(shù)據(jù)后臺(tái)無(wú)法接收的問(wèn)題

    今天小編就為大家分享一篇解決vue中post方式提交數(shù)據(jù)后臺(tái)無(wú)法接收的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • vue中集成省市區(qū)街四級(jí)地址組件的實(shí)現(xiàn)過(guò)程

    vue中集成省市區(qū)街四級(jí)地址組件的實(shí)現(xiàn)過(guò)程

    我們?cè)陂_(kāi)發(fā)中常會(huì)遇到選擇地址的需求,有時(shí)候只需要選擇省就可以,有時(shí)候則需要選擇到市、縣,以至于鄉(xiāng)鎮(zhèn),甚至哪個(gè)村都有可能,下面這篇文章主要給大家介紹了關(guān)于vue中集成省市區(qū)街四級(jí)地址組件的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 詳解如何在Vue3中實(shí)現(xiàn)懶加載組件

    詳解如何在Vue3中實(shí)現(xiàn)懶加載組件

    隨著現(xiàn)代前端框架的發(fā)展,懶加載作為一種優(yōu)秀的性能優(yōu)化技術(shù),在用戶(hù)體驗(yàn)和加載速度上扮演著越來(lái)越重要的角色,本文將詳細(xì)介紹如何在 Vue 3 中實(shí)現(xiàn)懶加載組件,確保你能夠?qū)⑦@一技術(shù)應(yīng)用到自己的項(xiàng)目中,需要的朋友可以參考下
    2024-11-11

最新評(píng)論

洪湖市| 富民县| 鄂托克前旗| 全椒县| 会东县| 宁国市| 东阿县| 吴川市| 阳山县| 定襄县| 建瓯市| 万年县| 茂名市| 政和县| 涿鹿县| 辛集市| 墨江| 平遥县| 永年县| 武安市| 玉林市| 东莞市| 河津市| 太康县| 安徽省| 玉树县| 阳西县| 淳安县| 同心县| 乾安县| 武定县| 邵武市| 汉源县| 松江区| 大荔县| 鹤壁市| 轮台县| 章丘市| 新沂市| 盐津县| 胶州市|