Commit 60b80c96e82da9101d56b2e195e9e7571de11f0a
1 parent
9298b3c9
fix(dropdown): icon and trigger work unexpected
修复Dropdown中popconfirm的事件响应区域以及icon不正常的问题 fix: #796,#787
Showing
1 changed file
with
10 additions
and
3 deletions
src/components/Dropdown/src/Dropdown.vue
@@ -11,9 +11,14 @@ | @@ -11,9 +11,14 @@ | ||
11 | @click="handleClickMenu(item)" | 11 | @click="handleClickMenu(item)" |
12 | :disabled="item.disabled" | 12 | :disabled="item.disabled" |
13 | > | 13 | > |
14 | - <Popconfirm v-if="popconfirm && item.popConfirm" v-bind="item"> | ||
15 | - <Icon :icon="item.icon" v-if="item.icon" /> | ||
16 | - <span class="ml-1">{{ item.text }}</span> | 14 | + <Popconfirm v-if="popconfirm && item.popConfirm" v-bind="omit(item.popConfirm, 'icon')"> |
15 | + <template #icon v-if="item.popConfirm.icon"> | ||
16 | + <Icon :icon="item.popConfirm.icon" /> | ||
17 | + </template> | ||
18 | + <div> | ||
19 | + <Icon :icon="item.icon" v-if="item.icon" /> | ||
20 | + <span class="ml-1">{{ item.text }}</span> | ||
21 | + </div> | ||
17 | </Popconfirm> | 22 | </Popconfirm> |
18 | <template v-else> | 23 | <template v-else> |
19 | <Icon :icon="item.icon" v-if="item.icon" /> | 24 | <Icon :icon="item.icon" v-if="item.icon" /> |
@@ -34,6 +39,7 @@ | @@ -34,6 +39,7 @@ | ||
34 | import { defineComponent } from 'vue'; | 39 | import { defineComponent } from 'vue'; |
35 | import { Dropdown, Menu, Popconfirm } from 'ant-design-vue'; | 40 | import { Dropdown, Menu, Popconfirm } from 'ant-design-vue'; |
36 | import { Icon } from '/@/components/Icon'; | 41 | import { Icon } from '/@/components/Icon'; |
42 | + import { omit } from 'lodash-es'; | ||
37 | 43 | ||
38 | export default defineComponent({ | 44 | export default defineComponent({ |
39 | name: 'BasicDropdown', | 45 | name: 'BasicDropdown', |
@@ -78,6 +84,7 @@ | @@ -78,6 +84,7 @@ | ||
78 | 84 | ||
79 | return { | 85 | return { |
80 | handleClickMenu, | 86 | handleClickMenu, |
87 | + omit, | ||
81 | getAttr: (key: string | number) => ({ key }), | 88 | getAttr: (key: string | number) => ({ key }), |
82 | }; | 89 | }; |
83 | }, | 90 | }, |