123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- import {computed, ref, watch} from 'vue';
- import {injectLocal, provideLocal, toValue} from "@vueuse/core";
- import {empty} from "@/uni_modules/uv-ui-tools/libs/function/test";
- import {getVoluntaryHeaders} from "@/api/webApi/volunteer";
- import {useInjectVoluntaryForm} from "@/pages/voluntary/hooks/useVoluntaryFormInjection";
- import {useCacheStore} from "@/hooks/useCacheStore";
- import {useInjectVoluntaryStep} from "@/pages/voluntary/hooks/useVoluntaryStepInjection";
- const key = Symbol('VOLUNTARY_HEADER')
- export const useProvideVoluntaryHeader = () => {
- const cols = ref([])
- const isMock = ref(undefined) // unset status
- const {dispatchCache} = useCacheStore()
- const historyYears = computed(() => {
- if (empty(cols.value)) return []
- return cols.value
- .filter(col => col.includes('&'))
- .map(col => col.split('&')[0])
- })
- const headerPlanYear = computed(() => {
- if (empty(cols.value)) return ''
- const suffix = '招生计划'
- const col = cols.value.find(col => col.endsWith(suffix))
- return col?.replace(suffix, '') || ''
- })
- const ensureHistoryYears = async (payload) => {
- const res = await dispatchCache(getVoluntaryHeaders, payload)
- cols.value = res.data
- isMock.value = res.isMock
- }
- const ensureHistoryYearsFromPageData = async (prevData) => {
- const {mode, detail: {year, isMock}} = prevData
- const headerPayload = {mode, year, isMock: isMock || false}
- await ensureHistoryYears(headerPayload)
- }
- const options = {cols, isMock, headerPlanYear, historyYears, ensureHistoryYears, ensureHistoryYearsFromPageData}
- provideLocal(key, options)
- return options
- }
- export const useInjectVoluntaryHeader = () => {
- return injectLocal(key)
- }
|