| 1234567891011121314151617181920212223242526272829303132333435 |
- import type { Directive, DirectiveBinding } from 'vue'
- import { userStore } from '@/stores/user'
- export const vAuth: Directive = {
- mounted(el: HTMLElement, binding: DirectiveBinding) {
- el.addEventListener('click', async (e: Event) => {
- e.stopPropagation()
- const user = userStore();
- const callback = binding.value
- if (typeof callback !== 'function') {
- return
- }
- if (!user.checkUserLoggedIn) {
- // 这里调用你现有的显示登录框方法
- user.showLoginModel = true
- return
- }
- try {
- await callback(e)
- } catch (error) {
- console.error('操作执行失败:', error)
- }
- })
- }
- }
- export default {
- install(app: any) {
- app.directive('auth', vAuth)
- }
- }
|