tav-ui
Version:
1 lines • 6.49 kB
Source Map (JSON)
{"version":3,"file":"index2.mjs","sources":["../../../../../../../../packages/components/permission/src/PermissionQuery/index.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n computed,\n inject,\n onBeforeMount,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n shallowRef,\n useAttrs,\n // useSlots,\n watch,\n} from 'vue'\nimport { Spin as ASpain } from 'ant-design-vue'\nimport { DEFAULT_APIPARAMS, permissionContextKey, permissionsContextKey } from '../constants'\nimport { useMergedProps } from '../hooks/use-props'\nimport { normalizedPermissionQueryContent } from '../utils'\nimport { DEFAULT_PERMISSIONQUERY_CLASSNAME, DEFAULT_PERMISSIONQUERY_ID } from './constants'\nimport { type PermissionQueryContent, permissionQueryEmits, permissionQueryProps } from './types'\nimport type { PermissionContext } from '../types'\n\ndefineOptions({\n name: 'TaPermissionQuery',\n // inheritAttrs: false,\n})\n\nconst id = ref(DEFAULT_PERMISSIONQUERY_ID())\nconst type = ref(DEFAULT_PERMISSIONQUERY_CLASSNAME)\nconst props = defineProps(permissionQueryProps)\nconst emits = defineEmits(permissionQueryEmits)\n// const slots = useSlots()\nconst attrs = useAttrs()\n\nconst mergedProps = useMergedProps(props, 'TaPermissionQuery', DEFAULT_APIPARAMS)\nconst permissionContent = shallowRef<PermissionQueryContent>()\nconst isUseApi = computed(() => mergedProps.value.apiParams && mergedProps.value.apiPermission)\nconst loading = ref(false)\n\nasync function reload() {\n try {\n const { data, success } = await mergedProps.value.apiPermission!(mergedProps.value.apiParams!)\n if (data && success) {\n const _data = normalizedPermissionQueryContent(data)\n permissionContent.value = _data\n emits('apiSuccess', _data as any)\n return _data\n } else {\n permissionContent.value = undefined\n return undefined\n }\n } catch (error: any) {\n console.warn('[tavui TaPermissionQuery] api has error', error)\n permissionContent.value = undefined\n emits('apiError', error)\n return undefined\n }\n}\n\nasync function handlePermission() {\n if (mergedProps.value.disabled) return\n if (isUseApi.value) {\n try {\n loading.value = true\n await reload()\n } catch (error: any) {\n console.warn('[tavui TaPermissionQuery] api has error', error)\n } finally {\n loading.value = false\n }\n } else {\n if (mergedProps.value.permission) {\n permissionContent.value = normalizedPermissionQueryContent({\n ...mergedProps.value.permission,\n })\n }\n }\n}\n\nonBeforeMount(async () => {\n if (props.immediate) {\n await handlePermission()\n }\n})\n\nwatch(\n () => JSON.stringify(mergedProps.value.apiParams),\n async (curVal, preVal) => {\n if (curVal && curVal !== '{}' && curVal !== preVal) {\n if (props.immediate) {\n await handlePermission()\n }\n }\n }\n)\n\nconst permissionsContext = inject(permissionsContextKey, undefined)\n// const parentPermissionContext = inject(permissionContextKey, undefined)\n// console.log('🚀 ~ parentPermissionContext:', parentPermissionContext)\nconst context: PermissionContext = reactive({\n // ...toRefs(props),\n id,\n type,\n disabled: mergedProps.value.disabled,\n permission: permissionContent,\n})\n\nonMounted(() => {\n permissionsContext?.addPermission(context)\n})\n\nonBeforeUnmount(() => {\n permissionsContext?.removePermission(context)\n})\n\nprovide(permissionContextKey, context)\n\ndefineExpose({\n id,\n permissionContext: context,\n reload,\n})\n</script>\n\n<template>\n <ASpain v-if=\"loading\" size=\"large\" tip=\"正在加载权限,请稍等 👾\" />\n <slot v-else v-bind=\"{ ...mergedProps.value, ...attrs, permission: permissionContent }\" />\n</template>\n"],"names":["_openBlock","_createBlock","_unref","ASpain"],"mappings":"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"}