diff --git a/src/directives/index.ts b/src/directives/index.ts index 4015ede..634d804 100644 --- a/src/directives/index.ts +++ b/src/directives/index.ts @@ -1,9 +1,10 @@ import { App, Directive } from 'vue'; import copy from './modules/copy'; import existShow from './modules/existShow'; +import vPrint from './modules/print'; import waterMarker from './modules/waterMarker'; -const directivesList: { [key: string]: Directive } = { copy, waterMarker, existShow }; +const directivesList: { [key: string]: Directive } = { copy, waterMarker, existShow, vPrint }; /** * 挂载自定义事件 diff --git a/src/directives/modules/existShow.ts b/src/directives/modules/existShow.ts index 84f7367..d7f9171 100644 --- a/src/directives/modules/existShow.ts +++ b/src/directives/modules/existShow.ts @@ -1,16 +1,11 @@ import { Directive } from 'vue'; -interface ElType extends HTMLElement { - copyData: string | number; // 定义一个属性,用于存储需要复制的数据 - __handleClick__: any; // 定义一个属性,用于存储事件处理函数 -} - /** * * 当关闭这个页面时提示是否退出,不需要传递参数 */ const existShow: Directive = { // 指令与元素绑定时触发 - beforeMount(el: ElType) { + beforeMount() { window.onbeforeunload = function (event) { (event || window.event).returnValue = '确定离开此页吗?'; }; diff --git a/src/directives/modules/print.ts b/src/directives/modules/print.ts new file mode 100644 index 0000000..177b4cf --- /dev/null +++ b/src/directives/modules/print.ts @@ -0,0 +1,23 @@ +import type { DirectiveBinding } from 'vue'; +import { Directive } from 'vue'; + +interface ElType extends HTMLElement { + copyData: string | number; // 定义一个属性,用于存储需要复制的数据 + __handleClick__: any; // 定义一个属性,用于存储事件处理函数 +} + +const vPrint: Directive = { + mounted(el: ElType, binding: DirectiveBinding) { + el.copyData = binding.value; + el.addEventListener('click', handelClick); + }, + beforeMount(el: ElType) { + el.removeEventListener('click', el.__handleClick__); + }, +}; + +function handelClick(this: any) { + print(); +} + +export default vPrint; diff --git a/src/views/bunny/default/My.vue b/src/views/bunny/default/My.vue index 4c508f3..9426076 100644 --- a/src/views/bunny/default/My.vue +++ b/src/views/bunny/default/My.vue @@ -1,13 +1,19 @@