|
@@ -1,11 +1,43 @@
|
|
|
import useProjectQuickMonitorModel from './use/porject'
|
|
|
import useEntQuickMonitorModel from './use/ent'
|
|
|
|
|
|
-export default function useQuickMonitorModel(params) {
|
|
|
- if (params.type === 'project') {
|
|
|
- return useProjectQuickMonitorModel(params)
|
|
|
+const GlobalModelCache = {}
|
|
|
+
|
|
|
+export function removeGlobalCache(key = 'all') {
|
|
|
+ if (key === 'all') {
|
|
|
+ Object.keys(GlobalModelCache).forEach((key) => {
|
|
|
+ delete GlobalModelCache[key]
|
|
|
+ })
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ delete GlobalModelCache[key]
|
|
|
+ return true
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+export function useQuickMonitorModel(params) {
|
|
|
+ const { type, cache = false, id = '' } = params
|
|
|
+ const useSingleModel = cache === true
|
|
|
+
|
|
|
+ let createModel = () => ({})
|
|
|
+ switch (type) {
|
|
|
+ case 'project':
|
|
|
+ createModel = useProjectQuickMonitorModel
|
|
|
+ break
|
|
|
+ case 'ent':
|
|
|
+ createModel = useEntQuickMonitorModel
|
|
|
+ break
|
|
|
+ default:
|
|
|
+ break
|
|
|
}
|
|
|
- if (params.type === 'ent') {
|
|
|
- return useEntQuickMonitorModel(params)
|
|
|
+
|
|
|
+ if (useSingleModel) {
|
|
|
+ const key = `${type}-${id}`
|
|
|
+ if (!GlobalModelCache[key]) {
|
|
|
+ GlobalModelCache[key] = createModel(params)
|
|
|
+ }
|
|
|
+ return GlobalModelCache[key]
|
|
|
+ } else {
|
|
|
+ return createModel(params)
|
|
|
}
|
|
|
}
|