12345678910111213141516171819202122232425262728 |
- import {computed} from 'vue';
- import {useUserStore} from "@/hooks/useUserStore";
- import {injectLocal, provideLocal, toValue} from "@vueuse/core";
- const key = Symbol('USER_SNAPSHOT')
- export const useProvideUserSnapshot = function (userSnapshotRefOrGetter) {
- // 有时志愿表会存储一部分当前用户信息,这部分信息命名为userSnapshot
- // 使用时,用快照信息去覆盖用户信息,即可得到当时保存志愿表时的用户信息。
- const {currentUser} = useUserStore()
- const userSnapshot = computed(() => {
- const snapshot = toValue(userSnapshotRefOrGetter)
- return {
- ...currentUser.value,
- ...snapshot
- }
- })
- provideLocal(key, {userSnapshot})
- return userSnapshot
- }
- export const useInjectUserSnapshot = function () {
- // 默认值用currentUser填充
- const {currentUser} = useUserStore()
- return injectLocal(key, {userSnapshot: currentUser})
- }
|