11 Achegas 2534011cfa ... 4c3e8026d5

Autor SHA1 Mensaxe Data
  bzkf3 4c3e8026d5 成绩立即发布 更换接口 hai 1 ano
  la 391330b54e ... hai 1 ano
  la 9e194b5870 ...默认选择第一个科目的第一题 hai 1 ano
  la 5f230dc27e Merge branch 'master' into liua hai 1 ano
  la 0a972a61e7 三率一分新增字段 总体分析 新增分页 hai 1 ano
  bzkf3 ec816e4027 update config.js hai 1 ano
  la 1c6033d106 Merge branch 'master' into liua hai 1 ano
  la 34477ffa98 ... hai 1 ano
  bzkf3 a886bae6ac force: 1 hai 1 ano
  la 19eaabe5da Merge branch 'master' into liua hai 1 ano
  la b565784f4e ..... hai 1 ano

+ 0 - 574
auto-imports.d.ts

@@ -1,574 +0,0 @@
-/* eslint-disable */
-/* prettier-ignore */
-// @ts-nocheck
-// Generated by unplugin-auto-import
-export {}
-declare global {
-  const $$: typeof import('vue/macros')['$$']
-  const $: typeof import('vue/macros')['$']
-  const $computed: typeof import('vue/macros')['$computed']
-  const $customRef: typeof import('vue/macros')['$customRef']
-  const $ref: typeof import('vue/macros')['$ref']
-  const $shallowRef: typeof import('vue/macros')['$shallowRef']
-  const $toRef: typeof import('vue/macros')['$toRef']
-  const EffectScope: typeof import('vue')['EffectScope']
-  const ElMessage: typeof import('element-plus/es')['ElMessage']
-  const ElMessageBox: typeof import('element-plus/es')['ElMessageBox']
-  const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
-  const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
-  const computed: typeof import('vue')['computed']
-  const computedAsync: typeof import('@vueuse/core')['computedAsync']
-  const computedEager: typeof import('@vueuse/core')['computedEager']
-  const computedInject: typeof import('@vueuse/core')['computedInject']
-  const computedWithControl: typeof import('@vueuse/core')['computedWithControl']
-  const controlledComputed: typeof import('@vueuse/core')['controlledComputed']
-  const controlledRef: typeof import('@vueuse/core')['controlledRef']
-  const createApp: typeof import('vue')['createApp']
-  const createEventHook: typeof import('@vueuse/core')['createEventHook']
-  const createGlobalState: typeof import('@vueuse/core')['createGlobalState']
-  const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
-  const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
-  const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
-  const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn']
-  const customRef: typeof import('vue')['customRef']
-  const debouncedRef: typeof import('@vueuse/core')['debouncedRef']
-  const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch']
-  const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
-  const defineComponent: typeof import('vue')['defineComponent']
-  const eagerComputed: typeof import('@vueuse/core')['eagerComputed']
-  const effectScope: typeof import('vue')['effectScope']
-  const extendRef: typeof import('@vueuse/core')['extendRef']
-  const getCurrentInstance: typeof import('vue')['getCurrentInstance']
-  const getCurrentScope: typeof import('vue')['getCurrentScope']
-  const h: typeof import('vue')['h']
-  const handleAutoCompleteTask: typeof import('./src/composables/steps')['handleAutoCompleteTask']
-  const handleCompleteTask: typeof import('./src/composables/steps')['handleCompleteTask']
-  const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
-  const inject: typeof import('vue')['inject']
-  const isDark: typeof import('./src/composables/dark')['isDark']
-  const isDefined: typeof import('@vueuse/core')['isDefined']
-  const isProxy: typeof import('vue')['isProxy']
-  const isReactive: typeof import('vue')['isReactive']
-  const isReadonly: typeof import('vue')['isReadonly']
-  const isRef: typeof import('vue')['isRef']
-  const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
-  const markRaw: typeof import('vue')['markRaw']
-  const nextTick: typeof import('vue')['nextTick']
-  const onActivated: typeof import('vue')['onActivated']
-  const onBeforeMount: typeof import('vue')['onBeforeMount']
-  const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
-  const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
-  const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
-  const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
-  const onClickOutside: typeof import('@vueuse/core')['onClickOutside']
-  const onDeactivated: typeof import('vue')['onDeactivated']
-  const onErrorCaptured: typeof import('vue')['onErrorCaptured']
-  const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
-  const onLongPress: typeof import('@vueuse/core')['onLongPress']
-  const onMounted: typeof import('vue')['onMounted']
-  const onRenderTracked: typeof import('vue')['onRenderTracked']
-  const onRenderTriggered: typeof import('vue')['onRenderTriggered']
-  const onScopeDispose: typeof import('vue')['onScopeDispose']
-  const onServerPrefetch: typeof import('vue')['onServerPrefetch']
-  const onStartTyping: typeof import('@vueuse/core')['onStartTyping']
-  const onUnmounted: typeof import('vue')['onUnmounted']
-  const onUpdated: typeof import('vue')['onUpdated']
-  const pausableWatch: typeof import('@vueuse/core')['pausableWatch']
-  const provide: typeof import('vue')['provide']
-  const reactify: typeof import('@vueuse/core')['reactify']
-  const reactifyObject: typeof import('@vueuse/core')['reactifyObject']
-  const reactive: typeof import('vue')['reactive']
-  const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed']
-  const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit']
-  const reactivePick: typeof import('@vueuse/core')['reactivePick']
-  const readonly: typeof import('vue')['readonly']
-  const ref: typeof import('vue')['ref']
-  const refAutoReset: typeof import('@vueuse/core')['refAutoReset']
-  const refDebounced: typeof import('@vueuse/core')['refDebounced']
-  const refDefault: typeof import('@vueuse/core')['refDefault']
-  const refThrottled: typeof import('@vueuse/core')['refThrottled']
-  const refWithControl: typeof import('@vueuse/core')['refWithControl']
-  const resolveComponent: typeof import('vue')['resolveComponent']
-  const resolveRef: typeof import('@vueuse/core')['resolveRef']
-  const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
-  const shallowReactive: typeof import('vue')['shallowReactive']
-  const shallowReadonly: typeof import('vue')['shallowReadonly']
-  const shallowRef: typeof import('vue')['shallowRef']
-  const syncRef: typeof import('@vueuse/core')['syncRef']
-  const syncRefs: typeof import('@vueuse/core')['syncRefs']
-  const templateRef: typeof import('@vueuse/core')['templateRef']
-  const throttledRef: typeof import('@vueuse/core')['throttledRef']
-  const throttledWatch: typeof import('@vueuse/core')['throttledWatch']
-  const toRaw: typeof import('vue')['toRaw']
-  const toReactive: typeof import('@vueuse/core')['toReactive']
-  const toRef: typeof import('vue')['toRef']
-  const toRefs: typeof import('vue')['toRefs']
-  const toggleDark: typeof import('./src/composables/dark')['toggleDark']
-  const triggerRef: typeof import('vue')['triggerRef']
-  const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount']
-  const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount']
-  const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted']
-  const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose']
-  const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted']
-  const unref: typeof import('vue')['unref']
-  const unrefElement: typeof import('@vueuse/core')['unrefElement']
-  const until: typeof import('@vueuse/core')['until']
-  const useActiveElement: typeof import('@vueuse/core')['useActiveElement']
-  const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery']
-  const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
-  const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
-  const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
-  const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast']
-  const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
-  const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
-  const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
-  const useArraySome: typeof import('@vueuse/core')['useArraySome']
-  const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique']
-  const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
-  const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
-  const useAttrs: typeof import('vue')['useAttrs']
-  const useBase64: typeof import('@vueuse/core')['useBase64']
-  const useBattery: typeof import('@vueuse/core')['useBattery']
-  const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
-  const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
-  const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
-  const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
-  const useCached: typeof import('@vueuse/core')['useCached']
-  const useClipboard: typeof import('@vueuse/core')['useClipboard']
-  const useCloned: typeof import('@vueuse/core')['useCloned']
-  const useColorMode: typeof import('@vueuse/core')['useColorMode']
-  const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog']
-  const useCounter: typeof import('@vueuse/core')['useCounter']
-  const useCssModule: typeof import('vue')['useCssModule']
-  const useCssVar: typeof import('@vueuse/core')['useCssVar']
-  const useCssVars: typeof import('vue')['useCssVars']
-  const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement']
-  const useCycleList: typeof import('@vueuse/core')['useCycleList']
-  const useDark: typeof import('@vueuse/core')['useDark']
-  const useDateFormat: typeof import('@vueuse/core')['useDateFormat']
-  const useDebounce: typeof import('@vueuse/core')['useDebounce']
-  const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn']
-  const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
-  const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion']
-  const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation']
-  const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio']
-  const useDevicesList: typeof import('@vueuse/core')['useDevicesList']
-  const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia']
-  const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility']
-  const useDraggable: typeof import('@vueuse/core')['useDraggable']
-  const useDropZone: typeof import('@vueuse/core')['useDropZone']
-  const useElementBounding: typeof import('@vueuse/core')['useElementBounding']
-  const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint']
-  const useElementHover: typeof import('@vueuse/core')['useElementHover']
-  const useElementSize: typeof import('@vueuse/core')['useElementSize']
-  const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility']
-  const useEventBus: typeof import('@vueuse/core')['useEventBus']
-  const useEventListener: typeof import('@vueuse/core')['useEventListener']
-  const useEventSource: typeof import('@vueuse/core')['useEventSource']
-  const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper']
-  const useFavicon: typeof import('@vueuse/core')['useFavicon']
-  const useFetch: typeof import('@vueuse/core')['useFetch']
-  const useFileDialog: typeof import('@vueuse/core')['useFileDialog']
-  const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess']
-  const useFocus: typeof import('@vueuse/core')['useFocus']
-  const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin']
-  const useFps: typeof import('@vueuse/core')['useFps']
-  const useFullscreen: typeof import('@vueuse/core')['useFullscreen']
-  const useGamepad: typeof import('@vueuse/core')['useGamepad']
-  const useGeolocation: typeof import('@vueuse/core')['useGeolocation']
-  const useIdle: typeof import('@vueuse/core')['useIdle']
-  const useImage: typeof import('@vueuse/core')['useImage']
-  const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll']
-  const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver']
-  const useInterval: typeof import('@vueuse/core')['useInterval']
-  const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn']
-  const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier']
-  const useLastChanged: typeof import('@vueuse/core')['useLastChanged']
-  const useLink: typeof import('vue-router')['useLink']
-  const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage']
-  const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys']
-  const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory']
-  const useMediaControls: typeof import('@vueuse/core')['useMediaControls']
-  const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery']
-  const useMemoize: typeof import('@vueuse/core')['useMemoize']
-  const useMemory: typeof import('@vueuse/core')['useMemory']
-  const useMounted: typeof import('@vueuse/core')['useMounted']
-  const useMouse: typeof import('@vueuse/core')['useMouse']
-  const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement']
-  const useMousePressed: typeof import('@vueuse/core')['useMousePressed']
-  const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver']
-  const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage']
-  const useNetwork: typeof import('@vueuse/core')['useNetwork']
-  const useNow: typeof import('@vueuse/core')['useNow']
-  const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl']
-  const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination']
-  const useOnline: typeof import('@vueuse/core')['useOnline']
-  const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
-  const useParallax: typeof import('@vueuse/core')['useParallax']
-  const usePermission: typeof import('@vueuse/core')['usePermission']
-  const usePointer: typeof import('@vueuse/core')['usePointer']
-  const usePointerLock: typeof import('@vueuse/core')['usePointerLock']
-  const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
-  const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
-  const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast']
-  const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
-  const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
-  const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
-  const usePrevious: typeof import('@vueuse/core')['usePrevious']
-  const useRafFn: typeof import('@vueuse/core')['useRafFn']
-  const useRefHistory: typeof import('@vueuse/core')['useRefHistory']
-  const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver']
-  const useRoute: typeof import('vue-router')['useRoute']
-  const useRouter: typeof import('vue-router')['useRouter']
-  const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
-  const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
-  const useScriptTag: typeof import('@vueuse/core')['useScriptTag']
-  const useScroll: typeof import('@vueuse/core')['useScroll']
-  const useScrollLock: typeof import('@vueuse/core')['useScrollLock']
-  const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage']
-  const useShare: typeof import('@vueuse/core')['useShare']
-  const useSlots: typeof import('vue')['useSlots']
-  const useSorted: typeof import('@vueuse/core')['useSorted']
-  const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition']
-  const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis']
-  const useStepper: typeof import('@vueuse/core')['useStepper']
-  const useStorage: typeof import('@vueuse/core')['useStorage']
-  const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync']
-  const useStyleTag: typeof import('@vueuse/core')['useStyleTag']
-  const useSupported: typeof import('@vueuse/core')['useSupported']
-  const useSwipe: typeof import('@vueuse/core')['useSwipe']
-  const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList']
-  const useTextDirection: typeof import('@vueuse/core')['useTextDirection']
-  const useTextSelection: typeof import('@vueuse/core')['useTextSelection']
-  const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
-  const useThrottle: typeof import('@vueuse/core')['useThrottle']
-  const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
-  const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
-  const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
-  const useTimeout: typeof import('@vueuse/core')['useTimeout']
-  const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
-  const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
-  const useTimestamp: typeof import('@vueuse/core')['useTimestamp']
-  const useTitle: typeof import('@vueuse/core')['useTitle']
-  const useToNumber: typeof import('@vueuse/core')['useToNumber']
-  const useToString: typeof import('@vueuse/core')['useToString']
-  const useToggle: typeof import('@vueuse/core')['useToggle']
-  const useTransition: typeof import('@vueuse/core')['useTransition']
-  const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams']
-  const useUserMedia: typeof import('@vueuse/core')['useUserMedia']
-  const useVModel: typeof import('@vueuse/core')['useVModel']
-  const useVModels: typeof import('@vueuse/core')['useVModels']
-  const useVibrate: typeof import('@vueuse/core')['useVibrate']
-  const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
-  const useWakeLock: typeof import('@vueuse/core')['useWakeLock']
-  const useWebNotification: typeof import('@vueuse/core')['useWebNotification']
-  const useWebSocket: typeof import('@vueuse/core')['useWebSocket']
-  const useWebWorker: typeof import('@vueuse/core')['useWebWorker']
-  const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn']
-  const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus']
-  const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll']
-  const useWindowSize: typeof import('@vueuse/core')['useWindowSize']
-  const watch: typeof import('vue')['watch']
-  const watchArray: typeof import('@vueuse/core')['watchArray']
-  const watchAtMost: typeof import('@vueuse/core')['watchAtMost']
-  const watchDebounced: typeof import('@vueuse/core')['watchDebounced']
-  const watchEffect: typeof import('vue')['watchEffect']
-  const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable']
-  const watchOnce: typeof import('@vueuse/core')['watchOnce']
-  const watchPausable: typeof import('@vueuse/core')['watchPausable']
-  const watchPostEffect: typeof import('vue')['watchPostEffect']
-  const watchSyncEffect: typeof import('vue')['watchSyncEffect']
-  const watchThrottled: typeof import('@vueuse/core')['watchThrottled']
-  const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable']
-  const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
-  const whenever: typeof import('@vueuse/core')['whenever']
-}
-// for type re-export
-declare global {
-  // @ts-ignore
-  export type { Component, ComponentPublicInstance, ComputedRef, InjectionKey, PropType, Ref, VNode } from 'vue'
-}
-// for vue template auto import
-import { UnwrapRef } from 'vue'
-declare module 'vue' {
-  interface ComponentCustomProperties {
-    readonly $$: UnwrapRef<typeof import('vue/macros')['$$']>
-    readonly $: UnwrapRef<typeof import('vue/macros')['$']>
-    readonly $computed: UnwrapRef<typeof import('vue/macros')['$computed']>
-    readonly $customRef: UnwrapRef<typeof import('vue/macros')['$customRef']>
-    readonly $ref: UnwrapRef<typeof import('vue/macros')['$ref']>
-    readonly $shallowRef: UnwrapRef<typeof import('vue/macros')['$shallowRef']>
-    readonly $toRef: UnwrapRef<typeof import('vue/macros')['$toRef']>
-    readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
-    readonly ElMessage: UnwrapRef<typeof import('element-plus/es')['ElMessage']>
-    readonly ElMessageBox: UnwrapRef<typeof import('element-plus/es')['ElMessageBox']>
-    readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
-    readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']>
-    readonly computed: UnwrapRef<typeof import('vue')['computed']>
-    readonly computedAsync: UnwrapRef<typeof import('@vueuse/core')['computedAsync']>
-    readonly computedEager: UnwrapRef<typeof import('@vueuse/core')['computedEager']>
-    readonly computedInject: UnwrapRef<typeof import('@vueuse/core')['computedInject']>
-    readonly computedWithControl: UnwrapRef<typeof import('@vueuse/core')['computedWithControl']>
-    readonly controlledComputed: UnwrapRef<typeof import('@vueuse/core')['controlledComputed']>
-    readonly controlledRef: UnwrapRef<typeof import('@vueuse/core')['controlledRef']>
-    readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
-    readonly createEventHook: UnwrapRef<typeof import('@vueuse/core')['createEventHook']>
-    readonly createGlobalState: UnwrapRef<typeof import('@vueuse/core')['createGlobalState']>
-    readonly createInjectionState: UnwrapRef<typeof import('@vueuse/core')['createInjectionState']>
-    readonly createReactiveFn: UnwrapRef<typeof import('@vueuse/core')['createReactiveFn']>
-    readonly createSharedComposable: UnwrapRef<typeof import('@vueuse/core')['createSharedComposable']>
-    readonly createUnrefFn: UnwrapRef<typeof import('@vueuse/core')['createUnrefFn']>
-    readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
-    readonly debouncedRef: UnwrapRef<typeof import('@vueuse/core')['debouncedRef']>
-    readonly debouncedWatch: UnwrapRef<typeof import('@vueuse/core')['debouncedWatch']>
-    readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
-    readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
-    readonly eagerComputed: UnwrapRef<typeof import('@vueuse/core')['eagerComputed']>
-    readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
-    readonly extendRef: UnwrapRef<typeof import('@vueuse/core')['extendRef']>
-    readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
-    readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
-    readonly h: UnwrapRef<typeof import('vue')['h']>
-    readonly handleAutoCompleteTask: UnwrapRef<typeof import('./src/composables/steps')['handleAutoCompleteTask']>
-    readonly handleCompleteTask: UnwrapRef<typeof import('./src/composables/steps')['handleCompleteTask']>
-    readonly ignorableWatch: UnwrapRef<typeof import('@vueuse/core')['ignorableWatch']>
-    readonly inject: UnwrapRef<typeof import('vue')['inject']>
-    readonly isDark: UnwrapRef<typeof import('./src/composables/dark')['isDark']>
-    readonly isDefined: UnwrapRef<typeof import('@vueuse/core')['isDefined']>
-    readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
-    readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
-    readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
-    readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
-    readonly makeDestructurable: UnwrapRef<typeof import('@vueuse/core')['makeDestructurable']>
-    readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
-    readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
-    readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
-    readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
-    readonly onBeforeRouteLeave: UnwrapRef<typeof import('vue-router')['onBeforeRouteLeave']>
-    readonly onBeforeRouteUpdate: UnwrapRef<typeof import('vue-router')['onBeforeRouteUpdate']>
-    readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
-    readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
-    readonly onClickOutside: UnwrapRef<typeof import('@vueuse/core')['onClickOutside']>
-    readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
-    readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
-    readonly onKeyStroke: UnwrapRef<typeof import('@vueuse/core')['onKeyStroke']>
-    readonly onLongPress: UnwrapRef<typeof import('@vueuse/core')['onLongPress']>
-    readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
-    readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
-    readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
-    readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
-    readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
-    readonly onStartTyping: UnwrapRef<typeof import('@vueuse/core')['onStartTyping']>
-    readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
-    readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
-    readonly pausableWatch: UnwrapRef<typeof import('@vueuse/core')['pausableWatch']>
-    readonly provide: UnwrapRef<typeof import('vue')['provide']>
-    readonly reactify: UnwrapRef<typeof import('@vueuse/core')['reactify']>
-    readonly reactifyObject: UnwrapRef<typeof import('@vueuse/core')['reactifyObject']>
-    readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
-    readonly reactiveComputed: UnwrapRef<typeof import('@vueuse/core')['reactiveComputed']>
-    readonly reactiveOmit: UnwrapRef<typeof import('@vueuse/core')['reactiveOmit']>
-    readonly reactivePick: UnwrapRef<typeof import('@vueuse/core')['reactivePick']>
-    readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
-    readonly ref: UnwrapRef<typeof import('vue')['ref']>
-    readonly refAutoReset: UnwrapRef<typeof import('@vueuse/core')['refAutoReset']>
-    readonly refDebounced: UnwrapRef<typeof import('@vueuse/core')['refDebounced']>
-    readonly refDefault: UnwrapRef<typeof import('@vueuse/core')['refDefault']>
-    readonly refThrottled: UnwrapRef<typeof import('@vueuse/core')['refThrottled']>
-    readonly refWithControl: UnwrapRef<typeof import('@vueuse/core')['refWithControl']>
-    readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
-    readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
-    readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
-    readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
-    readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
-    readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
-    readonly syncRef: UnwrapRef<typeof import('@vueuse/core')['syncRef']>
-    readonly syncRefs: UnwrapRef<typeof import('@vueuse/core')['syncRefs']>
-    readonly templateRef: UnwrapRef<typeof import('@vueuse/core')['templateRef']>
-    readonly throttledRef: UnwrapRef<typeof import('@vueuse/core')['throttledRef']>
-    readonly throttledWatch: UnwrapRef<typeof import('@vueuse/core')['throttledWatch']>
-    readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
-    readonly toReactive: UnwrapRef<typeof import('@vueuse/core')['toReactive']>
-    readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
-    readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
-    readonly toggleDark: UnwrapRef<typeof import('./src/composables/dark')['toggleDark']>
-    readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
-    readonly tryOnBeforeMount: UnwrapRef<typeof import('@vueuse/core')['tryOnBeforeMount']>
-    readonly tryOnBeforeUnmount: UnwrapRef<typeof import('@vueuse/core')['tryOnBeforeUnmount']>
-    readonly tryOnMounted: UnwrapRef<typeof import('@vueuse/core')['tryOnMounted']>
-    readonly tryOnScopeDispose: UnwrapRef<typeof import('@vueuse/core')['tryOnScopeDispose']>
-    readonly tryOnUnmounted: UnwrapRef<typeof import('@vueuse/core')['tryOnUnmounted']>
-    readonly unref: UnwrapRef<typeof import('vue')['unref']>
-    readonly unrefElement: UnwrapRef<typeof import('@vueuse/core')['unrefElement']>
-    readonly until: UnwrapRef<typeof import('@vueuse/core')['until']>
-    readonly useActiveElement: UnwrapRef<typeof import('@vueuse/core')['useActiveElement']>
-    readonly useArrayEvery: UnwrapRef<typeof import('@vueuse/core')['useArrayEvery']>
-    readonly useArrayFilter: UnwrapRef<typeof import('@vueuse/core')['useArrayFilter']>
-    readonly useArrayFind: UnwrapRef<typeof import('@vueuse/core')['useArrayFind']>
-    readonly useArrayFindIndex: UnwrapRef<typeof import('@vueuse/core')['useArrayFindIndex']>
-    readonly useArrayFindLast: UnwrapRef<typeof import('@vueuse/core')['useArrayFindLast']>
-    readonly useArrayJoin: UnwrapRef<typeof import('@vueuse/core')['useArrayJoin']>
-    readonly useArrayMap: UnwrapRef<typeof import('@vueuse/core')['useArrayMap']>
-    readonly useArrayReduce: UnwrapRef<typeof import('@vueuse/core')['useArrayReduce']>
-    readonly useArraySome: UnwrapRef<typeof import('@vueuse/core')['useArraySome']>
-    readonly useArrayUnique: UnwrapRef<typeof import('@vueuse/core')['useArrayUnique']>
-    readonly useAsyncQueue: UnwrapRef<typeof import('@vueuse/core')['useAsyncQueue']>
-    readonly useAsyncState: UnwrapRef<typeof import('@vueuse/core')['useAsyncState']>
-    readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
-    readonly useBase64: UnwrapRef<typeof import('@vueuse/core')['useBase64']>
-    readonly useBattery: UnwrapRef<typeof import('@vueuse/core')['useBattery']>
-    readonly useBluetooth: UnwrapRef<typeof import('@vueuse/core')['useBluetooth']>
-    readonly useBreakpoints: UnwrapRef<typeof import('@vueuse/core')['useBreakpoints']>
-    readonly useBroadcastChannel: UnwrapRef<typeof import('@vueuse/core')['useBroadcastChannel']>
-    readonly useBrowserLocation: UnwrapRef<typeof import('@vueuse/core')['useBrowserLocation']>
-    readonly useCached: UnwrapRef<typeof import('@vueuse/core')['useCached']>
-    readonly useClipboard: UnwrapRef<typeof import('@vueuse/core')['useClipboard']>
-    readonly useCloned: UnwrapRef<typeof import('@vueuse/core')['useCloned']>
-    readonly useColorMode: UnwrapRef<typeof import('@vueuse/core')['useColorMode']>
-    readonly useConfirmDialog: UnwrapRef<typeof import('@vueuse/core')['useConfirmDialog']>
-    readonly useCounter: UnwrapRef<typeof import('@vueuse/core')['useCounter']>
-    readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
-    readonly useCssVar: UnwrapRef<typeof import('@vueuse/core')['useCssVar']>
-    readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
-    readonly useCurrentElement: UnwrapRef<typeof import('@vueuse/core')['useCurrentElement']>
-    readonly useCycleList: UnwrapRef<typeof import('@vueuse/core')['useCycleList']>
-    readonly useDark: UnwrapRef<typeof import('@vueuse/core')['useDark']>
-    readonly useDateFormat: UnwrapRef<typeof import('@vueuse/core')['useDateFormat']>
-    readonly useDebounce: UnwrapRef<typeof import('@vueuse/core')['useDebounce']>
-    readonly useDebounceFn: UnwrapRef<typeof import('@vueuse/core')['useDebounceFn']>
-    readonly useDebouncedRefHistory: UnwrapRef<typeof import('@vueuse/core')['useDebouncedRefHistory']>
-    readonly useDeviceMotion: UnwrapRef<typeof import('@vueuse/core')['useDeviceMotion']>
-    readonly useDeviceOrientation: UnwrapRef<typeof import('@vueuse/core')['useDeviceOrientation']>
-    readonly useDevicePixelRatio: UnwrapRef<typeof import('@vueuse/core')['useDevicePixelRatio']>
-    readonly useDevicesList: UnwrapRef<typeof import('@vueuse/core')['useDevicesList']>
-    readonly useDisplayMedia: UnwrapRef<typeof import('@vueuse/core')['useDisplayMedia']>
-    readonly useDocumentVisibility: UnwrapRef<typeof import('@vueuse/core')['useDocumentVisibility']>
-    readonly useDraggable: UnwrapRef<typeof import('@vueuse/core')['useDraggable']>
-    readonly useDropZone: UnwrapRef<typeof import('@vueuse/core')['useDropZone']>
-    readonly useElementBounding: UnwrapRef<typeof import('@vueuse/core')['useElementBounding']>
-    readonly useElementByPoint: UnwrapRef<typeof import('@vueuse/core')['useElementByPoint']>
-    readonly useElementHover: UnwrapRef<typeof import('@vueuse/core')['useElementHover']>
-    readonly useElementSize: UnwrapRef<typeof import('@vueuse/core')['useElementSize']>
-    readonly useElementVisibility: UnwrapRef<typeof import('@vueuse/core')['useElementVisibility']>
-    readonly useEventBus: UnwrapRef<typeof import('@vueuse/core')['useEventBus']>
-    readonly useEventListener: UnwrapRef<typeof import('@vueuse/core')['useEventListener']>
-    readonly useEventSource: UnwrapRef<typeof import('@vueuse/core')['useEventSource']>
-    readonly useEyeDropper: UnwrapRef<typeof import('@vueuse/core')['useEyeDropper']>
-    readonly useFavicon: UnwrapRef<typeof import('@vueuse/core')['useFavicon']>
-    readonly useFetch: UnwrapRef<typeof import('@vueuse/core')['useFetch']>
-    readonly useFileDialog: UnwrapRef<typeof import('@vueuse/core')['useFileDialog']>
-    readonly useFileSystemAccess: UnwrapRef<typeof import('@vueuse/core')['useFileSystemAccess']>
-    readonly useFocus: UnwrapRef<typeof import('@vueuse/core')['useFocus']>
-    readonly useFocusWithin: UnwrapRef<typeof import('@vueuse/core')['useFocusWithin']>
-    readonly useFps: UnwrapRef<typeof import('@vueuse/core')['useFps']>
-    readonly useFullscreen: UnwrapRef<typeof import('@vueuse/core')['useFullscreen']>
-    readonly useGamepad: UnwrapRef<typeof import('@vueuse/core')['useGamepad']>
-    readonly useGeolocation: UnwrapRef<typeof import('@vueuse/core')['useGeolocation']>
-    readonly useIdle: UnwrapRef<typeof import('@vueuse/core')['useIdle']>
-    readonly useImage: UnwrapRef<typeof import('@vueuse/core')['useImage']>
-    readonly useInfiniteScroll: UnwrapRef<typeof import('@vueuse/core')['useInfiniteScroll']>
-    readonly useIntersectionObserver: UnwrapRef<typeof import('@vueuse/core')['useIntersectionObserver']>
-    readonly useInterval: UnwrapRef<typeof import('@vueuse/core')['useInterval']>
-    readonly useIntervalFn: UnwrapRef<typeof import('@vueuse/core')['useIntervalFn']>
-    readonly useKeyModifier: UnwrapRef<typeof import('@vueuse/core')['useKeyModifier']>
-    readonly useLastChanged: UnwrapRef<typeof import('@vueuse/core')['useLastChanged']>
-    readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
-    readonly useLocalStorage: UnwrapRef<typeof import('@vueuse/core')['useLocalStorage']>
-    readonly useMagicKeys: UnwrapRef<typeof import('@vueuse/core')['useMagicKeys']>
-    readonly useManualRefHistory: UnwrapRef<typeof import('@vueuse/core')['useManualRefHistory']>
-    readonly useMediaControls: UnwrapRef<typeof import('@vueuse/core')['useMediaControls']>
-    readonly useMediaQuery: UnwrapRef<typeof import('@vueuse/core')['useMediaQuery']>
-    readonly useMemoize: UnwrapRef<typeof import('@vueuse/core')['useMemoize']>
-    readonly useMemory: UnwrapRef<typeof import('@vueuse/core')['useMemory']>
-    readonly useMounted: UnwrapRef<typeof import('@vueuse/core')['useMounted']>
-    readonly useMouse: UnwrapRef<typeof import('@vueuse/core')['useMouse']>
-    readonly useMouseInElement: UnwrapRef<typeof import('@vueuse/core')['useMouseInElement']>
-    readonly useMousePressed: UnwrapRef<typeof import('@vueuse/core')['useMousePressed']>
-    readonly useMutationObserver: UnwrapRef<typeof import('@vueuse/core')['useMutationObserver']>
-    readonly useNavigatorLanguage: UnwrapRef<typeof import('@vueuse/core')['useNavigatorLanguage']>
-    readonly useNetwork: UnwrapRef<typeof import('@vueuse/core')['useNetwork']>
-    readonly useNow: UnwrapRef<typeof import('@vueuse/core')['useNow']>
-    readonly useObjectUrl: UnwrapRef<typeof import('@vueuse/core')['useObjectUrl']>
-    readonly useOffsetPagination: UnwrapRef<typeof import('@vueuse/core')['useOffsetPagination']>
-    readonly useOnline: UnwrapRef<typeof import('@vueuse/core')['useOnline']>
-    readonly usePageLeave: UnwrapRef<typeof import('@vueuse/core')['usePageLeave']>
-    readonly useParallax: UnwrapRef<typeof import('@vueuse/core')['useParallax']>
-    readonly usePermission: UnwrapRef<typeof import('@vueuse/core')['usePermission']>
-    readonly usePointer: UnwrapRef<typeof import('@vueuse/core')['usePointer']>
-    readonly usePointerLock: UnwrapRef<typeof import('@vueuse/core')['usePointerLock']>
-    readonly usePointerSwipe: UnwrapRef<typeof import('@vueuse/core')['usePointerSwipe']>
-    readonly usePreferredColorScheme: UnwrapRef<typeof import('@vueuse/core')['usePreferredColorScheme']>
-    readonly usePreferredContrast: UnwrapRef<typeof import('@vueuse/core')['usePreferredContrast']>
-    readonly usePreferredDark: UnwrapRef<typeof import('@vueuse/core')['usePreferredDark']>
-    readonly usePreferredLanguages: UnwrapRef<typeof import('@vueuse/core')['usePreferredLanguages']>
-    readonly usePreferredReducedMotion: UnwrapRef<typeof import('@vueuse/core')['usePreferredReducedMotion']>
-    readonly usePrevious: UnwrapRef<typeof import('@vueuse/core')['usePrevious']>
-    readonly useRafFn: UnwrapRef<typeof import('@vueuse/core')['useRafFn']>
-    readonly useRefHistory: UnwrapRef<typeof import('@vueuse/core')['useRefHistory']>
-    readonly useResizeObserver: UnwrapRef<typeof import('@vueuse/core')['useResizeObserver']>
-    readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
-    readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
-    readonly useScreenOrientation: UnwrapRef<typeof import('@vueuse/core')['useScreenOrientation']>
-    readonly useScreenSafeArea: UnwrapRef<typeof import('@vueuse/core')['useScreenSafeArea']>
-    readonly useScriptTag: UnwrapRef<typeof import('@vueuse/core')['useScriptTag']>
-    readonly useScroll: UnwrapRef<typeof import('@vueuse/core')['useScroll']>
-    readonly useScrollLock: UnwrapRef<typeof import('@vueuse/core')['useScrollLock']>
-    readonly useSessionStorage: UnwrapRef<typeof import('@vueuse/core')['useSessionStorage']>
-    readonly useShare: UnwrapRef<typeof import('@vueuse/core')['useShare']>
-    readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
-    readonly useSorted: UnwrapRef<typeof import('@vueuse/core')['useSorted']>
-    readonly useSpeechRecognition: UnwrapRef<typeof import('@vueuse/core')['useSpeechRecognition']>
-    readonly useSpeechSynthesis: UnwrapRef<typeof import('@vueuse/core')['useSpeechSynthesis']>
-    readonly useStepper: UnwrapRef<typeof import('@vueuse/core')['useStepper']>
-    readonly useStorage: UnwrapRef<typeof import('@vueuse/core')['useStorage']>
-    readonly useStorageAsync: UnwrapRef<typeof import('@vueuse/core')['useStorageAsync']>
-    readonly useStyleTag: UnwrapRef<typeof import('@vueuse/core')['useStyleTag']>
-    readonly useSupported: UnwrapRef<typeof import('@vueuse/core')['useSupported']>
-    readonly useSwipe: UnwrapRef<typeof import('@vueuse/core')['useSwipe']>
-    readonly useTemplateRefsList: UnwrapRef<typeof import('@vueuse/core')['useTemplateRefsList']>
-    readonly useTextDirection: UnwrapRef<typeof import('@vueuse/core')['useTextDirection']>
-    readonly useTextSelection: UnwrapRef<typeof import('@vueuse/core')['useTextSelection']>
-    readonly useTextareaAutosize: UnwrapRef<typeof import('@vueuse/core')['useTextareaAutosize']>
-    readonly useThrottle: UnwrapRef<typeof import('@vueuse/core')['useThrottle']>
-    readonly useThrottleFn: UnwrapRef<typeof import('@vueuse/core')['useThrottleFn']>
-    readonly useThrottledRefHistory: UnwrapRef<typeof import('@vueuse/core')['useThrottledRefHistory']>
-    readonly useTimeAgo: UnwrapRef<typeof import('@vueuse/core')['useTimeAgo']>
-    readonly useTimeout: UnwrapRef<typeof import('@vueuse/core')['useTimeout']>
-    readonly useTimeoutFn: UnwrapRef<typeof import('@vueuse/core')['useTimeoutFn']>
-    readonly useTimeoutPoll: UnwrapRef<typeof import('@vueuse/core')['useTimeoutPoll']>
-    readonly useTimestamp: UnwrapRef<typeof import('@vueuse/core')['useTimestamp']>
-    readonly useTitle: UnwrapRef<typeof import('@vueuse/core')['useTitle']>
-    readonly useToNumber: UnwrapRef<typeof import('@vueuse/core')['useToNumber']>
-    readonly useToString: UnwrapRef<typeof import('@vueuse/core')['useToString']>
-    readonly useToggle: UnwrapRef<typeof import('@vueuse/core')['useToggle']>
-    readonly useTransition: UnwrapRef<typeof import('@vueuse/core')['useTransition']>
-    readonly useUrlSearchParams: UnwrapRef<typeof import('@vueuse/core')['useUrlSearchParams']>
-    readonly useUserMedia: UnwrapRef<typeof import('@vueuse/core')['useUserMedia']>
-    readonly useVModel: UnwrapRef<typeof import('@vueuse/core')['useVModel']>
-    readonly useVModels: UnwrapRef<typeof import('@vueuse/core')['useVModels']>
-    readonly useVibrate: UnwrapRef<typeof import('@vueuse/core')['useVibrate']>
-    readonly useVirtualList: UnwrapRef<typeof import('@vueuse/core')['useVirtualList']>
-    readonly useWakeLock: UnwrapRef<typeof import('@vueuse/core')['useWakeLock']>
-    readonly useWebNotification: UnwrapRef<typeof import('@vueuse/core')['useWebNotification']>
-    readonly useWebSocket: UnwrapRef<typeof import('@vueuse/core')['useWebSocket']>
-    readonly useWebWorker: UnwrapRef<typeof import('@vueuse/core')['useWebWorker']>
-    readonly useWebWorkerFn: UnwrapRef<typeof import('@vueuse/core')['useWebWorkerFn']>
-    readonly useWindowFocus: UnwrapRef<typeof import('@vueuse/core')['useWindowFocus']>
-    readonly useWindowScroll: UnwrapRef<typeof import('@vueuse/core')['useWindowScroll']>
-    readonly useWindowSize: UnwrapRef<typeof import('@vueuse/core')['useWindowSize']>
-    readonly watch: UnwrapRef<typeof import('vue')['watch']>
-    readonly watchArray: UnwrapRef<typeof import('@vueuse/core')['watchArray']>
-    readonly watchAtMost: UnwrapRef<typeof import('@vueuse/core')['watchAtMost']>
-    readonly watchDebounced: UnwrapRef<typeof import('@vueuse/core')['watchDebounced']>
-    readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
-    readonly watchIgnorable: UnwrapRef<typeof import('@vueuse/core')['watchIgnorable']>
-    readonly watchOnce: UnwrapRef<typeof import('@vueuse/core')['watchOnce']>
-    readonly watchPausable: UnwrapRef<typeof import('@vueuse/core')['watchPausable']>
-    readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
-    readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
-    readonly watchThrottled: UnwrapRef<typeof import('@vueuse/core')['watchThrottled']>
-    readonly watchTriggerable: UnwrapRef<typeof import('@vueuse/core')['watchTriggerable']>
-    readonly watchWithFilter: UnwrapRef<typeof import('@vueuse/core')['watchWithFilter']>
-    readonly whenever: UnwrapRef<typeof import('@vueuse/core')['whenever']>
-  }
-}

