【Vue.js】ElementUIでテーブルを作るときにデータを加工したくなった
はじめに
VueのUIライブラリ「ElementUI」でテーブルを作成するときに、
データを加工しようとしたら少しハマったので今回記事にさせて頂きました。
どうぞよろしくお願いします。
開発環境
- MacOS
- vue 2.6.11
- vuecli 4.4.6
- element-ui 2.13.2
- vue-moment 4.1.0
- moment-timezone 0.5.31
テーブルを作る
とりあえずこんな感じのテーブルを作ります。
コンポーネントについては、公式ドキュメントが参考になります。
<template>
<div class="result-area">
<el-table
:data="tableData">
<el-table-column
prop="id"
label="ID"
width="100">
</el-table-column>
<el-table-column
prop="name"
label="ニックネーム"
width="200">
</el-table-column>
<el-table-column
prop="created_at"
label="作成日"
width="200">
</el-table-column>
</el-table>
</div>
</template>
<script>
import CommonHelper from '../helper/CommonHelper';
export default {
mixins: [CommonHelper],
data() {
return {
tableData: [{
id: 1,
name: '山田太郎',
created_at: '2020-07-01 10:00:00'
}, {
id: 2,
name: '鈴木一郎',
created_at: '2020-07-02 11:00:00'
}, {
id: 3,
name: '菅田将暉',
created_at: '2020-07-03 12:00:00'
}]
};
}
}
</script>
データを加工して表示
<template>
<div class="result-area">
<el-table
:data="tableData">
<el-table-column
prop="id"
label="ID"
width="100">
</el-table-column>
<el-table-column
prop="name"
label="ニックネーム"
width="200">
</el-table-column>
<el-table-column
prop="created_at"
label="作成日"
width="200">
<template slot-scope="scope">
{{date_format(scope.row.created_at)}}
</template>
</el-table-column>
</el-table>
</div>
</template>
scopeを定義してあげて、date_formatという関数を使用して変換しています。
「scope.row.created_at」の「row」を忘れていて、少しハマってしまいました。
一応関数も書いておきます。
export default {
methods: {
date_format(date) {
let format_date = this.$moment(date);
format_date.locale('ja');
return format_date.format('LL');
}
}
}
おまけ
<template>
<div class="result-area">
<el-table
:data="tableData">
<el-table-column
prop="id"
label="ID"
width="100">
</el-table-column>
<el-table-column
prop="name"
label="ニックネーム"
width="200">
</el-table-column>
<el-table-column
prop="id">
<template slot-scope="scope">
<el-button
size="mini"
@click="pushDetail(scope.row.id)">
<i class="el-icon-edit-outline"></i>
</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import CommonHelper from '../helper/CommonHelper';
export default {
mixins: [CommonHelper],
data() {
return {
tableData: [{
id: 1,
name: '山田太郎',
created_at: '2020-07-01 10:00:00'
}, {
id: 2,
name: '鈴木一郎',
created_at: '2020-07-02 11:00:00'
}, {
id: 3,
name: '菅田将暉',
created_at: '2020-07-03 12:00:00'
}]
};
},
methods: {
pushDetail(id) {
console.log(id);
}
}
}
</script>
アイコンを押すと、methodsにidを渡すことができます。
おわりに
ElementUIはコンポーネントも豊富で使いやすいのですが、
日本語の記事が少なめなので、もっと記事が増やしていきたいと思います。
よろしければ、フォローお願いします。
Author And Source
この問題について(【Vue.js】ElementUIでテーブルを作るときにデータを加工したくなった), 我々は、より多くの情報をここで見つけました https://qiita.com/mura-gigabyte/items/d2206f1ee3e61f61e981著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .