2f247ea8 by lihua

清理内存

1 parent ccc6a541
...@@ -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>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!