+ 2 - 2
public/config.js

@@ -37,9 +37,9 @@ const production = {
 }
 
 function isWhich() {
-  if (window.location.href.startsWith(development.web_pc)) {
+  if (development.web_pc.includes(window.location.host)) {
     return development
-  } else if (window.location.href.startsWith(production.web_pc)) {
+  } else if (production.web_pc.includes(window.location.host)) {
     return production
   } else {
     return local

+ 1 - 0
src/components/step/link/xgstda.vue

@@ -158,6 +158,7 @@ function handleSubmit() {
       yk: {
         ykl_dtkmb: JSON.stringify(newData),
       },
+      force: 1,
     },
   }).then((res) => {
     if (res.code === '1') {

+ 17 - 2
src/pages/ksfx/apiItem.js

@@ -22,10 +22,10 @@ export const normalSubject_list = (data = {}) => {
   })
 }
 
-//通用接口-题目(考试计划列表-筛选出题目)
+//通用接口-题目(阅卷-附件试卷-试卷详情-筛选出题目)
 export const normalToppic_list = (data = {}) => {
   return request({
-    url: '/index.php',
+    url: '/yzy/jspyrw/fj_zs_detail',
     data,
   })
 }
@@ -95,6 +95,13 @@ export const cjfx_ztfx_list = (data = {}) => {
     data,
   })
 }
