diff --git a/src/data/otherMembers.ts b/src/data/otherMembers.ts new file mode 100644 index 0000000..8e1b030 --- /dev/null +++ b/src/data/otherMembers.ts @@ -0,0 +1,41 @@ +interface Member { + memberId: string + alias: string + avatar: string + profile: string +} + +const otherMembers: Member[] = [ + { + memberId: undefined, + alias: "鲁冠泽", + profile: "Java, Web。", + avatar: "", + }, + { + memberId: undefined, + alias: "江蕾", + profile: "前端。", + avatar: "", + }, + { + memberId: undefined, + alias: "黄文轩", + profile: "网安, Linux和C/C++。", + avatar: "", + }, + { + memberId: undefined, + alias: "陈学书", + profile: "Mac, 人工智能, Web和流水账。", + avatar: "", + }, + { + memberId: undefined, + alias: "章晟玮", + profile: "算法记录。", + avatar: "", + }, +] + +export default otherMembers diff --git a/src/pages/about.astro b/src/pages/about.astro index d3ac08b..2dc12c1 100644 --- a/src/pages/about.astro +++ b/src/pages/about.astro @@ -2,29 +2,48 @@ import BaseLayout from "../layouts/BaseLayout.astro" import { computed } from "vue" import MemberCard from "../components/MemberCard.astro" +import otherMembers from "../data/otherMembers.ts" const members: { memberId: string alias: string avatar: string profile: string -}[] = await fetch("https://api.nbtca.space/v2/members").then(res => { +}[] = await fetch("https://api.nbtca.space/v2/members").then((res) => { return res.json() }) +otherMembers.forEach((member) => { + members.push(member) +}) + // memberId is like "3232323233", the second and third number is the year of the member const memberGroupByYear = computed(() => { const group = members // TODO delete the test member - .filter(member => member.memberId != "0000000000" && member.memberId != "2333333333") - .reduce((acc, cur) => { - const year = parseInt("20" + cur.memberId.slice(1, 3)) - if (!acc[year]) { - acc[year] = [] - } - acc[year].push(cur) - return acc - }, {} as Record) + .filter( + (member) => + member.memberId != "0000000000" && member.memberId != "2333333333" + ) + .reduce( + (acc, cur) => { + if (!cur.memberId) { + const year = "往届" + if (!acc[year]) { + acc[year] = [] + } + acc[year].push(cur) + return acc + } + const year = parseInt("20" + cur.memberId.slice(1, 3)) + if (!acc[year]) { + acc[year] = [] + } + acc[year].push(cur) + return acc + }, + {} as Record + ) return group }) --- @@ -32,17 +51,18 @@ const memberGroupByYear = computed(() => {
+
协会成员
{ Object.keys(memberGroupByYear.value) .sort((a, b) => parseInt(b) - parseInt(a)) - .map(year => { + .map((year) => { return (
{year}
- {memberGroupByYear.value[year].map(member => ( + {memberGroupByYear.value[year].map((member) => ( ))}