清理内存
Showing
1 changed file
with
42 additions
and
3 deletions
| ... | @@ -1010,6 +1010,10 @@ const uploadFileDialogInfo = ref({ | ... | @@ -1010,6 +1010,10 @@ const uploadFileDialogInfo = ref({ |
| 1010 | const folderRefreshTimer = ref(); | 1010 | const folderRefreshTimer = ref(); |
| 1011 | 1011 | ||
| 1012 | const processFolderRefresh = async () => { | 1012 | const processFolderRefresh = async () => { |
| 1013 | // 组件已卸载时不再执行 | ||
| 1014 | if (!containerRef.value) { | ||
| 1015 | return; | ||
| 1016 | } | ||
| 1013 | await getDicomStatisticsData(taskGuid.value); | 1017 | await getDicomStatisticsData(taskGuid.value); |
| 1014 | if (!dicomStatisticsData.value.state || dicomStatisticsData.value.state == 'S' || dicomStatisticsData.value.state == 'R') { | 1018 | if (!dicomStatisticsData.value.state || dicomStatisticsData.value.state == 'S' || dicomStatisticsData.value.state == 'R') { |
| 1015 | if (folderRefreshTimer.value) { | 1019 | if (folderRefreshTimer.value) { |
| ... | @@ -1717,13 +1721,15 @@ onBeforeMount(() => { | ... | @@ -1717,13 +1721,15 @@ onBeforeMount(() => { |
| 1717 | }) | 1721 | }) |
| 1718 | }) | 1722 | }) |
| 1719 | 1723 | ||
| 1724 | const handleResize = () => { | ||
| 1725 | containerWidth.value = containerRef.value?.offsetWidth || 0; | ||
| 1726 | } | ||
| 1727 | |||
| 1720 | onMounted(() => { | 1728 | onMounted(() => { |
| 1721 | nextTick(() => { | 1729 | nextTick(() => { |
| 1722 | containerWidth.value = containerRef.value?.offsetWidth || 0; | 1730 | containerWidth.value = containerRef.value?.offsetWidth || 0; |
| 1723 | }) | 1731 | }) |
| 1724 | window.onresize = () => { | 1732 | window.addEventListener('resize', handleResize); |
| 1725 | containerWidth.value = containerRef.value?.offsetWidth || 0; | ||
| 1726 | } | ||
| 1727 | }) | 1733 | }) |
| 1728 | 1734 | ||
| 1729 | const cancelTask = () => { | 1735 | const cancelTask = () => { |
| ... | @@ -1754,6 +1760,10 @@ const getResultPromise: any = ref(null); | ... | @@ -1754,6 +1760,10 @@ const getResultPromise: any = ref(null); |
| 1754 | 1760 | ||
| 1755 | /** 第三步处理,定时刷新查看结果 */ | 1761 | /** 第三步处理,定时刷新查看结果 */ |
| 1756 | const processStepThreeResultView = (isRefresh = false) => { | 1762 | const processStepThreeResultView = (isRefresh = false) => { |
| 1763 | // 组件已卸载时不再执行 | ||
| 1764 | if (!containerRef.value) { | ||
| 1765 | return; | ||
| 1766 | } | ||
| 1757 | let process = (isRefresh) => { | 1767 | let process = (isRefresh) => { |
| 1758 | getResultPromise.value = getAnonAnalyzeResult(taskExecGuid.value).then((res: any) => { | 1768 | getResultPromise.value = getAnonAnalyzeResult(taskExecGuid.value).then((res: any) => { |
| 1759 | getResultPromise.value = null; | 1769 | getResultPromise.value = null; |
| ... | @@ -1970,6 +1980,35 @@ const downloadWord = () => { | ... | @@ -1970,6 +1980,35 @@ const downloadWord = () => { |
| 1970 | onUnmounted(() => { | 1980 | onUnmounted(() => { |
| 1971 | refreshTimer.value && clearInterval(refreshTimer.value); | 1981 | refreshTimer.value && clearInterval(refreshTimer.value); |
| 1972 | refreshTimer.value = null; | 1982 | refreshTimer.value = null; |
| 1983 | if (folderRefreshTimer.value) { | ||
| 1984 | clearInterval(folderRefreshTimer.value); | ||
| 1985 | folderRefreshTimer.value = null; | ||
| 1986 | } | ||
| 1987 | |||
| 1988 | // 清理未完成的Promise引用 | ||
| 1989 | if (getResultPromise.value) { | ||
| 1990 | getResultPromise.value = null; | ||
| 1991 | } | ||
| 1992 | |||
| 1993 | if (promise.value) { | ||
| 1994 | promise.value = null; | ||
| 1995 | } | ||
| 1996 | |||
| 1997 | if (downPromise.value) { | ||
| 1998 | downPromise.value = null; | ||
| 1999 | } | ||
| 2000 | |||
| 2001 | // 清理其他可能的异步操作引用 | ||
| 2002 | if (getParentAreaPromise.value) { | ||
| 2003 | getParentAreaPromise.value = null; | ||
| 2004 | } | ||
| 2005 | |||
| 2006 | if (domClone.value) { | ||
| 2007 | domClone.value = null; | ||
| 2008 | } | ||
| 2009 | |||
| 2010 | window.removeEventListener('resize', handleResize); | ||
| 2011 | |||
| 1973 | }) | 2012 | }) |
| 1974 | 2013 | ||
| 1975 | </script> | 2014 | </script> | ... | ... |
-
Please register or sign in to post a comment