+//成绩分析-总体分析_详情
+export const cjfx_ztfx_list_detail = (data = {}) => {
+  return request({
+    url: '/openapi/echart/total_data_detail.php',
+    data,
+  })
+}
 
 //成绩分析-客观题分析_列表
 export const cjfx_kgtfx_list = (data = {}) => {
@@ -104,6 +111,14 @@ export const cjfx_kgtfx_list = (data = {}) => {
   })
 }
 
+//成绩分析-客观题分析_详情
+export const cjfx_kgtfx_detail = (data = {}) => {
+  return request({
+    url: '/openapi/echart/objective_analysis_detail.php',
+    data,
+  })
+}
+
 
 //===============================学生端=================================
 

+ 20 - 147
src/pages/ksfx/cjfx_cjd/[ykj_id].vue

@@ -3,7 +3,7 @@
     <NavHeader />
     <bread-crumb />
 
-    <div class="w-1200px m-auto flex flex-row justify-between">
+    <div class="w-1200px m-auto flex flex-row justify-between mainCotent">
       <div class="w-188px">
         <leftSider :activeIndex="activeIndex" :ykjId="ykjId"  @parentClick="parentClick"/>
       </div>
@@ -16,7 +16,7 @@
         </div>
 
         <div class="h-218px mt-5px  bg-gray-500 py-4 pl-150px pr-100px perfectShow">
