elementyuiの中でNotificationコンポーネントにクリックイベントを追加しました。
6785 ワード
1.公式文書
2.クリックイベントを追加して、参照してください。
elementsuiではクリックしてイベントを処理します。
表示位置:elementsuiのテーブルイベント
elementyuiのテーブルの中でどのようにあるセルをクリックしてイベントをトリガしますか?
まず、公式サイトのテーブルのカスタム列のテンプレートコードを見てもいいです。
親コンポーネント
template+slot補間で管理できます。
現在の行の情報を見つけたら、その情報に基づいてサブコンポーネントでデータを要求します。
行をクリックすることで、どのセルでイベントを処理するかを判断することもできますが、表の列に保存されている内容が変更された場合は再調整されます。
dialogポップアップボックスを試して、現在のセルのtemplateに直接書いてみました。公式サイトの例と同じですが、これはクリック時に何回か触発されます。(回数は現在のページの展示数と一致します。)
以上のelement uiの中でNotificationのコンポーネントにクリックしてください。例は小編集が皆さんに共有している内容です。参考にしてもらいたいです。どうぞよろしくお願いします。
2.クリックイベントを追加して、参照してください。
handleClick() {
let telNo = "1111",
message = "22222",
_this = this; //
this.$notify({
title: " ",
position: "bottom-right",
dangerouslyUseHTMLString: true,
message: `<p style="cursor: pointer;"> :<i>${telNo}</i></p>`,
duration: 0,
type: "warning",
onClick() {
_this.defineCallBack(message); // ,message
}
});
},
//
defineCallBack(message) {
console.log(message);
},
3.メッセージ通知を一定時間順にポップアップする
//
notifyByOrder() {
let data = ["aaaa", "bbbbb", "ccccc"];
for (let i = 0; i < data.length; i++) {
let item = data[i];
setTimeout(() => {
this.$notify({
title: ` ${i + 1}`,
position: "bottom-right",
message: ` ${item}`,
duration: 0,
type: "warning"
});
}, i * 5000);
}
}
知識を補充します:vue+elementsuiはどのようにtableの中のセルをクリックしてイベントを触発しますか?elementsuiではクリックしてイベントを処理します。
表示位置:elementsuiのテーブルイベント
elementyuiのテーブルの中でどのようにあるセルをクリックしてイベントをトリガしますか?
まず、公式サイトのテーブルのカスタム列のテンプレートコードを見てもいいです。
<template>
<el-table
:data="tableData"
border
style="width: 100%">
<el-table-column
label=" "
width="180">
<template scope="scope">
<el-icon name="time"></el-icon>
<span style="margin-left: 10px">{{ scope.row.date }}</span>
</template>
</el-table-column>
<el-table-column
label=" "
width="180">
<template scope="scope">
<el-popover trigger="hover" placement="top">
<p> : {{ scope.row.name }}</p>
<p> : {{ scope.row.address }}</p>
<div slot="reference" class="name-wrapper">
<el-tag>{{ scope.row.name }}</el-tag>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column label=" ">
<template scope="scope">
<el-button
size="small"
@click="handleEdit(scope.$index, scope.row)"> </el-button>
<el-button
size="small"
type="danger"
@click="handleDelete(scope.$index, scope.row)"> </el-button>
</template>
</el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [{
date: '2016-05-02',
name: ' ',
address: ' 1518 '
}, {
date: '2016-05-04',
name: ' ',
address: ' 1517 '
}, {
date: '2016-05-01',
name: ' ',
address: ' 1519 '
}, {
date: '2016-05-03',
name: ' ',
address: ' 1516 '
}]
}
},
methods: {
handleEdit(index, row) {
console.log(index, row);
},
handleDelete(index, row) {
console.log(index, row);
}
}
}
</script>
セルのポップアップボックスをクリックして、template-scope方式で実現できます。親コンポーネント
<el-table
:data="tableData"
border
style="width: 100%">
<el-table-column
label=" "
prop = "number"
width="180">
<template scope="scope">
<div style="color:red;text-decoration:underline;cursor:pointer;" @click="getMore(scope.row)">{{ scope.row.date }}</div>
</template>
</el-table-column>
<el-table-column
label=" "
prop = "name"
width="180">
<template scope="scope">
<div style="color:red;text-decoration:underline;cursor:pointer;" @click="getMore2(scope.row)">{{ scope.row.date }}</div>
</template>
</el-table-column>
</el-table>
<el-dialog :visible-sync="getA">
<my-component :rowaa=row></my-component>
</el-dialog>
<el-dialog :visible-sync="getB">
<my-component2 :rowaa=row></my-component2>
</el-dialog>
<script>
import myComponent from './mycomponent'
import myComponent2 form './mycomponent2'
export default {
data() {
return {
tableData : [
{"number" : 1,"name":"y"},
{"number" : 2,"name":"x"},
],
getA : false,
getB : false,
row : ''
}
},
components: {
'my-component' : myComponent,
'my-component2' : myComponent2
},
methods : {
getMore(row) {
this.getA = true
this.row = row
},
getMore2(row) {
this.getB = true
this.row = row
}
}
}
</script>
サブモジュールmycomponent
<div>{{formData}}</div>
<script>
export default {
props: ['rowaa'],
data() {
return {
formData:''
}
},
created() {
this.getData()
},
watch : {
'rowaa' : 'getData'
},
methods: {
getData() {
// model.CacheModel.get('api/' + this.rowaa + '.json')
// this.rowaa
this.formData = 333
}
}
}
</script>
問題が解決するtemplate+slot補間で管理できます。
現在の行の情報を見つけたら、その情報に基づいてサブコンポーネントでデータを要求します。
行をクリックすることで、どのセルでイベントを処理するかを判断することもできますが、表の列に保存されている内容が変更された場合は再調整されます。
dialogポップアップボックスを試して、現在のセルのtemplateに直接書いてみました。公式サイトの例と同じですが、これはクリック時に何回か触発されます。(回数は現在のページの展示数と一致します。)
以上のelement uiの中でNotificationのコンポーネントにクリックしてください。例は小編集が皆さんに共有している内容です。参考にしてもらいたいです。どうぞよろしくお願いします。