label-print-design
Version:
操作简单,组件丰富的一站式打印解决方案打印设计器
1 lines • 4.85 kB
Source Map (JSON)
{"version":3,"file":"my-icon-popover.vue2.mjs","sources":["../../../../../../src/components/my/popover/my-icon-popover.vue"],"sourcesContent":["<template>\n <my-tooltip\n popper-class=\"my-popover\"\n :popper-style=\"popperStyle\"\n :placement=\"placement\"\n :visible=\"popoverVisible\"\n :disabled=\"disabled\"\n :show-arrow=\"false\"\n :show-after=\"0\"\n :hide-after=\"0\"\n :trigger=\"trigger\">\n <template #reference>\n <div @mousedown=\"mousedown($event)\"\n @mouseup=\"mouseup($event)\"\n @mouseover=\"hover(true)\"\n @mouseleave=\"hover(false)\">\n <slot name=\"reference\" />\n </div>\n </template>\n \n <div @mouseover=\"hover(true)\"\n ref=\"popoverRef\"\n @mouseleave=\"hover(false)\">\n \n <slot />\n \n </div>\n \n </my-tooltip>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue-demi';\nimport { onClickOutside } from '@vueuse/core';\nimport MyTooltip from '@myprint/design/components/my/tooltip/my-tooltip.vue';\nimport { Placement } from '@popperjs/core/lib/enums';\n\nexport interface Props {\n trigger?: string;\n placement?: Placement;\n popperStyle?: any;\n pressHide?: boolean;\n disabled?: boolean;\n lock?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n trigger: 'hover',\n placement: 'top',\n popperStyle: () => ({}),\n pressHide: false,\n disabled: false,\n lock: false\n});\n\nconst visible = ref({\n popover: false\n});\nconst popoverRef = ref(<any>{});\nconst mousedownFlag = ref(false);\nconst popoverVisible = computed(() => {\n return props.lock || visible.value.popover;\n});\nlet timer: any = null;\nlet stop: ReturnType<typeof onClickOutside>;\n\nfunction mousedown(_ev: MouseEvent) {\n // ev.stopPropagation()\n if (props.pressHide) {\n visible.value.popover = false;\n }\n mousedownFlag.value = true;\n}\n\nfunction mouseup(_ev: MouseEvent) {\n // ev.stopPropagation()\n if (props.trigger == 'click') {\n updateVisible(!visible.value.popover);\n \n return;\n }\n \n if (props.pressHide) {\n updateVisible(true);\n }\n mousedownFlag.value = false;\n \n}\n\nfunction hover(flag: boolean) {\n if (props.trigger == 'click') {\n return;\n }\n // ev.stopPropagation()\n if (mousedownFlag.value && flag) {\n return;\n }\n updateVisible(flag);\n}\n\nfunction updateVisible(flag: boolean) {\n \n if (timer != null) {\n clearTimeout(timer);\n }\n timer = setTimeout(function() {\n visible.value.popover = flag;\n if (visible.value.popover) {\n stop = onClickOutside(popoverRef,\n () => {\n if (props.trigger !== 'hover') {\n updateVisible(false);\n }\n });\n } else {\n if (stop) {\n stop();\n }\n }\n }, 0);\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AA8CA,IAAA,MAAM,KAAQ,GAAA,OAAA,CAAA;AASd,IAAA,MAAM,UAAU,GAAI,CAAA;AAAA,MAChB,OAAS,EAAA,KAAA;AAAA,KACZ,CAAA,CAAA;AACD,IAAM,MAAA,UAAA,GAAa,GAAS,CAAA,EAAE,CAAA,CAAA;AAC9B,IAAM,MAAA,aAAA,GAAgB,IAAI,KAAK,CAAA,CAAA;AAC/B,IAAM,MAAA,cAAA,GAAiB,SAAS,MAAM;AAClC,MAAO,OAAA,KAAA,CAAM,IAAQ,IAAA,OAAA,CAAQ,KAAM,CAAA,OAAA,CAAA;AAAA,KACtC,CAAA,CAAA;AACD,IAAA,IAAI,KAAa,GAAA,IAAA,CAAA;AACjB,IAAI,IAAA,IAAA,CAAA;AAEJ,IAAA,SAAS,UAAU,GAAiB,EAAA;AAEhC,MAAA,IAAI,MAAM,SAAW,EAAA;AACjB,QAAA,OAAA,CAAQ,MAAM,OAAU,GAAA,KAAA,CAAA;AAAA,OAC5B;AACA,MAAA,aAAA,CAAc,KAAQ,GAAA,IAAA,CAAA;AAAA,KAC1B;AAEA,IAAA,SAAS,QAAQ,GAAiB,EAAA;AAE9B,MAAI,IAAA,KAAA,CAAM,WAAW,OAAS,EAAA;AAC1B,QAAc,aAAA,CAAA,CAAC,OAAQ,CAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AAEpC,QAAA,OAAA;AAAA,OACJ;AAEA,MAAA,IAAI,MAAM,SAAW,EAAA;AACjB,QAAA,aAAA,CAAc,IAAI,CAAA,CAAA;AAAA,OACtB;AACA,MAAA,aAAA,CAAc,KAAQ,GAAA,KAAA,CAAA;AAAA,KAE1B;AAEA,IAAA,SAAS,MAAM,IAAe,EAAA;AAC1B,MAAI,IAAA,KAAA,CAAM,WAAW,OAAS,EAAA;AAC1B,QAAA,OAAA;AAAA,OACJ;AAEA,MAAI,IAAA,aAAA,CAAc,SAAS,IAAM,EAAA;AAC7B,QAAA,OAAA;AAAA,OACJ;AACA,MAAA,aAAA,CAAc,IAAI,CAAA,CAAA;AAAA,KACtB;AAEA,IAAA,SAAS,cAAc,IAAe,EAAA;AAElC,MAAA,IAAI,SAAS,IAAM,EAAA;AACf,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAAA,OACtB;AACA,MAAA,KAAA,GAAQ,WAAW,WAAW;AAC1B,QAAA,OAAA,CAAQ,MAAM,OAAU,GAAA,IAAA,CAAA;AACxB,QAAI,IAAA,OAAA,CAAQ,MAAM,OAAS,EAAA;AACvB,UAAO,IAAA,GAAA,cAAA;AAAA,YAAe,UAAA;AAAA,YAClB,MAAM;AACF,cAAI,IAAA,KAAA,CAAM,YAAY,OAAS,EAAA;AAC3B,gBAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAAA,eACvB;AAAA,aACJ;AAAA,WAAC,CAAA;AAAA,SACF,MAAA;AACH,UAAA,IAAI,IAAM,EAAA;AACN,YAAK,IAAA,EAAA,CAAA;AAAA,WACT;AAAA,SACJ;AAAA,SACD,CAAC,CAAA,CAAA;AAAA,KACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}