Browse Source

💊 修复注册志愿者后状态未刷新问题

快乐的梦鱼 4 days ago
parent
commit
bbfee2e24b

+ 13 - 1
src/pages/dig/details.vue

@@ -120,9 +120,21 @@ function goJoin() {
     villageId: querys.value.villageId,
   });
 }
-onMounted(async () => {
+async function loadVolunteerInfo() {
   await getIsVolunteer();
   isManagement.value = await getIsManagement(querys.value.villageId);
   isJoined.value = await getIsJoinedVillage(querys.value.villageId);
+}
+
+onMounted(async () => {
+  await loadVolunteerInfo();
 });
+
+
+defineExpose({
+  onPageBack(name: string, param: any) {
+    if (name === 'registerDone')
+      loadVolunteerInfo();
+  }
+})
 </script>

+ 13 - 7
src/pages/dig/forms/list-ordinary.vue

@@ -290,19 +290,23 @@ function loadListCatalog(catalog: VillageCatalogListItem) {
   listLoader.load(true, currentLoadData.value)
 }
 
-const { querys } = useLoadQuerys({ 
-  collectModuleId: 0,
-  villageId: 0,  
-  title: '',
-}, async (querys) => {
-  isManagement.value = await getIsManagement(querys.villageId);
+async function loadVolunteerInfo() {
+  isManagement.value = await getIsManagement(querys.value.villageId);
   try {
     //普通用户进入预览模式
     await getIsVolunteer();
-    canCollect.value = await getCanCollect(querys.villageId);
+    canCollect.value = await getCanCollect(querys.value.villageId);
   } catch {
     canCollect.value = false;
   }
+}
+
+const { querys } = useLoadQuerys({ 
+  collectModuleId: 0,
+  villageId: 0,  
+  title: '',
+}, async (querys) => {
+  await loadVolunteerInfo();
 
   function pushCatalogWithCurrentCatalog(catalog: VillageCatalogListItem) {
     if (catalog.collectModuleId === querys.collectModuleId) {
@@ -336,6 +340,8 @@ defineExpose({
   onPageBack(name: string, param: any) {
     if (param && param.needRefresh)
       listLoader.reload();
+    if (name === 'registerDone')
+      loadVolunteerInfo();
   }
 })
 </script>

+ 7 - 3
src/pages/dig/forms/list.vue

@@ -197,6 +197,10 @@ function goJoin() {
     villageId: querys.value.villageId,
   });
 }
+async function loadVolunteerInfo() {
+  isJoined.value = await getIsJoinedVillage(querys.value.villageId);
+  isManagement.value = await getIsManagement(querys.value.villageId);
+}
 
 const { querys } = useLoadQuerys({ 
   villageId: 0,  
@@ -208,9 +212,7 @@ const { querys } = useLoadQuerys({
   subTitle: '',
   isView: false,
 }, async (querys) => {
-  isJoined.value = await getIsJoinedVillage(querys.villageId);
-  isManagement.value = await getIsManagement(querys.villageId);
-
+  await loadVolunteerInfo();
   if (querys.collectModuleId) {
     //普通用户进入预览模式
     await getIsVolunteer();
@@ -251,6 +253,8 @@ defineExpose({
   onPageBack(name: string, param: any) {
     if (param && param.needRefresh)
       listLoader.reload();
+    if (name === 'registerDone')
+      loadVolunteerInfo();  
   }
 })
 </script>

+ 2 - 2
src/pages/home/light/submit-volunteer.vue

@@ -94,7 +94,7 @@ import { UserApi } from '@/api/auth/UserApi';
 import { waitTimeOut } from '@imengyu/imengyu-utils';
 import { fillClaimFromVolunteer, getClaimVillageForm } from './form/claim';
 import { getVolunteerForm } from './form/volunteer';
-import { back } from '@/components/utils/PageAction';
+import { backAndCallOnPageBack } from '@/components/utils/PageAction';
 import { closeToast, toast } from '@/components/dialog/CommonRoot';
 import { showError } from '@/common/composeabe/ErrorDisplay';
 import type { IDynamicFormOptions, IDynamicFormRef } from '@/components/dynamic';
@@ -276,7 +276,7 @@ async function finishAndBack() {
     await villageStore.loadMyJoinedVillages();
   } finally {
     uni.hideLoading();
-    back();
+    backAndCallOnPageBack('registerDone', {});
   }
 }
 </script>