import { ref } from 'vue' import { defineStore } from 'pinia' import timeUtil from '@/utils/time-util' // 巡查任务 export const useSubtaskStore = defineStore('subtask', () => { // 当期所有巡查统计信息 const summaryList = ref([]) const summaryMap = ref(new Map()) const subtaskLoading = ref(false) const onFetchList = [] const onFetchMap = [] // 设置新的值 function setSummary(data) { summaryList.value = data summaryMap.value.clear() data.forEach((e) => { const tag = timeUtil.formatYMD(e.subtask.planstarttime) if (!summaryMap.value.has(tag)) { summaryMap.value.set(tag, []) } summaryMap.value.get(tag).push(e) }) if (onFetchList.length > 0) { onFetchList.forEach((e) => { if (e.tag) { e.fun(summaryMap.value.get(e.tag)) } else { e.fun(summaryList.value) } }) } if (onFetchMap.length > 0) { onFetchMap.forEach((e) => { e(summaryMap.value) }) } } function getSummaryList(timeTag, callback) { if (summaryMap.value.size === 0) { onFetchList.push({ tag: timeTag, fun: callback }) } else { if (timeTag) { callback(summaryMap.value.get(timeTag)) } else { callback(summaryList.value) } } } function getSummaryMap(callback) { if (summaryMap.value.size === 0) { onFetchMap.push(callback) } else { callback(summaryMap.value) } } return { summaryList, summaryMap, subtaskLoading, setSummary, getSummaryList, getSummaryMap } })