-          <div class="h-full  flex justify-between" v-if="rangeData.length==0">
+          <div class="h-full  flex justify-between" v-if="rangeData.length!=0">
             <div class="h-full bg-opacity-20 rounded singlepart" v-for="(item, index) in rangeData" :key="index">
               <div class="h-1/3 text-center py-4  RankLabel">
                 <img :src="'/images/one'+(index+1)+'.png'" alt="">
@@ -34,64 +34,13 @@
           </div>
         </div>
 
-        <div class="w-full h-auto mt-9px listMain" >
-          <div class="h-74px  rounded px-4 listMain_title" >
-            <div class="float-left singleTitle" :class="{ 'h-full singleDupli': !!([1, 2, 3].indexOf(index) + 1) }">{{ listTitleShow.kh }}</div>
-            <div class="float-left singleTitle" :class="{ 'h-full singleDupli': !!([1, 2, 3].indexOf(index) + 1) }">{{ listTitleShow.xm }}</div>
-            <div class="float-left singleTitle" :class="{ 'h-full singleDupli': !!([1, 2, 3].indexOf(index) + 1) }">{{ listTitleShow.bj }}</div>
-
-            <div class="h-full float-left singleDupli" v-for="(secItem, secIndex) in listTitleShow.subInfo" :key="secIndex">
-              <div class="h-1/2 text-center">{{ secItem.subTitle }}</div>
-              <div class="h-1/2 flex flex-wrap flex-grow justify-between flex-nowrap">
-                <div class="secFullWidth">{{ secItem.fs }}</div>
-                <div class="secFullWidth">{{ secItem.bp }}</div>
-                <div class="secFullWidth">{{ secItem.np }}</div>
-              </div>
-            </div>
-
-          </div>
-
-          <div class="h-60px px-4 listMain_cont" :class="{ 'whiteBG': (index + 1) % 2 != 1 }"
-            v-for="(item, index) in listShow" :key="index">
-            <div class="float-left singleContentSec" :class="{ 'h-full singleDSec': !!([1, 2, 3].indexOf(index) + 1) }">{{ item.kh }}</div>
-            <div class="float-left singleContentSec" :class="{ 'h-full singleDSec': !!([1, 2, 3].indexOf(index) + 1) }">{{ item.xm }}</div>
-            <div class="float-left singleContentSec" :class="{ 'h-full singleDSec': !!([1, 2, 3].indexOf(index) + 1) }">{{ item.bj }}</div>
-            <div class="h-full float-left singleDSec" v-for="(secItem, secIndex) in item.subInfo" :key="secIndex">
-              <div class="h-full flex flex-wrap flex-grow justify-between flex-nowrap">
-                <div class="secFullWidth">{{ secItem.fs }}</div>
-                <div class="secFullWidth">{{ secItem.bp }}</div>
-                <div class="secFullWidth">{{ secItem.np }}</div>
-              </div>
-            </div>
-
-          </div>
-
-        </div>
-
-
-        <!-- 优化的图标结构 -->
-
-        <el-table :data="tableMicData" style="width: 100%" v-if="false">
-        <el-table-column  prop="kh"  align="center"  label="考号" width="150px;"> </el-table-column>
-        <el-table-column  prop="xm"  align="center"  label="姓名" width="150px;"> </el-table-column>
-        <el-table-column  prop="bj"  align="center"  label="班级" width="150px;"> </el-table-column>
-        <!-- 循环1级表头 -->
-        <template v-for="(item, index) in tableMicTitle" :key="index">
-          <el-table-column align="center"  :label="item" >
-            <!-- 循环2级表头 -->
-            <template v-for="items in tableMicLabel"  :key="items.key">
-              <el-table-column :label="items.label"  align="center">
-                <template slot-scope="scope">
-                <span>
-                  {{ scope }}888
-                  <!-- {{ scope.row.type[index][items.key] }} -->
-                </span>
-              </template>
-              </el-table-column>
+        <el-table :data="tableData" :border="true" :show-header="true" :header-row-style="{ background: '#003eee' }">
+          <el-table-column v-for="(item, index) in tableHeader" :key="index" :prop="item.prop" :label="item.label" :width="item.width">
+            <template v-if="item.children">
+              <el-table-column v-for="(childItem, childIndex) in item.children" :key="childIndex" :prop="childItem.prop" :label="childItem.label" :width="childItem.width"></el-table-column>
             </template>
           </el-table-column>
