Skip to content

Commit 9ba1ea6

Browse files
committed
perf[el-dragDialog]: add dragDialog callback function
1 parent 320e941 commit 9ba1ea6

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

src/directive/el-dragDialog/drag.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export default{
2-
bind(el, binding) {
2+
bind(el, binding, vnode) {
33
const dialogHeaderEl = el.querySelector('.el-dialog__header')
44
const dragDom = el.querySelector('.el-dialog')
55
dialogHeaderEl.style.cssText += ';cursor:move;'
@@ -63,6 +63,9 @@ export default{
6363

6464
// 移动当前元素
6565
dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`
66+
67+
// emit onDrag event
68+
vnode.child.$emit('dragDialog')
6669
}
6770

6871
document.onmouseup = function(e) {

src/views/components-demo/dragDialog.vue

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
<template>
22
<div class="components-container">
33
<el-button type="primary" @click="dialogTableVisible = true">open a Drag Dialog</el-button>
4-
<el-dialog v-el-drag-dialog title="Shipping address" :visible.sync="dialogTableVisible">
4+
<el-dialog v-el-drag-dialog @dragDialog="handleDrag" title="Shipping address" :visible.sync="dialogTableVisible">
5+
<el-select ref="select" v-model="value" placeholder="请选择">
6+
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
7+
</el-option>
8+
</el-select>
59
<el-table :data="gridData">
610
<el-table-column property="date" label="Date" width="150"></el-table-column>
711
<el-table-column property="name" label="Name" width="200"></el-table-column>
@@ -20,6 +24,13 @@ export default {
2024
data() {
2125
return {
2226
dialogTableVisible: false,
27+
options: [
28+
{ value: '选项1', label: '黄金糕' },
29+
{ value: '选项2', label: '双皮奶' },
30+
{ value: '选项3', label: '蚵仔煎' },
31+
{ value: '选项4', label: '龙须面' }
32+
],
33+
value: '',
2334
gridData: [{
2435
date: '2016-05-02',
2536
name: 'John Smith',
@@ -38,6 +49,12 @@ export default {
3849
address: 'No.1518, Jinshajiang Road, Putuo District'
3950
}]
4051
}
52+
},
53+
methods: {
54+
// v-el-drag-dialog onDrag callback function
55+
handleDrag() {
56+
this.$refs.select.blur()
57+
}
4158
}
4259
}
4360
</script>

0 commit comments

Comments
 (0)