tav-ui
Version:
1 lines • 4.97 kB
Source Map (JSON)
{"version":3,"file":"dropdown2.mjs","sources":["../../../../../../../packages/components/dropdown/src/dropdown.vue"],"sourcesContent":["<template>\n <a-dropdown :trigger=\"trigger\" v-bind=\"$attrs\" :overlay-class-name=\"props.overlayClassName\">\n <span style=\"position: relative\">\n <slot />\n </span>\n <template #overlay>\n <a-menu :selected-keys=\"selectedKeys\">\n <template v-for=\"item in dropMenuList\" :key=\"`${item.event}`\">\n <a-menu-item\n v-bind=\"getAttr(item.event!)\"\n :disabled=\"item.disabled\"\n size=\"small\"\n @click.stop.prevent=\"handleClickMenu(item)\"\n >\n <!-- <a-popconfirm\n v-if=\"popconfirm && item.popConfirm\"\n v-bind=\"getPopConfirmAttrs(item.popConfirm)\"\n :getPopupContainer=\"item.getPopupContainer\"\n @visibleChange=\"handlePopConfirmVisible\"\n >\n <template #icon v-if=\"item.popConfirm.icon\">\n <Icon :icon=\"item.popConfirm.icon\" />\n </template>\n <div>\n <Icon :icon=\"item.icon\" v-if=\"item.icon\" />\n <span class=\"ml-1\">{{ item.text }}</span>\n </div>\n </a-popconfirm> -->\n <ModalButton v-if=\"popconfirm && item.popConfirm\" v-bind=\"item\" :is-in-drop-down=\"true\">\n <template v-if=\"item.popConfirm.icon\" #icon>\n <Icon :icon=\"item.popConfirm.icon\" />\n </template>\n <div>\n <Icon v-if=\"item.icon\" :icon=\"item.icon\" />\n <span\n :class=\"`ml-1 ant-btn ant-btn-${item.type ?? 'link'} ant-btn-sm ${\n item.className ?? ''\n }`\"\n style=\"font-size: 12px\"\n >\n {{ item.text }}\n </span>\n </div>\n </ModalButton>\n <template v-else>\n <Icon v-if=\"item.icon\" :icon=\"item.icon\" />\n <span\n :class=\"`ml-1 ant-btn ant-btn-${item.type ?? 'link'} ant-btn-sm ${\n item.className ?? ''\n }`\"\n style=\"font-size: 12px\"\n >\n {{ item.text }}\n </span>\n <!-- <span class=\"ml-1\">{{ item.text }}</span> -->\n </template>\n </a-menu-item>\n <a-menu-divider v-if=\"item.divider\" :key=\"`d-${item.event}`\" />\n </template>\n </a-menu>\n </template>\n </a-dropdown>\n</template>\n\n<script lang=\"ts\" setup>\n// import { computed } from 'vue'\nimport { Dropdown, Menu /*Popconfirm*/ } from 'ant-design-vue'\n// import { omit } from 'lodash-es'\nimport ModalButton from '@tav-ui/components/button-modal'\nimport Icon from '@tav-ui/components/icon'\n// import { isFunction } from '@tav-ui/utils/is'\nimport { isDef } from '@tav-ui/utils'\nimport { dropdownProps } from './types'\nimport type { DropdownMenu as DropMenu } from './types'\n\nconst ADropdown = Dropdown\nconst AMenu = Menu\nconst AMenuItem = Menu.Item\nconst AMenuDivider = Menu.Divider\n// const APopconfirm = Popconfirm\n\nconst props = defineProps(dropdownProps)\n\nconst emit = defineEmits(['menuEvent', 'menuItemPopConfirmVisible'])\n\nfunction handleClickMenu(item: DropMenu) {\n const { event } = item\n if (isDef(event)) {\n const menu = props.dropMenuList.find((item) => `${item.event}` === `${event}`)\n menu && emit('menuEvent', menu)\n }\n item.onClick?.()\n}\n\n// function handlePopConfirmVisible(visible: boolean) {\n// emit('menuItemPopConfirmVisible', visible)\n// }\n\n// const getPopConfirmAttrs = computed(() => {\n// return (attrs) => {\n// const originAttrs = omit(attrs, ['confirm', 'cancel', 'icon'])\n// if (!attrs.onConfirm && attrs.confirm && isFunction(attrs.confirm))\n// originAttrs['onConfirm'] = attrs.confirm\n// if (!attrs.onCancel && attrs.cancel && isFunction(attrs.cancel))\n// originAttrs['onCancel'] = attrs.cancel\n// return originAttrs\n// }\n// })\n\nconst getAttr = (key: string | number) => ({ key })\n</script>\n"],"names":["Dropdown","item"],"mappings":";;;;;;;;;;;;;;;AA2EA,IAAA,MAAM,SAAY,GAAAA,UAAA,CAAA;AAClB,IAAA,MAAM,KAAQ,GAAA,IAAA,CAAA;AACd,IAAA,MAAM,YAAY,IAAK,CAAA,IAAA,CAAA;AACvB,IAAA,MAAM,eAAe,IAAK,CAAA,OAAA,CAAA;AAO1B,IAAA,SAAS,gBAAgB,IAAgB,EAAA;AACvC,MAAM,MAAA,EAAE,OAAU,GAAA,IAAA,CAAA;AAClB,MAAI,IAAA,KAAA,CAAM,KAAK,CAAG,EAAA;AAChB,QAAM,MAAA,IAAA,GAAO,KAAM,CAAA,YAAA,CAAa,IAAK,CAAA,CAACC,UAAS,CAAGA,EAAAA,KAAAA,CAAK,KAAY,CAAA,CAAA,KAAA,CAAA,EAAG,KAAO,CAAA,CAAA,CAAA,CAAA;AAC7E,QAAQ,IAAA,IAAA,IAAA,CAAK,aAAa,IAAI,CAAA,CAAA;AAAA,OAChC;AACA,MAAA,IAAA,CAAK,OAAU,IAAA,CAAA;AAAA,KACjB;AAiBA,IAAA,MAAM,OAAU,GAAA,CAAC,GAA0B,MAAA,EAAE,GAAI,EAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}