-        </template>
-      </el-table>
+        </el-table>
 
 
 
@@ -123,98 +72,15 @@ const parentClick = (val: string) => {
   ykjId.value = route.params.ykj_id;
 }
 
-let rangeData =ref([])
-let listTitleShow = ref({
-  "kh": "考号",
-  "xm": "姓名",
-  "bj": "班级",
-  "subInfo": [
-    {
-      "subTitle": "语文",
-      "fs": "分数",
-      "bp": "班排",
-      "np": "年排",
-    }
-  ]
-});
-let listShow = ref([
-  {
-    "kh": "2345443211",
-    "xm": "迪丽热巴",
-    "bj": "初一(2)班",
-    "subInfo": [
-      {
-        "subTitle": "语文",
-        "fs": "87.45",
-        "bp": "1",
-        "np": "1",
-      }
-
-    ]
-  },
-]);
-
+const rangeData =ref([])
+const tableHeader =ref([]);
+const tableData = ref([]);
 
 ykjId.value = route.params.ykj_id;
 
-const tableMicTitle = ref();
-
-const tableMicData = ref(
-  [{
-    kh: "1000001",
-    xm:"力王",
-    bj:"初一(1)班",
-    type: [
-    { tab: "语文", aa: "11", bb: "12", cc: "13" },
-      { tab: "数学", aa: "21", bb: "22", cc: "23" },
-      { tab: "外语", aa: "1", bb: "2", cc: "33" },
-    ],
-  },
-  {
-    kh: "1000002",
-    xm:"力王就",
-    bj:"初一(2)班",
-    type: [
-      { tab: "语文", aa: "11", bb: "12", cc: "13" },
-      { tab: "数学", aa: "21", bb: "22", cc: "23" },
-      { tab: "外语", aa: "1", bb: "2", cc: "33" },
-    ],
-    }
-  ]
-);
-
-const tableMicLabel=ref([
-  {
-    label: "分数",
-    key: "aa",
-  },
-  {
-    label: "班排",
-    key: "bb",
-  },
-  {
-    label: "年排",
-    key: "cc",
-  },
-]);
-
 onMounted(() => {
   initData();
-
-  //循环+去重
-  aa();
-
 })
