未知(继上次中断)

This commit is contained in:
Cheng Zhou
2026-02-04 10:52:34 +08:00
parent 8e258d21a7
commit 737f84bf54
99 changed files with 5497 additions and 2143 deletions
+12 -5
View File
@@ -146,6 +146,7 @@
import { computed, onMounted, reactive, ref } from "vue";
import { useRoute, useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
import { useAuthStore } from "../../store/auth";
import { useStudyStore } from "../../store/study";
import {
getKickoff,
@@ -165,6 +166,7 @@ import { TEXT, requiredMessage } from "../../locales";
const route = useRoute();
const router = useRouter();
const auth = useAuthStore();
const study = useStudyStore();
const loading = ref(false);
const loadingTraining = ref(false);
@@ -175,6 +177,7 @@ const studyId = study.currentStudy?.id || "";
const siteInfo = reactive<{ name: string; contact?: string | null; is_active?: boolean }>({ name: "" });
const users = ref<any[]>([]);
const members = ref<any[]>([]);
const isAdmin = computed(() => auth.user?.role === "ADMIN");
const kickoffAttachmentGroups = [
{ entityType: "startup_kickoff_minutes", title: TEXT.modules.startupMeetingAuth.kickoffMinutesLabel },
{ entityType: "startup_kickoff_signin", title: TEXT.modules.startupMeetingAuth.kickoffSignInLabel },
@@ -221,7 +224,10 @@ const memberNameMap = computed(() => {
if (u?.id) map[u.id] = u.full_name || u.username || u.id;
});
members.value.forEach((m: any) => {
if (m?.user_id && !map[m.user_id]) map[m.user_id] = m.full_name || m.username || m.user_id;
const user = m?.user;
if (m?.user_id && !map[m.user_id]) {
map[m.user_id] = user?.full_name || user?.username || user?.email || m.user_id;
}
});
return map;
});
@@ -420,10 +426,11 @@ const goBack = () => router.push("/startup/meeting-auth");
onMounted(async () => {
if (studyId) {
const [membersResp, usersResp] = await Promise.all([
listMembers(studyId, { limit: 500 }),
fetchUsers({ limit: 500 }),
]).catch(() => [null, null]);
const requests = [listMembers(studyId, { limit: 500 })];
if (isAdmin.value) {
requests.push(fetchUsers({ limit: 500 }));
}
const [membersResp, usersResp] = await Promise.all(requests).catch(() => [null, null]);
if (membersResp?.data) {
members.value = Array.isArray(membersResp.data) ? membersResp.data : membersResp.data.items || [];
}
+12 -5
View File
@@ -56,6 +56,7 @@
import { computed, onMounted, reactive, ref } from "vue";
import { useRoute, useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import { useAuthStore } from "../../store/auth";
import { useStudyStore } from "../../store/study";
import { createKickoff, getKickoff, updateKickoff } from "../../api/startup";
import { fetchSites } from "../../api/sites";
@@ -67,6 +68,7 @@ import { TEXT } from "../../locales";
const route = useRoute();
const router = useRouter();
const auth = useAuthStore();
const study = useStudyStore();
const saving = ref(false);
@@ -77,6 +79,7 @@ const siteInfo = reactive<{ name: string; contact?: string | null; is_active?: b
const siteId = ref("");
const users = ref<any[]>([]);
const members = ref<any[]>([]);
const isAdmin = computed(() => auth.user?.role === "ADMIN");
const memberNameMap = computed(() => {
const map: Record<string, string> = {};
@@ -84,7 +87,10 @@ const memberNameMap = computed(() => {
if (u?.id) map[u.id] = u.full_name || u.username || u.id;
});
members.value.forEach((m: any) => {
if (m?.user_id && !map[m.user_id]) map[m.user_id] = m.full_name || m.username || m.user_id;
const user = m?.user;
if (m?.user_id && !map[m.user_id]) {
map[m.user_id] = user?.full_name || user?.username || user?.email || m.user_id;
}
});
return map;
});
@@ -174,10 +180,11 @@ const goBack = () => router.push("/startup/meeting-auth");
onMounted(async () => {
if (studyId.value) {
const [membersResp, usersResp] = await Promise.all([
listMembers(studyId.value, { limit: 500 }),
fetchUsers({ limit: 500 }),
]).catch(() => [null, null]);
const requests = [listMembers(studyId.value, { limit: 500 })];
if (isAdmin.value) {
requests.push(fetchUsers({ limit: 500 }));
}
const [membersResp, usersResp] = await Promise.all(requests).catch(() => [null, null]);
if (membersResp?.data) {
members.value = Array.isArray(membersResp.data) ? membersResp.data : membersResp.data.items || [];
}