Просмотр исходного кода

🎨 按要求修改采集列表 去完成 为 去采集

快乐的梦鱼 недель назад: 2
Родитель
Сommit
9d7691a45f
2 измененных файлов с 53 добавлено и 62 удалено
  1. 52 61
      src/pages/dig/components/CollectModuleList.vue
  2. 1 1
      src/pages/dig/components/TaskList.vue

+ 52 - 61
src/pages/dig/components/CollectModuleList.vue

@@ -15,7 +15,7 @@
         :title="item.title"
         :desc="item.desc"
         :extra="item.extra"
-        :goButtonText="isView ? '查看' : '去完成'"
+        :goButtonText="isView ? '查看' : '去采集'"
         :enable="typeof item.enable === 'string' ? canCollect(item.enable) : item.enable"
         @click="handleClick(item)"
       />
@@ -27,25 +27,24 @@
 import { onMounted, ref, watch } from 'vue';
 import { useCollectStore } from '@/store/collect';
 import { useTaskEntryForm } from '../forms/composeable/TaskEntryForm';
-import { TaskMenuDef, type TaskMenuDefGoForm, type TaskMenuDefItem } from '../forms/tasks';
+import { type TaskMenuDefGoForm, type TaskMenuDefItem } from '../forms/tasks';
 import { alert } from '@/components/utils/DialogAction';
 import { getVillageInfoForm } from '../forms/forms';
 import { navTo } from '@/components/utils/PageAction';
-import { TaskRootDef } from '../forms/tasks';
 import FlexCol from '@/components/layout/FlexCol.vue';
 import Image from '@/components/basic/Image.vue';
 import TaskList from '../components/TaskList.vue';
 import VillageApi from '@/api/inhert/VillageApi';
 import { useAuthStore } from '@/store/auth';
+import { waitTimeOut } from '@imengyu/imengyu-utils';
 
 const { goForm, goPreviewForm } = useTaskEntryForm();
 const authStore = useAuthStore();
-const { canCollect, canCollectCatalog, getCollectModuleInternalNameById } = useCollectStore();
+const { canCollect, canCollectCatalog, getCollectModuleInternalNameById, collectableCatalogs } = useCollectStore();
 
 const props = withDefaults(defineProps<{
   villageId: number,
   villageVolunteerId: number,
-  taskName: string,
   taskTitle: string,
   taskPid: number,
   isView?: boolean,
@@ -54,64 +53,57 @@ const props = withDefaults(defineProps<{
 });
 
 async function loadList() {
-  if (props.taskName) {
-    currentTaskDefItems.value = TaskMenuDef[props.taskName].list.concat();
-    currentTaskBanner.value = TaskMenuDef[props.taskName].banner;
-  } else {
-    currentTaskDefItems.value = TaskRootDef
-  }
-  if (props.taskPid >= 0) {
-    const res = (await VillageApi.getCatalogList(
-      props.villageId, 
-      authStore.isAdmin ? undefined : props.villageVolunteerId,
-      props.taskPid
-    ));
-    if (res.length === 0)
-      return;
-    currentTaskDefItems.value = res
-      .map(item => {
-        try {
-          const collectModuleInternalName = getCollectModuleInternalNameById(item.collectModuleId);
-          const formDefine = collectModuleInternalName ? getVillageInfoForm(collectModuleInternalName, -1) : undefined;
-          return {
-            ...item,
-            extra: authStore.isAdmin && item.total >= 0 ? `已采编 ${item.total}` : '',
-            enable: canCollectCatalog(item.id),
-            catalogItem: item,
-            goForm: collectModuleInternalName ? [ 
-              collectModuleInternalName, 
-              item.typeId ?? -1, 
-              formDefine?.[2].typeName, 
-              collectModuleInternalName === 'overview' ? 'common' : undefined,
-              item.title,
-              item.id
-            ] as TaskMenuDefGoForm : undefined,
-            onClick: () => {
-              if (item.haschild) {
-                navTo('/pages/dig/forms/task', {
-                  ...props,
-                  taskName: '',
-                  taskTitle: item.title,
-                  taskPid: item.id,
-                  isView: props.isView,
-                })
-              } else {
-                alert({
-                  title: item.title,
-                  content: '您暂无权限采集该板块',
-                })
-              }
+  await waitTimeOut(400);
+
+  const res = (await VillageApi.getCatalogList(
+    props.villageId, 
+    authStore.isAdmin ? undefined : props.villageVolunteerId,
+    props.taskPid
+  ));
+  if (res.length === 0)
+    return;
+  currentTaskDefItems.value = res
+    .map(item => {
+      try {
+        const collectModuleInternalName = getCollectModuleInternalNameById(item.collectModuleId);
+        const formDefine = collectModuleInternalName ? getVillageInfoForm(collectModuleInternalName, -1) : undefined;
+        return {
+          ...item,
+          extra: authStore.isAdmin && item.total >= 0 ? `已采编 ${item.total}` : '',
+          enable: canCollectCatalog(item.id) || collectModuleInternalName,
+          catalogItem: item,
+          goForm: !item.haschild && collectModuleInternalName ? [ 
+            collectModuleInternalName, 
+            item.typeId ?? -1, 
+            formDefine?.[2].typeName, 
+            collectModuleInternalName === 'overview' ? 'common' : undefined,
+            item.title,
+            item.id
+          ] as TaskMenuDefGoForm : undefined,
+          onClick: () => {
+            if (item.haschild) {
+              navTo('/pages/dig/forms/task', {
+                ...props,
+                taskTitle: item.title,
+                taskPid: item.id,
+                isView: props.isView,
+              })
+            } else {
+              alert({
+                title: item.title,
+                content: '您暂无权限采集该板块',
+              })
             }
           }
-        } catch (e) {
-          return {
-            ...item,
-            desc: '' + (e instanceof Error ? e.message : e),
-            enable: false,
-          }
         }
-      });
-  }
+      } catch (e) {
+        return {
+          ...item,
+          desc: '' + (e instanceof Error ? e.message : e),
+          enable: false,
+        }
+      }
+    });
 }
 
 watch(() => props.taskPid, loadList);
@@ -140,7 +132,6 @@ const handleClick = (item: TaskMenuDefItem) => {
   else if (item.goForm) {
     navTo('/pages/dig/forms/task', {
       ...props,
-      taskName: item.goForm.name,
       taskTitle: item.title,
       taskPid: (item as any).id,
       isView: props.isView,

+ 1 - 1
src/pages/dig/components/TaskList.vue

@@ -36,7 +36,7 @@ defineProps({
   },
   goButtonText: {
     type: String,
-    default: '去完成',
+    default: '去采集',
   },
 })
 </script>