import {Component, Prop, Vue, Emit} from 'vue-property-decorator'; import index from "@/store"; @Component export default class EflyMoreOperateItem extends Vue { @Prop({default: () => false}) private disabled!: any; @Prop({default: () => ''}) private msg!: any; @Prop({default: () => ''}) private operate!: any; private status: any = { group: false, type: "", } private moreOperate: any = {}; private trigger: any = 'hover' private created() { let $parent: any = this.$parent; this.trigger = $parent.trigger; this.findMoreOperate(this); this.status.type = this.moreOperate.type; this.status.group = this.status.type === 'box' } /** * 触发hover事件显示 */ private hover() { if (this.trigger === 'hover' && this.status.type !== 'box') { this.status.group = true; } } /** * 触发hover事件隐藏 */ private leave() { if (this.trigger === 'hover' && this.status.type !== 'box') { this.status.group = false; } } /** * 触发点击事件显示隐藏 */ private click() { if (this.disabled) { } else if (this.trigger === 'click' && this.$slots.group) { this.status.group = !this.status.group; } else { this.moreOperate.select(this.operate); } } private findMoreOperate(that: any) { if (that.$options._componentTag === 'efly-more-operate') { this.moreOperate = that; return } else if (that.$parent) { this.findMoreOperate(that.$parent) } } }