-const aa = () => {
-  let tableMicTitle_temp: Iterable<any>|null|undefined = [];
-  tableMicData.value.forEach(items=>{
-    items.type.forEach(item => {
-      tableMicTitle_temp.push(item.tab)
-     })
-  })
-  tableMicTitle.value = [...new Set(tableMicTitle_temp)];
-  console.log(tableMicTitle.value,"5645")
-}
 
 const school_id = ref("");
 const grade_id = ref("");
@@ -231,9 +97,9 @@ const initData =() => {
   cjfx_cjd_list(transObj)
     .then(res => {
       if (res.code == "1") {
-        listTitleShow.value = res.data.data.listTitleShow;
-        listShow.value = res.data.data.listShow;
         rangeData.value = res.data.data.rangeData;
+        tableHeader.value = res.data.data.tableHeader;
+        tableData.value = res.data.data.tableData;
       }
     })
   .catch(error=>{console.log(error)})
@@ -260,6 +126,11 @@ const exportBtn = () => {
 </script>
 
 <style lang="scss" scoped>
+:deep(.is-group tr th){
+  background: #003eee!important;
+  color:#ffffff;
+  border:0 ;
+}
 :deep(.el-sub-menu__title){
   background: #003eee;
   color: #fff;
@@ -271,7 +142,9 @@ const exportBtn = () => {
 .whiteBG {
   background: #fff;
 }
-
+.mainCotent{
+  min-height:665px;
+}
 .singlepart {
   background-color: rgba($color: #ffffff, $alpha: 0.2);
   color: #fff;

+ 19 - 7
src/pages/ksfx/cjfx_slyf/[ykj_id].vue

@@ -3,7 +3,7 @@
     <NavHeader />
     <bread-crumb />
 
-    <div class="w-1200px m-auto flex flex-row justify-between">
+    <div class="w-1200px m-auto flex flex-row justify-between mainCotent">
       <div class="w-188px">
         <leftSider :ykjId="ykjId" :activeIndex="activeIndex"  @parentClick="parentClick"/>
       </div>
@@ -51,8 +51,8 @@
           </el-table>
 
           <div class="mt-4" >
-            <el-pagination background layout="prev, pager, next " :total="totalPage" style="justify-content: right;" />
-            </div>
+            <el-pagination background layout="prev, pager, next " :total="totalPage" style="justify-content: right;" :current-page="pageNum"  @current-change="handleCurrentChange"  />
+          </div>
 
         </div>
 
@@ -120,18 +120,20 @@ const searchVal = ref();
 
 
 const tableData = ref([]);
-const totalPage = ref();
-const pageNum = ref(0);
+const totalPage = ref(0);
+const pageNum = ref(1);
 ykjId.value = route.params.ykj_id;
 
 onMounted(() => {
   initData()
+  // initDataAll()
 })
 
 const school_id = ref("");
 const grade_id = ref("");
 const xueke_id = ref("");
 
+
 const initData =() => {
   let transObj = {
     school_id:school_id.value,
@@ -164,6 +166,12 @@ const optionClick = (val: any, marke: any) => {
   }
   initData();
 }
+//分页
+const handleCurrentChange=(val: number)=>{
+  pageNum.value = val;
+  // 在这里执行您的分页函数
+  initData();
+}
 //搜索
 const handleSearch = () => {
   initData();
@@ -192,7 +200,9 @@ const openDialog = () => {
 
 
 <style lang="scss" scoped>
-
+:deep(.el-pagination.is-background .el-pager li.is-active){
+  background-color: #003eee!important;
+}
 :deep(.el-input__wrapper) {
   height:40px;
 }
@@ -223,7 +233,9 @@ const openDialog = () => {
 .whiteBG {
   background: #fff;
 }
-
+.mainCotent{
+  min-height:665px;
+}
 .singlepart {
   background-color: rgba($color: #ffffff, $alpha: 0.2);
   color: #fff;

+ 97 - 91
src/pages/ksfx/sjfx_kgtfx/[ykj_id].vue

@@ -3,7 +3,7 @@
     <NavHeader />
     <bread-crumb />
 
-    <div class="w-1200px m-auto flex flex-row justify-between">
+    <div class="w-1200px m-auto flex flex-row justify-between mainCotent">
       <div class="w-188px">
         <leftSider :ykjId="ykjId" :activeIndex="activeIndex" @parentClick="parentClick" />
       </div>
@@ -12,17 +12,20 @@
 
         <div class="flex mt-20px items-center">
 
-          <el-select class="mr-10px" v-model="normal_school" placeholder="请选择学校" size="large" @change="(name)=>{ handelOption(name,'scholl')}">
+          <el-select class="mr-10px" v-model="normal_school" placeholder="请选择学校" size="large"
+            @change="(name) => { handelOption(name, 'scholl') }">
             <el-option label="全部" value="0" />
             <el-option v-for="item in school_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
 
-          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large" @change="(name)=>{ handelOption(name,'subject')}">
+          <el-select class="mr-10px" v-model="normal_subject" placeholder="请选择学科" size="large"
+            @change="(name) => { handelOption(name, 'subject') }">
             <el-option label="全部" value="0" />
             <el-option v-for="item in subject_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
 
-          <el-select class="mr-10px" v-model="normal_topic" placeholder="请选择题目" size="large" @change="(name)=>{ handelOption(name,'examOption')}">
+          <el-select class="mr-10px" v-model="normal_topic" placeholder="请选择题目" size="large"
+            @change="(name) => { handelOption(name, 'examOption') }">
             <el-option label="全部" value="0" />
             <el-option v-for="item in topic_list" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
@@ -55,12 +58,12 @@
     <el-dialog v-model="dialogTableVisible" title="" style="width: 90%;">
       <div class="mainShow">
         <div class="mainShow_single" v-for="(item, index) in dialogArr " :key="index">
-          <p>{{ item.option }}<span>({{ item.stuNum }})</span>人:</p>
+          <p>选项{{ item.answer }}<span>({{ item.list.length }})</span>人:</p>
           <ul class="flex flex-wrap">
-            <li v-for="(secItem, secIndex) in item.detail" :key="secIndex">
-              <span>{{ secItem.stuSchool }}</span>
-              <span>{{ secItem.classRomm }}</span>
-              <span>{{ secItem.stuName }}</span>
+            <li v-for="(secItem, secIndex) in item.list" :key="secIndex">
+              <span>{{ secItem.school }}</span>
+              <span>{{ secItem.class }}</span>
+              <span>{{ secItem.name }}</span>
             </li>
           </ul>
         </div>
@@ -85,7 +88,7 @@
 <script lang="ts" setup>
 
 import * as echarts from 'echarts';
-import { ksjh_detail,normalToppic_list,cjfx_kgtfx_list } from '../apiItem';
+import { ksjh_detail, normalToppic_list, cjfx_kgtfx_list,cjfx_kgtfx_detail } from '../apiItem';
 const route = useRoute();
 
 let normal_school = ref("");
@@ -94,14 +97,7 @@ let normal_topic = ref("");
 
 const school_list = ref([])
 const subject_list = ref([]);
-
-let topic_list = ref([{
-  value: '1',
-  label: '主观题'
-}, {
-  value: '2',
-  label: '客观题'
-}]);
+const topic_list = ref([]);
 
 
 const school_id = ref("");
@@ -117,15 +113,14 @@ const parentClick = (val: string) => {
 ykjId.value = route.params.ykj_id;
 onMounted(() => {
   initOption();
-  initData();
+  // initData();
 })
 //初始化option
 const initOption = () => {
   let transObj = {
-    school_id:school_id.value,
+    school_id: school_id.value,
     xueke_id: xueke_id.value,
     ykj_id: route.params.ykj_id,
-    
   }
 
   ksjh_detail(transObj)
@@ -142,8 +137,11 @@ const initOption = () => {
         });
         school_list.value = temp_school;
 
-        //联考下的学科-从lc_filter下取值
+        if (temp_school.length > 0) {
+          normal_school.value = temp_school[0].value;
+        }
 
+        //联考下的学科-从lc_filter下取值
         let allLc = res.data.one_info.lc_filter;
         let temp_xueke: { value: any; label: any; }[] = [];
         allLc.forEach((item: { ze_id: any; ykl_lc: string; }) => {
@@ -154,6 +152,12 @@ const initOption = () => {
         })
         subject_list.value = temp_xueke;
 
+        if (temp_xueke.length > 0) {
+          normal_subject.value = temp_xueke[0].value;
+        }
+        //默认选中第一个学的第一个联考科目 请求题目
+        initTopic(temp_xueke[0].value)
+
       }
     })
     .catch(error => { console.log(error) })
@@ -162,21 +166,27 @@ const initOption = () => {
 //初始化数据
 const initData = () => {
   let transObj = {
-    school_id: school_id.value,
-    xueke_id: xueke_id.value,
-    hq_id:hq_id.value,//试题
-    jh_id:route.params.ykj_id
+    // school_id: school_id.value,
+    // xueke_id: xueke_id.value,
+    // hq_id:hq_id.value,//试题
+    // jh_id: route.params.ykj_id,
+
+    school_id: normal_school.value,
+    xueke_id: normal_subject.value,
+    hq_id: normal_topic.value,//试题
+    jh_id: route.params.ykj_id,
   }
   cjfx_kgtfx_list(transObj)
     .then(res => {
       if (res.code == "1") {
         initbarChart(res.data.data.barChartData);
         initcircleChart(res.data.data.circleChartData);
+
       }
     })
     .catch(error => { console.log(error) })
 }
-//初始化echarts
+//初始化echarts1
 const initbarChart = (barChartData: { xAxis_data: any; series_data: any; }) => {
   var myChart = echarts.init(document.getElementById('barChart'));
   myChart.setOption({
@@ -221,6 +231,7 @@ const initbarChart = (barChartData: { xAxis_data: any; series_data: any; }) => {
     ]
   });
 }
+//初始化echarts2
 const initcircleChart = (circleChartData: { series_name: any; series_data: any; }) => {
   var myChart = echarts.init(document.getElementById('circleChart'));
   myChart.setOption({
@@ -266,65 +277,30 @@ const initcircleChart = (circleChartData: { series_name: any; series_data: any;
   });
 }
 
+//
+
+
 const dialogTableVisible = ref(false)
 const openDialog = () => {
-  dialogTableVisible.value = true;
+  //请求
+  let transObj = {
+    school_id: normal_school.value,
+    xueke_id: normal_subject.value,
+    hq_id: normal_topic.value,//试题
+    jh_id: route.params.ykj_id,
+  }
+  cjfx_kgtfx_detail(transObj)
+    .then(res => {
+      if (res.code == "1") {
+        dialogArr.value = res.data.data;
+        dialogTableVisible.value = true;
+      }
+    })
+    .catch(error => { console.log(error) });
+
 }
 
-let dialogArr = [
-  {
-    option: "选项A",
-    stuNum: 23,
-    detail: [
-      {
-        stuSchool: "苏州小学",
-        classRomm: "初一(2)班",
-        stuName: "张大大",
-      }
-    ]
-  },
-  {
-    option: "选项B",
-    stuNum: 23,
-    detail: [
-      {
-        stuSchool: "苏州小学",
-        classRomm: "初一(2)班",
-        stuName: "张大大",
-      },
-      {
-        stuSchool: "苏州小学",
-        classRomm: "初一(2)班",
-        stuName: "张大大",
-      }, {
-        stuSchool: "苏州小学",
-        classRomm: "初一(2)班",
-        stuName: "张大大",
-      }
-    ]
-  },
-  {
-    option: "选项C",
-    stuNum: 23,
-    detail: [
-      {
-        stuSchool: "苏州小学",
-        classRomm: "初一(2)班",
-        stuName: "张大大",
-      }]
-  },
-  {
-    option: "选项D",
-    stuNum: 23,
-    detail: [
-      {
-        stuSchool: "苏州小学",
-        classRomm: "初一(2)班",
-        stuName: "张大大",
-      }
-    ]
-  }
-]
+const dialogArr = ref([]);
 
 //option 学校
 const handelOption = (val, marklabel) => {
@@ -332,26 +308,53 @@ const handelOption = (val, marklabel) => {
     school_id.value = val;
   } else if (marklabel == "subject") {
     xueke_id.value = val;
-    initTopic();
+    initTopic(val);
   } else {
     hq_id.value = val;
+    initData();
   }
-  initData();
- 
 }
 
 // option 题目
-const initTopic = () => {
+const initTopic = (sjID: any) => {
   let transObj = {
-    zs_id:xueke_id.value
+    ze_id: sjID,
   }
   normalToppic_list(transObj)
     .then(res => {
-      if(res.code=="1"){
-        console.log(res, "876445");
+      if (res.code == "1") {
+        let allDataFilter = res.data.zs.typeList;
+
+        if (allDataFilter.length == 0) {//默认第一个考试没有试题
+          ElMessage({
+            message: '此试卷暂无试题,无统计数据~',
+            type: 'warning',
+          });
+          return
+        } else {// 默认第一个试卷 是有题目的
+          let emptyArr: { value: any; label: any; }[] = [];
+          allDataFilter.forEach((item: { label: any; content: any[]; }) => {
+            let firstLabel = item.label
+            item.content.forEach((secItem: { hq_id: any; shunxu_id: any; }) => {
+              emptyArr.push({
+                value: secItem.hq_id,
+                label: firstLabel + secItem.shunxu_id
+              })
+            })
+          })
+          topic_list.value = emptyArr;
+          normal_topic.value = emptyArr[0].value;
+
+          initData();
+        }
+
+
+
+
       }
     })
-  .catch(error=>{console.log(error)})
+    .catch(error => { console.log(error) })
+
 }
 
 </script>
@@ -359,4 +362,7 @@ const initTopic = () => {
 
 <style lang="scss" scoped>
 @import '@/styles/ksfx.css';
-</style>
+
+.mainCotent {
+  min-height: 665px;
+}</style>

+ 67 - 30
src/pages/ksfx/sjfx_ztfx/[ykj_id].vue

@@ -5,7 +5,7 @@
 
     <div class="w-1200px m-auto flex flex-row justify-between">
       <div class="w-188px">
-        <leftSider :ykjId="ykjId" :activeIndex="activeIndex"  @parentClick="parentClick"/>
+        <leftSider :ykjId="ykjId" :activeIndex="activeIndex" @parentClick="parentClick" />
       </div>
 
       <div class="w-1012px p-4 blueBg">
@@ -21,7 +21,7 @@
             <el-table-column prop="ykrs" label="应考人数" />
             <el-table-column prop="skrs" label="实考人数" />
             <el-table-column prop="nd" label="难度" />
-            <el-table-column prop="qfd" label="区分度"/>
+            <el-table-column prop="qfd" label="区分度" />
             <el-table-column prop="bzc" label="标准差" />
             <el-table-column prop="qkrs" label="缺考人数" />
             <el-table-column prop="zgf" label="最高分" />
@@ -34,7 +34,7 @@
 
         <div class="flex mt-20px items-center">
 
-          <optionSelect  @optionClick="optionClick" />
+          <optionSelect @optionClick="optionClick" />
 
         </div>
         <div class="flex justify-between mt-4 exportBtn">
@@ -55,7 +55,7 @@
             <el-table-column prop="mf" label="满分" />
             <el-table-column prop="pjf" label="平均分" />
             <el-table-column prop="nd" label="难度" />
-            <el-table-column prop="qfd" label="区分度"  />
+            <el-table-column prop="qfd" label="区分度" />
             <el-table-column prop="bzc" label="标准差" />
             <el-table-column prop="gfzjf" label="高分组均分" />
             <el-table-column prop="zdzjf" label="中等组均分" />
@@ -68,25 +68,16 @@
           <div class="normalTit">
             <span>整体成绩分析</span>
           </div>
-          <el-table :data="tableData" style="width: 100%">
-            <el-table-column prop="xm" label="姓名" show-overflow-tooltip width="100" />
-            <el-table-column prop="xh" label="学号" show-overflow-tooltip width="100" />
-            <el-table-column prop="bj" label="班级" show-overflow-tooltip width="100" />
-            <el-table-column prop="zf" label="总分" />
-            <el-table-column prop="fir_0" label="1" />
-            <el-table-column prop="fir_1" label="2"  />
-            <el-table-column prop="fir_2" label="17-19" />
-            <el-table-column prop="sec_0" label="1" />
-            <el-table-column prop="sec_1" label="2"  />
-            <el-table-column prop="sec_2" label="17-19" />
-            <el-table-column prop="thr_0" label="1" />
-            <el-table-column prop="thr_1" label="2"  />
-            <el-table-column prop="thr_2" label="17-19" />
-
+          <el-table :data="tableDataAll">
+            <el-table-column v-for="column in columnsAll" :key="column.prop" :prop="column.prop" :label="column.label"
+              show-overflow-tooltip width="120"></el-table-column>
           </el-table>
 
         </div>
-
+        <div class="mt-4">
+          <el-pagination background layout="prev, pager, next " :total="totalPage" :page-size="limit" style="justify-content: right;"
+            :current-page="pageNum" @current-change="handleCurrentChange" />
+        </div>
       </div>
 
     </div>
@@ -103,12 +94,12 @@
 }
 </route>
 <script lang="ts" setup>
-import {cjfx_ztfx_list } from '../apiItem';
+import { cjfx_ztfx_list,cjfx_ztfx_list_detail } from '../apiItem';
 const route = useRoute();
 import { user } from "~/store";
 
 
-const activeIndex =ref('2-1');
+const activeIndex = ref('2-1');
 const ykjId = ref();
 const parentClick = (val: string) => {
   activeIndex.value = val;
@@ -117,31 +108,77 @@ const parentClick = (val: string) => {
 const tableDataZtcjfx = ref([]);
 const tableDataTmfx = ref()
 
-const tableData = ref();
+const tableDataAll = ref([
+  { xm: '迪丽热巴', xh: '1234567', bj: '初一(1)班', zf: '123', },
+  { xm: '迪丽热巴', xh: '1234567', bj: '初一(1)班', zf: '123', },
+]);
+const columnsAll = ref([
+  { prop: 'xm', label: '姓名' },
+  { prop: 'xh', label: '学号' },
+  { prop: 'bj', label: '班级' },
+  { prop: 'zf', label: '总分' },
+])
+
+
+const totalPage = ref(0);
+const pageNum = ref(1);
+const limit = ref(10);
+
 ykjId.value = route.params.ykj_id;
 onMounted(() => {
-  initData()
+  initData();
+  initDataAll();
 })
 
 const school_id = ref("");
 const grade_id = ref("");
 const xueke_id = ref("");
+
 const initData = () => {
   let transObj = {
-    school_id:school_id.value,
+    school_id: school_id.value,
     cm_id: grade_id.value,
     xueke_id: xueke_id.value,
-    jh_id:route.params.ykj_id
+    jh_id: route.params.ykj_id,
   }
   cjfx_ztfx_list(transObj)
     .then(res => {
       if (res.code == "1") {
         tableDataZtcjfx.value = res.data.data.tableDataZtcjfx;
         tableDataTmfx.value = res.data.data.tableDataTmfx;
-        tableData.value = res.data.data.tableData;
       }
     })
-  .catch(error=>{console.log(error)})
+    .catch(error => { console.log(error) })
+}
+
+//
+const initDataAll = () => {
+  let transObj = {
+    school_id: school_id.value,
+    cm_id: grade_id.value,
+    xueke_id: xueke_id.value,
+    jh_id: route.params.ykj_id,
+    page: pageNum.value,
+    limit: limit.value,
+  }
+  cjfx_ztfx_list_detail(transObj)
+    .then(res => {
+      if (res.code == "1") {
+        tableDataAll.value = res.data.data.page_data.tableDataAll;
+        columnsAll.value = res.data.data.page_data.columnsAll;
+        totalPage.value = res.data.data.total_rows * 1;
+        pageNum.value = res.data.data.page_now*1;
+        console.log(res,"alvis")
+      }
+    })
+    .catch(error => { console.log(error) });
+}
+
+//分页
+const handleCurrentChange = (val: number) => {
+  pageNum.value = val;
+  // 在这里执行您的分页函数
+  initDataAll();
 }
 
 //option筛选
@@ -154,13 +191,14 @@ const optionClick = (val: any, marke: any) => {
     xueke_id.value = val;
   }
   initData();
+  initDataAll();
 }
 
 //导出
 const exportBtn = () => {
   let prefixedUrl = window.GLOBAL_CONFIG.web_pc;
   let fullUrl = prefixedUrl + '/openapi/echart/total_data.php?api=xls&token=' + user.value.token;
-  window.open(fullUrl,'_blank')
+  window.open(fullUrl, '_blank')
 }
 
 </script>
@@ -168,5 +206,4 @@ const exportBtn = () => {
 
 <style lang="scss" scoped>
 @import '@/styles/ksfx.css';
-
 </style>

+ 3 - 4
src/pages/step/[id].vue

@@ -558,7 +558,7 @@ const TaskEventMap: { [key: string]: () => void } = {
           instance.confirmButtonLoading = loading = true
           try {
             const res0 = await request({
-              url: '/openapi/crontab/datamaker.php',
+              url: '/openapi/crontab/datamaker_v2.php',
               data: {
                 ykl_id,
               },
@@ -617,7 +617,7 @@ const TaskEventMap: { [key: string]: () => void } = {
     })
   },
   '修改成绩': async () => {
-    await handleCompleteTaskAuto()
+    await handleCompleteTaskAuto({ force: 1 })
     routerPush({ name: 'process-xgcj-id', params: { id: ykl_lc.ze_id } })
   },
   '考试关闭': () => {
@@ -629,8 +629,7 @@ const TaskEventMap: { [key: string]: () => void } = {
       confirmButtonText: '确定',
       cancelButtonText: '取消',
     }).then(() => {
-      const { gid, pid, cid } = JSON.parse(sessionStorage.getItem('StepId')!)
-      handleJumpTask(gid, pid, cid)
+      handleCompleteTaskAuto({ force: 1 })
     })
   },
 }

+ 3 - 0
src/styles/ksfx.css

@@ -1,3 +1,6 @@
+:deep(.el-pagination.is-background .el-pager li.is-active){
+  background-color: #003eee!important;
+}
 :deep(.el-sub-menu__title){
   background: #003eee;
   color: #fff;